[ Raspberry Pi ] วัดอุณหภูมิและความชื้นด้วยเซ็นเซอร์ AM2302
เมื่อตอนอากาศร้อนๆช่วงเมษา นึกขึ้นได้ว่าเออ เรามีเซ็นเซอร์ AM2302/DHT22 นี่นาเอามาลองวัดอุณหภูมิกับความชื้นเล่นๆ ดีกว่า ทำตอนโน้นแล้วโน้ตไว้ แต่เพิ่งได้ฤกษ์เขียนดีๆก็ตอนนี้ เอาละมาเริ่มกันเลย
สิ่งที่ต้องมี
- Raspberry Pi ที่เราใช้คือ Raspberry Pi 2 Model B ใส่ SD card ลง OS เรียบร้อยพร้อมใช้ เราลง OS Raspbian นะ
- Sensor AM2302/DHT22
- ตัวต้านทาน 10k
- Breadboard
- สาย Jumper Female to Male
- Ethernet cable สำหรับต่ออินเตอร์เน็ตให้ Raspberry Pi
การต่อวงจร
เรามาดูกันก่อนเซ็นเซอร์แต่ละขาเป็นอย่างไร ตาม manual ของ AM2302/DHT22
จากรูป
Pin 1 VDD – Power (3.3V-5.5V แนะนำที่ 5V)
Pin 2 SDA – Serial data
Pin 3 NC – ปล่อยว่าง
Pin 4 GND – Ground
ทำการต่อวงจรตามภาพ
ในภาพเราเอา Pin 2 ของเซ็นเซอร์ต่อเข้ากับ GPIO 4 ของ Raspberry Pi
การติดตั้งไลบรารีและการโปรแกรม
- เปิด Terminal ใน Raspberry Pi ใช้คำสั่ง update และติดตั้ง build-essential, python-dev, python-openssl12sudo apt-get updatesudo apt-get install build-essential python-dev python-openssl
- โคลนไลบรารีของเซ็นเซอร์มาจาก Github ในนี้เราใช้ไลบรารีของ Adafruit1git clone https://github.com/adafruit/Adafruit_Python_DHT.git
- เราจะได้โฟลเดอร์ Adafruit_Python_DHT มา เข้าไปในโฟลเดอร์แล้วติดตั้ง1cd Adafruit_Python_DHT1sudo python setup.py install
ลองทดสอบดู
เมื่อติดตั้งไลบรารีแล้วจะมีโฟลเดอร์ชื่อ examples ลองเข้าไปในโฟลเดอร์
1 | cd examples |
จะพบไฟล์ที่ชื่อ AdafruitDHT.py ลองสั่งงานอ่านค่าดู โดยใช้คำสั่ง
1 | sudo ./AdafruitDHT.py [sensor] [GPIO] |
ตรง [sensor] กับ [gpio] ก็ใส่ค่าตามเซ็นเซอร์ที่เราใช้ กับเลข gpio ที่เราต่อเข้า Raspberry Pi นะ ซึ่งในที่นี้เราใช้เซ็นเซอร์ AM2302 เข้า GPIO 4 ก็จะเป็นตามนี้
1 | sudo ./AdafruitDHT.py 2302 4 |
มีบทความต่อจากนี้ ส่งค่าอุณหภูมิและความชื้นขึ้นทวิตเตอร์ https://playelek.com/raspberry-pi/raspberry-pi-tweet-am2302/
References
- https://github.com/adafruit/Adafruit_Python_DHT
- http://akizukidenshi.com/download/ds/aosong/AM2302.pdf