ดิว.นินจา

ดิว.นินจา

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 ของท่าน

ในการพัฒนาอุปกรณ์ IoT บางกรณีผู้ใช้ต้องการเก็บข้อมูลที่ปรับแต่งหรือแก้ไขแล้วเพื่อการใช้งานในครั้งต่อไป คือเก็บอย่างถาวรแม้ไม่มีไฟเลี้่ยงข้อมูลก็ไม่สูญหาย ถึงแม้ ESP8266 ไม่มีหน่วยความจำแบบ EEPROM แต่มีไลบรารีที่ยอมให้เขียนข้อมูลลงบน Flash ได้ ซึ่งจะยังคงอยู่เมื่อรีเซ็ตระบบหรือหยุดจ่ายไฟเลี้ยง แต่ต้องคำนึงด้วยว่าอายุการใช้งานการเขียน Flash จะน้อยกว่า EEPROM ข้อจำกัดอีกประการคือ ESP8266 ต้องจัดสรรหน่วยความจำที่ปกติใช้สำหรับโปรแกรมมาจำลอง EEPROM ดังนั้นขนาดหน่วยความจำที่ใช้ได้จะถูกจำกัดอยู่ที่ 4 – 4096 ไบต์ และการใช้งานร่วมกับ NEPIE จะต้องมีการปรับ offset เพื่อแยกพื้นที่ของผู้ใช้งานกับของ NETPIE Microgear มิให้ทับซ้อนกัน

เนื้อหาในหัวข้อ 3.3 และการทดลอง LAB 3.6 จะสาธิตการเขียน/อ่านข้อมูล WiFi และ NETPIE ที่อยู่ในรูปสตริงตัวอักษร และการอ่านเขียนข้อมูลตัวแปรแบบ float ในการใช้งานจริงคำสั่ง EEPROM.put() และ EEPROM.get() มีความยืดหยุ่นทำให้สามารถใช้กับตัวแปรประเภทต่างๆ ได้รวมถึงแบบ struct

ข้อมูลที่ต้องใช้สำหรับ LAB 3.6 คือ ssid, password ของ WiFi router และข้อมูล APPID, KEY, SECRET ตัวอย่างเช่นดังรูปด้านล่าง

หมายเหตุ :

  1. ในหนังสือจะเรียกหน่วยความจำส่วนที่ใช้เก็บข้อมูลถาวรของ ESP8266 ว่า EEPROM ตามชื่อไลบรารี ถึงแม้ว่าในทางปฏิบัติจะถูกจำลองโดยหน่วยความจำ Flash ก็ตาม
  2. เครดิตรูปที่ 3.24 จาก NETPIE group โพสต์โดย NEXPIE

เนื้อหาในส่วนนี้สามารถดาวน์โหลดศึกษาได้จากไฟล์ .pdf และโปรแกรมประกอบในลิงก์ด้านล่างนี้

No comments:

Post a Comment

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

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