ESP8266ticker Intens 0966d049-ceb5-4431-90de-866460d783ac Яркость f24d5c0c-16e7-4845-9606-6dc368c40f9b Text e246fd82-786d-4d99-b6f9-d066969158e9 12af794b-2cd1-453a-8827-9617961908f8 e9955e2f-51d9-4c73-987c-d898eefa2327 Max72xx бегущая строка на ESP8266 Подключения: ESP8266 -> Matrix MOSI -D7-GPIO13 -> DIN CLK -D5-GPIO14 -> Clk GPIO0 -D3 -> CS 107 Pin_CS D3 Пин подключения cs 592e4e36-6d5e-4d99-b32e-d4d892b2b529 6f9151c1-36e9-4d92-bdd7-22b5d0480fdc Netgear NETGEAR Имя wi-fi сети 6df61163-18b4-4fd3-a9a8-9808fdf6224a 42832d19-9b14-400a-b581-c5543a9bbfdd Parol test 97a12aed-a47b-4cb7-8ff3-a43f3769e2df d85e2ae4-8b8b-4859-80c3-07091406f620 num_horDisp 4 4 количество матриц по горизонтали f58af4df-86ab-4032-9225-56995b79d716 e3f9a230-091c-475b-8c13-6fffd6800f5f num_verDisp 1 1 количество по вертикали 1ed98a56-8a82-4694-a83f-d44255e28e5e abf75233-7d06-4fa3-a503-8cd13993865d width_text 5 5 2dbbed32-e47b-4847-b7c0-dc72cc59b768 e1947d54-8448-4ff7-b929-1ddc480aaf34 spacer_char Промежуток между символами (пиксель) 7324c93b-8f68-4d8a-a079-b6b9e1926f16 a81e8953-26f0-4873-bd3a-81bc16b19145 set_rotation 3 развернуть строку 1 - 90, 2 - 180, 3 - 270 f40a2423-c412-4d8c-a1b5-ff5b6474cc5f 0ee0b873-1826-419d-8d25-2c4b0795c5ae matrix.setIntensity(bright_text); wait = speed_text ; if( text1) { tape = utf8rus(Text); handleTicker(1); } else if( text2) { server.handleClient(); handleTicker(2); } 170 Serial.begin(115200); delay(10); // Подключаемся к сети WiFi Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); // Ожидание подключения while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); server.on("/", handleRoot); server.begin(); // Вывод полученного IP адреса Serial.println(WiFi.localIP()); delay (500); matrix.setRotation(matrix.getRotation() + set_rotation ); matrix.setIntensity(3); //яркость 565 #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <SPI.h> #include <Adafruit_GFX.h> #include <Max72xxPanel.h> Имя wi-fi сети ssid = "Netgear"; const char* пароль password = "Parol"; const char* server (80); ESP8266WebServer DIN 11, CLK 13 pinCS = pin_CS; int МАТРИЦ ВЕРТИКАЛЬНО numberOfHorizontalDisplays = num_verDisp; int МАТРИЦ ГОРИЗОНТАЛЬНО 8х8х4 numberOfVerticalDisplays = num_horDisp; int matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); Max72xxPanel ticker_next ; unsigned long скорость время в миллисекундах wait = 20; int spacer = spacer_char; int width = width_text + spacer; int tape = ""; String page [] = "<html>" "<meta charset=\"utf-8\">" "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" "<title>Ticker control</title>" "<body>" "<form action=\"\" method=\"post\">" "<input type=\"text\" name=\"text\"/>" "<input type=\"submit\" value=\"Применить\">" "</form>" "</body>" "</html>"; const char int i,k; String target; unsigned char n; char m[2] = { '0', '\0' }; k = source.length(); i = 0; while (i < k) { n = source[i]; i++; if (n >= 0xC0) { switch (n) { case 0xD0: { n = source[i]; i++; if (n == 0x81) { n = 0xA8; break; } if (n >= 0x90 && n <= 0xBF) n = n + 0x2F; break; } case 0xD1: { n = source[i]; i++; if (n == 0x91) { n = 0xB7; break; } if (n >= 0x80 && n <= 0x8F) n = n + 0x6F; break; } } } // switch m[0] = n; target = target + String(m); } return target; 630 String utf8rus String source tape = utf8rus(server.arg("text")); server.send(200, "text/html", page); 74 void handleSubmit if (server.hasArg("text")) { handleSubmit(); } else { server.send(200, "text/html", page); } 104 void handleRoot for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) { matrix.fillScreen(LOW); int letter = i / width; int x = (matrix.width() - 1) - i % width; int y = (matrix.height() - 8) / 2; while ( x + width - spacer >= 0 && letter >= 0 ) { if ( letter < tape.length() ) { matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1); server.handleClient(); } letter--; x -= width; } matrix.write(); delay(wait); } 500 void handleTicker2 for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) { matrix.fillScreen(LOW); int letter = i / width; int x = (matrix.width() - 1) - i % width; int y = (matrix.height() - 8) / 2; while ( x + width - spacer >= 0 && letter >= 0 ) { if ( letter < tape.length() ) { matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1); } letter--; x -= width; } matrix.write(); delay(wait); } 480 void handleTicker1 speed_text 31493cb8-39b0-4f0f-b29a-1dd54bc85a6b c875f08d-5b6b-4881-902e-dd74f90be9ed bright_text 897f21f8-f2f1-4390-83b5-c2687d1dab38 text 4821366e-1971-4622-ab69-ee5b5cb28ef7 c24d9a6b-a1c6-42e0-800f-e09cc5a183f7 wi_fi 39594d1b-7946-4527-a1b2-f421693b806e 26b0d2d9-b496-4a4a-bc37-65676ad0a68e 42d1bfbb-5be0-47fc-9e5b-7c64ddedc4ad matrix.setIntensity(bright_text); wait = speed_text ; if( text) { tape = utf8rus(Text); handleTicker(1); } else if (wi_fi) { server.handleClient(); handleTicker(2); } 169 5df4b440-b422-48ca-b56b-6bbddd867d09 Подключения: ESP8266 -> Matrix MOSI -D7 - GPIO13 -> DIN CLK -D5 - GPIO14 -> Clk CS -D3 - GPIO0 -> CS, по умолчанию. 132 matrix.setIntensity(bright_text); wait = speed_text ; if( text) { tape = utf8rus(Text); handleTicker1(); } else if (wi_fi) { server.handleClient(); handleTicker2(); } #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <SPI.h> #include <Adafruit_GFX.h> #include <Max72xxPanel.h> Имя wi-fi сети ssid = "Netgear"; const char* пароль password = "Parol"; const char* server (80); ESP8266WebServer CS -D3 - GPIO0, DIN D7 - GPIO13, CLK D5 -GPIO14 . pinCS = D3; int numberOfHorizontalDisplays = num_verDisp; int numberOfVerticalDisplays = num_horDisp; int matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); Max72xxPanel ticker_next ; unsigned long скорость время в миллисекундах wait = 20; int spacer = spacer_char; int width = width_text + spacer; int tape = ""; String page [] = "<html>" "<meta charset=\"utf-8\">" "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" "<title>Ticker control</title>" "<body>" "<form action=\"\" method=\"post\">" "<input type=\"text\" name=\"text\"/>" "<input type=\"submit\" value=\"Применить\">" "</form>" "</body>" "</html>"; const char