В этой статье мы узнаем, как создать беспроводную систему мониторинга аналоговых датчиков с помощью ESP32 с ЖК-дисплеем и веб-интерфейсом.
Эта система объединяет микроконтроллер ESP32 с аналоговым датчиком (в данном случае потенциометром для возможности ручного изменения аналогового сигнала), ЖК-дисплеем и веб-сервером. ESP32 непрерывно считывает показания датчика, обновляет ЖК-дисплей и предоставляет данные датчика в режиме реального времени через веб-интерфейс, к которому пользователи могут получить доступ через веб-браузер.
Схема подключения компонентов системы на основе ESP32 следующая.

Код программы ESP32 довольно прост. В нем мы создаем сервер с веб-формой и подключаем дисплей, и на эти средства отображения информации будем отправлять данные, полученные с помощью функции analogRead.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "EmbedderShop";
const char* password = "EmbedderShop.ru";
WebServer server(80);
const int analogPin = 34;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
server.on("/", HTTP_GET, []() {
server.send(200, "text/html", getHTML());
});
server.begin();
}
void loop() {
server.handleClient();
displayAnalogValue();
}
String getHTML() {
int analogValue = analogRead(analogPin);
String html = "<html><head></head><body>";
html += "<h1>ESP32 Analog Sensor</h1>";
html += "<p>Analog Value: " + String(analogValue) + "</p>";
html += "</body></html>";
return html;
}
void displayAnalogValue() {
int analogValue = analogRead(analogPin);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Analog Value:");
lcd.setCursor(0, 1);
lcd.print(analogValue);
delay(1000);
}
ESP-WROOM-32 DevKit
Плата ESP-WROOM-32 DevKit на основе популярного Wi-Fi/Bluetooth модуля ESP32