在之前各單元已經學習過如何利用 ESP8266 MicroPython 網路HTTP傳輸 、 ESP8266 MicroPython 無線基地台連線、ThingSpeak服務平台的申請使用,現在就來將這些相關學習串連起來。
本實作將利用ESP8266建立無線網路連線將DHT11溫溼度模組所取得的溫濕度資料上傳到 ThingSpeak 服務平台上加以記錄。
[模組材料]
1. 8266 D1 mini x 1
2. DHT11溫溼度測量模組 x1
3. 杜邦連接線 x 3條
[[DHT11溫濕度測量模組]]
* Supply voltage: 3.3 ~ 5.5V DC
* Output: single-bus digital signal
* Measuring range: Humidity 20-90% RH, Temperature 0 ~ 50 ℃
* Accuracy: Humidity + -5% RH, temperature + -2 ℃
* Resolution: Humidity 1% RH, temperature 1 ℃
* Long-term stability: <± 1% RH / Year
[[DHT11溫濕度測量模組]]
* Supply voltage: 3.3 ~ 5.5V DC
* Output: single-bus digital signal
* Measuring range: Humidity 20-90% RH, Temperature 0 ~ 50 ℃
* Accuracy: Humidity + -5% RH, temperature + -2 ℃
* Resolution: Humidity 1% RH, temperature 1 ℃
* Long-term stability: <± 1% RH / Year
ESP32 與 OLED 接腳設定
【ESP8266】3.3V →【DHT11】VCC
【ESP8266】GND →【DHT11】GND
【ESP8266】D0 →【DHT11】DATA
from machine import Pin import dht, utime, urequests, network sensor = dht.DHT11(Pin(16)) #指定ThingSpeak寫入金鑰 WRITE_KEY = "程式在Thonny執行畫面如下:ThingSpeak 提供非商業使用的免費雲端服務,提供物聯網相關裝置的訊息紀錄之用,物聯裝置的免費商業使用限制訊息發送間隔必須大於15秒以上。" #設定網路連線帳號密碼 SSID = " " # WiFi名稱 PASSWORD = " " # WiFi密碼 #自訂無線基地台連線函式 def connect_wifi(ssid, passwd): sta = network.WLAN(network.STA_IF) sta.active(True) if not sta.isconnected(): print("連線中... \n") sta.connect(ssid, passwd) while not sta.isconnected(): pass print("連線成功... \n") #進行網路連線 connect_wifi(SSID, PASSWORD) try: while 1: sensor.measure() print("溫度: ", sensor.temperature()) print("溼度: ", sensor.humidity()) url = "https://api.thingspeak.com/update?" url += "api_key=" + WRITE_KEY #資料寫入金鑰 url += "&field1=" + str(sensor.temperature()) #溫度 url += "&field2=" + str(sensor.humidity()) #濕度 print("_______________") urequests.get(url) #將資料寫雲端平台 utime.sleep_ms(60000) #一分鐘後重複執行迴圈 except Exception as e: print(e)