UART HTTP bridge (updated: 01 May 2019, 10:45:57)

Опция позволяет подключать к модулю внешний микроконтроллер (м/к) через UART порт, например проект STM32. Доступно отображение веб страниц с удаленного м/к, управление и отображение состояния GPIO, датчиков.

Опция еще находится в стадии доработки - нет вывода данных с датчиков, кроме вывода на главной странице, могут быть реализованы и другие идеи в опции.

UART HTTP bridge - это продвинутая замена старой опции UART bridge


Подключение микроконтроллера к модулю

Опция на данный момент не имеет настроек в веб интерфейсе и работает сразу.

м/к подключается к 1 и 3 gpio ESP8266 перекрестно (RX-TX, TX-RX). Для ESP32 GPIO у UART назначаются перед компиляцией в шестеренке. Скорость по умолчанию 115200 - можно изменить в шестеренке, но нужно учитывать, что на малой скорости вывод http может быть с проблемами.

Проброс веб интерфейса

Модуль в UART посылает запрос вида http/[адрес_страницы] (окончание строки обязательно должно заканчиваться кодом 0x00), а удаленный м/к на этот запрос должен прислать текст в виде html разметки. Веб интерфейс удаленного м/к доступен по адресу http://[ip]/configbrhttp/[адрес_страницы], адрес страницы может быть пустой, если это корневая страница устройства. Через веб возможно так же настраивать удаленный м/к получая и разбирая данные из GET запроса.

ОписаниеОткрытие по httpЗапрос от ESP по UART в сторону м/к*Ответ от м/к по UART в сторону ESP**
Открытие главной страницыhttp://[ip]/configbrhttp/http/[0x00]Hello, world[0x00]
Открытие второстепенной страницыhttp://[ip]/configbrhttp/sensorshttp/sensors[0x00]sens1:44;sens2:25;[0x00]

[0x00] - в конце строки необходимо послать код 0x00 для завершения передачи.

*  - прошивка м/к должна сравнить входящую строчку и отправить соответствующую ей команды строку ответа.

** - задается м/к прошивкой. Текст может быть в виде html разметки, включая http ссылки для удобной навигации.

Управление и контроль GPIO

GPIO удаленного м/к транслируются на карту нумерации GPIO модуля в диапазоне 200-219 (можно изменять в шестеренке). Другие опции имеют приоритет при совпадении одинаковых GPIO.

На удаленный м/к для управления gpio опция посылает команду setgpio x y , где x- номер gpio. y - состояние gpio.

Удаленный м/к для обновления состояния gpio может посылать с заданной периодичностью или по событию строку вида stgpio x1:y1;x2:y2;x3:y3;  где x - номер gpio, а y - его состояние.

При старте модуля происходит запрос состояния gpio командой getgpio

Синхронизация времени

Опция с определенной периодичностью посылает удаленному м/к команду settime [unix time] если в прошивке имеется опция ntp.

Передача данных от датчиков

Удаленный м/к может отправлять с определенной периодичностью строку вида stsens t:23.6;h:44;l:500; 

В строке передается температура(t) , влажность(h) и любые другие данные(любая буква). Протокол схож с передачей данных у Lora. Максимально возможное количество датчиков указывается в шестеренке перед сборкой прошивки.