此為個人紀錄及逼迫自己每天學習的動力日誌。今天,依然是跟著教程,練習動手做。也許因為昨夜罕見的失眠,今天沒睡好神智不清之下,感覺肚子的肥肉跟通貨膨脹下的結構式調薪一樣又漲了,而今天的挫折差點壓垮我,最後才發現是大小寫問題以及沒開啟程式……。恩,我們開始吧!
首先,我們要有材料如下:
當你懵懵懂懂且沒仔細看教程之下,看見DHT並查詢google後會得到這樣的結果:
以及
恭喜您獲得首次的失敗及身心靈打擊!
如果查的是DHT12,我們會知道DHT12就是溫溼度感測器(廢話)。
由於這次使用的是D1 mini並使用Micropython直譯器,直接匯入dht模組就能開始進行溝通的第一步了。
資料來源: https://datasheet.lcsc.com/szlcsc/DHT12-Digital-temperature-and-humidity-sensor_C83989.pdf
我們可以根據說明書,確認腳位。並與D1 mini連接。在此設定D1 mini的零號(D3)腳位與DHT12的2號腳連接,當然D1 mini腳號也可以換成別號,只要能動不燒掉就行。
以下是完成接線圖:
from machine import Pin
import time
import dht
sensor = dht.DHT11(Pin(0)) # 使用 D3 腳位取得溫溼度物件
while True:
sensor.measure()
temp_humi = "%2d℃/%2d%%" % (
sensor.temperature(),
sensor.humidity())
print(temp_humi)
time.sleep(3)
那我們要怎麼做才能做出用手機監控的酷炫效果呢?
這裡就要提到MQTT通訊協定,首先我們就從生活中的實際例子舉一反三:
不知道大家有沒有被這則新聞轟炸過?
沒有?我這有連結再轟炸一次https://news.ltn.com.tw/news/life/breakingnews/3933459
這跟MQTT有甚麼關係呢?
我總結一下共通性:
故事中有一位美魔女(發佈端:Publisher),向媒人婆(MQTT中介伺服器:Broker)提供自己的三圍體重年齡 學歷等資料及徵婚條件(頻道:channel),此時,頭大的超強媒人婆便用自己的超強搜索能力,找到了兩位符合條件且都在尋找伴侶的仁兄(訂閱端:subscriber),並將美魔女資料提供給他們參考,幫忙牽線。別只在那邊吐槽50歲未婚女人怎敢自稱美魔女,要注意,不管是美魔女本人,還是兩位條件符合者,他們都是主動在婚姻市場裡尋覓彼此的,被動的話,是不會被媒人婆找到的 所以如果被迫單身的話,請主動。並且對於媒人婆而言,兩方都是顧客(MQTT Client)。
回來主題,我們可以改成:
接著,我們會需要提供自己的帳號及金鑰還有媒人婆是誰(adafuit),畢竟不同的媒人婆可不會免費幫一位來路不明的人牽線。網址:https://io.adafruit.com/
接著是程式碼:
from machine import Pin
import time
import network
from umqtt.robust import MQTTClient
import dht
sensor = dht.DHT11(Pin(0)) # 使用 D3 腳位取得溫溼度數據
client = MQTTClient(
client_id="weather",
server="io.adafruit.com",
user="adafruit帳號",
password="adafruit金鑰",
ssl=False)
sta_if = network.WLAN(network.STA_IF) # 取得無線網路介面
sta_if.active(True) # 啟用無線網路
sta_if.connect('網路名稱', '密碼') # 5G連不到要注意,連結無線網路
while not sta_if.isconnected(): # 等待無線網路連上
pass
print("connected")
client.connect()
while True:
sensor.measure()
temp_humi = "%2d℃/%2d%%" % (
sensor.temperature(),
sensor.humidity())
client.publish(
b"你的adafruit帳號/feeds/temp_humi",
temp_humi.encode())
print(temp_humi)
time.sleep(3)
好的,現在我們的溫溼度資料已經連上網了,接下來就剩下手機及APP了
這次使用的是:
請注意: