Tinker C6 เป็นกล่อง IoT Gateway ใช้ ESP32-C6 เป็นชิปหลักในการทำงาน และมีวงจรต่อร่วมหลายวงจร การใช้งานวงจรต่อร่วมจำเป็นต้องใช้ไลบรารี่เพื่อให้เขียนโค้ดสั่งงานได้ง่ายขึ้น โดยทางผู้ผลิตได้จัดทำไลบรารี่ Tinker C6 ไว้ให้แล้ว (ชื่อไลบรารี่ชื่อเดียวกับบอร์ด)
ติดตั้งผ่าน Library Manager ตามขั้นตอนต่อไปนี้
1) เปิดโปรแกรม Arduino IDE ขึ้นมา จากนั้นกดรูปหนังสือ (1) ค้นหา Tinker C6 (2) กด INSTALL (3)
2) เมื่อติดตั้งเสร็จจะมีข้อความ Successfully installed ขึ้น (ดังรูป)
ก่อนเรียกใช้คำสั่งใด ๆ ของไลบรารี่จำเป็นต้องใช้คำสั่ง include TinkerC6.h ก่อน โดยให้วางไว้ด้านนของโค้ด ดังนี้
คำสั่งที่ไลบรารี่มีให้ มีโครงสร้างดังนี้
TinkerC6.AAA.BBB(....)
AAA เป็นชื่อกลุ่มของคำสั่ง เช่น คำสั่งเกี่ยวข้องกับการจัดการพลังงานใช้ Power, คำสั่งเกี่ยวข้องกับ RS485 ใช้ RS485 เป็นต้น
ฺฺฺBBB เป็นชื่อคำสั่งย่อยในกลุ่มนั้น ๆ
ตัวอย่าง
คำสั่งอ่านค่าแบตเตอรี่ มี 2 คำสั่งให้ใช้งานดังนี้
ใช้อ่านค่า % ของแบตเตอรี่ ให้ค่าเป็นตัวเลขจำนวนเต็ม (int) 0 - 100% โดยคำนวณจากแรงดันของแบตเตอรี่ ณ ขณะนั้น
ใช้อ่านค่าแรงดันของแบตเตอรี่ ให้ค่าเป็นตัวเลขทศนิยม (float) 0V - 4.2V
ตัวอย่างโค้ดอ่านค่า % และแรงดันแบตเตอรี่
ทดสอบอัพโหลดโค้ดลงบอร์ด เปิด Serial Monitor ขึ้นมา จะขึ้นดังรูป (ปรับ 115200 baud)
แรงดันไฟเลี้ยง 12V ช่อง RS485 และ 4-20mA โดยปกติจะไม่มีแรงดันไฟฟ้าออก เพื่อประหยัดพลังงาน การสั่งให้มีแรงดันออกทำได้โดยใช้คำสั่งต่อไปนี้
ใช้เปิดแรงดันไฟเลี้ยง 12V ให้เซ็นเซอร์ทำงาน
ใช้เปิดแรงดันไฟเลี้ยง 12V ให้เซ็นเซอร์ทำงาน
การใช้งานจริง คำสั่งทั้ง 2 ต้องใช้งานคู่กัน โดยหลังจากเปิดไฟเลี้ยงเซ็นเซอร์แล้ว อ่านค่าแล้ว ควรสั่งปิดไฟเลี้ยงทันทีเพื่อประหยัดแบตเตอรี่
โค้ดโปรแกรมตัวอย่างสั่งเปิด-ปิดไฟเลี้ยง 12V มีดังนี้
ผลที่ได้ เมื่อนำมัลติมิเตอร์วัดแรงดัน 12V เทียบ GND จะพบว่ามีแรงดัน 12V สลับ 0V ทุก ๆ 5 วินาที
ESP32-C6 มีโหมดประหยัดพลังงาน 2 โหมด คือ Light Sleep และ Deep Sleep
ใช้สั่งเข้าโหมด Light Sleep ตามเวลาที่กำหนด (หน่วย มิลลิวินาที, 1000 มิลลิวินาที = 1 วินาที) เมื่อเข้าโหมดนี้ CPU และวงจรภายใน ESP32-C6 ที่ไม่เกี่ยวข้องจะถูกปิดการทำงาน หลังจาก Wake-Up โค้ดโปรแกรมจะทำงานต่อจากจุดเดิม
ใช้สั่งเข้าโหมด Deep Sleep ตามเวลาที่กำหนด (หน่วย มิลลิวินาที, 1000 มิลลิวินาที = 1 วินาที) เมื่อเข้าโหมดนี้ CPU และวงจรภายใน ESP32-C6 จะถูกปิดการทำงานทั้งหมด หลังจาก Wake-Up โค้ดโปรแกรมจะเริ่มทำงานใหม่ตั้งแต่ต้น
การใช้งานจริงใช้ผสมกันระหว่าง Light Sleep และ Deep Sleep โดย Light Sleep ใช้เมื่อให้หยุดรอบางอย่างชั่วคราว เช่น รอเซ็นเซอร์พร้อมทำงาน, รอเซ็นเซอร์อ่านค่า เป็นต้น และ Deep Sleep ใช้เมื่อหมดรอบการทำงาน และต้องการการประหยัดพลังงานขั้นสูงสุดในช่วงพักการทำงาน
ตัวอย่างการใช้งาน Light Sleep และ Deep Sleep มีดังนี้
ผลที่ได้คือ Tinker C6 จะเข้าโหมด Light Sleep แล้วเข้า Deep Sleep จากนั้นบอร์ด Tinker C6 จะ Reset โดยมีเหตุผลกำกับว่าเกิดจากการ Wake-Up ของ Deep Sleep
วงจรส่วน RS485 ควรเปิดใช้งานเฉพาะเมื่อต้องการอ่านค่าจากเซ็นเซอร์ หรือส่งค่าไปยังอุปกรณ์อื่นเท่านั้น เพื่อการประหยัดพลังงานสูงสุด
ใช้เปิดวงจรส่วน RS485 ต้องเรียกใช้คำสั่งนี้ก่อนใช้ Serial.write() หรือก่อนใช้คำสั่งในไลบรารี่ ModbusMaster
ใช้ปิดวงจรส่วน RS485
การใช้งานจริง คำสั่งทั้ง 2 ต้องใช้งานคู่กัน โดยหลังจากเปิดใช้วงจรส่วน RS485 แล้ว อ่านค่าแล้ว ควรสั่งปิด RS485 ทันทีเพื่อประหยัดแบตเตอรี่
โค้ดโปรแกรมตัวอย่างส่งข้อมูลไปที่ RS485 มีดังนี้
ผลที่ได้ มีการส่งข้อความ "Hello, RS485 !" ออก RS485 ทุก ๆ 1 วินาที และหากเสียบจั้มเปอร์ LED บนบอร์ด หลอดแอลอีดีสีแดงจะกระพริบ
วงจรส่วน 4-20mA จะถูกเปิดการทำงานเฉพาะช่วงอ่านค่าเท่านั้น และปิดการทำงานอัตโนมัติเมื่ออ่านค่าเสร็จ
ใช้อ่านค่ากระแสไฟฟ้าช่อง 4-20mA ส่งกลับเป็นตัวเลขทศนิยม (float) 0 - 20mA
ตัวอย่างโค้ดอ่านค่าช่อง 4-20mA มีดังนี้
ผลที่ได้ ค่ากระแสไฟฟ้าที่อ่านได้ช่อง 4-20mA จะแสดงขึ้นมาใน Serial Monitor
อุปกรณ์/เซ็นเซอร์ I2C ที่ต่อช่อง I2C / Grove ต้องเปิดใช้งานก่อนจึงจะเริ่มต้นสั่งงาน - อ่านค่าได้ โดยมีคำสั่งดังนี้
ใช้เปิดไฟเลี้ยงเซ็นเซอร์/อุปกรณ์ I2C ที่ต่อช่อง I2C / Grove ต้องเรียกใช้คำสั่งนี้ก่อนใช้ begin(), Wire.beginTransmission() หรือก่อนใช้คำสั่งในไลบรารี่ของเซ็นเซอร์นั้น ๆ
ใช้ปิดไฟเลี้ยงเซ็นเซอร์/อุปกรณ์ I2C ที่ต่อช่อง I2C / Grove
ในบทความนี้แนะนำการใช้งานไลบรารี่ Tinker C6 สั่งเปิด-ปิด RS485, เปิด-ปิด I2C, เปิด-ปิดไฟเลี้ยงเซ็นเซอร์ 12V, การค่า 4-20mA, การเข้าโหมดประหยัดพลังงาน บทความถัดไปจะเจาะลึกการใช้งานเซ็นเซอร์รุ่นต่าง ๆ ต่อไป