IoT ไปกับ Senses Platform ตอนที่ 2 KidBright (Rewrite)

สารบัญ

KidBright บอร์ดสำหรับการศึกษา

KidBright เป็นบอร์ดสมองกลฝังตัวที่สามารถทำงานตามชุดคำสั่ง โดยผู้เรียนสามารถสร้างชุดคำสั่งผ่านโปรแกรม KidBright IDE บนคอมพิวเตอร์ ที่ใช้งานง่าย เพียงใช้การลากบล็อกคำสั่งมาวางต่อกัน (Drag and Drop) ช่วยลดความกังวลเรื่องการพิมพ์ชุดคำสั่งผิด ชุดคำสั่งที่ถูกสร้างดังกล่าวจะถูกส่งไปที่บอร์ด KidBright ให้ทำงานตามที่โปรแกรมไว้ เช่น รดน้ำต้นไม้ตามระดับความชื้นที่กำหนด หรือเปิด-ปิดไฟตามเวลาที่กำหนด เป็นต้น

KidBright Board
บอร์ด KidBright

KidBright คือบอร์ด IoT ชนิดหนึ่งที่พัฒนาโดย Gravitech เป็นบอร์ดสำหรับการศึกษาโดยเฉพาะ …

… (ข้อมูลปกปิด เอาออกเพื่อป้องกันปัญหา)

บอร์ดนี้สามารถสั่งซื้อได้ที่ https://www.kidbright.io/shop โดยมีขายทั้งบอร์ดและอุปกรณ์เสริม (หรือในคาบเรียน ถ้าเป็นนักเรียนประถม-มัธยมบางที่)

KidBright กับ Arduino IDE

โดยปกติการเขียนโปรแกรมลง KidBright จะใช้ IDE จากเว็บไซต์ Offical ซึ่งเน้นการต่อบล็อกเป็นหลัก หรือ IDE พันธุ์ผสมอย่าง KBIDE ที่สามารถทำได้ทั้งต่อบล็อกหรือเขียนโปรแกรมแบบใช้โค้ดเหมือน Arduino IDE ด้วย

“Official” KidBright IDE
“Official” KidBright IDE
KBIDE
KBIDE

แต่ถ้าอยากจะใช้ Arduino IDE สำหรับการเขียนโปรแกรมลง KidBright ละ ทำได้หรือไม่?

ทำได้

ทำอย่างไร

อ้างอิงจาก https://www.kidbright.info/ เนื้อแท้ของ KidBright (รุ่น 1.3) คือ ESP32 ที่เพิ่มเติมอุปกรณ์ให้เหมาะสมกับการศึกษา ดังนั้น การพัฒนา KidBright โดยใช้ Arduino IDE ทำได้ดังนี้

  1. เพิ่มข้อมูลบอร์ด ESP32 ถ้ายังไม่มี
  2. ติดตั้งข้อมูลบอร์ด ESP32
  3. เลือกชนิดบอร์ดจากเมนู Tool > Board

ขอบคุณข้อมูลจาก http://quantum.engr.tu.ac.th/smf/index.php?topic=48.0

การเพิ่มข้อมูลบอร์ด ESP32

ไปที่ File > Preferences

เมนู File > Preferences
File > Preferences

ที่แท็บ Setting ตรงหัวข้อ Additional Boards Manager URLs คลิกปุ่มท้าย Textbox เพื่อเปิดหน้าต่าง Textbox ใหญ่ขึ้นมา

ปุ่มท้าย Textbox หน้าหัวข้อ Additional Boards Manager URLs
คลิกปุ่มนี้

ตรวจสอบว่าในรายการมี URL

https://dl.espressif.com/dl/package_esp32_index.json

นี้หรือไม่ ถ้ายังไม่มี ให้พิมพ์ลงไปในช่อง Textbox ใหญ่ต่อในบรรทัดต่อไปดังรูป

Board Manager URLs Textbox
พิมพ์ง่ายกว่าแบบคอมม่าไหม?

เมื่อ พิมพ์เสร็จให้คลิกปุ่ม OK เพื่อปิดหน้าต่าง และคลิกปุ่ม OK อีกครั้งเพื่อบันทึกข้อมูลลง IDE จากนั้นให้ปิดโปรแกรม Arduino IDE ให้หมด แล้วเปิด Arduino IDE ขึ้นมาใหม่ เพื่อโหลดข้อมูลบอร์ดที่ติดตั้งใหม่ขึ้นมา

ติดตั้งข้อมูลบอร์ด ESP32

ไปที่ Tool > Board > Board Manager…

เมนู Tool > Board > Board Manager…
Tool > Board > Board Manager…

ค้น หา Board Manager ชื่อ esp32 โดยพิมพ์ช่องค้นหาว่า esp32 (และค้นหารายการที่ชื่อตรงกัน) ถ้ายังไม่ได้ติดตั้งจะขึ้นปุ่ม Install ให้กดปุ่มเพื่อติดตั้ง

esp32 Board Manager
ค้นหาแล้วก็มีอันเดียวนั่นแหละ

รอจนกว่าจะติดตั้งเสร็จ ระหว่านั้นจะไม่สามารถใช้งาน IDE ได้ชั่วคราว
หลังติดตั้งเสร็จให้ปิดโปรแกรม Arduino IDE ให้หมด แล้วเปิด Arduino IDE ขึ้นมาใหม่ เพื่อโหลดข้อมูลบอร์ดที่ติดตั้งใหม่ขึ้นมา

การเลือกบอร์ดสำหรับ KidBright

ไปที่ Tool > Board เลือกบอร์ด Node32s ซึ่งอยู่ในกลุ่ม ESP32 Arduino

Tool > Board > Node32s

หลังจากที่เลือกบอร์ดได้แล้ว เราก็สามารถพัฒนาโปรแกรมลงบอร์ด KidBright ได้ ถ้าเชื่อมต่อได้ถูกต้องและเลือก Port ถูก

ประยุกต์ Senses Platform กับ KidBright

Dashboard

ลงทะเบียนอุปกรณ์ใหม่ ผ่านหน้า IoT Gauge โดยกำหนดชื่ออุปกรณ์ เป็น KidBrightและชื่อรุ่นเป็น ESP32 แล้วคลิกปุ่ม Register Device เพื่อลงทะเบียนอุปกรณ์

IoT Garage
IoT Garage

จากนั้นไปที่หน้า Dashboard เลือก Dashboard ที่ต้องการจากปุ่ม Dashboard Manager คลิกปุ่ม Edit Dashboard เพื่อแก้ไข Dashboard

คลิกปุ่ม Guage ที่ด้านล่างเพื่อสร้างเกจ ปรับตำแหน่งของเกจ แล้วคลิกปุ่ม SETTING ที่ด้านบนของเกจ

Guage ใหม่

กำหนด Show data from device เป็นอุปกรณ์ที่เชื่อมต่อกับ KidBright กำหนด Slot Data และกำหนดค่าอื่นๆที่จำเป็น คลิกปุ่ม Save เพื่อบันทึก Widget แล้วคลิกปุ่ม Save edited Dashboard เพื่อบันทึก Widget ทั้งหมด

Edit Guage for KidBright IoT
แก้ไข Setting ยังต้องระวังเหมือนเดิม

อย่าลืม Refresh Browser (F5) เพื่อดูการเปลี่ยนแปลง

Dashboard with Guage Widgets
ผลลัพธ์ที่ได้

Library ที่จำเป็น

เปิดโปรแกรม Arduino IDE แล้วตรวจสอบให้ดีว่า ได้ติดตั้ง Library เหล่านี้หรือไม่ ถ้าไม่มี ให้ติดตั้งก่อน Upload

  • Senses_wifi_esp32 สำหรับเชื่อมต่ออุปกรณ์กับ Senses Platform บนอุปกรณ์ esp32 (พิมพ์ที่ช่องค้นหาว่า senses)
  • Adafruit LED Backpack Library สำหรับแสดงผลบน LED Dot Matrix บน KidBright (พิมพ์ที่ช่องค้นหาว่า backpack)
Library Senses_wifi_esp32
Library Senses_wifi_esp32
Library Adafruit LED Backpack Library
Library Adafruit LED Backpack Library

อัพโหลด 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 ส่งข้อมูล กำหนดค่าเป็นตัวเลข)
Edit Code
แก้ไขตรงวงสีแดงนี้

หลัง จากที่กำหนดค่าแล้ว ให้บันทึก Source Code แล้วทำการ Verify และ Upload โปรแกรมเข้าบอร์ด KidBright โดยต้องเสียบบอร์ดเข้ากับ PC ก่อน (เหมือนกับบอร์ดอื่นๆ) แล้วกำหนด Port COM ให้ถูกต้องก่อน แล้วค่อยกดปุ่ม Upload แล้วรอให้อัพโหลดให้สำเร็จ

Upload Code to KidBright
Upload Code to KidBright

หมายเหตุ
ผู้ เขียนยังไม่ได้ทดสอบ Upload บน PC AMD ว่าสามารถอัพโหลดผ่าน Arduino IDE ได้หรือไม่ เพราะ KidBright มีปัญหาการอัพโหลดบน PC AMD เมื่อใช้ “Official” KidBright IDE

ถ้าอัพโหลดสำเร็จ ค่าอุณหภูมิจาก LM73 จะแสดงทั้งบนหน้าจอ LED Dot Matrix และบน Dashboard

Senses Platform with KidBright finished!
ภาพดูมัวๆ ไปหน่อย แต่ก็เห็นแล้วใช่ไหม?

Easy to learn but hard to master

ตอนที่ 3 มาแล้ว

--

--

ณัฐวัฒน์ จันทร์สุข

สนใจในเทคโนโลยี และเกม ชอบเขียนบทความสไตล์เกรียนๆ