IoT ไปกับ Senses Platform ตอนที่ 2 KidBright (Rewrite)
--
KidBright บอร์ดสำหรับการศึกษา
KidBright เป็นบอร์ดสมองกลฝังตัวที่สามารถทำงานตามชุดคำสั่ง โดยผู้เรียนสามารถสร้างชุดคำสั่งผ่านโปรแกรม KidBright IDE บนคอมพิวเตอร์ ที่ใช้งานง่าย เพียงใช้การลากบล็อกคำสั่งมาวางต่อกัน (Drag and Drop) ช่วยลดความกังวลเรื่องการพิมพ์ชุดคำสั่งผิด ชุดคำสั่งที่ถูกสร้างดังกล่าวจะถูกส่งไปที่บอร์ด KidBright ให้ทำงานตามที่โปรแกรมไว้ เช่น รดน้ำต้นไม้ตามระดับความชื้นที่กำหนด หรือเปิด-ปิดไฟตามเวลาที่กำหนด เป็นต้น
KidBright คือบอร์ด IoT ชนิดหนึ่งที่พัฒนาโดย Gravitech เป็นบอร์ดสำหรับการศึกษาโดยเฉพาะ …
… (ข้อมูลปกปิด เอาออกเพื่อป้องกันปัญหา)
บอร์ดนี้สามารถสั่งซื้อได้ที่ https://www.kidbright.io/shop โดยมีขายทั้งบอร์ดและอุปกรณ์เสริม (หรือในคาบเรียน ถ้าเป็นนักเรียนประถม-มัธยมบางที่)
KidBright กับ Arduino IDE
โดยปกติการเขียนโปรแกรมลง KidBright จะใช้ IDE จากเว็บไซต์ Offical ซึ่งเน้นการต่อบล็อกเป็นหลัก หรือ IDE พันธุ์ผสมอย่าง KBIDE ที่สามารถทำได้ทั้งต่อบล็อกหรือเขียนโปรแกรมแบบใช้โค้ดเหมือน Arduino IDE ด้วย
แต่ถ้าอยากจะใช้ Arduino IDE สำหรับการเขียนโปรแกรมลง KidBright ละ ทำได้หรือไม่?
ทำได้
ทำอย่างไร
อ้างอิงจาก https://www.kidbright.info/ เนื้อแท้ของ KidBright (รุ่น 1.3) คือ ESP32 ที่เพิ่มเติมอุปกรณ์ให้เหมาะสมกับการศึกษา ดังนั้น การพัฒนา KidBright โดยใช้ Arduino IDE ทำได้ดังนี้
- เพิ่มข้อมูลบอร์ด ESP32 ถ้ายังไม่มี
- ติดตั้งข้อมูลบอร์ด ESP32
- เลือกชนิดบอร์ดจากเมนู Tool > Board
ขอบคุณข้อมูลจาก http://quantum.engr.tu.ac.th/smf/index.php?topic=48.0
การเพิ่มข้อมูลบอร์ด ESP32
ไปที่ File > Preferences
ที่แท็บ Setting ตรงหัวข้อ Additional Boards Manager URLs คลิกปุ่มท้าย Textbox เพื่อเปิดหน้าต่าง Textbox ใหญ่ขึ้นมา
ตรวจสอบว่าในรายการมี URL
นี้หรือไม่ ถ้ายังไม่มี ให้พิมพ์ลงไปในช่อง Textbox ใหญ่ต่อในบรรทัดต่อไปดังรูป
เมื่อ พิมพ์เสร็จให้คลิกปุ่ม OK เพื่อปิดหน้าต่าง และคลิกปุ่ม OK อีกครั้งเพื่อบันทึกข้อมูลลง IDE จากนั้นให้ปิดโปรแกรม Arduino IDE ให้หมด แล้วเปิด Arduino IDE ขึ้นมาใหม่ เพื่อโหลดข้อมูลบอร์ดที่ติดตั้งใหม่ขึ้นมา
ติดตั้งข้อมูลบอร์ด ESP32
ไปที่ Tool > Board > Board Manager…
ค้น หา Board Manager ชื่อ esp32 โดยพิมพ์ช่องค้นหาว่า esp32 (และค้นหารายการที่ชื่อตรงกัน) ถ้ายังไม่ได้ติดตั้งจะขึ้นปุ่ม Install ให้กดปุ่มเพื่อติดตั้ง
รอจนกว่าจะติดตั้งเสร็จ ระหว่านั้นจะไม่สามารถใช้งาน IDE ได้ชั่วคราว
หลังติดตั้งเสร็จให้ปิดโปรแกรม Arduino IDE ให้หมด แล้วเปิด Arduino IDE ขึ้นมาใหม่ เพื่อโหลดข้อมูลบอร์ดที่ติดตั้งใหม่ขึ้นมา
การเลือกบอร์ดสำหรับ KidBright
ไปที่ Tool > Board เลือกบอร์ด Node32s ซึ่งอยู่ในกลุ่ม ESP32 Arduino
หลังจากที่เลือกบอร์ดได้แล้ว เราก็สามารถพัฒนาโปรแกรมลงบอร์ด KidBright ได้ ถ้าเชื่อมต่อได้ถูกต้องและเลือก Port ถูก
ประยุกต์ Senses Platform กับ KidBright
Dashboard
ลงทะเบียนอุปกรณ์ใหม่ ผ่านหน้า IoT Gauge โดยกำหนดชื่ออุปกรณ์ เป็น KidBrightและชื่อรุ่นเป็น ESP32 แล้วคลิกปุ่ม Register Device เพื่อลงทะเบียนอุปกรณ์
จากนั้นไปที่หน้า Dashboard เลือก Dashboard ที่ต้องการจากปุ่ม Dashboard Manager คลิกปุ่ม Edit Dashboard เพื่อแก้ไข Dashboard
คลิกปุ่ม Guage ที่ด้านล่างเพื่อสร้างเกจ ปรับตำแหน่งของเกจ แล้วคลิกปุ่ม SETTING ที่ด้านบนของเกจ
กำหนด Show data from device เป็นอุปกรณ์ที่เชื่อมต่อกับ KidBright กำหนด Slot Data และกำหนดค่าอื่นๆที่จำเป็น คลิกปุ่ม Save เพื่อบันทึก Widget แล้วคลิกปุ่ม Save edited Dashboard เพื่อบันทึก Widget ทั้งหมด
อย่าลืม Refresh Browser (F5) เพื่อดูการเปลี่ยนแปลง
Library ที่จำเป็น
เปิดโปรแกรม Arduino IDE แล้วตรวจสอบให้ดีว่า ได้ติดตั้ง Library เหล่านี้หรือไม่ ถ้าไม่มี ให้ติดตั้งก่อน Upload
- Senses_wifi_esp32 สำหรับเชื่อมต่ออุปกรณ์กับ Senses Platform บนอุปกรณ์ esp32 (พิมพ์ที่ช่องค้นหาว่า senses)
- Adafruit LED Backpack Library สำหรับแสดงผลบน LED Dot Matrix บน KidBright (พิมพ์ที่ช่องค้นหาว่า backpack)
อัพโหลด Source Code
ดาวน์โหลด Source Code ของผู้เขียนได้ที่
https://github.com/chan1sook/Senses-Platform-with-KidBright
Source Code นี้จะวัดอุณหภูมิจากเซนเซอร์ LM73 ที่ติดมาบนบอร์ด KidBright โดยจะแสดงผลทั้งบนหน้าจอ Dot Matrix และส่งข้อมูลไปยัง Senses Platform อีกด้วย
โค้ดอ่านอุณหภูมิ LM73 มาจาก
http://quantum.engr.tu.ac.th/smf/index.php?topic=48.0
หลังจากเปิด Source Code ขึ้นมาแล้ว ก่อนที่จะอัพโหลดเข้าบอร์ดแก้ไขค่าต่อไปนี้จาก Source Code ก่อน ได้แก่
- ssid (ชื่อ Wifi ที่ต้องการเชื่อม Wifi)
- passw (รหัสผ่าน Wifi)
- userid (User ID ของ Senses Platform)
- key (Key อุปกรณ์จาก KidBright จาก IoT Gauge)
- slot (Slot ส่งข้อมูล กำหนดค่าเป็นตัวเลข)
หลัง จากที่กำหนดค่าแล้ว ให้บันทึก Source Code แล้วทำการ Verify และ Upload โปรแกรมเข้าบอร์ด KidBright โดยต้องเสียบบอร์ดเข้ากับ PC ก่อน (เหมือนกับบอร์ดอื่นๆ) แล้วกำหนด Port COM ให้ถูกต้องก่อน แล้วค่อยกดปุ่ม Upload แล้วรอให้อัพโหลดให้สำเร็จ
หมายเหตุ
ผู้ เขียนยังไม่ได้ทดสอบ Upload บน PC AMD ว่าสามารถอัพโหลดผ่าน Arduino IDE ได้หรือไม่ เพราะ KidBright มีปัญหาการอัพโหลดบน PC AMD เมื่อใช้ “Official” KidBright IDE
ถ้าอัพโหลดสำเร็จ ค่าอุณหภูมิจาก LM73 จะแสดงทั้งบนหน้าจอ LED Dot Matrix และบน Dashboard
Easy to learn but hard to master
ตอนที่ 3 มาแล้ว