สวัสดีครับ กลับมากับบทความสอนใช้งานบอร์ด Easy-eIoT HAT สำหรับใช้งานร่วมกับบอร์ด Raspberry Pi กันอีกแล้วซึ่งในบทความที่ผ่านมาเราพูดถึงเรื่องการใช้งานจอสีกันไปเรียบร้อยแล้ว ในบทความนี้เราจะมาทำความรู้จักกันอุปกรณ์ส่วนควบที่ติดมากับบอร์ดที่เหลือกันครับ และจะมาทดลองใช้งานไปด้วยกัน โดยอ้างอิงจาก Pinout diagram ของเรากันก่อนว่าเรามีอุปกรณ์อะไรข้างและเชื่อมต่อกับขา GPIO อะไรบ้าง
จากรูปด้านบนมองจากซ้ายมาขวา เราจะพบว่าบนบอร์ดมี
1. หลอด WS2812B ซึ่งเป็นหลอด LED แบบ RGB ที่สามารถต่อพ่วงกันได้และสามารถส่งคำสั่งไปควบคุมค่าสีของหลอดแต่ละหลอดแยกกันได้อย่างเป็นอิสระ
2. จอภาพ IPS ขนาด 1.54 นิ้วที่ให้ความละเอียดสูงและสีสันที่สดใส
3. เซ็นเซอร์วัดค่าความชื้นและอุณหภูมิเบอร์ HS3004 จาก Renesas ซึ่งเป็นเซ็นเซอร์เกรดอุตสาหกรรม
4. หลอด LED เขียว เหลือง แดง สำหรับแจ้งเตือนสถานะต่างๆ
5. ปุ่มกดขนาด 12 มม.
6. Rotary encoder พร้อมป่มกด
7. Buzzer
ใช้งานเซ็นเซอร์ HS3004
โดยในเริ่มแรกเราจะมาทดลองใช้งานเซ็นเซอร์ HS3004 กันก่อนโดยจาก diagram ด้านบนเราจะพบเซ็นเซอร์นี้ใช้รูปแบบการส่งข้อมูลแบบอนุกรมแบบ I2C ดังนั้นหากเรายังไม่ได้เปิดการใช้งาน I2C บนระบบปฎิบัติการเราก็ต้องไปจัดการให้เรียบร้อยก่อน วิธีที่ง่ายที่สุดคือทำด้วย sudo raspi-config นั่นเอง
เมื่อเลือก enable เรียบร้อยแล้ว เราก็จะลองมา scan ค้นหาว่ามี HS3004 ต่ออยู่ใน I2C bus 1 ของเรารึเปล่าด้วยคำสั่ง sudo i2cdetect -y 1 หากเจออุปกรณ์ที่ตำแหน่ง address 0x44 ก็แปลว่าเราสามารถเริ่มเขียนโปรแกรมเพื่ออ่านค่าได้ในลำดับต่อไป
ซึ่งเดี๋ยวเราจะลงมือเขียนโปรแกรมภาษา python กันเล็กน้อยนะครับเพื่อทดลองติดต่ออ่านค่าจากเซ็นเซอร์กัน ซึ่งผมได้ทำ git repo ไว้ให้เรียบร้อยแล้วไปดาวน์โหลดกันมาก่อนได้ที่ https://github.com/raspberrypi66/easy-eiot หลังจาก clone มาเรียบร้อยแล้วลองเปิดไฟล์ที่ชื่อ readHS300x.py กันดูนะครับ มีโค้ดอยู่เท่านี้เองเราก็สามารถอ่านค่าจากเซ็นเซอร์ของเราได้แล้ว
จากนั้นเราจะทดลองทดสอบสั่ง sudo python3 readHS300x.py เพื่อดูผลลัพธ์ของการทำงานดู และหากใครเจอ error แจ้งว่าไม่รู้จัก smbus2 ให้ติดตั้งด้วยคำสั่ง sudo pip3 install smbus2 ให้เรียบร้อย ใครไม่มี pip3 ให้ติดตั้งเองก่อนด้วยครับ
ควบคุมหลอด LED
จากนั้นเราจะมาต่อด้วยตัวอย่างการใช้งานควบคุมหลอด LED ทั้ง 3 หลอดของเรากันต่อครับ จะอยู่ในไฟล์ที่ชื่อ led_test.py ลองทดสอบการทำงานได้เลย ด้วยคำสั่ง sudo python3 led_test.py จะได้ไฟจราจรกระพริบสลับกันไปเรื่อยๆจนกว่าจะกด Ctrl+c
การบ้านของตอนนี้ก็คือให้ลองเขียนโปรแกรมจากตัวอย่างที่ให้ไว้เพื่อให้ไฟ LED สีเขียวติดเมื่ออุณหภูมิต่ำกว่า 30 องศาเซลเซียส ติดสีเหลืองเมื่ออุณหภูมิอยู่ระหว่าง30-40 องศาเซลเซียส และติดสีแดงเมื่ออุณหภูมิสูงเกินกว่า 40 องศาเซลเซียส
และในตอนหน้าเราจะมาทดลองใช้งานปุ่มกด,rotary encoder และ buzzer กันครับ
resource: https://github.com/raspberrypi66/easy-eiot
https://www.youtube.com/watch?v=7EOicpA7XmU
ใช้ Raspberry Pi 3+ นะครับ
โปรแกรม readHS300x.py มันขึ้น Error No module named ‘smbus2’