Ошибка компиляции для платы lolin wemos d1 r2 mini

Добрый день.

При компиляции для WEMOS D1 mini возникают следующие ошибки. Библиотеки все вроде бы свежие, копировал с полной заменой скачаные с гитхаба. Просьба помочь с решением:

In file included from C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h:33:0,

             from C:Usersev.utkin-nbDocumentsArduinofireLinePerlinfireLinePerlin.ino:22:

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h: In function ‘void WS2812B_sendData(uint16_t*, uint16_t, uint8_t, uint8_t*, uint8_t*, uint8_t)’:

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:51:12: error: ‘SREG’ was not declared in this scope

sreg_prev=SREG;

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:98:4: error: expected ‘)’ before ‘DELAY

_DELAY_                      // основная задержка

^

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand ‘counter’

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand ‘set_hi’

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand ‘data’

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand ‘set_lo’

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand ‘data’

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand ‘counter’

In file included from C:Usersev.utkin-nbDocumentsArduinofireLinePerlinfireLinePerlin.ino:22:0:

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h: In constructor ‘microLED::microLED(LEDdata*, int, byte)’:

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h:186:14: error: cannot convert ‘volatile uint32_t* {aka volatile unsigned int*}’ to ‘const volatile uint8_t* {aka const volatile unsigned char*}’ in assignment

ws2812_port = portOutputRegister(digitalPinToPort(pin));

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h:187:18: error: cannot convert ‘volatile uint32_t* {aka volatile unsigned int*}’ to ‘volatile uint8_t* {aka volatile unsigned char*}’ in assignment

ws2812_port_reg = portModeRegister(digitalPinToPort(pin));

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h: In constructor ‘microLED::microLED(LEDdata*, byte, byte, byte, M_type, M_connection, M_dir)’:

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h:195:14: error: cannot convert ‘volatile uint32_t* {aka volatile unsigned int*}’ to ‘const volatile uint8_t* {aka const volatile unsigned char*}’ in assignment

ws2812_port = portOutputRegister(digitalPinToPort(pin));

C:Usersev.utkin-nbDocumentsArduinolibrariesmicroLED/microLED.h:196:18: error: cannot convert ‘volatile uint32_t* {aka volatile unsigned int*}’ to ‘volatile uint8_t* {aka volatile unsigned char*}’ in assignment

ws2812_port_reg = portModeRegister(digitalPinToPort(pin));

exit status 1

Коллеги, помогите разобраться. При компиляции скетча вылезает ошибка:

Arduino: 1.8.12 (Windows 10), Плата:»LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), v2 Lower Memory, Disabled, None, Only Sketch, 921600″

In file included from C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h:33,
from C:UsersProfessionalDownloadsFireFX-masterFireFX-masterfirmwareАдрескаfireLinefireLine.ino:25:
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h: In function ‘void WS2812B_sendData(uint8_t*, uint16_t, uint8_t, uint8_t*, uint8_t*, uint8_t)’:
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:51:12: error: ‘SREG’ was not declared in this scope
51 | sreg_prev=SREG;
| ^~~~
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:97:26: error: expected ‘)’ before ‘DELAY
97 | «brcc to_end nt» // перейти если уже вывели low
| ^
| )
98 | DELAY // основная задержка
|

~~~~                
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand 'counter'
  105 |    );
      |     ^
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand 'set_hi'
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand 'data'
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand 'set_lo'
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand 'data'
C:Program Files (x86)ArduinolibrariesmicroLED/ws2812_send.h:105:5: error: undefined named operand 'counter'
In file included from sketchfireLine.ino.cpp:1:
C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h: In constructor 'microLED::microLED(LEDdata*, int, byte)':
C:UsersProfessionalAppDataLocalArduino15packagesesp8266hardwareesp82663.0.2coresesp8266/Arduino.h:201:60: error: cannot convert 'volatile uint32_t*' {aka 'volatile unsigned int*'} to 'const volatile uint8_t*' {aka 'const volatile unsigned char*'} in assignment
  201 | #define portOutputRegister(port)    (((port)==_PORT_GPIO16)?((volatile uint32_t*) &GP16O):((volatile uint32_t*) &GPO))
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

| |
| volatile uint32_t* {aka volatile unsigned int*}
C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h:186:16: note: in expansion of macro ‘portOutputRegister’
186 | ws2812_port = portOutputRegister(digitalPinToPort(pin));
| ^~~~~~~~~~~~~~~~~~
C:UsersProfessionalAppDataLocalArduino15packagesesp8266hardwareesp82663.0.2coresesp8266/Arduino.h:203:60: error: cannot convert ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘volatile uint8_t*’ {aka ‘volatile unsigned char*’} in assignment
203 | #define portModeRegister(port) (((port)==_PORT_GPIO16)?((volatile uint32_t*) &GP16E):((volatile uint32_t*) &GPE))
|

~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                            |
      |                                                            volatile uint32_t* {aka volatile unsigned int*}
C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h:187:20: note: in expansion of macro 'portModeRegister'
  187 |  ws2812_port_reg = portModeRegister(digitalPinToPort(pin));
      |                    ^~~~~~~~~~~~~

C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h: In constructor ‘microLED::microLED(LEDdata*, byte, byte, byte, M_type, M_connection, M_dir)’:
C:UsersProfessionalAppDataLocalArduino15packagesesp8266hardwareesp82663.0.2coresesp8266/Arduino.h:201:60: error: cannot convert ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘const volatile uint8_t*’ {aka ‘const volatile unsigned char*’} in assignment
201 | #define portOutputRegister(port) (((port)==_PORT_GPIO16)?((volatile uint32_t*) &GP16O):((volatile uint32_t*) &GPO))
|

~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                            |
      |                                                            volatile uint32_t* {aka volatile unsigned int*}
C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h:195:16: note: in expansion of macro 'portOutputRegister'
  195 |  ws2812_port = portOutputRegister(digitalPinToPort(pin));
      |                ^~~~~~~~~~~~~~~

C:UsersProfessionalAppDataLocalArduino15packagesesp8266hardwareesp82663.0.2coresesp8266/Arduino.h:203:60: error: cannot convert ‘volatile uint32_t*’ {aka ‘volatile unsigned int*’} to ‘volatile uint8_t*’ {aka ‘volatile unsigned char*’} in assignment
203 | #define portModeRegister(port) (((port)==_PORT_GPIO16)?((volatile uint32_t*) &GP16E):((volatile uint32_t*) &GPE))
|

~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                            |
      |                                                            volatile uint32_t* {aka volatile unsigned int*}
C:Program Files (x86)ArduinolibrariesmicroLED/microLED.h:196:20: note: in expansion of macro 'portModeRegister'
  196 |  ws2812_port_reg = portModeRegister(digitalPinToPort(pin));
      |                    ^~~~~~~~~~~~~

exit status 1
Ошибка компиляции для платы LOLIN(WEMOS) D1 R2 & mini.

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»

Причем на плату ардуино уно заливается и работает. А здесь нет. Что и где нужно изменить?

Решил сделать умную комнату под управлением Wemos d1 pro mini.

видео в YouTube как работать с esp8266. 

сделал всё, как показано на видео.

C: Users Documents Arduino hardware esp8266com esp8266 cores esp8266 / Arduino.h: 302: 26: фатальная ошибка: pins_arduino.h: такого файла или каталога нет

компиляция прекращена.

Ошибка компиляции для платы LOLIN (WEMOS) D1 mini Pro.

Библиотеки есть все, вставленные ссылки в настройках Arduino IDE, установил пакет с платами, в менеджере плат, сделал всё.

#include <ESP8266WiFi.h> #include <WiFiUdp.h> #include <ESP8266mDNS.h> #include <EEPROM.h> #include <ArduinoOTA.h> extern "C" { #include "user_interface.h"; } bool ESP8266ControllerWifiClient_HRD = 0; bool ESP8266ControllerWifiClient_status = 1; bool ESP8266ControllerWifiClient_isDHCP = 1; bool ESP8266ControllerWifiClient_IsNeedReconect = 0; bool ESP8266ControllerWifiClient_workStatus = 1; char ESP8266ControllerWifiClient_SSID [40] = "Nahim43"; char ESP8266ControllerWifiClient_password [40] = "55672184"; IP-адрес ESP8266ControllerWifiClient_ip (0, 0, 0, 0); IP-адрес ESP8266ControllerWifiClient_dns (0, 0, 0, 1); IP-адрес ESP8266ControllerWifiClient_gateway (0, 0, 0, 1); IP-адрес ESP8266ControllerWifiClient_subnet (255, 255, 255, 0); uint8_t ESP8266ControllerWifiClient_mac [6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; bool ESP8266ControllerWifi_isNeededRestsrt = 0; WiFiServer ESP8266ControllerWifi_tspWebServer (80); WiFiClient ESP8266ControllerWifi_tspWebServer_client; String ESP8266ControllerWifi_tspWebServer_client_buffer = ""; char * _ESP8266WebInterfacePagesNamesArray [] = {"Главная", "WIFI-KLIENT"}; char * _ESP8266WebInterfacePagesAddressesArray [] = {"../MY_SMART_ROOM", "../MY_SMART_ROOM/wifi-klient"}; String webSettingPageHeader1 = "HTTP / 1.1 200 OK r nКонтент-тип: text / html r n r n <! DOCTYPE HTML> r n <meta charset = " utf-8 "> r п <HTML> г п "; String webSettingPageFooterString = "Разработано специально для собственного пользования"; String webSettingPageHeaderString = "Умная комната"; String _ESP8266WebInterfacePageButton_save = "<input type = " submit "class = " buttonFlp "value = " Сохранить "> </ form>"; String _ESP8266WebInterfacePageButton_reset = "<form action = " "method = " POST "> <input type = " hidden "name = " resetController "value = " reset "> <input type = " submit "class = " buttonFlp "value = " Перезагрузить "> </ form>"; String webSettingPageMainStyle = ".menu {float: left; padding: 1%; отступ: 1%; ширина: 16%; граница: 1px сплошной черный; border-radius: 8px;} .menuItem {font-weight: 600; font- семейство: 'Times New Roman', Times, serif;} .header {отступ: 10px; слева: 0px; справа: 0px; верх: 0px; фон: # 00FFFF; выравнивание текста: по центру; font-weight: 600; шрифт -семейство: 'Times New Roman', Times, с засечками; размер шрифта: 250%;} .content {float: right; ширина: 78%;} .footer {float: left; отступ: 1%; ширина: 98% ; background: # 00FFFF; margin-top: 1%; выравнивание текста: по центру; font-weight: 600; семейство шрифтов: 'Times New Roman', Times, serif; размер шрифта: 150%;}. buttonFlp { ширина: 150px; радиус границы: 20px; фон: # 459DE5; цвет: #fff; размер шрифта: 12px; курсор: указатель; float: left; отступ: 1%; поле: 1%;}. buttonFlp: hover { фон: # 358DE5;} buttonFlp: фокус {контур: нет;} ";. bool isNeededCommitESP8266EEprom = 0; void setup () { EEPROM.begin (86); if (((readByteFromEEPROM (0, 0, 0x0)))! = 148) { (updateByteToEEPROM (0, 0, 0x0, (148))); (updateBooleanToEEPROM (1, 0, 0x0, (1))); (updateUnsignedLongToEEPROM (2, 0, 0x0, (0))); (updateStringToEEPROM (6, 40, 0x0, ("55672184"))); (updateStringToEEPROM (46, 40, 0x0, ("Nahim43"))); EEPROM.commit (); } ESP8266ControllerWifiClient_isDHCP = readBooleanFromEEPROM (1, 0, 0x0); ESP8266ControllerWifiClient_ip = _ipAddressFromUnsignetLong (readUnsignedLongFromEEPROM (2, 0, 0x0)); (readStingFromEEPROM (6, 40, 0x0)). toCharArray (ESP8266ControllerWifiClient_password, 40); (readStingFromEEPROM (46, 40, 0x0)). toCharArray (ESP8266ControllerWifiClient_SSID, 40); ArduinoOTA.setHostname ("СМАРТ-КОМНАТА"); ArduinoOTA.setPassword ((const char *) "0686401742"); ArduinoOTA.begin (); WiFi.mode (WIFI_STA); _esp8266WifiModuleClientReconnect (); ESP8266ControllerWifi_tspWebServer.begin (); } void loop () {ESP8266ControllerWifi_tspWebServer_client = ESP8266ControllerWifi_tspWebServer.available (); if (ESP8266ControllerWifi_tspWebServer_client) { String _WSCReqest = ""; int _WSCPageNumber = 0; задержка (5); while (ESP8266ControllerWifi_tspWebServer_client.available ()) { _WSCReqest.concat (символ (ESP8266ControllerWifi_tspWebServer_client.read ())); } ESP8266ControllerWifi_tspWebServer_client.flush (); _WSCPageNumber = _parseWebServerReqest (_WSCReqest); _sendWebServerPage (_WSCPageNumber); } if (isNeededCommitESP8266EEprom) {EEPROM.commit (); isNeededCommitESP8266EEprom = 0; } if (ESP8266ControllerWifi_isNeededRestsrt) {ESP.restart ();} if (ESP8266ControllerWifiClient_IsNeedReconect) {_esp8266WifiModuleClientReconnect (); ESP8266ControllerWifiClient_IsNeedReconect = 0; } ArduinoOTA.handle (); ESP8266ControllerWifiClient_status = WiFi.status () == WL_CONNECTED; if (ESP8266ControllerWifiClient_status) {if (! ESP8266ControllerWifiClient_HRD) {ESP8266ControllerWifiClient_ip = WiFi.localIP (); ESP8266ControllerWifiClient_subnet = WiFi.subnetMask (); ESP8266ControllerWifiClient_gateway = WiFi.gatewayIP (); ESP8266ControllerWifiClient_dns = WiFi.dnsIP (); WiFi.macAddress (ESP8266ControllerWifiClient_mac); ESP8266ControllerWifiClient_HRD = 1; }} else {ESP8266ControllerWifiClient_HRD = 0;} // Плата: 1 } bool _isTimer (unsigned long startTime, unsigned long period) { unsigned long currentTime; currentTime = миллис (); if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));} } void _sendWebServerPage (int sendPageNumber) { if (sendPageNumber == -1) { вернуть; } if (sendPageNumber == 1) {_sendWebServerPage1 (); вернуть; } if (sendPageNumber == 2) {_sendWebServerPage2 (); вернуть; } _sendWebServerSend404Page (); } void _sendWebServerSend404Page (void) { ESP8266ControllerWifi_tspWebServer_client.print ("HTTP / 1.0 404 не найден r nContent-Type: text / html r n r n <! DOCTYPE HTML> <html> <body> <p> 404 - страница не найдена </ р> </ тело> </ HTML> г п "); задержка (1); ESP8266ControllerWifi_tspWebServer_client.flush (); ESP8266ControllerWifi_tspWebServer_client.stop (); } int _parseWebServerReqest (String reqestAddres) { int index; int result = 0; if ((reqestAddres.indexOf ("POST")) == 0) { _parsePostWebServerReqest (reqestAddres); возврат -1; } Индекс = reqestAddres.indexOf ( "/"); reqestAddres = reqestAddres.substring (index + 1); index = reqestAddres.indexOf (""); reqestAddres = reqestAddres.substring (0, index); if (reqestAddres == "MY_SMART_ROOM") {result = 1;} if (reqestAddres == "MY_SMART_ROOM / wifi-klient") {result = 2;} вернуть результат; } void _parsePostWebServerReqest (String reqestAddres) { int index = reqestAddres.indexOf (" r n r n"); String paramsValue; String params = reqestAddres.substring (index + 4); while (params.length ()> 0) { index = params.indexOf ("&"); if (index == -1) { paramsValue = params; params = ""; } еще { paramsValue = params.substring (0, index); params = params.substring (индекс + 1); } _processingPostWebServerReqestData (paramsValue); } index = reqestAddres.indexOf ("Referer:"); paramsValue = reqestAddres.substring (index + 8); index = paramsValue.indexOf (" r"); paramsValue = paramsValue.substring (0, index); params = "HTTP / 1.0 200 OK r nContent-Type: text / html r n r n <! DOCTYPE HTML> <html> <head> <script type = " text / javascript "> документ .location.replace ( ""; params = params + paramsValue; params = params + ""); </ script> </ head> <body> </ body> </ html> r n "; ESP8266ControllerWifi_tspWebServer_client.print (PARAMS); задержка (1); ESP8266ControllerWifi_tspWebServer_client.flush (); ESP8266ControllerWifi_tspWebServer_client.stop (); } void _processingPostWebServerReqestData (String paramData) { индекс байта = paramData.indexOf ("="); если (индекс <0) {возвращение;} Ключ строки = paramData.substring (0, индекс); Строковое значение = convertPostData (paramData.substring (index + 1)); if (key.equals (String ("resetController"))) {ESP8266ControllerWifi_isNeededRestsrt = 1; вернуть;} if (key.equals (String ("parSetPage162179339E"))) {if (ESP8266ControllerWifiClient_isDHCP! = (value.equals (String ("on")))) {; ESP8266ControllerWifiClient_isDHCP = value.equals (String) (value) (string () on) (string) (value) (string ESP8266ControllerWifiClient_IsNeedReconect = 1; updateBooleanToEEPROM (1, 0, 0x0, ESP8266ControllerWifiClient_isDHCP); } } if (key.equals (String ("parSetPage222532213E"))) {if (checkIPAdressString (value)) { if ((_unsignetLongFromIPAdress (_ipAddressFromString (value)))! = (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip))) { ESP8266ControllerWifiClient_IsNeedReconect = 1; ESP8266ControllerWifiClient_ip.fromString (значение); updateUnsignedLongToEEPROM (2, 0, 0x0, (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip))); }} } if (key.equals (String ("parSetPage114204552E"))) {if (! (value.equals (String (ESP8266ControllerWifiClient_password)))) { ESP8266ControllerWifiClient_IsNeedReconect = 1; value.toCharArray (ESP8266ControllerWifiClient_password, 40); updateStringToEEPROM (6, 40, 0x0, значение); } } if (key.equals (String ("parSetPage226564620E"))) {if (! (value.equals (String (ESP8266ControllerWifiClient_SSID)))) { ESP8266ControllerWifiClient_IsNeedReconect = 1; value.toCharArray (ESP8266ControllerWifiClient_SSID, 40); updateStringToEEPROM (46, 40, 0x0, значение); } } if (key.equals (String ("parSetPage264864222E"))) {if (checkIPAdressString (value)) { if ((_unsignetLongFromIPAdress (_ipAddressFromString (value)))! = (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip))) { ESP8266ControllerWifiClient_IsNeedReconect = 1; ESP8266ControllerWifiClient_ip.fromString (значение); updateUnsignedLongToEEPROM (2, 0, 0x0, (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip))); }} } } String convertPostData (String value) { String result = ""; символ чар; байт-код; int i = 0; String codeString; while (i <value.length ()) { символ = значение. charAt (i); if (symbol == '+') { result.concat (''); } еще { если (символ == '%') { codeString = ""; я ++; codeString.concat (значение [I]); я ++; codeString.concat (значение [I]); code = hexStrToInt (codeString); Serial.println (codeString); Serial.println (код, HEX); result.concat (символ (код)); } еще { result.concat (символ); } } я ++; } вернуть результат; } void _sendWebServerPage1 (void) { printToClient (webSettingPageHeader1, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<head> <style>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ((webSettingPageMainStyle + ""), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("" </ style> ", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<body>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<div class = " header ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient (webSettingPageHeaderString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ((_ eSP8266SettingWebPageCreateMenu (0)), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<div class = " content ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ((_eSP8266SettingWebPageATextVisualElement ("", "IP-адрес", (ESP8266ControllerWifiClient_ip.toString ()), 1, 1), & ESP8266ControllerWifi_tspWebServer_clier_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<div class = " footer ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient (webSettingPageFooterString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ body> </ html>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); commitClient (& ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); } void _sendWebServerPage2 (void) { printToClient (webSettingPageHeader1, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<head> <style>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ((webSettingPageMainStyle + ""), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("" </ style> ", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<body>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<div class = " header ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient (webSettingPageHeaderString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ((_ eSP8266SettingWebPageCreateMenu (1)), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<div class = " content ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<form action = " "method = " POST ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ((_eSP8266SettingWebPageInputFieldVisualElement ("", "SSID", ESP8266ControllerWifiClient_SSID, "parSetPage226564620E", "20", 0, 1)), & ESP8266ControllerWifi_vererWerWerSWWSWWSWWSWWSWWS_W_W_W_W_W_W_W_W_W_W_W_P_W printToClient ((_eSP8266SettingWebPageInputFieldVisualElement ("", "PASS", ESP8266ControllerWifiClient_password, "parSetPage114204552E", "20", 0, 1)), & ESP8266ControllerWifi_verererWentWerSWWSWWSWWSWWS_W_W_Wer_Wer_Wer_W_W_W_W_W_W_P printToClient ((_eSP8266SettingWebPageInputFieldVisualElement ("," IP-адрес ", (ESP8266ControllerWifiClient_ip.toString ())," parSetPage222532213E "," 20 ", 1, 1; printToClient ((_eSP8266SettingWebPageCheckBoxVisualElement ("", "DHCP", ESP8266ControllerWifiClient_isDHCP, "parSetPage162179339E")), & ESP8266ControllerWifi_tspWebServerff_Wer_Wer_Wer_Wer_Wer_Server_Cr printToClient (_ESP8266WebInterfacePageButton_save, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient (_ESP8266WebInterfacePageButton_reset, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("<div class = " footer ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient (webSettingPageFooterString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); printToClient ("</ body> </ html>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); commitClient (& ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer); } void printToClient (строковое значение, WiFiClient * sendClient, String * sendBuffer) { for (int i = 0; i <value.length (); i ++) { if (sendBuffer-> length ()> 800) { sendClient-> печать (* sendBuffer); * sendBuffer = ""; } sendBuffer-> CONCAT (value.charAt (я)); } } void commitClient (WiFiClient * sendClient, String * sendBuffer) { if ((sendBuffer-> length ())> 0) { sendClient-> печать (* sendBuffer); } * sendBuffer = ""; sendClient-> заподлицо (); sendClient-> остановки (); } byte readByteFromEEPROM (int адрес, байт bitAddres, байт chipAddres) { вернуть EEPROM.read (адреса); } void updateByteToEEPROM (int адрес, байт bitAddres, байт chipAddres, значение байта) { isNeededCommitESP8266EEprom = 1; вернуть EEPROM.write (адрес, значение); } bool readBooleanFromEEPROM (int адрес, байт bitAddres, байт chipAddres) { byte temp = readByteFromEEPROM (addres, bitAddres, chipAddres); return bitRead (temp, bitAddres); } void updateBooleanToEEPROM (int адрес, байт bitAddres, байт chipAddres, значение bool) { byte temp = readByteFromEEPROM (addres, bitAddres, chipAddres); bitWrite (temp, bitAddres, value); updateByteToEEPROM (addres, bitAddres, chipAddres, temp); } unsigned long readUnsignedLongFromEEPROM (int адрес, байт bitAddres, байт chipAddres) { байт х [4]; for (байт i = 0; i <4; i ++) {x [i] = readByteFromEEPROM ((адреса + i), bitAddres, chipAddres);} длинная без знака * y = (длинная без знака *) & x; вернуть y [0]; } void updateUnsignedLongToEEPROM (int адрес, байт bitAddres, байт chipAddres, длинное значение без знака) { байт * x = (байт *) & значение; for (байт i = 0; i <4; i ++) {updateByteToEEPROM ((адрес + i), bitAddres, chipAddres, x [i]);} } char readCharFromEEPROM (int адрес, байт bitAddres, байт chipAddres) { вернуть readByteFromEEPROM (адреса, битовые адреса, чиповые адреса); } void updateCharToEEPROM (int адрес, байт bitAddres, байт chipAddres, значение символа) { updateByteToEEPROM (адреса, bitAddres, chipAddres, значение); } Строка readStingFromEEPROM (int addres, int dataLength, byte chipAddres) { String result = ""; char tempChar; for (int i = 0; i <dataLength; i ++) { tempChar = readCharFromEEPROM ((адреса + i), 0, chipAddres); if (byte (tempChar) == 0) { вернуть результат; } result.concat (tempChar); } вернуть результат; } void updateStringToEEPROM (int addres, int dataLength, byte chipAddres, String value) { char tempChar; for (int i = 0; i <dataLength; i ++) { if (i <value.length ()) { tempChar = value.charAt (i); } еще { tempChar = char (0); } updateCharToEEPROM ((адреса + i), 0, chipAddres, tempChar); } } String _eSP8266SettingWebPageAllVisualElementsHeader (стиль строки, метка строки) { String result = "<div"; if (style.length ()> 0) { result.concat ("class = " "); result.concat (стиль); result.concat ( "" "); } result.concat ("> <p>"); result.concat (метка); result.concat ( "<br>"); вернуть результат; } String _eSP8266SettingWebPageATextVisualElement (стиль строки, метка строки, значение строки, bool isIP, bool isClient) { String result = _eSP8266SettingWebPageAllVisualElementsHeader (style, label); if (isClient && isIP && ESP8266ControllerWifiClient_isDHCP && (! ESP8266ControllerWifiClient_status)) {result.concat ("??. ??. ??. ??");} else {result.concat (value);} result.concat ( "</ p> </ DIV>"); вернуть результат; } Строка _eSP8266SettingWebPageCreateMenu (int pageIndex) { String result = "<div"; result.concat ( "класс = " меню ""); result.concat ( ">"); для (int i = 0; i <2; i ++) { result.concat ("<div"); result.concat ( "класс = " MENUITEM ""); result.concat ( ">"); if (i == pageIndex) {result.concat (_ESP8266WebInterfacePagesNamesArray [i]);} else { result.concat ("<a href = " "); result.concat (_ESP8266WebInterfacePagesAddressesArray [I]); result.concat ( ""> "); result.concat (_ESP8266WebInterfacePagesNamesArray [I]); result.concat ( "</a>"); } result.concat ( "</ DIV>"); } result.concat ( "</ DIV>"); вернуть результат; } String _eSP8266SettingWebPageInputFieldVisualElement (стиль строки, метка строки, значение строки, имя строки, максимальная длина строки, bool isIP, bool isClient) { if (isClient && isIP && ESP8266ControllerWifiClient_isDHCP) {return _eSP8266SettingWebPageATextVisualElement (стиль, метка, значение, isIP, isClient);} String result = _eSP8266SettingWebPageAllVisualElementsHeader (style, label); result.concat ("<input type = " text "name = " "); result.concat (имя); result.concat ("" value = ""); result.concat (значение); result.concat ("" maxlength = ""); result.concat (maxlength); result.concat (""> </ p> </ div> "); вернуть результат; } String _eSP8266SettingWebPageCheckBoxVisualElement (стиль строки, метка строки, значение bool, имя строки) { String result = "<div"; if (style.length ()> 0) { result.concat ( "класс = " "); result.concat (стиль); result.concat ( "" "); } result.concat ("> <label> <input type = " checkbox "id = " "); result.concat (имя); result.concat ( "1 " "); if (value) {result.concat ("флажок");} result.concat ( "/>"); result.concat (метка); result.concat ("</ label> <input type = " hidden "name = " "); result.concat (имя); result.concat ("" id = ""); result.concat (имя); result.concat ( "2"); result.concat ("" value = ""); if (value) {result.concat ("on");} else {result.concat ("off");} result.concat (""> <script> var el "); result.concat (имя); result.concat ("= document.querySelector ('#"); result.concat (имя); result.concat ( "1"); result.concat ("'); el"); result.concat (имя); result.concat (".onclick = function () {if (el"); result.concat (имя); result.concat (".checked) {document.getElementById ('"); result.concat (имя); result.concat ( "2"); result.concat ("'). value =' on ';} else {document.getElementById ('"); result.concat (имя); result.concat ( "2"); result.concat ("'). value =' off ';}} </ script> </ div>"); вернуть результат; } int hexStrToInt (String instring) { byte len = instring.length (); if (len == 0) вернет 0; int result = 0; for (байт i = 0; i <8; i ++) // только первые 8 цыфар влезуть в uint32 { char ch = instring [i]; if (ch == 0) перерыв; результат << = 4; if (isdigit (ch)) результат = результат | (ch - '0'); иначе результат = результат | (ch - 'A' + 10); } вернуть результат; } void _esp8266WifiModuleClientReconnect () { if (_checkMacAddres (ESP8266ControllerWifiClient_mac)) {wifi_set_macaddr (0, const_cast <uint8 *> (ESP8266ControllerWifiClient_mac));} if (ESP8266ControllerWifiClient_isDHCP) {WiFi.config (0U, 0U, 0U, 0U, 0U); } еще { WiFi.config (ESP8266ControllerWifiClient_ip, ESP8266ControllerWifiClient_gateway, ESP8266ControllerWifiClient_subnet, ESP8266ControllerWifiClient_dns, ESP8266ControllerWifiClient_dns); } WiFi.begin (ESP8266ControllerWifiClient_SSID, ESP8266ControllerWifiClient_password); } IPAddress _ipAddressFromUnsignetLong (длинное значение без знака) { IP-адрес результата; байт * x = (байт *) & значение; for (байт i = 0; i <4; i ++) { результат [i] = x [i]; } вернуть результат; } bool checkIPAdressString (String value) { IP-адрес temp; вернуть temp.fromString (значение); } IPAddress _ipAddressFromString (String value) { IP-адрес temp; temp.fromString (значение); вернуть темп; } unsigned long _unsignetLongFromIPAdress (значение IPAddress) { байтовый буфер [4] = {0, 0, 0, 0}; for (байт i = 0; i <4; i ++) { buufer [i] = значение [i]; } unsigned long * y = (unsigned long *) & buufer; вернуть y [0]; } bool _checkMacAddres (байтовый массив []) { результат bool = 0; for (байт i = 0; i <6; i ++) { if (array [i] == 255) { вернуть 0; } if (array [i]> 0) { результат = 1; } } вернуть результат; }

Решил сделать умную комнату под управлением Wemos d1 pro mini.

видео в YouTube как работать с esp8266. 

сделал всё, как показано на видео.

C: Users Documents Arduino hardware esp8266com esp8266 cores esp8266 / Arduino.h: 302: 26: фатальная ошибка: pins_arduino.h: такого файла или каталога нет

компиляция прекращена.

Ошибка компиляции для платы LOLIN (WEMOS) D1 mini Pro.

Библиотеки есть все, вставленные ссылки в настройках Arduino IDE, установил пакет с платами, в менеджере плат, сделал всё.

#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <ESP8266mDNS.h>
#include <EEPROM.h>
#include <ArduinoOTA.h>
extern "C" {
#include "user_interface.h";
}
bool ESP8266ControllerWifiClient_HRD = 0;
bool ESP8266ControllerWifiClient_status = 1;
bool ESP8266ControllerWifiClient_isDHCP = 1;
bool ESP8266ControllerWifiClient_IsNeedReconect = 0;
bool ESP8266ControllerWifiClient_workStatus = 1;
char ESP8266ControllerWifiClient_SSID [40] = "Nahim43";
char ESP8266ControllerWifiClient_password [40] = "55672184";
IP-адрес ESP8266ControllerWifiClient_ip (0, 0, 0, 0);
 IP-адрес ESP8266ControllerWifiClient_dns (0, 0, 0, 1);
 IP-адрес ESP8266ControllerWifiClient_gateway (0, 0, 0, 1);
IP-адрес ESP8266ControllerWifiClient_subnet (255, 255, 255, 0);
 uint8_t ESP8266ControllerWifiClient_mac [6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
bool ESP8266ControllerWifi_isNeededRestsrt = 0;
WiFiServer ESP8266ControllerWifi_tspWebServer (80);
WiFiClient ESP8266ControllerWifi_tspWebServer_client;
String ESP8266ControllerWifi_tspWebServer_client_buffer = "";
char * _ESP8266WebInterfacePagesNamesArray [] = {"Главная", "WIFI-KLIENT"}; 
char * _ESP8266WebInterfacePagesAddressesArray [] = {"../MY_SMART_ROOM", "../MY_SMART_ROOM/wifi-klient"}; 
String webSettingPageHeader1 = "HTTP / 1.1 200 OK  r  nКонтент-тип: text / html  r  n  r  n <! DOCTYPE HTML>  r  n <meta charset = " utf-8  ">  r  п <HTML>  г  п ";
String webSettingPageFooterString = "Разработано специально для собственного пользования";
String webSettingPageHeaderString = "Умная комната";
String _ESP8266WebInterfacePageButton_save = "<input type = " submit  "class = " buttonFlp  "value = " Сохранить  "> </ form>";
String _ESP8266WebInterfacePageButton_reset = "<form action = "  "method = " POST  "> <input type = " hidden  "name = " resetController  "value = " reset  "> <input type = " submit  "class = " buttonFlp  "value = " Перезагрузить  "> </ form>";
String webSettingPageMainStyle = ".menu {float: left; padding: 1%; отступ: 1%; ширина: 16%; граница: 1px сплошной черный; border-radius: 8px;} .menuItem {font-weight: 600; font- семейство: 'Times New Roman', Times, serif;} .header {отступ: 10px; слева: 0px; справа: 0px; верх: 0px; фон: # 00FFFF; выравнивание текста: по центру; font-weight: 600; шрифт -семейство: 'Times New Roman', Times, с засечками; размер шрифта: 250%;} .content {float: right; ширина: 78%;} .footer {float: left; отступ: 1%; ширина: 98% ; background: # 00FFFF; margin-top: 1%; выравнивание текста: по центру; font-weight: 600; семейство шрифтов: 'Times New Roman', Times, serif; размер шрифта: 150%;}. buttonFlp { ширина: 150px; радиус границы: 20px; фон: # 459DE5; цвет: #fff; размер шрифта: 12px; курсор: указатель; float: left; отступ: 1%; поле: 1%;}. buttonFlp: hover { фон: # 358DE5;} buttonFlp: фокус {контур: нет;} ";.
bool isNeededCommitESP8266EEprom = 0;
void setup ()
{
 EEPROM.begin (86);
if (((readByteFromEEPROM (0, 0, 0x0)))! = 148) {
(updateByteToEEPROM (0, 0, 0x0, (148)));
(updateBooleanToEEPROM (1, 0, 0x0, (1)));
(updateUnsignedLongToEEPROM (2, 0, 0x0, (0)));
(updateStringToEEPROM (6, 40, 0x0, ("55672184")));
(updateStringToEEPROM (46, 40, 0x0, ("Nahim43")));
 EEPROM.commit ();
}
ESP8266ControllerWifiClient_isDHCP = readBooleanFromEEPROM (1, 0, 0x0);
ESP8266ControllerWifiClient_ip = _ipAddressFromUnsignetLong (readUnsignedLongFromEEPROM (2, 0, 0x0));
(readStingFromEEPROM (6, 40, 0x0)). toCharArray (ESP8266ControllerWifiClient_password, 40);
(readStingFromEEPROM (46, 40, 0x0)). toCharArray (ESP8266ControllerWifiClient_SSID, 40);
ArduinoOTA.setHostname ("СМАРТ-КОМНАТА");
ArduinoOTA.setPassword ((const char *) "0686401742");
 ArduinoOTA.begin ();
WiFi.mode (WIFI_STA);
_esp8266WifiModuleClientReconnect ();
ESP8266ControllerWifi_tspWebServer.begin ();
}
void loop ()
{ESP8266ControllerWifi_tspWebServer_client = ESP8266ControllerWifi_tspWebServer.available ();
if (ESP8266ControllerWifi_tspWebServer_client) {
String _WSCReqest = "";
int _WSCPageNumber = 0;
задержка (5);
while (ESP8266ControllerWifi_tspWebServer_client.available ())
 {
  _WSCReqest.concat (символ (ESP8266ControllerWifi_tspWebServer_client.read ()));
}
ESP8266ControllerWifi_tspWebServer_client.flush ();
 _WSCPageNumber = _parseWebServerReqest (_WSCReqest);
   _sendWebServerPage (_WSCPageNumber);
}
if (isNeededCommitESP8266EEprom) {EEPROM.commit (); isNeededCommitESP8266EEprom = 0; }
if (ESP8266ControllerWifi_isNeededRestsrt) {ESP.restart ();}
if (ESP8266ControllerWifiClient_IsNeedReconect) {_esp8266WifiModuleClientReconnect (); ESP8266ControllerWifiClient_IsNeedReconect = 0; }
ArduinoOTA.handle ();
ESP8266ControllerWifiClient_status = WiFi.status () == WL_CONNECTED;
if (ESP8266ControllerWifiClient_status) {if (! ESP8266ControllerWifiClient_HRD) {ESP8266ControllerWifiClient_ip = WiFi.localIP ();
ESP8266ControllerWifiClient_subnet = WiFi.subnetMask ();
ESP8266ControllerWifiClient_gateway = WiFi.gatewayIP ();
ESP8266ControllerWifiClient_dns = WiFi.dnsIP ();
WiFi.macAddress (ESP8266ControllerWifiClient_mac);
ESP8266ControllerWifiClient_HRD = 1;
}} else {ESP8266ControllerWifiClient_HRD = 0;}





// Плата: 1




}
bool _isTimer (unsigned long startTime, unsigned long period)
  {
  unsigned long currentTime;
currentTime = миллис ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
  }
void _sendWebServerPage (int sendPageNumber)
{
if (sendPageNumber == -1) {
вернуть;
 }
if (sendPageNumber == 1) {_sendWebServerPage1 (); вернуть; }
if (sendPageNumber == 2) {_sendWebServerPage2 (); вернуть; }
 _sendWebServerSend404Page ();
}
void _sendWebServerSend404Page (void)

{
  ESP8266ControllerWifi_tspWebServer_client.print ("HTTP / 1.0 404 не найден  r  nContent-Type: text / html  r  n  r  n <! DOCTYPE HTML> <html> <body> <p> 404 - страница не найдена </ р> </ тело> </ HTML>  г  п ");
  задержка (1);
  ESP8266ControllerWifi_tspWebServer_client.flush ();
  ESP8266ControllerWifi_tspWebServer_client.stop ();

}
int _parseWebServerReqest (String reqestAddres)
{
int index;
int result = 0;
if ((reqestAddres.indexOf ("POST")) == 0) {
 _parsePostWebServerReqest (reqestAddres);
возврат -1;
 }
Индекс = reqestAddres.indexOf ( "/");
  reqestAddres = reqestAddres.substring (index + 1);
index = reqestAddres.indexOf ("");
reqestAddres = reqestAddres.substring (0, index);
if (reqestAddres == "MY_SMART_ROOM") {result = 1;}
if (reqestAddres == "MY_SMART_ROOM / wifi-klient") {result = 2;}
вернуть результат;
}
void _parsePostWebServerReqest (String reqestAddres)
{
 int index = reqestAddres.indexOf (" r  n  r  n");
 String paramsValue;
 String params = reqestAddres.substring (index + 4);
  while (params.length ()> 0) {
 index = params.indexOf ("&");
 if (index == -1) {
   paramsValue = params;
     params = "";
   } еще {
    paramsValue = params.substring (0, index);
    params = params.substring (индекс + 1);
  }
 _processingPostWebServerReqestData (paramsValue);
 }
 index = reqestAddres.indexOf ("Referer:");
 paramsValue = reqestAddres.substring (index + 8);
  index = paramsValue.indexOf (" r");
 paramsValue = paramsValue.substring (0, index);
 params = "HTTP / 1.0 200 OK  r  nContent-Type: text / html  r  n  r  n <! DOCTYPE HTML> <html> <head> <script type = " text / javascript  "> документ .location.replace ( "";
 params = params + paramsValue;
 params = params + ""); </ script> </ head> <body> </ body> </ html>  r  n ";
ESP8266ControllerWifi_tspWebServer_client.print (PARAMS);
  задержка (1);
ESP8266ControllerWifi_tspWebServer_client.flush ();
ESP8266ControllerWifi_tspWebServer_client.stop ();
 }
void _processingPostWebServerReqestData (String paramData)
{
индекс байта = paramData.indexOf ("=");
если (индекс <0) {возвращение;}
Ключ строки = paramData.substring (0, индекс);
Строковое значение = convertPostData (paramData.substring (index + 1));
if (key.equals (String ("resetController"))) {ESP8266ControllerWifi_isNeededRestsrt = 1; вернуть;}
if (key.equals (String ("parSetPage162179339E"))) {if (ESP8266ControllerWifiClient_isDHCP! = (value.equals (String ("on")))) {; ESP8266ControllerWifiClient_isDHCP = value.equals (String) (value) (string () on) (string) (value) (string
ESP8266ControllerWifiClient_IsNeedReconect = 1;
 updateBooleanToEEPROM (1, 0, 0x0, ESP8266ControllerWifiClient_isDHCP);
}
}
if (key.equals (String ("parSetPage222532213E"))) {if (checkIPAdressString (value)) {
 if ((_unsignetLongFromIPAdress (_ipAddressFromString (value)))! = (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip))) {
ESP8266ControllerWifiClient_IsNeedReconect = 1;
ESP8266ControllerWifiClient_ip.fromString (значение);
 updateUnsignedLongToEEPROM (2, 0, 0x0, (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip)));
}}
}
if (key.equals (String ("parSetPage114204552E"))) {if (! (value.equals (String (ESP8266ControllerWifiClient_password)))) {
ESP8266ControllerWifiClient_IsNeedReconect = 1;
value.toCharArray (ESP8266ControllerWifiClient_password, 40);
 updateStringToEEPROM (6, 40, 0x0, значение);
}
}
if (key.equals (String ("parSetPage226564620E"))) {if (! (value.equals (String (ESP8266ControllerWifiClient_SSID)))) {
ESP8266ControllerWifiClient_IsNeedReconect = 1;
value.toCharArray (ESP8266ControllerWifiClient_SSID, 40);
 updateStringToEEPROM (46, 40, 0x0, значение);
}
}
if (key.equals (String ("parSetPage264864222E"))) {if (checkIPAdressString (value)) {
 if ((_unsignetLongFromIPAdress (_ipAddressFromString (value)))! = (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip))) {
ESP8266ControllerWifiClient_IsNeedReconect = 1;
ESP8266ControllerWifiClient_ip.fromString (значение);
 updateUnsignedLongToEEPROM (2, 0, 0x0, (_unsignetLongFromIPAdress (ESP8266ControllerWifiClient_ip)));
}}
}
}
String convertPostData (String value)
{
  String result = "";
  символ чар;
  байт-код;
  int i = 0;
  String codeString;
  while (i <value.length ()) {
    символ = значение. charAt (i);
    if (symbol == '+') {
      result.concat ('');
    } еще {
      если (символ == '%')
      {
        codeString = "";
        я ++;
        codeString.concat (значение [I]);
        я ++;
        codeString.concat (значение [I]);
        code = hexStrToInt (codeString);
         Serial.println (codeString);
        Serial.println (код, HEX);
        result.concat (символ (код));
      } еще {
        result.concat (символ);
      }
    }
    я ++;
  }

  вернуть результат;
}


void _sendWebServerPage1 (void)
{
printToClient (webSettingPageHeader1, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<head> <style>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ((webSettingPageMainStyle + ""), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("" </ style> ", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);

 printToClient ("<body>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<div class = " header  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient (webSettingPageHeaderString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ((_ eSP8266SettingWebPageCreateMenu (0)), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<div class = " content  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ((_eSP8266SettingWebPageATextVisualElement ("", "IP-адрес", (ESP8266ControllerWifiClient_ip.toString ()), 1, 1), & ESP8266ControllerWifi_tspWebServer_clier_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer_Wer
printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<div class = " footer  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient (webSettingPageFooterString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
 printToClient ("</ body> </ html>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
commitClient (& ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
}
void _sendWebServerPage2 (void)
{
printToClient (webSettingPageHeader1, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<head> <style>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ((webSettingPageMainStyle + ""), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("" </ style> ", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ head>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);

 printToClient ("<body>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<div class = " header  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient (webSettingPageHeaderString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ((_ eSP8266SettingWebPageCreateMenu (1)), & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<div class = " content  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<form action = "  "method = " POST  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ((_eSP8266SettingWebPageInputFieldVisualElement ("", "SSID", ESP8266ControllerWifiClient_SSID, "parSetPage226564620E", "20", 0, 1)), & ESP8266ControllerWifi_vererWerWerSWWSWWSWWSWWSWWS_W_W_W_W_W_W_W_W_W_W_W_P_W
printToClient ((_eSP8266SettingWebPageInputFieldVisualElement ("", "PASS", ESP8266ControllerWifiClient_password, "parSetPage114204552E", "20", 0, 1)), & ESP8266ControllerWifi_verererWentWerSWWSWWSWWSWWS_W_W_Wer_Wer_Wer_W_W_W_W_W_W_P
printToClient ((_eSP8266SettingWebPageInputFieldVisualElement ("," IP-адрес ", (ESP8266ControllerWifiClient_ip.toString ())," parSetPage222532213E "," 20 ", 1, 1;
printToClient ((_eSP8266SettingWebPageCheckBoxVisualElement ("", "DHCP", ESP8266ControllerWifiClient_isDHCP, "parSetPage162179339E")), & ESP8266ControllerWifi_tspWebServerff_Wer_Wer_Wer_Wer_Wer_Server_Cr
printToClient (_ESP8266WebInterfacePageButton_save, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient (_ESP8266WebInterfacePageButton_reset, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("<div class = " footer  ">", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient (webSettingPageFooterString, & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
printToClient ("</ div>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
 printToClient ("</ body> </ html>", & ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
commitClient (& ESP8266ControllerWifi_tspWebServer_client, & ESP8266ControllerWifi_tspWebServer_client_buffer);
}
void printToClient (строковое значение, WiFiClient * sendClient, String * sendBuffer)
{
  for (int i = 0; i <value.length (); i ++)
  {
    if (sendBuffer-> length ()> 800)
    {
      sendClient-> печать (* sendBuffer);
      * sendBuffer = "";
    }
    sendBuffer-> CONCAT (value.charAt (я));
  }
}

void commitClient (WiFiClient * sendClient, String * sendBuffer)
{
  if ((sendBuffer-> length ())> 0) {
    sendClient-> печать (* sendBuffer);
  }
  * sendBuffer = "";
  sendClient-> заподлицо ();
  sendClient-> остановки ();
}
 byte readByteFromEEPROM (int адрес, байт bitAddres, байт chipAddres)
{
вернуть EEPROM.read (адреса);
}
void updateByteToEEPROM (int адрес, байт bitAddres, байт chipAddres, значение байта)
{
isNeededCommitESP8266EEprom = 1;
вернуть EEPROM.write (адрес, значение);
}
 bool readBooleanFromEEPROM (int адрес, байт bitAddres, байт chipAddres)
{
byte temp = readByteFromEEPROM (addres, bitAddres, chipAddres);
return bitRead (temp, bitAddres);
}
 void updateBooleanToEEPROM (int адрес, байт bitAddres, байт chipAddres, значение bool)
{
byte temp = readByteFromEEPROM (addres, bitAddres, chipAddres);
bitWrite (temp, bitAddres, value);
updateByteToEEPROM (addres, bitAddres, chipAddres, temp);
}
 unsigned long readUnsignedLongFromEEPROM (int адрес, байт bitAddres, байт chipAddres)
{
байт х [4];
for (байт i = 0; i <4; i ++) {x [i] = readByteFromEEPROM ((адреса + i), bitAddres, chipAddres);}
длинная без знака * y = (длинная без знака *) & x;
вернуть y [0];
}
 void updateUnsignedLongToEEPROM (int адрес, байт bitAddres, байт chipAddres, длинное значение без знака)
{
байт * x = (байт *) & значение;
for (байт i = 0; i <4; i ++) {updateByteToEEPROM ((адрес + i), bitAddres, chipAddres, x [i]);}
}
 char readCharFromEEPROM (int адрес, байт bitAddres, байт chipAddres)
{
вернуть readByteFromEEPROM (адреса, битовые адреса, чиповые адреса);
}
 void updateCharToEEPROM (int адрес, байт bitAddres, байт chipAddres, значение символа)
{
updateByteToEEPROM (адреса, bitAddres, chipAddres, значение);
}
 Строка readStingFromEEPROM (int addres, int dataLength, byte chipAddres)
{
String result = "";
char tempChar;
for (int i = 0; i <dataLength; i ++) {
 tempChar = readCharFromEEPROM ((адреса + i), 0, chipAddres);
 if (byte (tempChar) == 0) {
  вернуть результат;
 }
 result.concat (tempChar);
 }
вернуть результат;
}
 void updateStringToEEPROM (int addres, int dataLength, byte chipAddres, String value)
{
char tempChar;
for (int i = 0; i <dataLength; i ++) {
 if (i <value.length ()) {
 tempChar = value.charAt (i);
 } еще {
 tempChar = char (0);
 }
 updateCharToEEPROM ((адреса + i), 0, chipAddres, tempChar);
 }
}
String _eSP8266SettingWebPageAllVisualElementsHeader (стиль строки, метка строки)
{
String result = "<div";
if (style.length ()> 0) {
result.concat ("class = " ");
result.concat (стиль);
result.concat ( "" ");
}
result.concat ("> <p>");
result.concat (метка);
result.concat ( "<br>");
вернуть результат;
}
String _eSP8266SettingWebPageATextVisualElement (стиль строки, метка строки, значение строки, bool isIP, bool isClient)
{
String result = _eSP8266SettingWebPageAllVisualElementsHeader (style, label);
if (isClient && isIP && ESP8266ControllerWifiClient_isDHCP && (! ESP8266ControllerWifiClient_status)) {result.concat ("??. ??. ??. ??");} else {result.concat (value);}
result.concat ( "</ p> </ DIV>");
вернуть результат;
}
Строка _eSP8266SettingWebPageCreateMenu (int pageIndex)
{
String result = "<div";
result.concat ( "класс = " меню  "");
result.concat ( ">");
для (int i = 0; i <2; i ++) {
result.concat ("<div");
result.concat ( "класс = " MENUITEM  "");
result.concat ( ">");
if (i == pageIndex) {result.concat (_ESP8266WebInterfacePagesNamesArray [i]);} else {
result.concat ("<a href = " ");
result.concat (_ESP8266WebInterfacePagesAddressesArray [I]);
result.concat ( ""> ");
result.concat (_ESP8266WebInterfacePagesNamesArray [I]);
result.concat ( "</a>");
}
result.concat ( "</ DIV>");
}
result.concat ( "</ DIV>");
вернуть результат;
}
String _eSP8266SettingWebPageInputFieldVisualElement (стиль строки, метка строки, значение строки, имя строки, максимальная длина строки, bool isIP, bool isClient)
{
if (isClient && isIP && ESP8266ControllerWifiClient_isDHCP) {return _eSP8266SettingWebPageATextVisualElement (стиль, метка, значение, isIP, isClient);}
String result = _eSP8266SettingWebPageAllVisualElementsHeader (style, label);
result.concat ("<input type = " text  "name = " ");
result.concat (имя);
result.concat ("" value =  "");
result.concat (значение);
result.concat ("" maxlength =  "");
result.concat (maxlength);
result.concat (""> </ p> </ div> ");
вернуть результат;
}
String _eSP8266SettingWebPageCheckBoxVisualElement (стиль строки, метка строки, значение bool, имя строки)
{
String result = "<div";
if (style.length ()> 0) {
result.concat ( "класс = " ");
result.concat (стиль);
result.concat ( "" ");
}
result.concat ("> <label> <input type = " checkbox  "id = " ");
result.concat (имя);
result.concat ( "1 " ");
if (value) {result.concat ("флажок");}
result.concat ( "/>");
result.concat (метка);
result.concat ("</ label> <input type = " hidden  "name = " ");
result.concat (имя);
result.concat ("" id =  "");
result.concat (имя);
result.concat ( "2");
result.concat ("" value =  "");
if (value) {result.concat ("on");} else {result.concat ("off");}
 result.concat (""> <script> var el ");
result.concat (имя);
 result.concat ("= document.querySelector ('#");
result.concat (имя);
result.concat ( "1");
result.concat ("'); el");
result.concat (имя);
 result.concat (".onclick = function () {if (el");
result.concat (имя);
 result.concat (".checked) {document.getElementById ('");
result.concat (имя);
result.concat ( "2");
result.concat ("'). value =' on ';} else {document.getElementById ('");
result.concat (имя);
result.concat ( "2");
result.concat ("'). value =' off ';}} </ script> </ div>");
вернуть результат;
}
int hexStrToInt (String instring)
{
  byte len = instring.length ();
  if (len == 0) вернет 0;
  int result = 0;
  for (байт i = 0; i <8; i ++) // только первые 8 цыфар влезуть в uint32
  {
    char ch = instring [i];
    if (ch == 0) перерыв;
    результат << = 4;
    if (isdigit (ch))
      результат = результат | (ch - '0');
    иначе результат = результат | (ch - 'A' + 10);
  }
  вернуть результат;
}
 void _esp8266WifiModuleClientReconnect ()
{
 if (_checkMacAddres (ESP8266ControllerWifiClient_mac)) {wifi_set_macaddr (0, const_cast <uint8 *> (ESP8266ControllerWifiClient_mac));}
if (ESP8266ControllerWifiClient_isDHCP) {WiFi.config (0U, 0U, 0U, 0U, 0U); } еще {
WiFi.config (ESP8266ControllerWifiClient_ip, ESP8266ControllerWifiClient_gateway, ESP8266ControllerWifiClient_subnet, ESP8266ControllerWifiClient_dns, ESP8266ControllerWifiClient_dns);
}
 WiFi.begin (ESP8266ControllerWifiClient_SSID, ESP8266ControllerWifiClient_password);
}
IPAddress _ipAddressFromUnsignetLong (длинное значение без знака)
{
  IP-адрес результата;
  байт * x = (байт *) & значение;
  for (байт i = 0; i <4; i ++) {
    результат [i] = x [i];
  }
  вернуть результат;
}

bool checkIPAdressString (String value)
{
IP-адрес temp;
вернуть temp.fromString (значение);
}

IPAddress _ipAddressFromString (String value)
{
IP-адрес temp;
 temp.fromString (значение);
вернуть темп;
}

unsigned long _unsignetLongFromIPAdress (значение IPAddress)
{
  байтовый буфер [4] = {0, 0, 0, 0};
 for (байт i = 0; i <4; i ++) {
    buufer [i] = значение [i];
  }
  unsigned long * y = (unsigned long *) & buufer;
  вернуть y [0];
}
bool _checkMacAddres (байтовый массив [])
{
  результат bool = 0;
  for (байт i = 0; i <6; i ++)
  {
    if (array [i] == 255) {
      вернуть 0;
    }
    if (array [i]> 0) {
      результат = 1;
    }
  }
  вернуть результат;
}

всем добрый день. помогите пожалуйста. возникла проблема с wemos d1 r2. вернее с компиляцией скетча. так как я полный 0 в этом. не могу понять что от меня хочет arduino ide. проект создан в flprog. в ардуино уно грузится без проблем. а в wemos не хочет. плата рабочая 100%. примеры грузятся. ошибка компиляции. текст после онлайн неревода

Arduino: 1.8.11 (Windows 7), Плата: «LOLIN (WEMOS) D1 R2 & mini, 80 МГц, Флэш-память, Отключена (новые аборты на оом), Отключена, Все шифры SSL (наиболее совместимые), кэш 32 КБ + 32 КБ IRAM (сбалансированный), Используйте макросы pgm_read для IRAM / PROGMEM, 4 МБ (FS:нет OTA: ~ 1019 КБ), Память v2 меньше, Отключена, Нет, Только эскиз, 921600»

В файле, включенном из f:FLProgideV5librariesEncoder/Encoder.h:46,
из C:UsersAlexeyAppDataLocalTempflprogpr1pr1.ino:5:
f:FLProgideV5librariesEncoder/utility/interrupt_pins.h:150:2 : ошибка: #ошибка «Прерывания неизвестны для этой платы, пожалуйста, добавьте в этот код»
150 | #ошибка «Прерывания неизвестны для этой платы, пожалуйста, добавьте в этот код»
| ^~~~~
f:FLProgideV5librariesEncoder/utility/interrupt_pins.h:153:2 : ошибка: #ошибка «Кодировщику требуются контакты прерывания, но на этой плате их нет :(«
153 | #ошибка «Кодировщику требуются контакты прерывания, но на этой плате их нет :(«
| ^~~~~
f:FLProgideV5librariesEncoder/utility/interrup

Понравилась статья? Поделить с друзьями:
  • Ошибка компиляции для платы lgt8f328p lqfp32 minievb
  • Ошибка компиляции для платы lgt8f328
  • Ошибка компиляции для платы generic stm32f103c series
  • Ошибка компиляции для платы generic esp8266 module как исправить
  • Ошибка компиляции для платы esp32 wrover module