ดิว.นินจา

ดิว.นินจา

Tuesday, January 10, 2023

Friday, June 11, 2021

dewdotninja GitHub

ในระยะหลังพบว่าการพัฒนาสื่อการสอนบนและเผยแพร่บน github กระทำได้สะดวกกว่าสร้างโพสต์บนเว็บนี้ ดังนั้นจึงเปลี่ยนไปอัพเดทบน github เป็นหลัก สามารถติดตามได้ที่

Sunday, July 26, 2020

ฝึกอบรม IoT บน NETPIE 2020 ครั้งแรกของปี 2563

ตั้งแต่ต้นปีที่ NECTEC เปิดตัว NETPIE 2020 ปัญหาจาก COVID-19 ระบาดทำให้การจัดฝึกอบรมในปี 2563 ไม่สามารถทำได้ จนกระทั่งเวลานี้ที่ได้รับการผ่อนผันให้จัดได้โดยมีมาตรการ social distancing ที่เหมาะสม การฝึกอบรมเชิงปฏิบัติการที่ภาควิชาฟิสิกส์ คณะวิทยาศาสตร์ มหาวิทยาลัยนเรศวร ในวันที่ 25 กรกฎาคม 2563 จึงนับเป็นครั้งแรกของปีนี้ เนื้อหาหลักคือการพัฒนาอุปกรณ์ไอโอทีบน NETPIE 2020 โดยฝึกภาคปฏิบัติบนแพลตฟอร์ม ESP32 เป็นหลัก ช่วงท้ายกล่าวแนะนำการพัฒนาบน Raspberrry Pi

Friday, May 22, 2020

แนะนำหนังสือ "เน็ตพาย 2020 ภาคปฏิบัติ"

เน็ตพาย (NETPIE) คือแพลตฟอร์มคลาวด์สำหรับเชื่อมต่ออุปกรณ์ไอโอทีหลากหลายประเภทเพื่อให้สามารถสื่อสารกันได้แบบเรียลไทม์ เปิดให้บุคคลทั่วไปใช้งานภายใต้ข้อจำกัดด้านทรัพยากรที่กำหนด พัฒนาโดยศูนย์อิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC) ในปี ค.ศ. 2015 ซึ่งต่อมาได้ก่อตั้งบริษัท Nexpie เพื่อรองรับผู้ใช้งานที่มีจำนวนเพิ่มขึ้น ในเดือนกุมภาพันธ์ 2020 NETPIE ได้เปิดตัวเวอร์ชันใหม่คือ NETPIE 2020 ที่มีโครงสร้างแตกต่างจากเวอร์ชัน 2015 ค่อนข้างมาก มีจุดเด่นคือการใช้งานที่ง่ายขึ้น เขียนโปรแกรมโดยภาษาคอมพิวเตอร์ใดก็ได้ที่สนับสนุน MQTT โดยไม่จำเป็นต้องอาศัยไลบรารี Microgear และข้อดีอื่นๆ ที่ทำให้เหมาะสมกับการสร้างเป็นผลิตภัณฑ์เชิงธุรกิจ อย่างไรก็ตามการเปลี่ยนแปลงทำให้ผู้พัฒนาต้องศึกษาสถาปัตยกรรมใหม่ และวิธีการโปรแกรมอุปกรณ์ให้ทำงานบน NETPIE 2020

Monday, April 27, 2020

NETPIE 2020 : อ่านข้อมูลจาก Shadow เพื่อตั้งค่าเริ่มต้นสำหรับ ESP8266/ESP32

สำหรับระบบฝังตัวทั่วไปหรืออุปกรณ์ไอโอที วิธีการหนึ่งที่นิยมใช้ในการเพิ่มความฉลาดกับอุปกรณ์และความเป็นมิตรกับผู้ใช้งาน คือความสามารถในการจดจำสถานะหรือพารามิเตอร์บางตัวที่สำคัญต่อระบบ ตัวอย่างเช่นสีของการแสดงผลที่ผู้ใช้ชอบ พารามิเตอร์ควบคุมที่ผ่านการปรับแต่ง ซึ่งจะถูกเก็บรักษาไว้แม้แต่เวลาที่ไม่มีแหล่งจ่ายไฟเลี้ยง ในไมโครคอนโทรลเลอร์ส่วนใหญ่ในปัจจุบันจะมีหน่วยความจำ EEPROM หรือแบ่งพื้นที่บางส่วนของหน่วยความจำแบบ Flash เพื่อเขียนข้อมูลอย่างถาวรได้ หรือระบบที่ใหญ่ขึ้นเช่นราสเบอรี่ พาย อาจเก็บข้อมูลบน SD card ปัญหาคือเราไม่ทราบว่าเมื่อไรแหล่งจ่ายไฟจะเกิดขัดข้องหรือเกิดเหตุการณ์อื่นที่ทำให้ระบบหยุดทำงาน จึงต้องมีการเขียนหน่วยความจำถาวรบ่อยครั้งและมีผลต่ออายุการใช้งาน โดยเฉพาะหน่วยความจำ Flash ที่มีจำนวนครั้งการเขียนน้อยกว่า EEPROM แท้ ทางเลือกหนึ่งที่ทำได้ง่ายบน NETPIE 2020 คือเก็บค่าบน Device Shadow ซึ่งสามารถร้องขอข้อมูลเมื่อไรก็ได้โดยพับลิชไปที่หัวข้อที่กำหนด และรอรับข้อมูลทางช่องทางส่วนตัวของอุปกรณ์ บทความนี้แนะนำวิธีการเขียนโปรแกรมบน ESP8266/ESP32 โดยยกตัวอย่างการตั้งค่าตัวแปรสำหรับนับจำนวนวัตถุอย่างต่อเนื่อง

Thursday, March 26, 2020

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

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

Wednesday, March 4, 2020

NETPIE 2020 : สร้างตัวรับและแปลคำสั่ง

เนื่องจาก NETPIE2020 เป็นแพลตฟอร์มใหม่ที่เพิ่งเปิดตัว ดังนั้นตัวอย่างที่แสดงบนเว็บจะเน้นการใช้งานขั้นพื้นฐาน โดยเฉพาะด้านการส่งคำสั่งให้กับอุปกรณ์จะสาธิตเพียงการปิด/เปิด LED บนบอร์ด NodeMCU จาก Freeboard ในการสร้างอุปกรณ์ไอโอทีสำหรับงานบางประเภท ผู้ใช้ต้องการที่จะควบคุมหรือสั่งงานโดยชุดคำสั่งจำนวนหนึ่ง เช่นงานควบคุมอุตสาหกรรมจะมีการปรับพารามิเตอร์ PID, setpoints, สถานะการควบคุม ฯลฯ ซึ่งโครงสร้างโปรแกรมตัวอย่างอาจไม่เอื้ออำนวยในการดัดแปลงให้รับคำสั่งจำนวนหลายคำสั่ง เพราะหากเพิ่มโค้ดทั้งหมดลงในฟังก์ชัน callback() จะทำให้มีความยาวและยากต่อการบำรุงรักษาโปรแกรมในภายหลัง ดังนั้นในบทความนี้จึงนำเสนอวิธีการรับและแปลคำสั่งใน NETPIE 2020 โดยจะเปรียบเทียบระหว่างการเขียนโค้ดลงใน callback() กับการสร้างฟังก์ชันแปลคำสั่งในรุปแบบ cmd=value ที่สื่อความหมายกับผู้ใช้ได้ดีกว่า ไม่ต้องแก้ไขฟังก์ชันเดิมหและมีข้อดีอีกประการคือสามารถสั่งงานผ่านพอร์ตอนุกรมหรือ Bluetooth ได้โดยคำสั่งชุดเดียวกัน

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

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