มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker

ESP RainMaker คืออะไร

สวัสดีครับวันนี้ทาง Maker[LAB] ของทางบริษัทเมกเกอร์ เอเซีย จะมาแนะนำการทดลองใช้งาน ESP RainMaker โดยเราจะมาเริ่มจากการทำความเข้าใจแนวคิดในการพัฒนากันก่อนเป็นอันดับแรก 

ESP Rainmaker นั้นเป็นแพลตฟอร์มแบบครบวงจรจากทางบริษัท Espressif ที่ได้พัฒนาขึ้นมา(ขณะนี้ยังอยู่ในสถานะเบต้า) ให้ชาวเมกเกอร์ได้ทดลองใช้งานเพื่อให้สามารถสร้างงาน IoT ได้รวดเร็วขึ้นด้วย ESP32-S2 SoC ของ Espressif โดยไม่ต้องยุ่งยากในการจัดการโครงสร้างพื้นฐานใด ๆ โดยมี SDK ในการพัฒนาเฟิร์มแวร์ ,ตัวแอพลิเคชั่นบนสมาร์ทโฟน , บริการบนคลาวด์และยูทิลิตี้การโฮสต์เพื่อลดความซับซ้อนในการพัฒนา โดยปัจจุบันบอร์ดทดลองจะมีให้เลือกหาซื้อได้คือ ESP32-S2-Saola-1 และ Gravitech cucumber 

ภาพรวมการทำงานของระบบ

ESP RainMaker ประกอบด้วยการทำงานหลัก 3. ส่วนคือ

Node

ส่วนตัวฮาร์ดแวร์ที่ติดตั้งเฟิร์มแวร์ที่พัฒนาขึ้นบน SDK ของ ESP RainMaker โดยเราจะมองฮาร์ดแวร์นี้เป็นโหนด 1 โหนดซึ่งในโหนดนั้นจะมี node id  และข้อมูลประจำตัวที่ได้มาจากกระบวนการอ้างสิทธิ์ ทั้งนี้ผู้ใช้สามารถที่จะตั้งชื่อให้กับโหนดด้วยตัวเองได้ และในโหนด 1 โหนดนั้นสามารถที่จะมีอุปกรณ์เสมือนหลาย ๆ ตัวทำงานอยู่ภายในตัวได้

เราสามารถที่จะควบคุมและตรวจสอบค่าของพารามิเตอร์ของอุปกรณ์ได้ เช่น สถานะการปิด/ปิดไฟ , ค่าความสว่าง , ค่าอุณหภูมิ เป็นต้น

โดย ESP RainMaker นั้นจะในส่วนของเฟิร์มแวร์ที่พัฒนาจะพัฒนาภายใต้เฟรมเวิร์ค ES-IDE โดยจะมีส่วนของ ESP RainMaker agent ที่ทำหน้าที่ให้บริการในส่วนของ API เพื่อให้การพัฒนาเป็นไปตามข้อกำหนดของ ESP Rainmaker เช่นการทำ WiFi Provisioning , MQTT client ที่จะทำการเชื่อมต่อไปยังคลาวด์ของ RainMaker

คลาวด์

 คลาวด์ของ ESP RainMaker จะทำหน้าที่ในสองส่วนคือ
1) Node – Cloud communication การสื่อสารทั้งหมดระหว่างโหนดและคลาวด์เกิดขึ้นบน MQTT นั้นใช้เข้ารหัสข้อมูลด้วย TLS  โดยใช้ X.509 certificate ในการรับรองความถูกต้องซึ่งกันและกัน โดยเมื่อโหนดเชื่อมต่ออินเตอร์เน็ตแล้วพบว่าตัวเองยังไม่มี credentials จะทำกระบวนการอ้างสิทธิ์ด้วยต้นเอง (Self Claiming) หลังจากนั้นจะใช้ client key และ certificate ที่ได้ใช้ในการเชื่อมต่อไปยัง MQTT broker โดยมี MQTT Policies กำกับอีกขั้นโดย client id ที่เชื่อมต่อเข้าไปต้องตรงกันกับ node id เท่านั้นถึงจะสามารถ publish/subscribe ได้ และสามารถทำได้ใน topic ที่ขึ้นต้นด้วย node/<node_id>/ เท่านั้น
 

 2) Client – Cloud communication การสื่อสารทั้งหมดระหว่างไคลเอนต์ (สมาร์ทโฟนแอพลิเคชั่น CLI ฯลฯ ) และ ESP Cloud RainMaker นั้นเกิดขึ้นผ่าน HTTP REST API ซึ่งแบ่งเป็นประเภทได้ดังนี้

– การจัดการผู้ใช้ ลงทะเบียน, ล็อคอิน , เปลี่ยนรหัสผ่าน และลืมรหัสผ่าน
– การจัดการโหนด เพิ่มผู้ใช้ , ตรวจสอบสถานะผู้ใช้ , รายการของโหนดที่แมปแล้ว , รับ / ตั้งค่าพารามิเตอร์ของโหนด , ค่าคอนฟิคของโหนด และสถานะการเชื่อมต่อของโหนด
– อื่น ๆ อ่านค่ารายละเอียดของ MQTT Broker  , ทำกระบวนการอ้างสิทธิ์ของโหนด

สมาร์ทโฟนแอพลิเคชั่น

แอพลิเคชั่นในสมาร์ทโฟนนั้นจะทำหน้าที่ 3 ส่วนหลักคือ

– WiFi provisioning จัดการการเชื่อมต่อเครือข่ายผ่าน WiFi ของโหนดที่ต้องการตั้งค่า
– ทำการแมปค่าระหว่างผู้ใช้และโหนด
– ควบคุม/ตรวจสอบค่าพารามิเตอร์จากโหนดที่ทำการแมปแล้ว  โดยทำเมื่อทำการส่งคำร้องขอไปยังคลาวด์แล้วจะได้ค่าพารามิเตอร์จากโหนดกลับมา แอพพลิเคชั่นจะทำการวาดคอมโพเนนต์หน้าจอให้สอดคล้องกับค่าที่ได้รับกลับมา ดังตัวอย่างด้านล่าง

ตัวอย่างโค้ดแสดงการสร้างอุปกรณ์เป็นประเภท Switch
แสดงหน้าจอของแอพที่แสดงผลได้ตรงกันกับค่าพารามิเตอร์ของโหนด
ตัวอย่างโค้ดแสดงการสร้างอุปกรณ์เป็นประเภท Lightbulb พร้อมแอตทริบิวต์
แสดงหน้าจอของแอพที่แสดงผลได้ตรงกันกับค่าพารามิเตอร์และแอตทริบิวต์ของโหนด

สรุปใน 8 บรรทัด

ESP RainMaker เป็นแพลตฟอร์มแบบครบวงจรที่ทำให้เราสามารถพัฒนา IoT โซลูชั่นได้อย่างรวดเร็ว โดยเพื่อให้ง่ายต่อความเข้าใจเราจะแบ่งส่วนของการทำงานเป็น 3 ส่วนคือ

– Node ตอนนี้ต้องใช้ hardware เป็น ESP32-S2 เนื่องจากรองรับการเข้ารหัสที่มีมากกว่า ESP32 พัฒนาด้วย RainMaker  Agent SDK ที่ทำงานบน ESP-IDF อีกทีโดยเราสามารถเลือก expose parameter ที่ต้องควบคุม/ตรวจสอบได้ และ sync ขึ้นคลาวด์ ผ่าน MQTT
– Cloud ทำหน้าที่เป็นตัวกลางระหว่าง Node และ Client โดยผู้ใช้ไม่ต้องเข้าไปตั้งค่าใดๆ
– Client มีทั้งเป็นสมาร์ทโฟนแอพ , CLI และ Python library ถ้าเป็นแอพจัดการเรื่องจะทำการดึงค่าต่างๆผ่าน REST API และแสดงผล UI เปลี่ยนไปตามพารามิเตอร์ที่ดึงมาโดยอัตโนมัติ และเรื่องการตั้งค่า WiFi ของโหนดและการแมปผู้ใช้เข้ากับโหนดที่ต้องการ

 

เนื่องจากเนื้อหาค่อนข้างเยอะ เพื่อความสะดวกของผู้อ่านเลยจะขอแบ่งเป็น 3 ส่วนคือ
1)  บทนำ
2) การติดตั้ง ESP-IDF และ
RainMaker Agent
3) ทดลองเขียนโค้ดและใช้งานแอพ ESP RainMaker

3 thoughts on “มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 1 ทำความรู้จักกับ ESP RainMaker”

  1. Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 2 ติดตั้ง ESP-IDF และ ESP RainMaker Agent SDK - Maker Asia

  2. Pingback: มาทดลองติดตั้งและใช้งาน ESP RainMaker บน ESP32-S2 กันเถอะ #ตอนที่ 3 ทดลองสร้าง Node และใช้งาน Mobile App - Maker Asia

  3. Pingback: วิธีตั้งค่าเพื่อใช้ ESP32 บน ESP RainMaker - Maker Asia

Leave a Comment

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

Scroll to Top