bus-arduino/README.md
2026-07-22 21:11:28 +03:00

69 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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-строка, например:
```text
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`
## Что установить на компьютере
```bash
python3 -m pip install -r requirements.txt
```
## Как загрузить прошивку
Откройте файл `arduino_bus_display/arduino_bus_display.ino` в Arduino IDE и загрузите его в плату.
Скорость `Serial`: `115200`.
## Как запустить скрипт
Если хотите сначала просто посмотреть вывод в консоль:
```bash
python3 bus_monitor.py --once
```
Если Arduino подключена по USB:
```bash
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.