二十五塊DIY 帶螢幕可遠端的溫溼度感測器
阿新 • • 發佈:2020-09-11
小米的溫溼度感測器壞了,不帶螢幕。就一個硬幣大小,還得配合小米閘道器使用。。買不起我就自己做一個。。 開啟神奇的拼多多,買一個神器開發板可以連線wifi的Nodemcu,再加一塊2寸螢幕,二十塊包郵。。 再來一個DH11 溫溼度感測器五塊包郵。。
DH11採集溫溼度感測器,顯示到螢幕上。然後通過wifi 傳送資料到 免費的Blynk 伺服器上。。 再手機安裝 Blynk App就可以遠端檢視溫溼度了。。。
#define BLYNK_PRINT Serial // 開啟串列埠監視 #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include <DHT.h> #include <Wire.h> // Only needed for Arduino 1.6.5 and earlier #include "SSD1306Wire.h" // legacy: #include "SSD1306.h" char auth[] = "xxxxxxxxxxxxxxxxxxxxxx";//授權碼 char ssid[] = "wifiname";//wifi名稱 char pass[] = "wifipassword";//wifi密碼 #define DHTPIN 2//感測器連線管腳 #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; SSD1306Wire display(0x3c, SDA, SCL); int ci = 0; //該函式將會每秒鐘傳送資料給V5,V6, //在app端,元件的讀取頻率應該設為PUSH。 void sendSensor() { display.clear(); ci++; float h = dht.readHumidity(); float t = dht.readTemperature(); //攝氏度 //float t = dht.readTemperature(true); //華氏度 if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } Blynk.virtualWrite(V5, h);///給V5 Blynk.virtualWrite(V6, t);//將溼度傳送給V6 display.setTextAlignment(TEXT_ALIGN_LEFT); display.setFont(ArialMT_Plain_16); display.drawString(0, 0, (String)ci); display.drawString(0, 16, "Temp:"+(String)t+"°C"); display.drawString(0, 32, "Humi:"+(String)h+"%"); display.display(); } void setup() { Serial.begin(9600); Blynk.begin(auth, ssid, pass);//官方伺服器 //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8080);//自建伺服器域名模式 //Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 158), 8080);//自建伺服器ip模式 dht.begin(); timer.setInterval(1000L, sendSensor); display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_10); } void loop() { Blynk.run(); timer.run(); }