Связка arduino mega - softserial(57600) - esp8266(nodemcu) - narodmon.ru, influxdb,grafana....
Арудино снимает показания аналогов и управляет всеми процессами. Отчитывается о состоянии входов и выходов в серийник для ЕСП. Ежесекундно сливает примерно 100 параметров порциями. А есп их разбирает и дальше уже толкает.
ЕСП получает время из интернета и отдаёт его в ардуино. Та ведеёт логи на microSD.
Разобрав параметры пришедшие по серийнику, ЕСП кидает их по локалке на influx. Там уже всякая красота с графиками и т.д.
Также есп кидает порядка 20 параметров на народный монитор. Раз в 5 минут.
Еще на есп есть вэбморда. Ну там все 100 парамтеров выодвятся каждую секунду и обновляются. Как вэбморда для отладки. Браузер локальной тачки выполняет скрипт и запрашивает с есп данные в виде поста гета. Есп видит клиента нового и отдаёт ему что надо.
Все эти процессы выполняются параллельно.
Надо в серийник пихать команды удалённо. Прокинуть порты на роутере или на линухе тунелем сделать по ссш. Putty->router(статика вешняя+портмаппинг)->linux(tunnel)->lan->esp(port:7777)->arduino(serial). Напрямую на есп порты не открываю. ЗАвалят пингами или ещё чем. Было такое с арудинкой и эзэрнэтшилдом.
wifiServer.available(): Возможно ли держать его постоянно открытым и слушающим и при этом не навредить иным коннектам?
Арудино снимает показания аналогов и управляет всеми процессами. Отчитывается о состоянии входов и выходов в серийник для ЕСП. Ежесекундно сливает примерно 100 параметров порциями. А есп их разбирает и дальше уже толкает.
ЕСП получает время из интернета и отдаёт его в ардуино. Та ведеёт логи на microSD.
Разобрав параметры пришедшие по серийнику, ЕСП кидает их по локалке на influx. Там уже всякая красота с графиками и т.д.
Также есп кидает порядка 20 параметров на народный монитор. Раз в 5 минут.
Еще на есп есть вэбморда. Ну там все 100 парамтеров выодвятся каждую секунду и обновляются. Как вэбморда для отладки. Браузер локальной тачки выполняет скрипт и запрашивает с есп данные в виде поста гета. Есп видит клиента нового и отдаёт ему что надо.
Все эти процессы выполняются параллельно.
Надо в серийник пихать команды удалённо. Прокинуть порты на роутере или на линухе тунелем сделать по ссш. Putty->router(статика вешняя+портмаппинг)->linux(tunnel)->lan->esp(port:7777)->arduino(serial). Напрямую на есп порты не открываю. ЗАвалят пингами или ещё чем. Было такое с арудинкой и эзэрнэтшилдом.
wifiServer.available(): Возможно ли держать его постоянно открытым и слушающим и при этом не навредить иным коннектам?
Код:
WiFiServer wifiServer(7777);
.....
void loop() {
WiFiClient client = wifiServer.available();
if (client) {
while (client.connected()) {
while (client.available()) {
char c = client.read();
Serial.write(c);
}
delay(10);
}
client.stop();
Serial.println("Client disconnected");
}
}