подскажите по ошибке компиляции:
никак не могу разобраться о причине ошибки
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.
Страница 1 из 2
-
Недавно купила новый для себя модуль ESP8266
Загрузила одну программу Blink из примеров Arduino IDE
После этого ничего не компилирует
Помогите, пожалуйста, решить эту проблему -
Что значит
выкладывайте ошибки, код.
Не забывайте про тэги, для удобного чтения. -
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
//объявляю библиотекиchar ssid[] = «***»; //мой wifi
char password[] = «***»; //пароль#define BOTtoken «***» //токен бота
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client); //переменная для шифрованного соединенияString keyboardJson = «[[«/help«]]»; //клавиатура бота
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
}
}void loop() {
int numNewMessages = bot.getUpdates(
bot.last_message_received + 1);
handleNewMessages(numNewMessages);
} //проверка на новые сообщения, если такие сообщения есть, обрабатываем ихvoid handleNewMessages(int numNewMessages){
for(int i = 0; i < numNewMessages; i++){
String chat_id = String(bot.messages.chat_id); //проверяем каждое сообщение и запоминаем id
String text = bot.messages.text; //записываем в переменную текст сообщения
if(text == «/help») {
bot.sendMessageWithReplyKeyboard(chat_id,
«Choose from one of the following options»,
«», keyboardJson, true);
}
if(text == «/help») {
bot.sendMessageWithReplyKeyboard(chat_id,
«Choose from one of the following options»,
«», keyboardJson, true);
}//если приходит сообщение с этим текстом, отвечаем …
}
}Последнее редактирование: 30 янв 2019
-
(у меня теперь скриншоты с телефона не загружаются) -
Онжела!Вставь Его правильно!В нужное место!
Последнее редактирование: 30 янв 2019
-
Добавь строку #include <ArduinoJson.h>
-
Добавила, с ней тоже ничего не работает(
-
@Angelina Dementeva, скетч не компилируется или не работает? Telegram блокируется, попробуйте проверить его доступность
-
К сожалению, именно не компилируется
Можете объяснить что это значит?
-
Если не компилируется — копируете вывод компилятора об ошибках и вставляете его в сообщение на форуме (длинный вывод компилятора прячете под спойлер ). ping — утилита для проверки соединения, запускается из командной строки Windows.
Daniil и NikitOS нравится это.
-
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:85:26: error: ‘ArduinoJson::JsonObject’ has no member named ‘measureLength’
int length = payload.measureLength();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:92:13: error: ‘ArduinoJson::JsonObject’ has no member named ‘printTo’
payload.printTo(out);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::getMe()’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:269:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:269:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:270:22: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& root = jsonBuffer.parseObject(response);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:272:11: error: ‘ArduinoJson::JsonObject’ has no member named ‘success’
if(root.success()) {
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘int UniversalTelegramBot::getUpdates(long int)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:305:5: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:305:23: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:306:24: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& root = jsonBuffer.parseObject(response);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:308:14: error: ‘ArduinoJson::JsonObject’ has no member named ‘success’
if (root.success()) {
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:312:48: error: ‘class ArduinoJson670_0_0::ObjectSubscript<const char*>’ has no member named ‘size’
int resultArrayLength = root[«result»].size();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:316:62: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::enable_if<true, ArduinoJson670_0_0::ObjectSubscript<const char*> >::type {aka ArduinoJson670_0_0::ObjectSubscript<const char*>}’
JsonObject& message = root[«result»][«message»];
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessage(String, String, String)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:379:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:379:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:380:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:394:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:394:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:395:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:404:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::ObjectRef’
JsonObject& replyMarkup = payload.createNestedObject(«reply_markup»);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:411:21: error: expected ‘;’ before ‘keyboardBuffer’
DynamicJsonBuffer keyboardBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:412:29: error: ‘keyboardBuffer’ was not declared in this scope
replyMarkup[«keyboard»] = keyboardBuffer.parseArray(keyboard);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:432:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:432:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:433:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:442:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::ObjectRef’
JsonObject& replyMarkup = payload.createNestedObject(«reply_markup»);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:444:21: error: expected ‘;’ before ‘keyboardBuffer’
DynamicJsonBuffer keyboardBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:445:36: error: ‘keyboardBuffer’ was not declared in this scope
replyMarkup[«inline_keyboard»] = keyboardBuffer.parseArray(keyboard);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:514:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:514:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:515:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:533:72: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::ObjectRef’
JsonObject& replyMarkup = payload.createNestedObject(«reply_markup»);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:535:23: error: expected ‘;’ before ‘keyboardBuffer’
DynamicJsonBuffer keyboardBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:536:31: error: ‘keyboardBuffer’ was not declared in this scope
replyMarkup[«keyboard»] = keyboardBuffer.parseArray(keyboard);
^
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module. -
1. Вам нужна библиотека ArduinoJson версии 5.13.4 — в менеджере библиотек в выпадающем списке можно выбрать нужную версию
2. Поправьте —bot.messages[i].text
bot.messages[i].chat_id— к сообщениям обращаемся по индексу
-
Теперь выдаёт новые ошибки
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed -
В итоге, я разобралась с ошибками, но команда не появилась в телеграмм боте. Совсем уже не знаю в чем проблема( Могла ли я сломать как-то этот модуль?
-
@Angelina Dementeva, api.telegram.org пингуется? Добавьте вывод в UART отладочных сообщений библиотеки UniversalTelegramBot
void setup() {
Serial.begin(9600);
bot._debug=true; // выводим отладочную информацию
… -
Откройте командную строку и выполните команду:
C:Userss.user>ping api.telegram.orgОбмен пакетами с api.telegram.org [149.154.167.220] с 32 байтами данных:
Ответ от 149.154.167.220: число байт=32 время=103мс TTL=53
Ответ от 149.154.167.220: число байт=32 время=103мс TTL=53
Ответ от 149.154.167.220: число байт=32 время=103мс TTL=53
Ответ от 149.154.167.220: число байт=32 время=104мс TTL=53Статистика Ping для 149.154.167.220:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 103мсек, Максимальное = 104 мсек, Среднее = 103 мсекУ Вас так?
Страница 1 из 2
Решил запрограммировать 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.");
// "Клиент отключен."
}
}
— Wed Mar 01, 2017 5:59 am
#63178
Hi. Sorry if this question has cropped up again. I get the error message «error compiling for board Generic ESP8266 Module» when trying to compile the code provided with Marco Schwartz’s book «Internet of things with ESP8266». I have tried the publisher, the author, and I have searched internet and have seen many people have asked the same question but I either cannot understand the answers or the answers do not work for me.
I have Arduino IDE 1.8.1 running on Windows 10
I have tried a couple of the example ESP8266 sketches that come with the IDE and they compile OK, eg blink
An example of code that will not compile is:
//dht_esp8266
#include <TFT.h>
// Import required libraries
#include «ESP8266WiFi.h»
#include <aREST.h>
#include «DHT.h»
#include <pgmspace.h>
// DHT11 sensor pins
#define DHTPIN 5
#define DHTTYPE DHT11
// Create aREST instance
aREST rest = aREST();
// Initialize DHT sensor
DHT dht(DHTPIN, DHTTYPE, 15);
// WiFi parameters
const char* ssid = «wifi-name»;
const char* password = «wifi-pass»;
// The port to listen for incoming TCP connections
#define LISTEN_PORT 80
// Create an instance of the server
WiFiServer server(LISTEN_PORT);
// Variables to be exposed to the API
float temperature;
float humidity;
void setup(void)
{
// Start Serial
Serial.begin(115200);
// Init DHT
dht.begin();
// Init variables and expose them to REST API
rest.variable(«temperature», &temperature);
rest.variable(«humidity», &humidity);
// Give name and ID to device
rest.set_id(«1»);
rest.set_name(«esp8266»);
// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(«.»);
}
Serial.println(«»);
Serial.println(«WiFi connected»);
// Start the server
server.begin();
Serial.println(«Server started»);
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop() {
// Reading temperature and humidity
humidity = dht.readHumidity();
temperature = dht.readTemperature();
// Handle REST calls
WiFiClient client = server.available();
if (!client) {
return;
}
while (!client.available()) {
delay(1);
}
rest.handle(client);
}
This has got me stumped. I hope someone can help
Thanks
Cary
Код ошибки:
Arduino: 1.8.13 (Windows 10), Плата:"Generic ESP8266 Module, 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, dtr (aka nodemcu), 26 MHz, 40MHz, DOUT (compatible), 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 921600"
In file included from C:UsersshitsDesktopMatrixClockClock.ino:2:
C:UsersshitsDocumentsArduinolibrariesESP8266HttpClient-master/SerialResponse.h:15:10: fatal error: Delay.h: No such file or directory
15 | #include <Delay.h>
| ^~~~~~~~~
compilation terminated.
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Код(Неполный из-за моих «любимых» ограничений):
#include <SerialResponse.h>
/**
* Часы и информер погоды на матричном дисплее 16x32
*
* Контроллер ESP8266F (4Мбайт)
* Графический экран 16x32 на 8 матрицах MAX8219
*
* Copyright (C) 2016 Алексей Шихарбеев
* http://samopal.pro
*/
#include <arduino.h>
#include <SerialESP8266wifi.h>
#include <WiFiClient.h>
#include <ESP8266HttpClient.h>
#include <WiFiUdp.h>
#include <SPI.h>
// https://github.com/adafruit/Adafruit-GFX-Library
#include <Adafruit_GFX.h>
// https://github.com/markruys/arduino-Max72xxPanel
#include <Max72xxPanel.h>
https://github.com/bblanchon/ArduinoJson
#include <ArduinoJson.h>
const unsigned char logo2 [] PROGMEM = {
0xff, 0xff, 0xdf, 0xfd, 0xcf, 0xf9, 0xc7, 0xf1, 0xc0, 0x01, 0xe0, 0x03, 0xe0, 0x03, 0xc2, 0x11,
0xc7, 0x39, 0xc2, 0x11, 0x80, 0x01, 0x00, 0xc1, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0f };
const unsigned char wifi_icon [] PROGMEM = {0x07, 0xfb, 0xfd, 0x1e, 0xee, 0xf6, 0x36, 0xb6 };
const unsigned char digit0 [] PROGMEM = { 0x83,0x01,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x01,0x83 };
const unsigned char digit1 [] PROGMEM = { 0xF7,0xE7,0xC7,0x87,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0x81 };
const unsigned char digit2 [] PROGMEM = { 0x83,0x01,0x39,0x39,0xF9,0xF9,0xF3,0xE3,0xC7,0x8F,0x1F,0x3F,0x01,0x01 };
const unsigned char digit3 [] PROGMEM = { 0x83,0x01,0x39,0xF9,0xF9,0xF9,0xE3,0xE3,0xF9,0xF9,0xF9,0x39,0x01,0x83 };
const unsigned char digit4 [] PROGMEM = { 0xF3,0xE3,0xC3,0xC3,0x93,0x93,0x33,0x31,0x01,0x01,0xF3,0xF3,0xF3,0xF3 };
const unsigned char digit5 [] PROGMEM = { 0x01,0x01,0x3F,0x3F,0x3F,0x03,0x01,0xF9,0xF9,0xF9,0xF9,0x39,0x01,0x83 };
const unsigned char digit6 [] PROGMEM = { 0x83,0x01,0x39,0x3F,0x3F,0x03,0x01,0x39,0x39,0x39,0x39,0x39,0x01,0x83};
const unsigned char digit7 [] PROGMEM = { 0x01,0x01,0xF9,0xF9,0xF9,0xF1,0xF3,0xE3,0xE7,0xCF,0xCF,0x9F,0x9F,0x9F };
const unsigned char digit8 [] PROGMEM = { 0x83,0x01,0x39,0x39,0x39,0x83,0x83,0x39,0x39,0x39,0x39,0x39,0x01,0x83 };
const unsigned char digit9 [] PROGMEM = { 0x83,0x01,0x39,0x39,0x39,0x39,0x39,0x01,0x81,0xF9,0xF9,0x39,0x01,0x83 };
// Параметры доступа к WiFi
const char W_SSID[] = "DIR-620";
const char W_PASS[] = "irina5540114";
// Параметры погодного сервера
String W_URL = "http://api.openweathermap.org/data/2.5/weather";
//IPPID. Получить бесплатно: http://openweathermap.org/appid#get
String W_API = "4f790e3aa94b6b8166841333524c78d3";
// Код города перми на сервере openweathermap.org
// Москва = 524901
// Остальные города можно посмотреть http://bulk.openweathermap.org/sample/city.list.json.gz
String W_ID = "511196";
String W_NAME = "В Перми ";
WiFiUDP udp;
const int NTP_PACKET_SIZE = 48;
byte packetBuffer[ NTP_PACKET_SIZE];
const char NTP_SERVER[] = "0.ru.pool.ntp.org";
int TZ = 5;//Таймзона для Перми
uint32_t NTP_TIMEOUT = 600000; //10 минут
int pinCS = 5; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI )
int numberOfHorizontalDisplays = 4;
int numberOfVerticalDisplays = 1;
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
String tape = "";
int wait = 20; // In milliseconds
int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels
uint32_t ms, ms0=0, ms1=0, ms2=0, ms3=0, ms_mode=0;
uint32_t tm = 0;
uint32_t t_cur = 0;
long t_correct = 0;
bool pp = false;
int mode = 0;
void setup() {
Serial.begin(115200);
// Настройка дисплея
matrix.setIntensity(7); // Use a value between 0 and 15 for brightness
// Порядок матриц
// Ориентация каждой матрицы
matrix.setRotation(0, 1); // The first display is position upside down
matrix.setRotation(1, 1); // The first display is position upside down
matrix.setRotation(2, 1); // The first display is position upside down
matrix.setRotation(3, 1); // The first display is position upside down
matrix.fillScreen(LOW);
matrix.drawBitmap(0, 0, logo2, 16, 16, 0, 1);
matrix.write();
delay(5000);
// Содиняемся с WiFi
Serial.print("nConnecting to ");
Serial.println(W_SSID);
WiFi.begin(W_SSID, W_PASS);
for (int i=0;WiFi.status() != WL_CONNECTED&&i<150; i++) {
Serial.print(".");
// Минаем значком WiFi
matrix.drawBitmap(20, 4, wifi_icon, 8, 8, 0, 1);
matrix.write();
delay(500);
matrix.fillRect(20, 4, 8, 8, LOW);
matrix.write();
delay(500);
}
/*
// Содиняемся с WiFi
}
Перед загрузкой Flash нажал.