I need help, please.
I’m trying to run code with LVGL + WebServer…
The screen appears normally and shows the interface I wrote, but when I open the web page, it restarts the ESP32…
What could be happening?
This error:
This is my code:
extern "C"{
#include "freertos/FreeRTOS.h"
#include <freertos/task.h>
#include "freertos/timers.h"
}
//Bibliotecas
#include <WiFi.h> // ESP32 Core WiFi Library
#include <ArduinoJson.h>
#include <SPIFFS.h>
//#include <AsyncWebServer_WT32_ETH01.h> // Funcionava perfeito nessa biblioteca....Troquei para outra para ver se dá bom com o LVGL
#include <AsyncTCP.h>
#include <ESPAsyncWebSrv.h>
#include <WiFiUdp.h>
//#define DEBUG_BER
#include <Arduino_SNMP_Manager_02.h>
#include <lvgl.h>
#include <TFT_eSPI.h>
#include "ui.h"
//Declaração das funções relacionadas ao SNMP no Conceito do Multiprocessamento
TaskHandle_t Task1Handle, Task2Handle;
//Variaveis usadas no Display
static const uint16_t screenWidth = 480;
static const uint16_t screenHeight = 320;
uint16_t calData[5] = { 353, 3568, 269, 3491, 7 }; /*touch caldata*/
TFT_eSPI lcd = TFT_eSPI(); /* TFT entity */
static lv_disp_draw_buf_t draw_buf;
static lv_color_t buf1[ screenWidth * screenHeight / 13 ];
// Variables usadas no setup para configurações do usuario
bool Run;
String str_Modo;
String Wifi_SSID;
String Wifi_Pass;
uint8_t SNMP_TimeOut;
uint32_t SNMP_Port;
String str_Community;
//const int snmpVersion = 1; // SNMP Version 1 = 0, SNMP Version 2 = 1
uint8_t snmpVersion;
//Variaveis de uso interno do Sistema
String wifiConnected = ""; //Variável para controle do nome da rede conectada
IPAddress targetIP[5] = { IPAddress(0,0,0,0), IPAddress(0,0,0,0), IPAddress(0,0,0,0), IPAddress(0,0,0,0), IPAddress(0,0,0,0) };
IPAddress last_targetIP[5] = { IPAddress(0,0,0,0), IPAddress(0,0,0,0), IPAddress(0,0,0,0), IPAddress(0,0,0,0), IPAddress(0,0,0,0) };
uint8_t last_pos;
//unsigned int ifSpeedResponse[5];
unsigned int inOctetsResponse[5];
unsigned int outOctetsResponse[5];
unsigned int lastInOctets[5];
unsigned int lastOutOctets[5];
float rateIn[5];
float rateOut[5];
/*
int servicesResponse[5];
char sysName0[30];
char sysName1[30];
char sysName2[30];
char sysName3[30];
char sysName4[30];
char *sysNameResponse[] = {sysName0,sysName1,sysName2,sysName3,sysName4};
*/
char sysInterfaceName[20];
char *sysInterfaceNameResponse = sysInterfaceName;
//Variaveis da Matriz de IP's (Devices usados) e Interfaces
const int MAX_DEVICE_COUNT = 5;
const int MAX_INTERFACE_COUNT = 5;
bool Device[MAX_DEVICE_COUNT];
String ipArray[MAX_DEVICE_COUNT];
int ipCount = 0;
bool xInterface[5];
int xInterfaceIP[5];
// OIDs
char *oidInOctetsCount32[] = {NULL, NULL, NULL, NULL, NULL}; // Counter32 ifInOctets.4
char *oidOutOctetsCount32[] = {NULL, NULL, NULL, NULL, NULL}; // Counter32 ifOutOctets.4
//char *oidSysName[] = {NULL, NULL, NULL, NULL, NULL}; // OctetString SysName
char *oidInterfaceName[] = {NULL, NULL, NULL, NULL, NULL}; // OctetString SysName
char *oidUptime_S = ".1.3.6.1.2.1.1.3.0";
//char *oidSysName_S = ".1.3.6.1.2.1.1.5.0";
//long long unsigned int hcCounter[5];
unsigned int uptime[5];
unsigned int lastUptime[5];
unsigned long pollStart = 0;
unsigned long intervalBetweenPolls = 0;
uint8_t pollInterval = 1500; // delay in milliseconds
// Objects
DynamicJsonDocument json(1024);
//DynamicJsonDocument DocNet(1024);
DynamicJsonDocument oJsonRun(2048);
JsonArray jsonArrayRun;
#define FileFS SPIFFS
#define FORMAT_SPIFFS_IF_FAILED true
FS* filesystem = &SPIFFS;
const char* conf_Setup = "/conf_Setup.json";
const char* conf_SetupWifi = "/conf_SetupWifi.json";
const char* conf_Networks = "/conf_Networks.json";
const char* conf_ScanDevice = "/conf_ScanDevice.json";
const char* conf_ScanInterface = "/conf_ScanInterface.json";
const char* conf_SetupInterface = "/conf_SetupInterface";
const char* fileWRITE = "WRITE";
const char* fileAPPEND = "APPEND";
AsyncWebServer server(80); //Objeto WebServer
WiFiUDP udp;
SNMPManager snmp = SNMPManager();
SNMPGet snmpRequest;
// Blank callback pointer for each OID
ValueCallback *callbackInOctets[5];
ValueCallback *callbackOutOctets[5];
ValueCallback *callbackSysName[5];
ValueCallback *callbackUptime[5];
ValueCallback *callbackInterfaceName;
void loop_Display(void *pvParameters) {
(void)pvParameters;
for (;;) {
lv_timer_handler();
vTaskDelay(10 / portTICK_PERIOD_MS);
}
}
void loop_SNMP(void *pvParameters) {
(void)pvParameters;
for (;;) {
if (Run && str_Modo == "Station"){
snmp.loop();
intervalBetweenPolls = millis() - pollStart;
if (intervalBetweenPolls >= pollInterval){
pollStart += pollInterval; // this prevents drift in the delays
f_AllDevices();
}
}
vTaskDelay(10 / portTICK_PERIOD_MS);
}
}
void setup(){
Serial.begin(115200);
SetupFS();
readConfigFile();
if (str_Modo == "AP"){
wifiScanOpenNet(); //Precisa avaliar - O quanto isso impacta
setupWifi_AP();
}
else if (str_Modo == "Station"){
setupWifi_Cli();
setupMainSNMP();
f_SetupAllDevices();
}
setupWebServer();
setupDisplay();
xTaskCreatePinnedToCore(loop_Display, "loop_Display", 10000, NULL, 1, &Task1Handle, 1);
xTaskCreatePinnedToCore(loop_SNMP, "loop_SNMP", 10000, NULL, 1, &Task2Handle, 1);
}
void loop(){
}
This is my webpage
And my Display:
A conversa de tudo isso é que eu desativo o lv_timer_handler();
Não tenho nenhum erro.
O que pode ser?
Alguém tem ideia de qual caminho devo seguir?