No description
Find a file
2026-07-22 21:11:28 +03:00
arduino_bus_display update 2026-07-22 21:11:28 +03:00
.gitignore Initial commit 2026-07-22 18:07:20 +00:00
bus_monitor.py update 2026-07-22 21:11:28 +03:00
README.md update 2026-07-22 21:11:28 +03:00
requirements.txt update 2026-07-22 21:11:28 +03:00

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.694856
  • 96: 47.220350, 39.632114

На экране выводится короткая ASCII-строка, например:

94 #8 09m 2.4km
96 #6 03m 180m

#8 это сколько автобусов скрипт видит на маршруте в текущем ответе API. 09m это примерный ETA, 2.4km или 180m это расстояние по прямой до нужной точки. Это не маршрутное время, а оценка по текущему положению и скорости автобуса.

Подключение LCD

Прошивка использует ваш вариант подключения:

  • RS -> D6
  • EN -> D7
  • DB4 -> D8
  • DB5 -> D9
  • DB6 -> D10
  • DB7 -> 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.