2.8 KiB
2.8 KiB
Bus LCD for Arduino
Этот набор состоит из двух частей:
bus_monitor.pyполучает координаты автобусов94и96сhttps://rnd.don.su/get_bus, считает примерное время до заданных точек и формирует две строки по 16 символов.arduino_bus_display/arduino_bus_display.inoпринимает эти строки поSerialи выводит их на LCD 16x2 черезLiquidCrystal.
Используются точки:
94:47.291609, 39.69485696:47.220350, 39.632114
На экране выводится короткая ASCII-строка, например:
94 #8 09m 2.4km
96 #6 03m 180m
#8 это сколько автобусов скрипт видит на маршруте в текущем ответе API. 09m это примерный ETA, 2.4km или 180m это расстояние по прямой до нужной точки. Это не маршрутное время, а оценка по текущему положению и скорости автобуса.
Подключение LCD
Прошивка использует ваш вариант подключения:
RS -> D6EN -> D7DB4 -> D8DB5 -> D9DB6 -> D10DB7 -> D11
Что установить на компьютере
python3 -m pip install -r requirements.txt
Как загрузить прошивку
Откройте файл arduino_bus_display/arduino_bus_display.ino в Arduino IDE и загрузите его в плату.
Скорость Serial: 115200.
Как запустить скрипт
Если хотите сначала просто посмотреть вывод в консоль:
python3 bus_monitor.py --once
Если Arduino подключена по USB:
python3 bus_monitor.py --serial-port /dev/ttyACM0
Полезные параметры:
--interval 5или другое значение, если нужно изменить частоту обновления- по умолчанию обновление идет каждые
5секунд --baud-rate 115200скоростьSerial--onceодин запрос без бесконечного цикла
Примечания
- Скрипт сам получает свежие
cookieиcsrf-tokenс главной страницыrnd.don.su, поэтому не использует одноразовые токены из браузера. - Если стандартный LCD 1602 плохо показывает кириллицу, это нормально. Поэтому строки на экране оставлены в ASCII.