ดิว.นินจา

ดิว.นินจา

Wednesday, July 12, 2017

การใช้งาน NETPIE FEED เบื้องต้น

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

แนะนำหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266”

ปัจจุบันเมื่อกล่าวถึงอุปกรณ์ IoT (Internet of Things) คงมีน้อยคนที่จะไม่รู้จัก ในยุคที่การเข้าถึงอินเทอร์เน็ตเป็นกิจวัตรประจำวันของมนุษย์เ...