本人小白,想做個溫濕度計,然后從網上copy了代碼,但是esp8266一直不停重啟,wifi連一下斷一下,在線求助大佬,謝謝!!!

#define BLINKER_WIFI //定義wifi模塊
#define BLINKER_MIOT_SENSOR//小愛同學定義為傳感器設備
#include <Blinker.h>//包含Blinker頭檔案
#include <DHT.h>//包含DHT頭檔案
#define DHTPIN 2 //定義DHT11模塊連接管腳io2
#define DHTTYPE DHT11 // 使用溫度濕度模塊的型別為DHT11
char auth[] = "b21a410f19ad"; //你的設備key
char ssid[] = "V30"; //你的wifi 名稱
char pswd[] = "123456789"; //你的wifi 密碼
//新建資料型別組件物件,作用:將資料傳輸到手機blinker app
BlinkerNumber HUMI("humi"); //定義濕度資料鍵名
BlinkerNumber TEMP("temp"); //定義溫度資料鍵名
DHT dht(DHTPIN, DHTTYPE); //生成DHT物件,引數是引腳和DHT的型別
float humi_read = 0, temp_read = 0;//定義浮點型全域變數 儲存傳感器讀取的溫濕度資料
void heartbeat()
{
HUMI.print(humi_read); //給blinkerapp回傳濕度資料
TEMP.print(temp_read); //給blinkerapp回傳溫度資料
}
void miotQuery(int32_t queryCode) //小愛同學語音命令反饋
{
BLINKER_LOG("MIOT Query codes: ", queryCode);
int humi_read_int=humi_read; //去掉濕度浮點數
BlinkerMIOT.humi(humi_read_int); //小愛反饋濕度屬性
BlinkerMIOT.temp(temp_read); //小愛反饋溫度屬性
BlinkerMIOT.print();//將以上屬性發送給小愛,使得小愛可以接收到溫濕度的資料
}
void setup()//將設定代碼放在此處,運行一次;
{
//初始化埠
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
Blinker.delay(2000);//延時函式
Blinker.begin(auth, ssid, pswd); // // 初始化blinker
Blinker.attachHeartbeat(heartbeat);//將傳感器獲取的資料傳給blinker app上
dht.begin();//初始化DHT傳感器
//在回呼函式中反饋該控制狀態
BlinkerMIOT.attachQuery(miotQuery);//每次呼出小愛同學,就會呼叫miotQuery()函式
}
//通過回圈不斷讀取溫濕度傳感器獲取的資料
void loop() //把主代碼放在這里,重復運行:
{
Blinker.run();//運行Blinker
float h = dht.readHumidity();//讀取DHT11傳感器的濕度 并賦值給h
float t = dht.readTemperature();//讀取傳感器的溫度 并賦值給t
if (isnan(h) || isnan(t))//判斷是否成功讀取到溫濕度資料
{
BLINKER_LOG("Failed to read from DHT sensor!");//讀取溫濕度失敗!
}
else//成功讀取到資料
{
//列印
BLINKER_LOG("Humidity: ", h, " %");
BLINKER_LOG("Temperature: ", t, " *C");
humi_read = h;//將讀取到的濕度賦值給全域變數humi_read
temp_read = t;//將讀取到的溫度賦值給全域變數temp_read
}
Blinker.delay(2000);//延時函式
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/284012.html
標籤:硬件使用
上一篇:4路紅外光電對管尋跡小車怎么停車
