[ Raspberry Pi ] วัดอุณหภูมิและความชื้นด้วยเซ็นเซอร์ AM2302

เมื่อตอนอากาศร้อนๆช่วงเมษา นึกขึ้นได้ว่าเออ เรามีเซ็นเซอร์ AM2302/DHT22 นี่นาเอามาลองวัดอุณหภูมิกับความชื้นเล่นๆ ดีกว่า ทำตอนโน้นแล้วโน้ตไว้ แต่เพิ่งได้ฤกษ์เขียนดีๆก็ตอนนี้ เอาละมาเริ่มกันเลย

สิ่งที่ต้องมี

  1. Raspberry Pi ที่เราใช้คือ Raspberry Pi 2 Model B ใส่ SD card ลง OS เรียบร้อยพร้อมใช้ เราลง OS Raspbian นะ
  2. Sensor AM2302/DHT22
  3. ตัวต้านทาน 10k
  4. Breadboard
  5. สาย Jumper Female to Male
  6. Ethernet cable สำหรับต่ออินเตอร์เน็ตให้ Raspberry Pi

การต่อวงจร

เรามาดูกันก่อนเซ็นเซอร์แต่ละขาเป็นอย่างไร ตาม manual ของ AM2302/DHT22

AM2302 Pin Assignment

AM2302 Pin Assignment

จากรูป
Pin 1 VDD – Power (3.3V-5.5V  แนะนำที่ 5V)
Pin 2 SDA – Serial data
Pin 3 NC – ปล่อยว่าง
Pin 4 GND – Ground

 

 

 

ทำการต่อวงจรตามภาพ

dht22_bb

 

ในภาพเราเอา Pin 2 ของเซ็นเซอร์ต่อเข้ากับ GPIO 4 ของ Raspberry Pi

การติดตั้งไลบรารีและการโปรแกรม

  1. เปิด Terminal ใน Raspberry Pi ใช้คำสั่ง update และติดตั้ง  build-essential, python-dev, python-openssl
  2. โคลนไลบรารีของเซ็นเซอร์มาจาก Github ในนี้เราใช้ไลบรารีของ Adafruit
  3. เราจะได้โฟลเดอร์ Adafruit_Python_DHT มา เข้าไปในโฟลเดอร์แล้วติดตั้ง

ลองทดสอบดู

เมื่อติดตั้งไลบรารีแล้วจะมีโฟลเดอร์ชื่อ examples ลองเข้าไปในโฟลเดอร์

จะพบไฟล์ที่ชื่อ AdafruitDHT.py ลองสั่งงานอ่านค่าดู โดยใช้คำสั่ง

ตรง [sensor] กับ [gpio] ก็ใส่ค่าตามเซ็นเซอร์ที่เราใช้ กับเลข gpio ที่เราต่อเข้า Raspberry Pi นะ ซึ่งในที่นี้เราใช้เซ็นเซอร์ AM2302  เข้า GPIO 4 ก็จะเป็นตามนี้

terminalrpi-2302

มีบทความต่อจากนี้ ส่งค่าอุณหภูมิและความชื้นขึ้นทวิตเตอร์ 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