#define double_buffer #define ESP8266 #include #include #include "PageIndex.h" //--> Пользовательский интерфей. храните в той же папке, что и файл .ino. #include Ticker display_ticker; #define P_LAT 16 #define P_A 5 #define P_B 4 #define P_C 15 #define P_D 12 #define P_E 0 #define P_OE 2 // Pins for LED MATRIX PxMATRIX display(64,16,P_LAT, P_OE,P_A,P_B,P_C,P_D); // ISR обновление дисплея void display_updater() { display.display(70); //яркость } //======================================================================== web ======================================================================== //----------------------------------------Имя и пароль Wi-Fi в качестве точки доступа const char* ssid = "NodeMCU_ESP8266"; const char* password = "goodluck"; //---------------------------------------- ESP8266WebServer server(80); //--> 80 порт сервера char *Text1[] = {"XUSH"}; //--> Переменная для текста. Не оставляйте эту переменную пустой char *Text2[] = {"KELIBSIZ"}; //--> Переменная для текста. Не оставляйте эту переменную пустой String Incoming_Text1 = ""; //--> Переменная для хранения текста, отправленного с веб-сервера (веб-страницы) String Incoming_Text2 = ""; //--> Переменная для хранения текста, отправленного с веб-сервера (веб-страницы) //========================================================================Эта процедура выполняется, когда вы открываете IP-адрес NodeMCU ESP8266 в браузере. void handleRoot() { server.send(200, "text/html", MAIN_page); //--> Отправка страницы } //======================================================================== //======================================================================== Обработка входящих текстовых данных void handle_Incoming_Text() { Incoming_Text1 = server.arg("TextContent1"); Incoming_Text2 = server.arg("TextContent2"); server.send(200, "text/plane", ""); //--> Send web page Process_Incoming_Text(); } //======================================================================== //========================================================================Обработки входящего текста для отображения на панели void Process_Incoming_Text() { delay(500); Serial.println("Входящий текст первой строки: "); Serial.println(Incoming_Text1); Serial.println("Длина текста первой строки: "); Serial.println(Incoming_Text1.length()); Serial.println("Входящий текст второй строки: "); Serial.println(Incoming_Text2); Serial.println("Длина текста второй строки: "); Serial.println(Incoming_Text2.length()); Serial.println(); int str_len = Incoming_Text1.length() + 1; char char_array[str_len]; Incoming_Text1.toCharArray(char_array, str_len); strcpy(Text1[0], char_array); Incoming_Text1 = ""; int str_len2 = Incoming_Text2.length() + 1; char char_array2[str_len2]; Incoming_Text2.toCharArray(char_array2, str_len2); strcpy(Text2[0], char_array2); Incoming_Text2 = ""; } //======================================================================== web ======================================================================== struct Text1 { char *text; int16_t y; } text1 = {*Text1, 0}; struct Text2 { char *text; int16_t y; } text2 = {*Text2, 8}; uint16_t textColor = display.color565(255, 0, 0); uint16_t myBLACK = display.color565(0, 0, 0); uint16_t lineColor = display.color565(255, 0, 0); uint16_t backgroundColor = display.color565(0, 0, 0); void setup() { // поместите здесь свой установочный код, чтобы запустить его один раз: Serial.begin(115200); display.begin(16); display.flushDisplay(); display.setTextWrap(false); display_ticker.attach(0.004, display_updater); //=================================================== WiFi.softAP(ssid, password); //--> Начать ESP8266 NodeMCU в качестве точки доступа Serial.println(""); IPAddress apip = WiFi.softAPIP(); //--> Получите IP-сервер Serial.print("Подключите свой ноутбук / мобильный телефон с Wi-Fi к этой точке доступа NodeMCU : "); Serial.println(ssid); Serial.print("Посетите этот IP : "); Serial.print(apip); //--> Выводит IP-адрес сервера, который нужно посетить Serial.println(" в вашем браузере."); server.on("/", handleRoot); //--> Процедура обработки в корневом каталоге. Это для отображения веб-страницы. server.on("/setText", handle_Incoming_Text); //--> обработчик handle_Incoming_Text server.begin(); //--> Запустить сервер Serial.println("HTTP сервер запущен"); } void loop() { int l1=Incoming_Text1.length(); int x1=(64-((l1*5)+(l1-1)))/2; int l2=Incoming_Text2.length(); int x2=(64-((l2*5)+(l2-1)))/2; server.handleClient(); //--> Обработка клиентских запросов // display.clearDisplay(); display.fillScreen(myBLACK); display.setTextColor(textColor); display.setCursor(x1, text1.y); display.print(text1.text); display.setCursor(x2, text2.y); display.print(text2.text); display.showBuffer(); //Serial.println(Incoming_Text1.length()); delay(20); }