Предположим у Вас где то удаленно стоит датчик подключенный к esp8266, и Вам надо на другом контроллере надо как то отобразить измеряемые данные. Можно для этого как вариант использовать веб сервер на esp8266. Для создания web-сервера на ESP8266 и получения данных по GET-запросу и вывода полученных данных на LCD1602 можно использовать следующий код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Replace with your network credentials
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
// Set web server port number to 80
WiFiServer server(80);
// Initialize the LCD with the I2C address and number of columns and rows
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Start the serial communication and the LCD
Serial.begin(9600);
lcd.init(); // initialize the lcd
lcd.backlight(); // turn on backlight
lcd.clear(); // clear the lcd
// Connect to Wi-Fi network with SSID and password
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
// Print ESP8266 Local IP Address
Serial.println(WiFi.localIP());
// Start the server
server.begin();
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait for data from client
while (!client.available()) {
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Extract the GET parameters from the request
int value = 0;
if (request.indexOf("/?value=") != -1) {
value = request.substring(request.indexOf("/?value=")+8).toInt();
Serial.print("Value received: ");
Serial.println(value);
}
// Send the HTTP response to the client
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.print("Value received: ");
client.println(value);
client.println("");
// Display the value on the LCD
lcd.setCursor(0, 0);
lcd.print("Value: ");
lcd.print(value);
}
В этом коде используется библиотека ESP8266WiFi для подключения к Wi-Fi сети и создания сервера на порту 80. Для работы с LCD1602 используется библиотека LiquidCrystal_I2C.
При получении GET-запроса сервер извлекает значение параметра “value” и выводит его в ответе клиенту и на LCD1602.
Для подключения LCD1602 по шине I2C используется двухпроводное подключение SDA и SCL к соответствующим выводам на плате ESP8266, а также подключение питания и заземления.