ดิว.นินจา

ดิว.นินจา
Showing posts with label NETPIE. Show all posts
Showing posts with label NETPIE. Show all posts

Thursday, March 26, 2020

NETPIE 2020 : การอัพเดท Freeboard โดยไม่ผ่าน Shadow

ในตัวอย่างจากเว็บและ workshop ของ NETPIE จะใช้วิธีการเขียนข้อมูลลงบน Device Shadow ก่อน และใช้ข้อมูลนั้นในการแสดงผลหรืออัพเดทค่าบน Freeboard widgets ซึ่งเป็นวิธีการที่เหมาะสมหากต้องการที่จะเก็บข้อมูลนั้นในแบบอนุกรมเวลาเพื่อนำไปวิเคราะห์ต่อไป แต่สำหรับข้อมูลบางประเภทอาจไม่มีความจำเป็นที่จะเก็บค่าไว้ เช่นสถานะหรือพารามิเตอร์ที่ไม่มีความสำคัญอื่นใดนอกจกาการอัพเดท Freeboard widgets การเขียนค่าเหล่านี้ลงบน Shadow ทำให้ยุ่งยากและเปลืองทรัพยากร ตัวอย่างเช่นผู้ใช้ปรับค่าตัวควบคุม PID แบบบลองผิดลองถูก เราไม่อยากบันทึกค่าเหล่านี้ลงบน Shadow ทั้งหมดจนกว่าจะได้ค่าที่เหมาะสมแล้ว นอกจากนั้นในกรณีที่อัพเดทตัวแปรหลายตัว การสร้างข้อมูลตามรูปแบบ JSON จะค่อนข้างซับซ้อนและมีโอกาสผิดได้ง่าย ชื่อของตัวแปรไม่มีความสำคัญในการอัพเดทเมื่อสามารถแยกโดยตำแหน่งของค่าในสตริง

Saturday, February 29, 2020

เปลี่ยนผ่านจาก NETPIE 2015 สู่ NETPIE 2020

ผู้ติดตามบล็อกนี้คงทราบดีแล้วว่า NETPIE คือชื่อของบริการคลาวด์สำหรับอุปกรณ์ไอโอทีที่พัฒนาโดยศูนย์อิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC) และปัจจุบันตั้งบริษัท NEXPIE เพื่อสนับสนุนการใช้ในงานอุตสาหกรรมและเชิงพานิชย์ เมื่อวันที่ 20/02/2020 ที่ผ่านมา ได้เปิดตัวแพลตฟอร์มใหม่ในชื่อ NETPIE 2020 ที่แก้ไขข้อจำกัดของเวอร์ชันก่อน (อ้างถึงโดยชื่อ NETPIE 2015) หลายประการ เช่นยกเลิกการใช้ไลบรารี Microgear ที่ยึดติดกับภาษาและฮาร์แวร์ทำให้ขาดความยืดหยุ่น ปรับปรุงให้รองรับโดยฮาร์ดแวร์และภาษาการโปรแกรมหลากหลายมากขึ้น อย่างไรก็ตามการเปลี่ยนแปลงโครงสร้างของ NETPIE 2020 จากเดิมทำให้โปรแกรมเดิมที่ใช้งานอยู่ไม่สามารถใช้ได้และต้องมีการแก้ไข บทความนี้เป็นแนวทางสำหรับผู้พัฒนาบน NETPIE 2015 ที่ต้องการเปลี่ยนผ่านสู่ NETPIE 2020 โดยตั้งสมมุติฐานว่าผู้อ่านมีประสบการณ์หรือความเข้าใจโปรแกรมและการทำงานของเวอร์ชันเก่าอยู่ก่อนแล้ว สำหรับท่านที่ไม่เคยใช้งาน NETPIE มาก่อนเลยแนะนำให้เริ่มต้นจากคู่มือการใช้งานที่ลิงก์ NETPIE 2020 Documentation

Saturday, January 11, 2020

NETPIE microgear : แนวทางการพัฒนาอุปกรณ์ IoT สำหรับผู้ใช้ทั่วไป

เมื่อผู้พัฒนามีประสบการณ์กับ NETPIE ถึงระดับหนึ่งจะเริ่มรู้สึกอยากสร้างอุปกรณ์ IoT ให้กับคนอื่นได้ใช้งาน โดยอาจจะเป็นบุคคลในครอบครัว เพื่อนร่วมงาน หรือทำเป็นผลิตภัณฑ์ ซึ่งแน่นอนเราไม่ต้องการที่จะเปิดเผยข้อมูลในบัญชี NETPIE ให้กับผู้ใช้คนอื่นเนื่องจากเครดิตที่มีจำกัดและเหตุผลอื่นๆ ผู้เขียนมักได้รับคำถามเกี่ยวกับการสร้างหน้า Freeboard บนโฮสต์หรือเซิร์ฟเวอร์ของตัวเอง ซึ่งถึงแม้จะทำได้แต่มีข้อเสียคือบุคคลอื่นที่รู้วิธีก็สามารถดึงเอาข้อมูลสำคัญเช่น APPID, key, secret ไปได้ ดังนั้นหากเรายังเขียนโปรแกรมสำหรับอุปกรณ์ IoT โดยใส่ข้อมูล NETPIE ไว้ส่วนบนของโปรแกรมอย่างถาวร การส่งต่ออุปกรณ์ไปให้ผู้อื่นใช้งานอย่างง่ายคือลบข้อมูลส่วนนั้นและให้ source code ไปพร้อมฮาร์ดแวร์ ซึ่งก็จะเกิดปัญหาอีกคือผู้ใช้ต้องรู้วิธีที่จะติดตั้ง Arduino IDE และเครื่องมือทั้งหมดที่ใช้ในโปรแกรมเพื่อคอมไพล์และโหลดลงบนอุปกรณ์ นอกจากนั้น source code อาจมีส่วนที่เป็นทรัพย์สินทางปัญญาที่ผู้พัฒนาไม่อยากเปิดเผยก็ได้

Saturday, June 22, 2019

NETPIE IoT : วิเคราะห์ผลตอบสนองความถี่โดยไลบรารี arduinoFFT

อธิบายในภาพรวม FFT (Fast Fourier Transform) คืออัลกอริทึมในการแปลงสัญญาณในโดเมนเวลาเป็นผลตอบสนองความถี่ โดยมีหลักการพื้นฐานเช่นเดียวการแปลงฟูเรียร์ในระบบเวลาต่อเนื่อง พัฒนาจาก DFT (Discrete Fourier Transform) ให้ใช้เวลาการคำนวณน้อยลง ช่วยให้สามารถใช้คอมพิวเตอร์ช่วยในการวิเคราะห์องค์ประกอบด้านความถี่ของสัญญาณหรือระบบที่ต้องการได้อย่างมีประสิทธิภาพ ปัจจุบันผู้เริ่มต้นไม่จำเป็นต้องเขียนอัลกอริทึม FFT ด้วยตัวเองเพราะสามารถหาไลบรารีพร้อมใช้งานในซอพต์แวร์ ภาษาคอมพิวเตอร์ และแพลตฟอร์มที่ใช้กันทั่วไป ในบทความนี้จะนำเสนอการใช้ไลบรารี arduinoFFT สำหรับแพลตฟอร์ม Arduino และ ESP ในการพัฒนาอุปกรณ์ IoT สำหรับวิเคราะห์ผลตอบสนองความถี่ แสดงผลและสั่งงานโดย NETPIE รายละเอียดของเนื้อหาอยู่ในไฟล์ pdf ที่เป็นส่วนหนึ่งของหนังสือ "พัฒนาไอโอทีโดยเน็ตพาย"(อยู่ระหว่างดำเนินการ) รวมถึงโปรแกรมที่ดาวน์โหลดได้จากลิงก์ด้านล่างของบทความ

Sunday, June 2, 2019

microgear.begin(5555) : สนุกกับการส่งค่าความเร่งและไจโรผ่าน NB-IoT และ NETPIE

เชื่อว่าผู้อ่านส่วนใหญ่ได้ติดตามข่าวเกี่ยวกับผลิตภัณฑ์ NB-IoT ในรูปแบบของ Arduino Shields จากค่าย AIS และ True และหลายท่านคงได้หาอุปกรณ์มาทดลองแล้ว โดยในปัจจุบันชิลด์ออกแบบมาสำหรับใช้งานกับบอร์ด Arduino UNO และ MEGA ทางทีม NETPIE ได้พัฒนาไลบรารี microgear สำหรับ NB-IoT โดยเฉพาะ ที่ใช้ได้กับผลิตภัณฑ์จากทั้งสองบริษัท โดยสร้างบทความตัวอย่างการใช้งานพื้นฐานในการอ่านค่าจากเซนเซอร์ DHT เพื่อแสดงผลบน Freeboard เมื่อติดตั้งไลบรารีตามคำแนะนำในบทความ ผู้อ่านสามารถรันโปรแกรมที่มีให้บนเว็บได้อย่างไม่มีปัญหา microgear.begin(5555); เป็นคำสั่งเริ่มต้นทำงานที่น่ารื่นเริงบันเทิงใจอย่างมากในความคิดของผู้เขียน ซึ่งทุกคนน่าจะหัวเราะอย่างเป็นสุขเมื่อเห็นการแสดงผลข้อมูลบนหน้า Freeboard คงเหมือนเป็นธรรมเนียมไปแล้วว่าตัวอย่างแรกในการเรียนรู้อุปกรณ์ใหม่ด้าน IoT คือการวัดอุณหภูมิและความชื้น ดังนั้นผู้เขียนจะพยายามนำเสนอการใช้งานทีแตกต่างออกไป ในบทความนี้เราจะศึกษาการอ่านค่าจากเซนเซอร์วัดความเร่งและความเร็วเชิงมุม (ไจโร) และส่งข้อมูลให้ NETPIE Freeboard และ Feed ผ่าน NB-IoT

Saturday, April 20, 2019

การใช้งาน EEPROM บน NodeMCU ร่วมกับ NETPIE

โพสต์นี้กล่าวถึงเนื้อหาที่เพิ่มไปในหนังสือ "พัฒนาไอโอทีโดย ESP8266 และเน็ตพาย" ที่มอบให้กับผู้ฝึกอบรม เกี่ยวกับการใช้ไลบรารี EEPROM เขียนข้อมูล WiFi และ NETPIE ลงบนหน่วยความจำ Flash ของ NodeMCU โดยไม่ต้องแก้ไขโปรแกรมเพื่อคอมไพล์และโหลดใหม่ ซึ่งจะมีประโยชน์กรณีที่พัฒนาอุปกรณ์ IoT ให้บุคคลทั่วไปใช้งาน แต่ไม่ต้องการมอบ source code ไปด้วย หรือว่าให้กับผู้ใช้ที่ไม่มีความชำนาญในการเขียนโปรแกรม ซึ่งอาจพลาดไปแก้ไขส่วนอื่นๆ ทำให้อุปกรณ์ทำงานผิดพลาดและยากต่อการบำรุงรักษา วิธีการนี้จะมีคำสั่งให้ผู้ใช้งานสามารถป้อนข้อมูล ssid, password, APPID, KEY, SECRET, ALIAS ทางพอร์ตอนุกรมและเซฟลงบน EEPROM ซึ่งสามารถจะเปลี่ยนแปลงใหม่ได้ทุกเวลาตามที่ผู้ใช้งานกำหนด เพื่อความง่ายในการทดลอง โปรแกรมที่ใช้ประกอบการศึกษานี้จะไม่ต้องการฮาร์ดแวร์อื่นใดนอกจากบอร์ด NodeMCU V2 สิ่งที่ผู้อ่านต้องเตรียมไว้คือข้อมูล ssid, password จาก WiFi router ที่ใช้ และข้อมูล APPID, KEY, SECRET จากบัญชี NETPIE ของท่าน

Friday, January 11, 2019

NETPIE Freeboard : วิธีแยกข้อมูลจาก widgets ควบคุมโดยกำหนดชื่อ topic

ปัญหาหนึ่งที่ผู้เริ่มต้นพัฒนา NETPIE Freeboard ประสบเมื่อเพิ่ม widget สำหรับควบคุมฮาร์ดแวร์จำนวนมากกว่า 1 ตัวขึ้นไป คือต้องการให้อุปกรณ์ทางด้านรับสามารถแยกได้ว่าข้อมูลถูกส่งมาจาก widget ตัวใด เพื่อที่จะตอบสนองต่อคำสั่งนั้นได้อย่างถูกต้อง ทางแก้ที่ผู้เขียนเคยนำเสนอและใช้ได้ดีคือการเพิ่มสตริงส่วนที่เป็นคำสั่งเข้าไปในข้อมูลที่ chat มาจาก widget แต่ละตัว และสร้างฟังก์ชันแปลคำสั่งทางด้านรับ อย่างไรก็ตามสำหรับ IoT ขนาดเล็กที่มี widget ควบคุมเพียง 2-3 ตัว การเขียนฟังก์ชันแปลคำสั่งอาจจะเกินความจำเป็น ดังนั้นในบทความนี้จะนำเสนอทางเลือกอีกวิธีหนึ่ง คือทางด้านส่งใช้ฟังก์ชัน microgear.publish() โดยระบุ topic ที่แตกต่างกัน ทำให้ทางด้านรับสามารถแยกข้อมูลและทำงานตาม topic ที่ตั้งไว้

Wednesday, December 26, 2018

แนะนำหนังสือ "ระบบควบคุมและอินเทอร์เน็ตเชื่อมต่อสรรพสิ่ง"

ปัจจุบันอินเทอร์เน็ตเข้ามามีบทบาทอย่างมากในชีวิตประจำวันของมนุษย์ การพัฒนาอุปกรณ์ต่างๆ ให้สามารถเชื่อมต่อกับเครือข่ายได้จะช่วยให้สามารถทำงานตอบสนองความต้องการของผู้ใช้ได้อย่างชาญฉลาด เช่นการสั่งงานและแสดงผลจากระยะไกล การตรวจสอบสถานะสินค้าโดยอัตโนมัติ การติดตามตำแหน่งผ่านระบบ GPS เป็นต้น ได้มีการบัญญัติศัพท์ที่ใช้เรียกอุปกรณ์เหล่านี้ว่า Internet of Things (IoT) หรือเรียกชื่อภาษาไทยว่า “อินเทอร์เน็ตเชื่อมต่อสรรพสิ่ง” ซึ่งใช้ในชื่อหนังสือ โดยจะใช้ตัวย่อ IoT เป็นหลักเพื่อความกระชับ

Friday, December 21, 2018

สร้างอุปกรณ์ไอโอทีกำเนิดสัญญาณบน ESP32 และ NETPIE

อุปกรณ์ไอโอทีกำเนิดสัญญาณ หรือที่ผู้เขียนเรียกย่อว่า SGIoT (Signal Generator Internet of Thing) อาจจะเป็นสิ่งประดิษฐ์ใหม่ที่ยังไม่ค่อยมีใครพูดถึงนัก เนื่องจากมิใช่เป็นอุปกรณ์ที่ใช้งานทั่วไปในชีวิตประจำวัน แต่หากท่านศึกษาด้านวิศวกรรมศาสตร์หรือวิทยาศาสตร์ โดยเฉพาะสาขาที่เกี่ยวข้องกับไฟฟ้า ระบบควบคุม ฟิสิกส์ คงจะเคยได้ใช้งานเครื่องกำเนิดสัญญาณในห้องปฏิบัติการเพื่อวิเคราะห์วงจร ศึกษาผลตอบสนองความถี่ หรือกระตุ้นพลวัตของระบบ เครื่องมือที่ใช้ส่วนใหญ่มีคุณสมบัติหลักคือความเที่ยงตรงและความเชื่อถือได้สูง มีฟังก์ชันช่วยให้ใช้งานง่าย กำเนิดสัญญาณได้หลายชนิดและได้ถึงความถี่สูงมากๆ แต่อาจไม่มีความจำเป็นต้องเชื่อมต่ออินเทอร์เน็ต ที่สำคัญคือราคาจะสูงตามคุณภาพ การที่จะลงทุนซื้อมาสักเครื่องใช้ทดสอบต้นแบบฮาร์ดแวร์ที่สร้างขึ้นเป็นงานอดิเรกอาจจะทำให้ถูกค้อนจาก CEO ที่บ้านได้ ดังนั้นในบทความนี้จะนำเสนอการสร้างอุปกรณ์กำเนิดสัญญาณบน ESP32 ที่สั่งงานผ่านอินเทอร์เน็ตได้โดย NETPIE จุดเด่นของโครงการนี้คือมีต้นทุนต่ำ พกพาสะดวก ใช้งานได้ดีในย่านความถี่ต่ำถึงประมาณ 1 KHz และที่สำคัญเป็นการเพิ่มทักษะการเขียนโปรแกรม ESP32+การพัฒนา NETPIE Freeboard SGIoT เป็นอุปกรณ์ที่เหมาะสมสำหรับประกอบการสอนเชิงปฏิบัติการในชั้นเรียนเกี่ยวกับการพัฒนา IoT ด้านวิศวกรรมไฟฟ้า เครื่องกล ระบบควบคุม โดยเฉพาะเมื่อเนื้อหาเกี่ยวข้องกับการประมวลผลสัญญาณดิจิทัล การแปลง Z อัลกอริทึม FFT การวิเคราะห์วงจรไฟฟ้า ผลตอบสนองความถี่ของตัวควบคุมป้อนกลับ

Sunday, December 16, 2018

Topic: เรียนรู้ตัวกรองแบบดิจิทัลบน ESP8266 และ NETPIE

ในปัจจุบันอุปกรณ์ที่เป็นแบบแอนะล็อกทั้งในชีวิตประจำวัน ด้านการแพทย์ ในภาคอุตสาหกรรม และหลายสาขาวิชาเริ่มเหลือน้อยลงเนื่องจากข้อด้อยหลายประการเมื่อเทียบกับระบบดิจิทัลที่มาแทนที่ ตัวกรอง (filters) เป็นตัวอย่างหนึ่งที่ในอดีตสร้างจากอุปกรณ์อิเล็กทรอนิกส์ เช่นตัวต้านทาน ตัวเก็บประจุ ตัวเหนี่ยวนำ ออปแอมป์ ปัญหาหลักที่เกิดขึ้นคือ วงจรจะกินพื้นที่แผ่นวงจรพิมพ์ตามขนาดและจำนวนของอุปกรณ์ หากต้องการเปลี่ยนโครงสร้างต้องออกแบบบอร์ดและลงอุปกรณ์ใหม่ บางครั้งหาค่าอุปกรณ์ที่คำนวณได้ไม่มีขาย อุปกรณ์มีการแปรค่าตามกาลเวลาและอุณหภูมิ การปรับความถี่คัทออฟต้องใช้อุปกรณ์แบบปรับค่าได้ซึ่งมีปัญหาเมื่อหน้าสัมผัสสกปรก แตกต่างจากอัลกอริทึมที่เป็นซอฟต์แวร์รันบนตัวประมวลผลที่มีความยืดหยุ่นมากกว่า และขจัดปัญหาต่างๆ ของระบบแอนะล็อกที่กล่าวถึงมา ในบทความนี้เราจะมาเรียนรู้การสร้างตัวกรองแบบความถี่ต่ำผ่าน (Low Pass Filter) หรือเรียกย่อว่า LPF โดยสามารถปรับความถี่คัทออฟ (cutoff frequency) ได้โดยคำสั่ง และเชื่อมต่อกับ NETPIE เพื่อปรับค่าได้จากระยะไกล นอกจากนั้นยังสร้างสัญญาณรบกวนขึ้นในโปรแกรมเพื่อศึกษาการทำงานของตัวกรอง

Friday, November 30, 2018

NETPIE Microgear : การสื่อสารโดยวิธี chat และ publish

NETPIE Microgear เป็นไลบรารีสนับสนุนสำหรับการพัฒนา IoT ร่วมกับ NETPIE โดยสามารถใช้ได้กับอุปกรณ์หลายประเภททั้งแบบฮาร์ดแวร์และซอฟต์แวร์ ผู้เขียนได้อธิบายการใช้งาน Microgear ขั้นพื้นฐานแล้วทั้งในเว็บนี้และในหนังสือ แต่จากปัญหาที่ถามโดยผู้ใช้งานพบว่าในบางกรณีต้องการการเชื่อมต่อที่นอกเหนือไปจากที่เคยกล่าวถึง เช่นการสื่อสารระหว่าง IoT หลายตัว ดังนั้นจุดมุ่งหมายของบทความนี้คืออธิบายภาพรวมของการสื่อสารโดยวิธี chat และ publish พร้อมสาธิตการรับส่งข้อมูลระหว่างบอร์ด NodeMCU 2 ตัวกับ NETPIE โดยหวังว่าจะตอบโจทย์ผู้พัฒนาที่ต้องการการทำงานในลักษณะดังกล่าว

Thursday, August 30, 2018

การส่งข้อมูลจาก ESP32 ขึ้น NETPIE ผ่าน Arduino UNO + NB-IoT Shield

ปัจจุบัน NB-IoT เริ่มได้รับความนิยมมากขึ้นเมื่อมีเครือข่ายรองรับทั่วประเทศ โดยมีข้อดีด้านการใช้พลังงานน้อยและส่งได้ระยะทางไกล ทั้ง AIS และ True มีจำหน่ายผลิตภัณฑ์ NB-IoT shields โดยสามารถใช้งานร่วมกับบอร์ด Arduino ในตระกูล UNO/Mega และเมื่อไม่นานทีมพัฒนา NETPIE เริ่มเปิดตัวไลบรารี microgear สำหรับใช้งานร่วมกับ NB-IoT พร้อมบทความการใช้งานเบื้องต้น จากการทดสอบพบว่าใช้งานได้ดี ถึงแม้ว่าฟังก์ชันจะยังไม่ครบสมบูรณ์เท่ากับ microgear สำหรับฮาร์ดแวร์อื่นเช่น ESP8266 ก็ตาม

Saturday, May 12, 2018

ทดสอบ push notification บน NETPIE App

นับตั้งแต่ทีม NETPIE ได้พัฒนาแอปปลิเคชันบนโทรศัพท์มือถือมาได้ระยะหนึ่ง โดยมีส่วนแจ้งเตือนแบบพุช (push notification) เมื่อเกิดเหตุการณ์ที่ผู้ใช้สนใจและกำหนดให้มีการแจ้งเตือน แต่ในช่วงเริ่มต้นบุคคลทั่วไปยังไม่ทราบวิธีการใช้งาน จนกระทั่ง NETPIE ได้ออกบทความอธิบายในส่วนนี้เพิ่มเติมในเวลาต่อมา ดังนั้นในบทความนี้เราจะมาศึกษากันว่า ส่วนแจ้งเตือนนี้มีประโยชน์อย่างไรรวมถึงการประยุกต์ใช้ในงานควบคุมอุตสาหกรรม

หมายเหตุ : เพื่อการเรียนรู้อย่างเป็นรูปธรรม การทดสอบนี้จะกระทำกับระบบควบคุมถังน้ำ 3 ระดับ เดิมต้องอาศัยบอร์ด LAG3-ESP32 ที่แจกให้กับผู้เข้าอบรม แต่ปัจจุบันผู้อ่านสามารถทดสอบได้โดยอาศัยการจำลองพลานต์นี้บนผลิตภัณฑ์ ESP32 ที่ท่านมีอยู่โดยไม่ต้องมีฮาร์ดแวร์เพิ่มเติมใดๆ รายละเอียดเพิ่มเติมอ่านได้จากบทความ "การจำลองฟังก์ชันถ่ายโอนของพลานต์บน ESP32" โปรแกรมประกอบบทความนี้จะตั้งให้ใช้พลานต์จำลอง หากต้องการเปลี่ยนเป็นใช้บอร์ด LAG3 ให้ใช้คำสั่ง psim=off ผ่านพอร์ตอนุกรม

Sunday, April 29, 2018

การอ่านค่าจากโมดูล LSM9DS1 เพื่อแสดงผลบน NETPIE Freeboard

อาจกล่าวได้ว่าส่วนที่สำคัญที่สุดในระบบที่ใช้คอมพิวเตอร์ในการแสดงผลหรือควบคุมคือการอ่านค่าจากอุปกรณ์ที่ใช้ในการเปลี่ยนค่าที่ต้องการวัดเป็นแรงดันหรือกระแสไฟฟ้า หรือเป็นโมดูลสำเร็จที่สามารถอ่านค่าได้ผ่านการสื่อสารประเภทต่างๆ ในปัจจุบันเซนเซอร์มีให้เลือกใช้อย่างหลากหลายขึ้นกับงานที่ต้องการใช้ คุณภาพ ราคา และคุณสมบัติอื่นๆ และส่วนใหญ่ที่มีการใช้งานแพร่หลายจะมีผู้พัฒนาไลบรารีสำหรับอ่านค่าไว้แล้ว โดยเฉพาะสำหรับ Arduino จึงไม่จำเป็นต้องเขียนโค้ดเองจากเริ่มต้น แต่ข้อเสียของการใช้ไลบรารีสำเร็จคือมักห่อหุ้มการตั้งค่าต่างๆ ไว้ภายใน ซึ่งบางครั้งต้องมีการดัดแปลงแก้ไข ซึ่งอาจเป็นปัญหาสำหรับผู้เริ่มต้น ในบทความนี้จะนำเสนอการอ่านค่าจากโมดูล LSM9DS1 ซึ่งเป็นอุปกรณ์สำหรับวัดค่าความเร่ง ความเร็วเชิงมุม และสนามแม่เหล็กใน 3 มิติ หวังว่าจะเป็นประโยชน์สำหรับผู้เริ่มต้นพัฒนา IoT ที่อยากจะเรียนรู้การอ่านค่าเซนเซอร์อื่นบ้าง นอกเหนือจากอุณหภูมิและความชื้น เนื้อหาจะกล่าวถึงการอ่านค่าจากโมดูลเพื่อแสดงผลบน NETPIE Freeboard เท่านั้นโดยยังไม่มีการควบคุมใดๆ

Wednesday, April 25, 2018

ตัวควบคุมแขนกล 2 ก้านต่อบน ESP32 และ NETPIE

ในหนังสือ "การวิเคราะห์และควบคุมหุ่นยนต์อุตสาหกรรม" รวมถึงการบรรยายในชั้นเรียน ตัวอย่างหนึ่งที่ผู้เขียนใช้เพื่อขยายความเนื้อหาให้เป็นรูปธรรมมากขึ้นคือ แขนกล 2 ก้านต่อ (2-link manipulator) เนื่องจากมีโครงสร้างพื้นฐานประกอบด้วย 2 ข้อต่อแบบหมุนและเคลื่อนที่ในระนาบ 2 มิติ ทำให้ง่ายต่อการวิเคราะห์และโมเดล เมื่อผู้เรียนเข้าใจสาระของเนื้อหาในส่วนนั้นอย่างถ่องแท้แล้วก็จะขยายผลไปยังหุ่นยนต์ที่มีความซับซ้อนมากขึ้น อย่างไรก็ตามการเรียนรู้เชิงปฏิบิตทำได้เพียงสร้างโมเดลบนซอฟต์แวร์ Scilab และจำลองการทำงานเพื่อดูผลตอบสนองเท่านั้น เคยมีนิสิตสร้างโมเดลต้นแบบโดยใช้มอเตอร์ขนาดเล็กที่ไม่มีการป้อนกลับขับข้อต่อ ซึ่งสามารถใช้ในการศึกษาศาสตรหุ่นยนต์เบื้องต้น เช่นจลนศาสตร์ข้างหน้าและผกผัน (forward and inverse kinematics) แต่ในหุ่นยนต์อุตสาหกรรมจริงจะต้องมีการป้อนกลับเพื่อชดเชยผลกระทบทางพลวัตเมื่อหุ่นยนต์มีการเคลื่อนที่ ดังนั้นในบทความนี้จะนำเสนอการสร้างโมเดลของแขนกล 2 ก้านต่ออย่างง่าย ด้วยราคาที่ไม่ทำให้กระเป๋าแฟบ ขับเคลื่อนโดยดีซีมอเตอร์และมีการป้อนกลับตำแหน่งโดยเอนโคเดอร์ ตัวควบคุมอิมพลิเมนต์บน ESP32 อาศัยไลบรารี FreeRTOS และสามารถแสดงผลและควบคุมผ่านอินเทอร์เน็ตโดยอาศัยบริการคลาวด์ของ NETPIE

Tuesday, April 3, 2018

แนะนำการติดตั้งและใช้งาน NETPIE App บนมือถือ

NETPIE มีแอ็ปบนมือถือด้วยนะ รู้หรือยัง ? ตัวผู้เขียนเองยังต้องรับสารภาพว่าเพิ่งทราบข่าวนี้จากกลุ่ม Line ของผู้ฝึกอบรมในรอบเดียวกัน ดังนั้นบทความสั้นนี้จะกล่าวแนะนำการติดตั้งและใช้งานบนโทรศัพท์ที่มีระบบปฏิบัติการ Android (ซึ่งความจริงแล้วสำหรับผู้ใช้งานโดยทั่วไปคงไม่ต้องแนะนำอะไรมาก เพราะขั้นตอนการติดตั้งก็เหมือนกับแอปมือถือทั่วไป) เมื่อติดตั้งแล้วจะสามารถเข้าสู่ Freeboard เพื่อแสดงผลและสั่งงานได้เหมือนกับบนเครื่องคอมพิวเตอร์ แต่ว่าการสร้าง และตั้งค่าต่างๆ ให้กับ widgets ไม่สามารถทำบน App ได้ (ซึ่งโดยธรรมชาติแล้วคงไม่สะดวกอยู่แล้วที่จะพัฒนาซอฟต์แวร์บนโทรศัพท์มือถือ)

Tuesday, March 27, 2018

แก้ไขสัมประสิทธิ์ตัวควบคุมเชิงเส้นแบบออนไลน์โดยใช้ HTML Widget บน NETPIE Freeboard

เนื้อหาในบทความนี้ต่อเนื่องจากเรื่อง “พัฒนาระบบควบคุมบน ESP32 โดยไลบรารี FreeRTOS” โดยประเด็นสำคัญคือการแก้ปัญหาที่ทิ้งท้ายไว้ในบทความนั้นเกี่ยวกับค่าสัมประสิทธิ์ของตัวควบคุมที่เป็นค่าคงที่ในโปรแกรม เมื่อผู้ใช้เปลี่ยนค่าคาบเวลาการสุ่มของอัลกอริทึมควบคุมไปจากเดิมจะทำให้ตัวควบคุมทำงานไม่ถูกต้อง วิธีการง่ายสุดคือใช้ซอฟต์แวร์ Scilab คำนวณค่าสัมประสิทธิ์ตามคาบเวลาใหม่และอัพเดทให้กับตัวควบคุม ซึ่งสามารถส่งผ่านพอร์ตอนุกรมหรือจากหน้าของ NETPIE Freeboard ก็ได้ อย่างไรก็ตามการใช้ slider widget มีความไม่เหมาะสมบางประการ และ NETPIE ยังไม่มี widget สำเร็จรูปสำหรับการส่งคำสั่งในรูปสตริงใดๆ ให้กับอุปกรณ์ ดังนั้นเราจะศึกษาการใช้ widget ประเภท html ทำหน้าที่ดังกล่าว โดยต้องมีการใส่โค้ด JavaScript เพื่อ chat ไปหา microgear ทางด้าน ESP32

Wednesday, February 14, 2018

พัฒนาระบบควบคุมบน ESP32 โดยไลบรารี FreeRTOS

ในบทความก่อนหน้านี้ได้กล่าวแนะนำไลบรารี FreeRTOS ที่มาพร้อมกับ Arduino Core ของ ESP32 โดยเน้นประเด็นสำคัญคือการกำหนดคอร์ประมวลผลให้กับทาสก์ เพื่อให้สามารถใช้ทรัพยากรฮาร์ดแวร์ของ ESP32 ได้อย่างมีประสิทธิภาพ เพราะการเขียนโปรแกรมโดยปกติบน Arduino IDE คอร์หมายเลข 0 จะไม่ถูกใช้งาน ข้อได้เปรียบจากการใช้ ESP32 ที่เหนือกว่า ESP8266 จะยังไม่ชัดเจนตราบเท่าที่เราไม่สามารถใช้ประโยชน์จากฮาร์ดแวร์ทั้งหมดอย่างเต็มที่ สำหรับโครงงานพื้นฐานเช่นอ่านข้อมูลจากเซนเซอร์และแสดงผลผ่านอินเทอร์เน็ต คงไม่มีความจำเป็นที่ต้องใช้ ESP32 และ FreeRTOS แต่ผู้อ่านที่ติดตามเรื่องราวจากบล็อกนี้คงทราบว่างานควบคุมอุตสาหกรรมจะมีความซับซ้อนมากกว่า โดยเฉพาะตัวควบคุมป้อนกลับเช่น PID จะต้องการคาบเวลาในการประมวลผลที่คงที่และเป็นอิสระจากงานอื่น งานควบคุมสมรรถนะสูงต้องการอัตราการสุ่มที่เร็วขึ้น ดังนั้นคำสั่งในลูปควบคุมจะต้องมีเพียงเท่าที่จำเป็น งานอื่นเช่นส่วนรับคำสั่ง การส่งข้อมูลออกพอร์ตอนุกรม จอแสดงผล หรืออินเทอร์เน็ตควรถูกแยกออกจากลูป ลักษณะการทำงานเรียลไทม์แบบหลายเทรด (multithread) นี้เองทำให้การใช้ FreeRTOS มีความเหมาะสมอย่างยิ่ง นอกจากนั้นยังเป็นไลบรารีที่ใช้งานง่ายและเอื้ออำนวยต่อการจัดการและการบำรุงรักษาซอฟต์แวร์

Thursday, February 1, 2018

ฝึกอบรม IoT สำหรับงานควบคุมอุตสาหกรรมโดย ESP32 และ NETPIE (ประจำปี 2561 ครั้งที่ 1 วันเสาร์ที่ 24 กุมภาพันธ์ 2561)

IoT for Industrial Control with ESP32 and NETPIE Workshop

โดยการแพร่หลายอย่างรวดเร็วของเครือข่ายอินเทอร์เน็ตในปัจจุบันทำให้การพัฒนาอุปกรณ์ที่เรียกว่า IoT (Internet of Things) ได้รับความสนใจเป็นอย่างสูง เชื่อว่าในอนาคตอันใกล้นี้อุปกรณ์เกือบทั้งหมดที่ล้อมรอบตัวเราจะสามารถเชื่อมต่อผ่านเครือข่าย ทำให้การตรวจสอบและควบคุมสามารถทำได้จากทุกพื้นที่ที่อินเทอร์เน็ตเข้าถึงได้ อย่างไรก็ตาม การฝึกอบรมรวมถึงบทความและเอกสารภาษาไทยที่มีอยู่ในปัจจุบันยังมุ่งเน้นงานประเภทเก็บข้อมูลและแสดงผล หรือการสั่งงานในลักษณะปิดเปิดเป็นหลัก ในขณะที่งานอุตสาหกรรมหลายประเภทต้องอาศัยระบบควบคุมป้อนกลับ เช่น เครื่องซีเอ็นซี หุ่นยนต์ การควบคุมระดับน้ำ แรงดัน หรือกระบวนการทางเคมี ซึ่งทำให้อัลกอรึทึมบนระบบฝังตัวมีความซับซ้อนมากขึ้น และต้องใช้ทรัพยากรทางฮาร์ดแวร์เช่นไทเมอร์เพื่อความแม่นยำในการสุ่มสัญญาณ

Wednesday, November 29, 2017

การใช้ microgear.publish() อัพเดทสถานะและค่าของ Freeboard Widgets

NETPIE Series

ในบทความนี้เราจะปรับปรุงส่วนติดต่อผู้ใช้บน freeboard ที่สร้างไว้ใน บทที่ 6 ของหนังสือ “ตัวควบคุมป้อนกลับบนอินเทอร์เน็ตโดย ESP8266” ให้เหมาะสมกับการใช้ในงานควบคุมอุตสาหกรรมจริง ตัวควบคุม IoFC ได้ถูกออกแบบให้มีความยืดหยุ่น คือสามารถปรับพารามิเตอร์ได้ทั้งที่หน้างานผ่านพอร์ตอนุกรม และจากระยะไกลโดย NETPIE แต่หน้าควบคุม freeboard จากตัวอย่างที่ 6.4 ในหนังสือยังไม่ได้ออกแบบให้รองรับกรณีมีผู้ปฏิบัติงานทั้ง 2 สถานที่ เพราะหากมีการเปลี่ยนค่าพารามิเตอร์ที่หน้างาน ส่วนควบคุมใน NETPIE จะไม่อัพเดตตาม เราจะมาศึกษาวิธีแก้ปัญหานี้โดยใช้ฟังก์ชัน microgear.publish() และเพิ่มการตั้งค่าใน freeboard widgets

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

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