Начальный каркас: прошивка ESP32 для зоны "Гроубокс"
Реализованы sensor-1 (DHT22, телеметрия temperature/humidity) и
реле-актуаторы light-1/pump-1/fan-1 (turn_on/turn_off/set_level) по
протоколу MQTT платформы home_automatization (devices/{id}/telemetry|commands|ack).
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#include "net.h"
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <WiFi.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
void netBegin() {
|
||||
WiFi.mode(WIFI_STA);
|
||||
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
|
||||
|
||||
Serial.print("[net] connecting to ");
|
||||
Serial.print(WIFI_SSID);
|
||||
while (WiFi.status() != WL_CONNECTED) {
|
||||
delay(500);
|
||||
Serial.print(".");
|
||||
}
|
||||
Serial.print("\n[net] connected, ip=");
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
|
||||
// Вызывается из loop() на каждой итерации — переподключает Wi-Fi,
|
||||
// если связь пропала (роутер перезагрузился, слабый сигнал и т.д.).
|
||||
void netEnsureConnected() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
return;
|
||||
}
|
||||
Serial.println("[net] connection lost, reconnecting");
|
||||
WiFi.disconnect();
|
||||
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
|
||||
|
||||
unsigned long start = millis();
|
||||
while (WiFi.status() != WL_CONNECTED && millis() - start < 15000) {
|
||||
delay(250);
|
||||
}
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
Serial.print("[net] reconnected, ip=");
|
||||
Serial.println(WiFi.localIP());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user