Почему я получаю эти предупреждения?
'void setup()':
C:\Users\\Documents\Arduino\libraries\DHT_sensor_library/DHT.h:44:1: error: expected initializer before 'static'
static const uint8_t DHT11{11}; /**< DHT TYPE 11 */
^~~~~~
sketch_may23a:16:26: error: expected primary-expression before ')' token
DHT dht (DHTPIN, DHTTYPE); // Initialize the DHT sensor
^
sketch_may23a:37:1: error: a function-definition is not allowed here before '{' token
{
^
sketch_may23a:55:1: error: a function-definition is not allowed here before '{' token
{
^
sketch_may23a:85:1: error: a function-definition is not allowed here before '{' token
{
^
sketch_may23a:139:3: error: a function-definition is not allowed here before '{' token
{
^
C:\Users\mrtas\Desktop\sketch_may23a\sketch_may23a.ino: At global scope:
sketch_may23a:171:1: error: expected declaration before '}' token
}
код
void loop()
// поместите сюда свой основной код для повторного запуска:
#include <stdlib.h>
#include <DHT.h>
#define DHTPIN 5 // Вывод данных DHT, подключенный к выводу 5 Arduino
#define DHTTYPE DHT // DHT11 (тип датчика DHT)
DHT dht (DHTPIN, DHTTYPE); // Инициализировать датчик DHT
#define SSID "wifi name " // "Имя Wi-Fi"
#define PASS "password" // "Пароль"
#define IP "api key"// thingspeak.com ip - адрес
String msg = "GET /update?key=TWE505JXFTXDPNB3"; // измените его с помощью вашего ключа...
float temp;
int hum;
String tempC;
int error;
void setup()
{
Serial.begin(115200); // использовать значение по умолчанию 115200.
Serial.println("AT");
delay(5000);
if(Serial.find("OK")){
connectWiFi();
}
}
void loop(){
start:
error=0;
temp = dht.readTemperature();
hum = dht.readHumidity();
char buffer[10];
tempC = dtostrf(temp, 4, 1, buffer);
updateTemp();
if (error==1){
goto start;
}
delay(5000);
}
void updateTemp()
{
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += IP;
cmd += "\",80";
Serial.println(cmd);
delay(2000);
if(Serial.find("Error")){
return;
}
cmd = msg ;
cmd += "&field1=";
cmd += tempC;
cmd += "&field2=";
cmd += String(hum);
cmd += "\r\n";
Serial.print("AT+CIPSEND=");
Serial.println(cmd.length());
if(Serial.find(">")){
Serial.print(cmd);
}
else{
Serial.println("AT+CIPCLOSE");
//Отправить повторно...
error=1;
}
}
boolean connectWiFi()
{
Serial.println("AT+CWMODE=1");
delay(2000);
String cmd="AT+CWJAP=\"";
cmd+=SSID;
cmd+="\",\"";
cmd+=PASS;
cmd+="\"";
Serial.println(cmd);
delay(5000);
if(Serial.find("OK")){
return true;
}else{
return false;
}
}
}
}
@tasos, 👍-3
Обсуждение0
Смотрите также:
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
DHT
не относится к типу dht. Вы имеете в виду DHT11?, @chrislvoid цикл ()
У вас есть это в верхней части вашего файла, что было бы ненужным объявлением вашей функцииloop
*, если бы за ней следовала точка с запятой. Но это не так. После некоторой предварительной обработки ваш компилятор, вероятно, увидит что-то вродеvoid loop() static const uint8_t DHT11{11};
, что, по понятным причинам, очень сбивает с толку. Удалитеvoid loop ()
из верхней части вашего файла., @timemage