Добрый день.
При компиляции для 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
Решил сделать умную комнату под управлением 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;
}
}
вернуть результат;
}
@Сотнег,
Arduino: 1.8.19 (Windows 10), Плата:»LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new can abort), All SSL ciphers (most compatible), 4MB (FS:3MB OTA:~512KB), v2 Higher Bandwidth, Disabled, None, Only Sketch, 115200″
ПРЕДУПРЕЖДЕНИЕ: библиотека Timezone должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp8266.
In file included from C:Usersd5613DesktopGyverLamp-masterfirmwaregunner47_v2.87in1gunner47_v2.87in1.ino:296:0:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/FastLED.h:14:21: note: #pragma message: FastLED version 3.002.009
# pragma message «FastLED version 3.002.009»
^
In file included from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms/esp/8266/fastled_esp8266.h:4:0,
from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms.h:31,
from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/FastLED.h:52,
from C:Usersd5613DesktopGyverLamp-masterfirmwaregunner47_v2.87in1gunner47_v2.87in1.ino:296:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms/esp/8266/clockless_esp8266.h: In static member function ‘static uint32_t ClocklessController<DATA_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER>)’:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms/esp/8266/clockless_esp8266.h:104:70: error: ‘INTERRUPT_THRESHOLD’ was not declared in this scope
if((int32_t)(__clock_cycles()-last_mark) > (T1+T2+T3+((WAIT_TIME-INTERRUPT_THRESHOLD)*CLKS_PER_US))) { sei(); return 0; }
^
In file included from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms/esp/8266/fastled_esp8266.h:5:0,
from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms.h:31,
from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/FastLED.h:52,
from C:Usersd5613DesktopGyverLamp-masterfirmwaregunner47_v2.87in1gunner47_v2.87in1.ino:296:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms/esp/8266/clockless_block_esp8266.h: In static member function ‘static uint32_t InlineBlockClocklessController<LANES, FIRST_PIN, T1, T2, T3, RGB_ORDER, XTRA0, FLIP, WAIT_TIME>::showRGBInternal(PixelController<RGB_ORDER, LANES, (((1 << ((LANES < 6) ? LANES : 6)) — 1) & 65535l)>&)’:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/platforms/esp/8266/clockless_block_esp8266.h:145:70: error: ‘INTERRUPT_THRESHOLD’ was not declared in this scope
if((int32_t)(__clock_cycles()-last_mark) > (T1+T2+T3+((WAIT_TIME-INTERRUPT_THRESHOLD)*CLKS_PER_US))) { os_intr_unlock(); return 0; }
^
In file included from C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/FastLED.h:65:0,
from C:Usersd5613DesktopGyverLamp-masterfirmwaregunner47_v2.87in1gunner47_v2.87in1.ino:296:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/fastspi.h: At global scope:
C:Program Files (x86)ArduinolibrariesFastLED-3.2.9/fastspi.h:115:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message «No hardware SPI pins defined. All SPI access will default to bitbanged output»
^
exit status 1
Ошибка компиляции для платы LOLIN(WEMOS) D1 R2 & mini.
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesandroid: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesandroid
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariescomposite_matrixes: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariescomposite_matrixes
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesfirmware: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesfirmware
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesschemes: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesschemes
Неверная библиотека найдена в C:Program Files (x86)Arduinolibrariesuser-manual: нет заголовочных файлов (.h), найденных в C:Program Files (x86)Arduinolibrariesuser-manual
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Вот что получается(((
@Сотнег,
Не сочти за труд ,объясни что неправильно делаю)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
Asked
2 years, 10 months ago
Viewed
553 times
I have a wemos d1 mini and a mpu 6060 sensor. I am trying to send the data from the sensor to Firebase. However i have come across a hurdle which i cant seem to solve. This is my error, can you help me out with this issue?
Error compiling for board LOLIN(WEMOS) D1 R2 & mini.
In file included from C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-mastersrc/Firebase.h:30:0,
from C:UsersZakariaDesktopWORKING_ACCELERAMETOR_BACKUPWORKING_ACCELERAMETOR_BACKUP.ino:4:
C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-mastersrc/FirebaseObject.h:109:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6
std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;
^
In file included from C:UsersZakariaDesktopWORKING_ACCELERAMETOR_BACKUPWORKING_ACCELERAMETOR_BACKUP.ino:4:0:
C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-mastersrc/Firebase.h:86:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6
std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;
^
Using library FirebaseJson at version 2.3.3 in folder: C:UsersZakariaDocumentsArduinolibrariesFirebaseJson
Using library firebase-arduino-master at version 0.1 in folder: C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-master
Using library ArduinoJson at version 6.15.0 in folder: C:UsersZakariaDocumentsArduinolibrariesArduinoJson
Using library ESP8266HTTPClient at version 1.2 in folder: C:UsersZakariaAppDataLocalArduino15packagesesp8266hardwareesp82662.5.0librariesESP8266HTTPClient
Using library ESP8266WiFi at version 1.0 in folder: C:UsersZakariaAppDataLocalArduino15packagesesp8266hardwareesp82662.5.0librariesESP8266WiFi
Using library Wire at version 1.0 in folder: C:UsersZakariaAppDataLocalArduino15packagesesp8266hardwareesp82662.5.0librariesWire
exit status 1
Error compiling for board LOLIN(WEMOS) D1 R2 & mini.
asked Apr 5, 2020 at 14:47
1
Asked
2 years, 10 months ago
Viewed
553 times
I have a wemos d1 mini and a mpu 6060 sensor. I am trying to send the data from the sensor to Firebase. However i have come across a hurdle which i cant seem to solve. This is my error, can you help me out with this issue?
Error compiling for board LOLIN(WEMOS) D1 R2 & mini.
In file included from C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-mastersrc/Firebase.h:30:0,
from C:UsersZakariaDesktopWORKING_ACCELERAMETOR_BACKUPWORKING_ACCELERAMETOR_BACKUP.ino:4:
C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-mastersrc/FirebaseObject.h:109:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6
std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;
^
In file included from C:UsersZakariaDesktopWORKING_ACCELERAMETOR_BACKUPWORKING_ACCELERAMETOR_BACKUP.ino:4:0:
C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-mastersrc/Firebase.h:86:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6
std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;
^
Using library FirebaseJson at version 2.3.3 in folder: C:UsersZakariaDocumentsArduinolibrariesFirebaseJson
Using library firebase-arduino-master at version 0.1 in folder: C:UsersZakariaDocumentsArduinolibrariesfirebase-arduino-master
Using library ArduinoJson at version 6.15.0 in folder: C:UsersZakariaDocumentsArduinolibrariesArduinoJson
Using library ESP8266HTTPClient at version 1.2 in folder: C:UsersZakariaAppDataLocalArduino15packagesesp8266hardwareesp82662.5.0librariesESP8266HTTPClient
Using library ESP8266WiFi at version 1.0 in folder: C:UsersZakariaAppDataLocalArduino15packagesesp8266hardwareesp82662.5.0librariesESP8266WiFi
Using library Wire at version 1.0 in folder: C:UsersZakariaAppDataLocalArduino15packagesesp8266hardwareesp82662.5.0librariesWire
exit status 1
Error compiling for board LOLIN(WEMOS) D1 R2 & mini.
asked Apr 5, 2020 at 14:47
1
IMHO самое верное решение — не используйте это г*но(ESP series) — оно сырое,ненадежное,глючное -, может моргать светодиодом и пойдет, но не более(2 года стажа е*ли, если что)..
На работе у нас несколько штук работают более 2-х лет — полет нормальный. В гараже на этой же плате wemos mini pro сделал точку доступа. Кроме того сделал 2 направленные антенны (пушки) к нему. пока не подключал, хочу сначала с этой проблемой разобраться.
Может кто сможет помочь со скетчем?
Добавлено after 3 hours 14 minutes 3 seconds:
Подредактировал, но все равно ошибка- Ошибка компиляции для платы LOLIN(WEMOS) D1 mini Pro.? В последней версии IDEошибка другая — expected unqualified-id before ‘)’ token
«`
/**************************************************************
http://www.EK21 — произвосдство и поставка ЭНЕРГЕТИЧЕСКОГО ОБОРУДОВАНИЯ.
**************************************************************
* This example runs directly on ESP8266 chip.
*
* You need to install this for ESP8266 development:
* https://github.com/esp8266/Arduino
*
* Please be sure to select the right ESP8266 module
* in the Tools -> Board menu!
*
* Change WiFi ssid, pass, and Blynk auth token to run
*
**************************************************************/
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#define DHT1PIN D0//датчик на улице
#define DHT2PIN D4//датчик в гараже
#define DHT3PIN D3//датчик в подвале
#define DHT4PIN D2//датчик в смотровой яме
#define DHT1TYPE DHT22)
#define DHT2TYPE DHT22)
#define DHT3TYPE DHT11)
#define DHT4TYPE DHT11)
DHT dht1(DHT1PIN, DHT1TYPE);
DHT dht2(DHT2PIN, DHT2TYPE);
DHT dht3(DHT3PIN, DHT3TYPE);
DHT dht4(DHT4PIN, DHT4TYPE);
#define PIN D1 //контролируемый пин
WidgetLED fan1(V8); // Светодиод на смарте
#define PIN D5 //контролируемый пин
WidgetLED fan2(V9); // Светодиод на смарте
#define PIN D6 //контролируемый пин
WidgetLED fan3(V10); // Светодиод на смарте
int stat = 0;
int maxHum = 60;
#include <SimpleTimer.h> //таймер
SimpleTimer timer;
char auth[] = «123345678901234567890»;
void sendOnOff()
{
int x = digitalRead (fan1);//читаем пин модуля
if (x == 1) {//проверим состояние
led fan1.on(); //вкл вирт.светодиод
}
else { //иначе выключим
led fan1.off();
}
int x = digitalRead (fan2);
if (x == 1) {//проверим состояние
led fan2.on(); //вкл вирт.светодиод
}
else { //иначе выключим
led fan2.off();
}
int x = digitalRead (fan3);
if (x == 1) {//проверим состояние
led fan3.on(); //вкл вирт.светодиод
}
else { //иначе выключим
led fan3.off();
}
}
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, «ASUS», «ZipandSergey»);
dht1.begin();
dht2.begin();
dht3.begin();
dht4.begin();
pinMode(fan1, OUTPUT);
pinMode(fan2, OUTPUT);
pinMode(fan3, OUTPUT);
timer.setInterval(1000, sendOnOff);//устанавливаем перезапуск sendOnOff с интервалом 1с.
}
BLYNK_WRITE(V1) // запрос данных с датчика
{
stat = param.asInt();
}
void loop()
{
Blynk.run();
timer.run();
}
void Send(){
float h2 = dht2.readHumidity();
// Read temperature as Celsius (the default)
float t2 = dht2.readTemperature();
if (stat == 1)
{
Blynk.virtualWrite(V2, h);
Blynk.virtualWrite(V3, t);
}
float h3= dht3.readHumidity();
// Read temperature as Celsius (the default)
float t3= dht3.readTemperature();
if (stat == 1)
{
Blynk.virtualWrite(V4, h);
Blynk.virtualWrite(V5, t);
}
float h4 = dht4.readHumidity();
// Read temperature as Celsius (the default)
float t4 = dht4.readTemperature();
if (stat == 1)
{
Blynk.virtualWrite(V6, h);
Blynk.virtualWrite(V7, t);
}
if(h2 > maxHum)
{
digitalWrite(fan2, HIGH);
}
else if (h2 < (maxHum — 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
{
digitalWrite(fan, LOW);
}
if(h3> maxHum)
{
digitalWrite(fan3, HIGH);
}
else if (h3< (maxHum — 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
{
digitalWrite(fan, LOW);
}
if(h4 > maxHum)
{
digitalWrite(fan4, HIGH);
}
else if (h4 < (maxHum — 5) ) // Числа нижнего порога можете поменять по желанию. { digitalWrite(fan, LOW);
{
digitalWrite(fan, LOW);
}
// проверяем, были ли ошибки при считывании и, если были, начинаем заново
if (isnan(h1) || isnan(t1)) {
Serial.println(«Failed to read from DHT1 sensor!»);
} else {
Serial.print(«Humidity1: «);
Serial.print(h1);
Serial.print(» %t»);
Serial.print(«Temperature1: «);
Serial.print(t1);
Serial.println(» *C «);
}
if (isnan(h2) || isnan(t2)) {
Serial.println(«Failed to read from DHT2 sensor!»);
} else {
Serial.print(«Humidity2: «);
Serial.print(h2);
Serial.print(» %t»);
Serial.print(«Temperature2: «);
Serial.print(t2);
Serial.println(» *C «);
}
if (isnan(h3) || isnan(t3)) {
Serial.println(«Failed to read from DHT3 sensor!»);
} else {
Serial.print(«Humidity3: «);
Serial.print(h3);
Serial.print(» %t»);
Serial.print(«Temperature3: «);
Serial.print(t3);
Serial.println(» *C «);
}
if (isnan(h4) || isnan(t4)) {
Serial.println(«Failed to read from DHT4 sensor!»);
} else {
Serial.print(«Humidity4: «);
Serial.print(h4);
Serial.print(» %t»);
Serial.print(«Temperature4: «);
Serial.print(t4);
Serial.println(» *C «);
}
Serial.println();
}
