接着上一次做的小愛同學脫離局域網控制三路開關,我還找到另外一個好玩的項目,,接下來我講解一下項目過程
用到的東西和上一次差不多,有esp8266nodemcu、點燈科技app、Arduino IDE,但是還需加上一個DHT11模塊
如果是直接看到這篇文章的小夥伴,如果沒有配置好Arduino IDE,建議去看一下博主這個專欄的上一個文章,裏面有詳細介紹使用Arduino IDE開發esp8266所需要的設置
還有我們需要在Arduino IDE裏添加DHT11的庫文件,在文章裏提供下載鏈接
下載以後找到自己軟件的安裝目錄,找到libraries文件夾,解壓放入
那麼現在我們直接來上代碼:
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR //小愛同學定義爲傳感器設備
#include <Blinker.h>
#include <DHT.h>
char auth[] = "點燈app獲取的設備密鑰";
char ssid[] = "WiFi名稱";
char pswd[] = "WiFi密碼";
BlinkerNumber HUMI("humi"); //定義溼度數據鍵名
BlinkerNumber TEMP("temp"); //定義溫度數據鍵名
#define DHTPIN 5 //定義DHT11模塊連接管腳io5
#define DHTTYPE DHT11 // 使用DHT 11溫度溼度模塊
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE); //定義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.begin(auth, ssid, pswd);
Blinker.attachHeartbeat(heartbeat);
dht.begin();
BlinkerMIOT.attachQuery(miotQuery);
}
void loop()
{
Blinker.run();
float h = dht.readHumidity();
float t = dht.readTemperature();
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;
temp_read = t;
}
Blinker.delay(2000);
}
在代碼的註釋內容下我們可以很容易的找到用esp8266接收數據的引腳是哪一個
但是在這裏指的是GPIO5,並不是我們esp8266d nodemcu的D5
這裏我爲大家提供了編號裝換圖,與是得知,我設置的gpio5是我們開發板上的D1
OK,我們開始
1、打開Arduino IDE寫入代碼,編譯上傳,燒錄程序:
2、硬件連接:
我們的DHT11模塊有三個引腳:VCC、GND以及DATA
DATA就是我們的數據傳輸引腳,接在我們程序設置好的GPIO5,也就是esp8266 nodemcu的D1引腳上
VCC接esp8266 nodemcu 3V供電端口即可
GND接esp8266 nodemcu G接地端口即可
3、重啓開發板,我們可以看到點燈app上設備在線,我們還可以設置點燈app內的組件設置,在點燈app內查看溫度溼度:
我們可以這樣添加組件
例如我們的溼度數據,數據鍵名爲代碼前定義的humi,顯示文本爲溼度,單位爲%,最大值爲100
我已經設置好了,大家可以看到效果
4、最後我們使用小愛同學控制,在米家中綁定點燈平臺,在小愛訓練中添加訓練即可,具體訓練過程可以看看我的小愛脫離局域網控制小燈
好啦,感興趣的可以去試一試,成本很低,收穫很大。