Здравствуйте. Пытаюсь получить данные Nextion > ESP32. Как отправлять данные на дисплей я понял, всё работает. Но вот получить событие нажатой клавиши на дисплее — нет. Не работает именно вот этот кусок кода:
Код полностью:
Может кто сталкивался с проблемой? Прикрепляю используемую библиотеку.
C++:
String message = myNextion.listen(); //check for message
if(message == "66 00 FF FF FF "){ // if a message is received...
setupWiFi();
myNextion.setComponentText("page1.t0", "Test");
C++:
#include <Arduino.h>
#include <WiFi.h>
#include "time.h"
#include <iarduino_RTC.h>
#include <SoftwareSerial.h>
#include <Nextion.h>
SoftwareSerial nextion(17, 16);
iarduino_RTC watch(RTC_DS3231);
Nextion myNextion(nextion, 9600);
char* ssid = "ds-4535";
char* password = "577544tr";
char servername[]="ntppool.org";
char* ntpServer = "de.pool.ntp.org";
long gmtOffset_sec = 7200;
int daylightOffset_sec = 3600;
int second, minute, hour, day, month, year, weekday, rem2;
String rem;
long current;
struct tm timeinfo;
uint32_t myTimer1, myTimer2;
WiFiClient client;
void setupWiFi() {
WiFi.mode(WIFI_AP_STA);
WiFi.begin(ssid, password);
Serial.println();
Serial.print("Подключение к WiFi..");
myNextion.setComponentText("page1.connectwifi", "Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
if (millis() - myTimer1 >= 10000) {
Serial.println(".");
Serial.println("Попытка подключения к WiFi не удалась");
myNextion.setComponentText("page1.connectwifi", "Connecting to WiFi error");
myTimer1 = millis();
WiFi.disconnect();
Serial.println("Отключение от WiFi");
myNextion.setComponentText("page1.connectwifi1", "WiFi to disconnected");
break;
} else {
if (WiFi.status() == WL_CONNECTED) {
if (client.connect(servername, 80)) {
Serial.println(".подключено!");
myNextion.setComponentText("page1.connectwifi1", ".connected!");
Serial.println("Соединение с интернетом установленно");
myNextion.setComponentText("page1.connectwifi2", "Internet connected");
Serial.print("Хост: ");
Serial.println(servername);
myNextion.setComponentText("page1.connectwifi3", servername);
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
int LIP = WiFi.localIP();
myNextion.setComponentText("page1.connectwifi4", String (LIP));
} else {
Serial.println(".");
Serial.println("Соединение с WiFi установленно, но");
Serial.println("отсутствует соединение с интернетом");
myNextion.setComponentText("page1.connectwifi1", "WiFi connected but not Internet");
WiFi.disconnect();
Serial.println("Отключение от WiFi");
myNextion.setComponentText("page1.connectwifi2", "WiFi to disconnected");
break;
}
}
}
}
}
void timeSync() {
if (client.connect(servername, 80)) {
getLocalTime(&timeinfo);
second = timeinfo.tm_sec;
minute = timeinfo.tm_min;
hour = timeinfo.tm_hour;
day = timeinfo.tm_mday;
month = timeinfo.tm_mon + 1;
year = timeinfo.tm_year + 1900;
rem = year;
rem.remove(0, 1);
rem2 = rem.toInt();
watch.settime(second, minute, hour, day, month, rem2);
Serial.println("Время синхронизированно");
Serial.print("Сервер синхронизации: ");
Serial.println(ntpServer);
} else {
Serial.println("Ошибка получения данных с интернета");
Serial.println("Запись времени не была произведена");
}
}
void setup() {
Serial.begin(115200);
setupWiFi();
myNextion.init();
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
watch.begin();
timeSync();
}
void loop() {
if (client.connect(servername, 80)) {
getLocalTime(&timeinfo);
second = timeinfo.tm_sec;
minute = timeinfo.tm_min;
hour = timeinfo.tm_hour;
day = timeinfo.tm_mday;
month = timeinfo.tm_mon + 1;
year = timeinfo.tm_year + 1900;
weekday = timeinfo.tm_wday + 8;
Serial.print("Синхронизированное время: ");
Serial.print(day);
Serial.print("/");
Serial.print(month);
Serial.print("/");
Serial.print(year);
Serial.print(" --- ");
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.println(second);
} else {
Serial.println("Время не синхронизированно");
}
Serial.print("Записанное время: ");
Serial.println(watch.gettime("d/m/Y, H:i:s"));
myNextion.setComponentText("time", watch.gettime("H:i:s"));
myNextion.setComponentText("date", watch.gettime("d/m/Y"));
String message = myNextion.listen(); //check for message
if(message == "66 00 FF FF FF "){ // if a message is received...
setupWiFi();
myNextion.setComponentText("page1.t0", "Test");
}
delay(800);
}
Вложения
-
203.8 KB Просмотры: 19