NETPIE Series
Freeboard widgets พื้นฐานที่กล่าวในหนังสือ
“ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266” จะใช้ในการแสดงข้อมูลปัจจุบันให้ผู้ใช้งาน ในกรณีที่ต้องการเก็บข้อมูลเป็นชุดตามฐานเวลาในลักษณะเช่นเดียวกับการใช้ ThingSpeak ในบทที่ 4 จะต้องใช้บริการอีกรูปแบบหนึ่งที่มีให้ใน NETPIE เรียกว่า Feeds ซึ่งจากการทดสอบใช้งานได้ดีแม้จะมีข้อจำกัดการใช้งานอยู่บ้าง เช่นอัตราการเก็บข้อมูลเฉลี่ยประมาณ 15 วินาทีต่อหนึ่งจุด เพื่อการแบ่งปันทรัพยากรสำหรับการใช้งานฟรีโดยผู้ใช้ทั่วไป แต่โดยรวมแล้วเห็นว่าเหมาะสมเพราะสามารถเชื่อมต่อกับ Freeboard ได้
เพื่อความสะดวกในการทดลอง ในบทนี้จะใช้ฮาร์ดแวร์ที่สร้างขึ้นทดแทนบอร์ดอเนกประสงค์ที่ใช้ก่อนหน้านี้ โดยส่วนสำคัญจะเป็นวงจรออปแอมป์รูปที่ 1.4 เช่นเดิม เพียงออกแบบ PCB เพื่อเพิ่มความน่าเชื่อถือและง่ายต่อการสร้างหลายชิ้นเพื่อใช้ในการฝึกอบรม รายละเอียดของบอร์ดนี้สามารถอ่านได้จาก
เพจประกอบหนังสือ รูปที่ 1แสดงการประกอบใช้งานร่วมกับบอร์ด ESPino
รูปที่ 1 การใช้งานบอร์ด LAG3 ร่วมกับ ESPino
การเก็บข้อมูลโดย Feeds
จากตัวอย่างสุดท้ายในบทที่ 5 เราจะเพิ่มส่วนการเก็บข้อมูลโดยใช้ Feeds ตามคู่มือการใช้งาน NETPIE FEED ที่สามารถอ่านได้ออนไลน์ที่ลิงก์นี้
https://www.gitbook.com/book/netpie/6-netpie-feed/details
ล็อกอินเข้าไปที่บัญชี NETPIE ที่สร้างไว้ เลือกเมนู RESOURCES --> FEEDS ขณะนี้ยังว่างเปล่า คลิกเครื่องหมาย + เพื่อสร้าง FEED ดังรูปที่ 2 ในที่นี้ตั้งชื่อว่า myIoFCfeed
รูปที่ 2 การสร้าง FEED ใหม่
เมื่อสร้างแล้วจะใส่ข้อมูลในช่อง DESCRIPTION หรือไม่ก็ได้ แต่จะต้องเพิ่มฟิลด์สำหรับรับข้อมูลให้กับ FEED ดังแสดงในรูปที่ 3 ในตัวอย่างนี้ต้องการเก็บข้อมูล 3 ตัว คือ r, y, u หลังจากสร้างฟิลด์เสร็จจะเป็นดังรูปที่ 4
รูปที่ 3 การเพิ่มฟิลด์รับข้อมูล
รูปที่ 4 หน้าต่าง FEED หลังจากสร้างฟิลด์ r, y, u แล้ว
มาถึงขั้นตอนสำคัญคือทำอย่างไรให้ myIoFCfeed รับข้อมูลที่ส่งจากบอร์ด ESPino ในคู่มือออนไลน์ได้อธิบายถึงวิธีการที่สามารถใช้ได้ คือใช้ API Key ของ FEED หรือตั้งค่าให้ Application เข้าถึง FEED ได้ ซึ่งเราจะใช้วิธีการแบบหลังเนื่องจากมี Appication IoFC อยู่แล้ว เลือกที่แท็บ Permission เพื่อตั้งค่าให้ App ID myIoFC สามารถอ่านเขียนข้อมูล FEED ดังแสดงในรูปที่ 5
รูปที่ 5 การตั้งให้ Application สามารถอ่านเขียนข้อมูลกับ FEED
หลังจากตั้งค่าทางด้าน NETPIE เรียบร้อยแล้ว ต่อมาคือเพิ่มส่วนโปรแกรมทางด้าน ESP8266 ให้ส่งข้อมูล r, y, u ไปยัง myIoFCfeed โดยคำสั่ง microgear.writeFeed() ฟอร์แมตจะต้องเป็นไปตามที่กำหนดไว้ อ้างถึงคู่มือออนไลน์ สมมุติว่าค่าปัจจุบันของ (r, y, u) คือ (1.0, 1.1, 0.9) คำสั่งที่ใช้จะเป็นดังนี้
microgear.writeFeed("myIoFCfeed","r:1.0,y:1.1,u:0.9");
แต่ในความเป็นจริงข้อมูลจะเปลี่ยนอยู่ตลอด จากตัวอย่างเดิม ในฟังก์ชัน loop() เราแปลงค่าตัวเลขในตัวแปรทั้ง 3 เป็นสตริงไว้แล้วโดยคำสั่ง String()
String rstr = String(r);
String ystr = String(y);
String ustr = String(u0lim);
ดังนั้นการสร้างสตริงสำหรับ FEED ทำได้ดังนี้
String ryufeedstr = "r:"+rstr+","+"y:"+ystr+","+"u:"+ustr;
ใช้คำสั่ง
Serial.println(ryufeedstr);
เพื่อตรวจสอบว่าสตริงที่สร้างขึ้นถูกต้องตามฟอร์แมตหรือไม่ เมื่อเปิดหน้าต่าง Serial monitor จะได้ดังในรูปที่ 6 ใช้ Slider บน Freeboard เปลี่ยนค่าคำสั่งอ้างอิงเพื่อดูการเปลี่ยนแปลงของสตริง
รูปที่ 6 สตริงที่ถูกส่งไปยัง NETPIE FEED
รูปที่ 7 แสดงข้อมูล (r,y,u) ที่พล็อตบน myIoFCfeed ซึ่งสามารถปรับที่แท็บ Data Display ให้ตามต้องการ เช่นให้แสดงในช่วงเวลา 10 นาทีที่ผ่านมา โดยมีคาบเวลา 15 วินาที เป็นต้น
รูปที่ 7 ข้อมูลที่แสดงบน myIoFCfeed
การแสดงผล FEED บน Freeboard
นอกจากการแสดงข้อมูลบนหน้าจัดการของ FEED แล้ว เรายังสามารถเชื่อมต่อกับ Freeboard เพื่อดึงข้อมูลจาก FEED ไปแสดงได้ จาก Freeboard เดิมที่สร้างไว้ในบทที่ 5 เพิ่ม Datasource ใหม่ เลือกเป็นชนิด NETPIE Feed ดังในรูปที่ 8
รูปที่ 8 การเพิ่ม NETPIE Feed Datasource
ในหน้าการตั้งค่า Datasource ในรูปที่ 9 กรอกข้อมูลดังนี้
NAME ตั้งชื่อเป็นอะไรก็ได้ ในตัวอย่างนี้ตั้งชื่อว่า RYU Feed
FEED ID ใส่ใหตรงกับชื่อ FEED ที่สร้างไว้ก่อนหน้านี้ คือ myIoFCfeed
API Key คัดลอก Default API Key จากหน้าจัดการ FEED (แท็บ Permission) มาใส่
รูปที่ 9 การตั้งค่า FEED Datasource
สำหรับตัวเลือกที่เหลือตั้งค่าตามความเหมาะสม เมื่อเสร็จแล้วกดปุ่ม [SAVE]
เมื่อสร้าง Datasource แล้ว ขั้นตอนต่อไปคือการสร้าง Widget ที่ดึงข้อมูลมาแสดงผล โดย NETPIE มี Widget ที่ชื่อว่า Feed View ไว้สำหรับใช้งานคู่กับ Feed Datasource การเพิ่ม Widget ใหม่ทำได้เหมือนในบทที่ 5 เพียงแต่เลือกชนิดเป็น Feed View ซึ่งจะได้หน้าต่างสำหรับตั้งค่าดังแสดงในรูปที่ 10
รูปที่ 10 การตั้งค่า FeedView widget
ในการตั้งค่า Feed View ช่องที่สำคัญที่สุดคือ DATA SOURCE โดยจะมีฟอร์แมตดังนี้
datasources[""]["data"]
โดยที่ Feed Datasource Name จะต้องตรงกับชื่อ Datasource ที่ตั้งไว้ก่อนหน้านี้ คือ “RYU Feed” สามารถคลิกตรงปุ่ม + จะมีตัวช่วยเลือกในการกรอกค่า ดังนั้นในตัวอย่างนี้ต้องใส่ว่า
datasources["RYU Feed"]["data"]
สำหรับตัวเลือกอื่นๆ ตั้งค่าตามความเหมาะสม ดูรายละเอียดได้จากคู่มือออนไลน์ เราสามารถปรับความกว้างของกราฟได้โดยคลิกที่รูปเครื่องมือและปรับตัวเลข Column เช่น เพิ่มเป็น 3 รูปที่ 11 แสดง Freeboard หลังเพิ่ม FeedView widget แล้ว
รูปที่ 11 Freeboard หลังเพิ่ม FeedView widget
ติดตามข่าวสารการฝึกอบรมเกี่ยวกับ Embedded Control ได้ที่เพจ
https://www.facebook.com/dewninjathai/
No comments:
Post a Comment