Здравствуйте. Есть несколько датчиков. Они с разными адресами сидят на шине RS485 (витая пара) и ждут когда к ним обратится мастер. Интервал опроса 200 мСек. Через обычный COM порт.
На данный момент есть приложение под Windows, написанное мною на Delphi, которое опрашивает датчики через COM порт и отдает через AJAX данные на вэб страницу. Всё сделано при помощи стандартных компонентов Delphi 7. Но меня это не устраивает.
Цель:
- Маленькая железка с минимум энергопотребления, 24/7, подключенная в домашний роутер. Настройка железки только через браузер (пример: страница настройки роутера).
Что хочу:
- Обратились по IP адресу сервера (IP/setup) - открылась страница с надписью: «датчики отсутствуют» и кнопка «добавить»;
- Нажали кнопку «добавить» - открылась страница где указываем адрес датчика, его тип и т.д. Нажимаем «ок»;
- Перешли по IP адресу сервера (уже без setup) - открылась страница где видим: датчик1 (параметр1, параметр2);
- Обратились по IP адресу сервера (IP/setup) - открылась страница с надписью: «список -> датчики», в списке уже есть один датчик и кнопка «добавить»;
- Периодически сохраняем данные в базу. И по адресу IP/log появляется страница, где можно выбрать временной интервал и один из параметров, нажать ОК и увидеть график изменения этого параметра.
Как хочу:
- Сервер отправляет запрос в UART (0xAB 0xCD 0xEF 0xAB 0xCD 0xEF);
- Получает ответ (0xEF 0xCD 0xAB 0xEF 0xCD 0xAB);
- Достаем нужные данные (0xEF 0xCD), держим их в буффере;
- Когда пользователь набрал в адресной строке IP сервера -> отобразили данные (0xEF 0xCD);
- Обновляем их через ajax, при этом не забываем опрашивать по UART остальные устройства. С интервалом 100-200 мСек увеличивая адрес (по кругу).
Помогите найти подробный проект с исходным кодом. Простой, понятный. Чтобы было отдельно общение по UART (RS485) и отдельно WEB. И как вообще написать такой WEB GUI ? Нигде не нашел конкретных примеров. Подойдет ли Orange pi zero для этого?
На Orange pi планирую установить lazarus и попробовать скомпилировать код из delphi (pascal) под Linux. Даже если что то скомпилируется, то вопрос по базе и WEB GUI остается открытый. Или бросить эту затею? Linux не знаю. Пишу прошивки под микроконтроллеры. Нужен пример кода, где его писать, что открыть и т.д. Спасибо.
P.S. На делфи я сделал форму: [img]https://c.radikal.ru/c36/1803/52/03449b0bd373t.jpg[/img]
По таймеру делаю запрос через COM порт, получаю ответ, заношу данные в таблицу. При ajax запросе отдаю данные из этой таблицы т.к. они всегда актуальны.