# Arduino:DHT11 溫溼度感測器資料擷取 簡單筆記一下,板子是 Arduino UNO,感測器是 DHT11 Sensor,板子跟感測器的接線方式參考[這篇文章](http://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-an-arduino/)。 ![](https://i.imgur.com/d8u2tAL.png) Ref:http://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-an-arduino 紅線接 5V;黑線接地 GND;藍線接 7。 ## 下載 Arduino IDE Arduino IDE 官方載點:https://www.arduino.cc/en/software/ Python 官方載點:https://www.python.org/downloads/ 編譯 Python 的 IDE 有很多種,這邊是使用 VSCode([官方載點](https://code.visualstudio.com/)) 衍生閱讀:[如何用 Visual Studio Code 在 WSL 中進行 Python 開發](https://withhhsong.com/python_wsl/) ## 導入 DHTLib 編譯以下程式碼前需要先下載這個 DHTLib [Library](https://www.circuitbasics.com/wp-content/uploads/2015/10/DHTLib.zip) 然後導入 IDE。 ### 草稿碼 > 匯入程式庫 > 加入 ZIP 程式庫 ![](https://i.imgur.com/ziE70FZ.png) ## 開啟序列埠監控 ```=c #include <dht.h> dht DHT; #define DHT11_PIN 7 void setup(){ Serial.begin(9600); } void loop(){ int chk = DHT.read11(DHT11_PIN); Serial.print("Temperature = "); Serial.println(DHT.temperature); Serial.print("Humidity = "); Serial.println(DHT.humidity); delay(1000); } ``` ![](https://i.imgur.com/lxqsJfE.png) 複製貼上以上程式碼進入 Arduino IDE 後,點擊畫面左上角的打勾圖示可以驗證,接著按旁邊的箭頭就可以上傳,要檢視序列埠監控視窗的話,按畫面最右上角的放大鏡圖示,進入序列埠監控視窗,就可以看到當前 Arduino 板接的感測器溫溼度資料了。9600 是 Baud(波特),右下角可以看到當前板子插在電腦哪個 Port 上(在這邊我的是接在 COM5)。 ## 使用 Python 擷取資料 ### 安裝 pyserial:指令 pip install pyserial ![](https://i.imgur.com/fR1JuaJ.png) 這邊是用 VSCode 跑 python,簡單地擷取資料只要像以上短短幾行,如果後續要匯出成為 Excel 的 .csv 表格可以參考下方程式碼(需要先安裝 pip install pandas)。COM5 的埠部分要看板子是接在電腦哪裡,不一定是 COM5,有可能是 COM5 ### 擷取資料成為 list ```=python import serial import time import pandas as pd arduino = serial.Serial("COM5", "9600") # 不同的電腦有可能不是接在 COM5 port dataset_1 = [] dataset_2 = [] timeset = [] counter = 0 # 計時器 while(counter < 30 ): # 本程式僅擷取前三十秒資料 counter = counter + 1 data_1 = arduino.readline().decode("utf-8") # 記錄溫度 data_2 = arduino.readline().decode("utf-8") # 記錄濕度 nowtime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) dataset_1.append(data_1) dataset_2.append(data_2) timeset.append(nowtime) df = pd.DataFrame({'time':timeset,'hum':dataset_2, 'temp': dataset_1}) df.to_csv('./mydata.csv',index=False,encoding="utf-8") ``` ### 匯出成為 Excel .csv 檔案 ![](https://i.imgur.com/6HoOaQ5.png) --- : : 20211028 : : 與松 withhhsong : : ###### tags: `withhhsong` `tutorials` `python` `LectureNote` `arduino` `DHT11`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up