Решил запрограммировать ESP8266 так, чтобы она считывала показания с датчика температуры и выводила их на веб страницу, но при программировании возникает ошибка. Делал так, как на этом сайте: ESP8266:Примеры/Отображение температуры в браузере с помощью чипа ESP8266 и датчика DHT11/DHT22 — Онлайн справочник
Ошибка:
Arduino: 1.6.12 (Windows 7), Плата:»Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None»
In file included from D:ПрограммыArduinolibrariesDHTDHT_U.cpp:22:0:
D:ПрограммыArduinolibrariesDHTDHT_U.h:25:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include <Adafruit_Sensor.h>
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
Думаю, проблема в библиотеке DTH.
Скетч:
Код:
// подключаем библиотеку «ESP8266WiFi»:
#include <ESP8266WiFi.h>
#include "DHT.h"
// оставляем раскомментированной строчку,
// соответствующую модели вашего датчика:
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
// вписываем здесь данные для своей WiFi-сети:
const char* ssid = "YOUR_NETWORK_NAME";
const char* password = "YOUR_NETWORK_PASSWORD";
// веб-сервер на порте 80:
WiFiServer server(80);
// датчик DHT:
const int DHTPin = 5;
// инициализируем датчик DHT:
DHT dht(DHTPin, DHTTYPE);
// временные переменные:
static char celsiusTemp[7];
static char fahrenheitTemp[7];
static char humidityTemp[7];
// этот блок будет запускаться только при загрузке ESP:
void setup() {
// инициализируем последовательный порт (в отладочных целях):
Serial.begin(115200);
delay(10);
dht.begin();
// подключаемся к WiFi-сети:
Serial.println();
Serial.print("Connecting to "); // "Подключаемся к "
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// "Подключение к WiFi выполнено"
// запускаем веб-сервер:
server.begin();
Serial.println("Web server running. Waiting for the ESP IP...");
// "Веб-сервер запущен. Ждем IP-адрес ESP..."
delay(10000);
// печатаем IP-адрес ESP:
Serial.println(WiFi.localIP());
}
// этот блок будет запускаться снова и снова:
void loop() {
// начинаем прослушку новых клиентов:
WiFiClient client = server.available();
if (client) {
Serial.println("New client"); // "Новый клиент"
// создаем переменную типа «boolean»,
// чтобы определить конец HTTP-запроса:
boolean blank_line = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == 'n' && blank_line) {
// данные от датчика могут запаздывать на 2 секунды
// (это очень медленный датчик):
float h = dht.readHumidity();
// считываем температуру в Цельсиях (по умолчанию):
float t = dht.readTemperature();
// считываем температуру в Фаренгейтах
// (isFahrenheit = true):
float f = dht.readTemperature(true);
// проверяем, корректны ли считанные данные,
// и если нет, то выходим и начинаем заново:
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
// "Не удалось прочитать
// данные от датчика DHT"
strcpy(celsiusTemp,"Failed");
strcpy(fahrenheitTemp, "Failed");
strcpy(humidityTemp, "Failed");
}
else{
// рассчитываем градусы в Цельсиях и Фаренгейтах,
// а также влажность:
float hic = dht.computeHeatIndex(t, h, false);
dtostrf(hic, 6, 2, celsiusTemp);
float hif = dht.computeHeatIndex(f, h);
dtostrf(hif, 6, 2, fahrenheitTemp);
dtostrf(h, 6, 2, humidityTemp);
// все эти Serial.print() ниже можно удалить,
// т.к. они для отладочных целей:
Serial.print("Humidity: "); // "Влажность: "
Serial.print(h);
Serial.print(" %t Temperature: "); // "Температура: "
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *Ft Heat index: ");
// "Тепловой индекс: "
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.print(" *F");
Serial.print("Humidity: "); // "Влажность: "
Serial.print(h);
Serial.print(" %t Temperature: "); // "Температура: "
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *Ft Heat index: ");
// "Тепловой индекс: "
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// веб-страница, отображающая температуру и влажность:
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head></head><body><h1>ESP8266 - Temperature and Humidity</h1><h3>Temperature in Celsius: ");
client.println(celsiusTemp);
client.println("*C</h3><h3>Temperature in Fahrenheit: ");
client.println(fahrenheitTemp);
client.println("*F</h3><h3>Humidity: ");
client.println(humidityTemp);
client.println("%</h3><h3>");
client.println("</body></html>");
break;
}
if (c == 'n') {
// если обнаружен переход на новую строку:
blank_line = true;
}
else if (c != 'r') {
// если в текущей строчке найден символ:
blank_line = false;
}
}
}
// закрываем соединение с клиентом:
delay(1);
client.stop();
Serial.println("Client disconnected.");
// "Клиент отключен."
}
}
подскажите по ошибке компиляции:
никак не могу разобраться о причине ошибки
Arduino: 1.8.15 (Windows 10), Плата:»Generic ESP8266 Module, 80 MHz, Flash, Disabled, nodemcu, 26 MHz, 40MHz, DOUT (compatible), 4M (2M SPIFFS), 2, v2 Lower Memory, Disabled, None, All Flash Contents, 115200″
ПРЕДУПРЕЖДЕНИЕ: библиотека Timezone должна запускаться на архитектурах avr и может быть несовместима с вашей платой на архитектуре esp8266.
In file included from C:Usersmitkir01DownloadsGyverLamp-masterfirmwareGyverLamp_v1.4GyverLamp_v1.4.ino:122:0:
C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002
# pragma message «FastLED version 3.003.002»
^
In file included from C:Program Files (x86)ArduinolibrariesFastLED/FastLED.h:65:0,
from C:Usersmitkir01DownloadsGyverLamp-masterfirmwareGyverLamp_v1.4GyverLamp_v1.4.ino:122:
C:Program Files (x86)ArduinolibrariesFastLED/fastspi.h:130: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»
^
In file included from C:Usersmitkir01AppDataLocalArduino15packagesesp8266hardwareesp82662.5.0/tools/sdk/libc/xtensa-lx106-elf/include/string.h:163:0,
from C:Usersmitkir01AppDataLocalArduino15packagesesp8266hardwareesp82662.5.0coresesp8266/Arduino.h:33,
from C:Program Files (x86)ArduinolibrariesTimeDateStrings.cpp:12:
C:Program Files (x86)ArduinolibrariesTimeDateStrings.cpp: In function ‘char* monthStr(uint8_t)’:
C:Usersmitkir01AppDataLocalArduino15packagesesp8266hardwareesp82662.5.0/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:76:81: error: ‘const void*’ is not a pointer-to-object type
#define pgm_read_ptr(addr) (reinterpret_cast<const void>(addr))
^
C:Usersmitkir01AppDataLocalArduino15packagesesp8266hardwareesp82662.5.0/tools/sdk/libc/xtensa-lx106-elf/include/sys/string.h:32:57: note: in definition of macro ‘strcpy_P’
#define strcpy_P(dest, src) strncpy_P((dest), (src), SIZE_IRRELEVANT)
^
C:Program Files (x86)ArduinolibrariesTimeDateStrings.cpp:72:29: note: in expansion of macro ‘pgm_read_ptr’
strcpy_P(buffer, (PGM_P)pgm_read_ptr(&(monthNames_P[month])));
^
C:Program Files (x86)ArduinolibrariesTimeDateStrings.cpp: In function ‘char* dayStr(uint8_t)’:
C:Usersmitkir01AppDataLocalArduino15packagesesp8266hardwareesp82662.5.0/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:76:81: error: ‘const void*’ is not a pointer-to-object type
#define pgm_read_ptr(addr) (reinterpret_cast<const void>(addr))
^
C:Usersmitkir01AppDataLocalArduino15packagesesp8266hardwareesp82662.5.0/tools/sdk/libc/xtensa-lx106-elf/include/sys/string.h:32:57: note: in definition of macro ‘strcpy_P’
#define strcpy_P(dest, src) strncpy_P((dest), (src), SIZE_IRRELEVANT)
^
C:Program Files (x86)ArduinolibrariesTimeDateStrings.cpp:86:28: note: in expansion of macro ‘pgm_read_ptr’
strcpy_P(buffer, (PGM_P)pgm_read_ptr(&(dayNames_P[day])));
^
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
Выполнил замену.
Copy and relpace «twi.h», «core_esp8266_si2c.c» in folder %USERPROFILE%AppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266
Copy and replace «Wire.h», «Wire.cpp» in folder %USERPROFILE%AppDataLocalArduino15packagesesp8266hardwareesp82662.3.0librariesWire
Пытаюсь подключить SI7021 к ESP01 на пины 0,2. Беру Ваш пример из библиотеки HTU21D-master SI7021_DEMO при компиляции выдает ошибку.
C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266_core_esp8266_si2c.c:157:15: error: conflicting types for ‘twi_writeTo’
unsigned char twi_writeTo(unsigned char address, unsigned char * buf, unsigned int len, unsigned char sendStop){
^
In file included from C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266_core_esp8266_si2c.c:21:0:
C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266twi.h:66:9: note: previous declaration of ‘twi_writeTo’ was here
uint8_t twi_writeTo(uint8_t address, uint8_t *buffer, uint8_t length, bool sendStop);
^
C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266_core_esp8266_si2c.c:181:15: error: conflicting types for ‘twi_readFrom’
unsigned char twi_readFrom(unsigned char address, unsigned char* buf, unsigned int len, unsigned char sendStop){
^
In file included from C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266_core_esp8266_si2c.c:21:0:
C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0coresesp8266twi.h:67:9: note: previous declaration of ‘twi_readFrom’ was here
uint8_t twi_readFrom(uint8_t address, uint8_t *buffer, uint8_t length, bool sendStop);
^
Используем библиотеку Wire версии 1.0 из папки: C:UsersHOMEAppDataLocalArduino15packagesesp8266hardwareesp82662.3.0librariesWire
Используем библиотеку HTU21D-master версии 1.1.0 из папки: D:ArduinolibrarieslibrariesHTU21D-master
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
Error compiling for board Generic ESP8266 Module.
Moderator: igrr
— Sun May 29, 2016 1:50 pm
#48228
Welcome
I have a problem with compiling on the Arduino IDE. I am getting this error:
Code: Select allArduino: 1.6.9 (Windows XP), Board: "Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None"
In file included from c:documents and settingsarduinoustawienia lokalnedane aplikacjiarduino15packagesesp8266toolsxtensa-lx106-elf-gcc1.20.0-26-gb404fb9-2xtensa-lx106-elfincludec++4.8.2memory:62:0,
from C:Documents and SettingsARDUINOUstawienia lokalneDane aplikacjiArduino15packagesesp8266hardwareesp82662.2.0coresesp8266Esp.cpp:24:
c:documents and settingsarduinoustawienia lokalnedane aplikacjiarduino15packagesesp8266toolsxtensa-lx106-elf-gcc1.20.0-26-gb404fb9-2xtensa-lx106-elfincludec++4.8.2bitsstl_algobase.h:59:28: fatal error: bits/c++config.h: No such file or directory
#include <bits/c++config.h>
^
compilation terminated.
exit status 1
Error compiling for board Generic ESP8266 Module.
module ESP8266-01.
What could be causing this?
— Sun Jun 26, 2016 6:28 pm
#49840
I’m having the same compile error on a fresh install of 1.6.9 on WIN XP with the ESP8266 board only.
A Fresh install of 1.6.9 on WIN 7 works fine.
I’ve tried a few things with no luck. If I find the fix I’ll post it here.
Monday Update:
A lot of files are missing, after about 5 tries of copying files from an older version (1.5.5 r2) I moved the whole esp8266tools over to 1.6.9, new files came up missing and these file are there. So it must be a XP path problem now and has been. I did notice the newer versions of the IDE have the libraries install in ,
c:documents and settingsarduino …
I guess I’ll stay on WIN 7 to use the 1.6.9 …..
— Wed Jun 29, 2016 2:47 pm
#49968
I tried the zip file instead of the installer for 1.6.9, unzip then put a new folder ‘portable’ in the arduino 1.6.9 root.
Install all your boards and libraries. My errors went away.
Hope this works for you.
— Sun Nov 06, 2016 2:54 pm
#57744
if you are using Window 10. Do this first method to find the AppData folder by doing this.
1 For File Explorer.
2 Select the C drive.
3 On the File Explorer Ribbon, switch to the View Tab.
4 Expand the Option button, by clicking on the black small triangle below the button.
5 Select Change Folder and Search Options.
see as
http://www.windows10themes.net/guides/h … indows-10/
Try to find the folder in somewhere C:UsersBrian_2AppDataLocalArduino15esp8266 delete it and reinstall from the tools > board > boards manager and search for «esp8266».