ต่อเนื่องจาก บทความที่แล้ว เราจะทำการเพิ่ม Sensor วัดค่าแสงสว่างเข้าไป เพื่อทำเป็นระบบตรวจจับแสงอาทิตย์ แสงจากดวงอาทิตย์แรก และแสงสุดท้ายของวันจะถูกแจ้งเตือนด้วยข้อความ ผ่าน Line Notify โดยสามารถดูค่า Real-time ของแสงได้ผ่านทาง Internet
Circuit Diagram:
Sensor ทั้ง 2 ตัว เป็นแบบ Digital สื่อสารผ่าน I2C สามารถต่อพ่วงขนานกันได้เลย แล้วทำการเรียกอ่านค่าจากแต่ละตัว ด้วยการอ้างอิงจากหมายเลข Address
Arduino Code:
Node-red Process Flow:
จาก Flow การทำงานด้านบน เราจะรับค่าจาก BH1750 Sensor ผ่านเข้ามาทาง MQTT ด้วย Topic ที่แยกออกมาจาก Sensor AHT21 เพราะเราต้องการเห็นค่าของแสงที่มีการเปลี่ยนแปลงรวดเร็วกว่าค่าอุณหภูมิและความชื้น โดยจากต้นทางที่ Hardware จะส่งออกมาที่ทุกๆ 5 วินาที ส่วน ค่าจาก AHT21 จะส่งออกมาทุกๆ 1 นาที
ค่าที่ได้จะถูกเปลี่ยนโดย Change node เพื่อเก็บค่าลงตัวแปล flow.bh1750-001-light และเปลี่ยนจาก msg.payload.light ไปเป็น msg.payload และใส่ Topic ของข้อความส่งให้ Chart Node นำไป Plot กราฟ พร้อมทั้ง แสดงค่าตัวเลขบน Dashboard ด้วย Hot data
ในส่วนของการตรวจจับ แสงแรก และแสงสุดท้ายของแต่ละวัน เราจะนำค่าแสงที่ได้ มาทำการแยกตรวจสอบด้วย Switch Node
- แสงแรกของวัน ค่า msg.payload >0: ถูกกหนดให้ส่งเพียงแค่ครั้งแรกครั้งเดียวของวันด้วย Trigger Node
- แสงสุดท้ายของวัน ค่า msg.payload <=0: ถูกกหนดให้ส่งเพียงแค่ครั้งแรกครั้งเดียวของวันด้วย Trigger Node
โดยค่าที่ได้จาก Switch Node จะถูกส่งแจ้งเตือนไปยัง Line Notify ด้วยข้อความที่ถูกปรับแต่งแล้วด้วย Template Node
Real-time Dashboard: https://nodered.elec2rak.com/ui/#!/1
Buy Now: Real-time Online WiFi MQTT Light+Temperature+Humidity Sensors