KidBright & Senses IoT Platform [ตอนที่ 8: Temperature Sensor]
LM73 หรือ Temperature Sensor เป็นอุปกรณ์อินพุต ทำหน้าที่แปลงอุณหภูมิเป็นสัญญาณไฟฟ้า ในชีวิตประจำวันการนำเซ็นเซอร์ลักษณะนี้มาใช้งานนั้น มักนิยมนำมาใช้เพื่อสั่งงานเปิดปิดอุปกรณ์ไฟฟ้า ตามที่ได้ตั้งค่าหรือตั้งโปรแกรมเอาไว้ เช่น สั่งเปิดปิดการทำงานของแอร์ สั่งเปิดปิดการทำงานของมอเตอร์เป็นต้น
LM73 นั้นได้ถูกออกแบบให้ติดมากับบอร์ด KidBright โดยสื่อสารผ่านพอร์ต i2c เราสามารถเขียนโปรแกรมติดต่อ อ่านค่าอุณหภูมิจากเซ็นเซอร์ตัวนี้ได้เลย โดยไม่ต้องทำการต่อสายวงจรเพิ่มเติม
เขียนโปรแกรมติดต่อกับ LM73 (Temperature) และ LED MATRIX
จุดประสงค์ของการทดลอง
1. อ่านค่าอุณหภูมิจากเซ็นเซอร์ LM73 ได้
2. แสดงค่าอุณหภูมิผ่าน LED MATRIX ได้
อธิบายโค้ด
บรรทัดที่ 2–4 เรียกใช้ไลบราลี่ภายนอก
บรรทัดที่ 6 กำหนดหมายเลขแอดเดรสในการสื่อสารกับ LM73
บรรทัดที่ 7 กำหนดค่าหน่วงเวลาในการแสดงผลออกสู่ LED MATRIX
บรรทัดที่ 9–10 กำหนดตัวแปรมารับค่าที่อ่านได้จาก LM3
บรรทัดที่ 12 กำหนดตัวแปร matrix มาทำหน้าที่สั่งงาน และ แสดงผลออกสู่ LED MATRIX
บรรทัดที่ 14 ประกาศฟังก์ชั่น readTemperature() เพื่อทำหน้าที่อ่านค่าอุณหภูมิ
บรรทัดที่ 16 ฟังก์ชั่นตั้งค่าทำงาน
บรรทัดที่ 17 กำหนดความเร็วในรับส่งข้อมูลระหว่างบอร์ด KidBright และ คอมพิวเตอร์
บรรทัดที่ 18 กำหนดพิน GPIO 4,5 เพื่อใช้สื่อสารระหว่าง ESP32 และ LM73
บรรทัดที่ 20 กำหนดหมายเลขแอดเดรสในการสื่อสารกับ LED MATRIX
บรรทัดที่ 21–24 ตั้งค่าการแสดงผลออกสู่ LED MATRIX
บรรทัดที่ 27 ฟังก์ชั่นการทำงานซ้ำ
บรรทัดที่ 29 กำหนดค่าว่างให้กับตัวแปร response
บรรทัดที่ 30 นำค่าอุณหภูมิที่อ่านได้มาเก็บไว้ที่ตัวแปร data
บรรทัดที่ 33 สั่งเคลียร์การแสดงผลบน LED MATRIX
บรรทัดที่ 34 กำหนดตำแหน่งในการแสดงผลบน LED MATRIX
บรรทัดที่ 35 แปลงค่าอุณหภูมิจาก float เป็น int และ แปลงเป็น String
บรรทัดที่ 36 แสดงค่าอุณหภูมิออกสู่หน้าจอ (Serial Monitor)
บรรทัดที่ 37–38 แสดงค่าอุณหภูมิบน LED MATRIX
บรรทัดที่ 40 หน่วงเวลา 10 วินาที
บรรทัดที่ 44–62 ฟังก์ชั่น readTemperature ทำหน้าที่อ่านอุณหภูมิจาก LM73
แล้วส่งค่ากลับไปให้กับตัวแปร data ผ่านคำสั่ง return temp;