Android Smart plug ควบคุมอุปกรณ์ไฟฟ้าผ่าน NETPIE

.

Android Smart plug ควบคุมอุปกรณ์ไฟฟ้าผ่าน NETPIE

อภิรักษ์ นามแถ่ง

(aphirak112@gmail.com)

งบประมาณ 1,500 บาท

                โครงงานนี้จะเป็นการสร้างแอพพลิเคชันบนโทรศัพท์ Android เพื่อสั่งเปิด/ปิดปลั๊กไฟผ่านเครือข่ายอินเทอร์เน็ตโดยใช้  NETPIE

 

ปัจจุบันนี้เหล่านัก Maker ได้มีรวมตัวกันเป็นชุมชนทำให้ขนาดใหญ่มากขึ้นทุกวัน จะเห็นได้จากที่ผ่านมาได้เกิดงานรวมตัวเหล่า Maker ในหลายๆ ที่ทั่วประเทศ โดยแต่ละภาคก็จะมี Maker หลักๆ ที่เป็นแหล่งรวมตัวกัน ยกตัวอย่างเช่น ภาคเหนือจะเป็นเชียงใหม่เมกเกอร์คลับ, ภาคใต้จะเป็นภูเก็ตเมกเกอร์คลับ, ภาคอีสานจะเป็นขอนแก่นเมกเกอร์คลับ ส่วนภาคกลางแน่นอนว่าเป็นกรุงเทพฯ ซึ่งจะมีอยู่หลายกลุ่มด้วยกัน ไม่ว่าจะเป็นตามมหาวิทยาลัย หน่วยงานข้าราชการ กลุ่มบริษัทเอกชน หรือกลุ่มบุคคลอีกมากมาย จนทำให้เกิดงาน Bangkok mini Maker Fairขึ้นมา เมื่อเดือนมกราคมที่ผ่านมาเป็นการจัดงานครั้งที่ 2 แล้ว และในงานได้มีกลุ่ม Maker จากทั่วประเทศมารวมตัวกันเพื่อแสดงนวัตกรรมต่างๆ มากมาย

นอกจากการออกงานแสดงต่างๆ แล้วแต่ละกลุ่มก็มีช่องทางเสนอผลงานของตัวเองที่สรรสร้างขึ้นมานำเสนอผ่านช่องทางต่างๆ ไม่ว่าจะเป็นหน้าเว็บไซต์ของตัวเอง, Fackbookหรือไลน์เป็นต้นทำให้หน่วยงานของรัฐบาลต่างๆ ที่มีส่วนเกี่ยวข้องยืนมือเข้ามาช่วยเพื่ออำนวยความสะดวกในการสรรสร้างผลงานของเหล่า Maker หนึ่งในนั้น คือ NETPIE แพลตฟอร์ม IoT ที่ทางศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ หรือ NECTEC (http://www.nectec.or.th) ได้ออกเครื่องมือออกมาให้เหล่า Maker ได้ใช้งานอย่างฟรีๆ

ซอฟต์แวร์ที่ใช้สำหรับโครงงานนี้ล้วนแต่เป็นฟรีแวร์ทั้งสิ้น โดยทางจะแบ่งเป็น Arduino กับ Android แน่นอนว่าArduino จะใช้ Arduino IDE เขียนโปรแกรมการทำงานให้กับ ESP8266 ส่วนทางฝั่งAndroid จะใช้ App Inventor 2ในการสร้างแอพพลิเคชั่นบนโทรศัพท์มือถือ เพื่อไม่เป็นการเสียเวลามาทำความรู้จักกับ NETPIE กันก่อนครับ

รูปที่ 1

รูปที่ 1 NETPIE แพลตฟอร์ม IoT

NETPIE แพลตฟอร์มสำหรับ IoT (Internet of Things)

NETPIE เป็นแพลตฟอร์มที่บริการการเชื่อมต่อข้อมูลและแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ต่างๆ ได้ เหมาะสำหรับ Internet of Things ซึ่งรูปแบบการใช้งานจะเหมือนกับ MQTT พ่วงความสามารถด้าน Authentication และ Token เพิ่มความปลอดภัยในการสื่อสาร เราสามารถเชื่อมต่อกับ NETPIE ได้หลายช่องทาง ทั้งอุปกรณ์ IoT อย่าง Arduino, Raspberry Pi, ESP8266 Dev Kit, HTML5 หรือแม้กระทั่ง Node.js Application ดังนั้นหากคุณใช้ ESP8266 Dev Kit ของค่ายใดอยู่ก็ตามสามารถใช้งานได้เลย ดู Libraryของอุปกรณ์ต่างๆ ได้ที่หน้าโครงการใน GitHub NET-PIEให้บริการโดย NECTECสามารถเข้าไปดูข่าวสารและรายละเอียดการเปิดตัว NETPIE เพิ่มเติมได้ที่เว็บไซต์ http://www.nectec.or.th/innovation/innovation-software/netpie.html 

รูปที่ 2

รูปที่ 2 กดปุ่ม SIGN UP FREE ที่หน้าแรกของเว็บสำหรับการสมัครสมาชิก

รูปที่ 3

รูปที่ 3 การกรอกรายละเอียดของผู้ใช้

รูปที่ 4

รูปที่ 4 ข้อความแสดงหลังจากที่สมัครสมาชิกสำเร็จ

สมัครสมาชิกเพื่อเข้าใช้งาน NETPIE

ก่อนที่จะเข้าไปใช้งานNETPIE ได้ก่อนอื่นจะต้องเข้าไปสมัครสมาชิกเสียก่อน โดยเข้าไปที่เว็บไซต์ https://netpie.io ดังแสดงในรูปที่ 2 ซึ่งเป็นหน้าแรก ให้กดปุ่ม SIGN UP FREEในวงกลมดังรูปที่ 2 เมื่อเข้ามาแล้วจะพบหน้า CREATE AN ACCOUNT สำหรับใส่รายละเอียดของผู้ใช้ดังสาดงในรูปที่ 3หลังจากใส่ข้อมูลเรียบร้อยและกด SIGN UP หากถูกต้องที่หน้าจอจะแสดงข้อความดังแสดงในรูปที่ 4 เพียงเท่านี้การสมัครสมาชิกก็เสร็จเรียบร้อย

รูปที่ 5

รูปที่ 5 หน้าต่างสำหรับการ Log inเข้าระบบ

รูปที่ 6

รูปที่ 6 หน้าต่างสำหรับใส่ Username และ Password 

เมื่อดำเนินการมาถึงขั้นนี้นั่นแสดงว่าท่านสามารถที่จะทำการ Log in เข้าระบบได้แล้ว ในส่วนของรหัสผ่านจะได้รับผ่านทาง SMS เข้าโทรศัพท์ตามเบอร์โทรที่กรอกในขั้นตอนการสมัคร จากนั้นกดปุ่ม LOG IN ดังแสดงในรูปที่ 5 พร้อมกับเอา Password ที่ได้รับจาก NETPIE ผ่านข้อความทางโทรศัพท์ใส่ในช่อง PASSWORD ดังแสดงในรูปที่ 6 หากการ Log in สำเร็จเท่านี้ก็พร้อมสำหรับการใช้งาน NETPIE แล้ว

ทำความรู้จักกับ Application,Gear และ Key

มาถึงขั้นตอนนี้จะเป็นการสร้าง Application (แอพพลิเคชัน) สำหรับงานของเรา ซึ่ง Application ที่จะสร้างในตอนนี้เป็นเสมือนชื่อเรียกระบบของเรานั่นเอง ยกตัวอย่างเช่นโครงงานนี้จะใช้ชื่อ “SemiSmartPlug” ซึ่งชื่อ Application นี้ควรตั้งให้สอดคล้องกับงานที่ใช้ เนื่องจากจะเป็นประโยชน์ต่อการเรียกใช้งานในกรณีที่มี Applicationหลายตัว

ในระบบของเราก็จะสามารถเพิ่มอุปกรณ์ต่างๆ เข้าไปได้ โดยอุปกรณ์ของเราจะถูกเรียกว่า “Gear” (อุปกรณ์ที่ว่านั้นเป็นคอนโทรลเลอร์ของเรา ยกอย่างเช่น Raspberrypi, Arduino,NodeMCU หรือพวกบอร์ดอื่นๆ ที่มีการต่อเซนเซอร์สำหรับส่งข้อมูลต่างๆ เป็นต้น ใน Application หนึ่งอาจจะมีอุปกรณ์ได้หลายตัว (หลาย Gear ได้) โดยแต่ละ Gear ภายในระบบเดียวกันก็สามารถสื่อสารกันเองได้ ซึ่ง NETPIE เปิดให้ผู้ใช้สามารถใช้งานฟรีได้สูงถึง 100 อุปกรณ์เลยทีเดียว

แต่ละอุปกรณ์ (แต่ละ Gear) ก็จะมี Key เป็นของตัวเอง ซึ่ง Key นี้ก็จะเป็นเหมือนกับสิ่งที่ใช้ระบุตัวตนของอุปกรณ์ของเรา สรุป คือ แต่ละ Gear ก็จะมี Key เป็นของตัวเอง และจะไม่เหมือนกับของ Gear ตัวอื่นๆ หรือของคนอื่นๆ ดังนั้นมั่นใจได้ว่าการสั่งงานในแต่ละApplication จะสามารถเข้าถึงได้เพียงท่านคนเดียว คนอื่นจะสามารถเข้าถึง Application ของท่าน รับรองว่าปลอดภัยอย่างแน่นอน

มาทำความเข้าใจกับความหมายของ APPLICATION,GEARและ KEY อีกครั้ง

  • APPLICATION คือตัวแทนของระบบที่มีอุปกรณ์ซึ่งติดต่อกันแบบ IoT ของเรา

  • GEAR เป็นอุปกรณ์ที่อยู่ในระบบของเรา ในโครงงานนี้ คือ NodeMCU V2

  • KEY เป็นรหัสที่ใช้ในการระบุตัวตน (หมายเลขประจำตัวของGear) ของอุปกรณ์

 รูปที่ 7

รูปที่ 7 กดเมนู APPLICATION เพื่อเข้าไปหน้าต่างการสร้าง APPLICATION

รูปที่ 8

รูปที่ 8 หน้าต่าง APPLICATION MANAGEMENT

สร้าง Application,Gear และ Key

รูปที่ 7 เป็นการกดปุ่ม APPLICATION จากหน้าแรก หลังจากกดปุ่มแล้วจะเข้าไปยังหน้า APPLICATION MANAGEMENT (การจัดการAPPLICATION) ดังแสดงในรูปที่ 8 รายละเอียดในหน้านี้จะแสดงข้อมูลของ Application ที่เราสร้างไว้ และจำนวนอุปกรณ์ (Gear) ในระบบของเรา

รูปที่ 9

รูปที่ 9 การสร้าง APPLICATION

รูปที่ 10

รูปที่ 10 การตั้งชื่อ APPLICATION

เมื่อเริ่มใช้งานรายละเอียดของ Application และ GEAR จะยังไม่มีอะไร (APPLICATION และ GEAR เท่ากับ 0) การสร้าง Application ทำได้โดยกดตรงปุ่มเครื่องหมาย “+” ดังแสดงในรูปที่ 9 จากนั้นให้ใส่ชื่อของ Application ของเรา สำหรับโครงงานนี้จะให้ชื่อว่า “AndroidSemiPlug” ดังแสดงในรูปที่ 10

รูปที่ 11

รูปที่ 11 หน้าต่างหลังจากที่เสร็จสิ้นการตั้งชื่อ APPLICATION

รูปที่ 12

รูปที่ 12 การตั้งชื่ออุปกรณ์และการเลือก Device Key

รูปที่ 13

รูปที่ 13 การตั้งชื่ออุปกรณ์และเลือก Session Key

รูปที่ 14

รูปที่ 14 Application Key ที่สร้างไว้สำหรับโครงงานนี้

หลังจากขั้นตอนนี้เราก็จะได้ Application ที่ชื่อ “AndroidSemiPlug” มาแล้ว (ดังแสดงในรูปที่ 11) โดยชื่อนี้จะเป็น APP IDของ Application ของเรา ขั้นตอนต่อไปจะเป็นการสร้าง Key สำหรับการเข้าถึง Application โดยกดที่ปุ่มเครื่องหมายบวก (+) ดังแสดงในรูปที่ 11 จากนั้นจะมีหน้าต่างขึ้นมาเพื่อให้ใส่ชื่อของ Application key และ Type Key ซึ่งในส่วนของ Type Key จะมีให้เลือกระหว่าง Device Key และ Session Key ในโครงงานนี้ให้ผู้ใช้เลือกผู้ใช้เลือกType Key ให้เป็นแบบDevice Key ดังแสดงในรูปที่ 12 เสร็จแล้วกด CREATEให้กดเครื่องหมาย + อีกครั้ง (รูปที่ 11) แต่ครั้งนี้สร้าง Session Keyและตั้งชื่อให้เหมือนกันกับส่วน Device keyดังแสดงในรูปที่ 13 เสร็จแล้วกด CREATEดังนั้นเราจะมี 2 Key สำหรับกำหนดใน ESP8266 และแอพพลิเคชั่น Android

ต่อมาให้กดที่ Device Key ในตัวอย่างของผู้เขียนชื่อ “semiESP8266” ให้คัดลอกค่า Key และ Secret ในส่วนของ Secret ให้กดรูปดวงตาก่อนถึงจะเห็นข้อความ (ดังรูปที่ 15) เอาไว้ใน Notepad เสียก่อน เนื่องจากข้อความทั้ง 2 ค่านี้ จะถูกนำไปกรอกในโปรแกรม Arduino ตอนเขียนโปรแกรมสำหรับ ESP8266เมื่อเสร็จแล้วให้กดปุ่ม CANCELเพื่อออกจากการดูค่าโดยไม่มีการแก้ไขข้อมูล จากนั้นกดที่ Session Key ตัวอย่างของผู้เขียนจะตั้งชื่อเป็น “SemiAPI” ในส่วนนี้ให้เก็บค่า REST API auth เช่นเดียวกับการอ่านค่า Device Key จะต้องกดรูปดวงตาก่อนเพื่อให้สามารถเห็นข้อความ ให้ทำการคัดลอกและวางไว้ใน Notepad เนื่องจากส่วนนี้จะต้องนำไปใช้ตอนสร้างแอพพลิเคชั่นบน Androidเมื่อได้ข้อมูลทั้งสองส่วนนี้แล้ว ก็พร้อมเขียนโปรแกรมส่วนอื่นต่อไปแล้ว

รูปที่ 15

รูปที่ 15 ดู Key และ Secretของ Device Key

รูปที่ 16

รูปที่ 16 ดู REST API auth ของ Session Key

การเตรียมพร้อมสำหรับ Arduino IDE

การพัฒนาสำหรับโครงงานนี้จะใช้ภาษา C/C++ ในแบบ Arduino โดยใช้เครื่องมือหลัก คือ Arduino IDE (เวอร์ชัน 1.6.4 ขึ้นไป) ซึ่งจะต้องติดตั้ง plugin เพื่อเพิ่มโมดูล ESP-12E (ติดตั้งผ่าน Boards Manager ของ Arduino IDE) เข้ามาใน Arduino IDE เมื่อเสร็จแล้วเราจะสามารถใช้ Arduino IDE ในการเขียนโปรแกรมบน NodeMCU ได้ โดยที่การใช้งานนั้นก็ไม่ต่างจากการใช้งาน Arduino รุ่นปกติ

รูปที่ 17

รูปที่ 17 ที่ตั้งลิงค์สำหรับดาวน์โหลด plugin ให้กับ Arduino IDE

รูปที่ 18

รูปที่ 18 ตรวจสอบจะพบว่ามีบอร์ด ESP-12E เพิ่มเข้ามาใน Arduino IDE เรียบร้อยแล้ว

การติดตั้ง plugin เพื่อเพิ่มโมดูล ESP12E

ติดตั้งซอฟต์แวร์สำหรับ ESP8266 เพิ่มเติมให้กับ Arduino IDE หากท่านยังไม่ได้ติดตั้ง Arduino IDE สามารถโหลดเวอร์ชันล่าสุด (ขณะนี้เป็นเวอร์ชัน 1.6.12) ซึ่งสามารถดาวน์โหลดได้ที่นี่เว็บไซต์ https://www.arduino.cc/en/Main/Software ดังแสดงในรูปที่ 16

หลังจากที่ดาวน์โหลดมาแล้ว ขั้นตอนต่อไปให้ติดตั้งตามขั้นตอนจนเสร็จสิ้น จากนั้นให้เปิดโปรแกรม Arduino IDE ขึ้นมา ทำการติดตั้ง plugin เพื่อเพิ่มบอร์ด ESP-12E เข้ามาใน Arduino IDE โดยเลือกไปที่เมนู File > Preferences จากนั้นให้ใส่ที่ตั้งลิงค์ http://arduino.esp8266.com/package_esp8266com_index.json ลงไปที่ช่อง Additional Board Manager URLs ดังแสดงในรูปที่ 17

จากนั้นเข้าไปที่เมนู Tools > Board > Boards Manager จะปรากฎหน้าต่าง Boards Manager ขึ้นมา ที่ช่อง Type เลือก Contributed แล้วจะมี plugin ของ esp8266 ให้เรากด Install จากนั้นก็ให้รอจนกระทั่งการติดตั้งเสร็จเรียบร้อย ให้เช็คดูว่า Arduino IDE ของเราเพิ่มบอร์ด ESP-12E เข้ามาหรือยัง หากถูกต้องจะมีบอร์ดเพิ่มเข้ามาดังแสดงในรูปที่ 18

ในโค้ดโปรแกรม ได้มีการเขียนให้รับข้อมูลมาจาก NETPIE ดังนั้นจำเป็นต้องดาวน์โหลดไลบารี่สำหรับเชื่อมต่อกับ NETPIE มาไว้ในเครื่องเสียก่อน เข้าไปดาวน์โหลดที่เว็บไซต์ https://github.com/netpieio/microgear-esp8266-arduino/archive/master.zip (หรือสามารถโหลดพร้อมกันกับซอร์สโค้ดการทำงานได้ที่ http://electronics.se-ed.com/download) จากนั้นให้แตกไฟล์แล้วนำไปวางที่โฟลเดอร์ libraries บนเครื่องคอมพิวเตอร์ของท่านดังตัวอย่างรูปที่ 19 (เลือกได้ 2 ที่ คือ Documents\Arduino\libraries หรือ C:\Program Files (x86)\Arduino\libraries)

รูปที่ 19

รูปที่ 19 เพิ่มไลบรารี่microgear-esp8266-arduino สำหรับโครงงานของเรา

รูปที่ 20

รูปที่ 20 วงจรสมบูรณ์

รูปที่ 21

รูปที่ 21 ลายวงจรพิมพ์ด้านล่าง (Bottom Layer) ขนาดเท่าแบบ

รูปที่ 22

รูปที่ 22 ตำแหน่งการลงอุปกรณ์ด้านบน (Top Overlay) ที่ถูกต้อง

รูปที่ 23

รูปที่ 23 การต่อสายและลำดับการอัพโหลดเฟิร์มแวร์ให้กับ ESP-12E

การประกอบ

รูปที่ 22 เป็นตำแหน่งการลงอุปกรณ์ด้านบน จะเห็นได้ว่ามีอุปกรณ์เพียงไม่กี่ชิ้นเท่านั้น ซึ่งการลงอุปกรณ์จึงทำได้ไม่ยาก แต่ถึงจะไม่ยากก็ควรต้องทำตามขั้นตอนที่ถูกต้อง โดยจะต้องลงอุปกรณ์ที่มีความสูงน้อยที่สุดก่อน โดยเริ่มจากลวดจั๊ม (Jumper), ตัวต้านทาน และตามด้วยอุปกรณ์ตัวอื่นๆ ที่เหลือทั้งหมดจนครบทุกตัว

เมื่อลงอุปกรณ์เสร็จแล้วให้ตรวจเช็คความถูกต้องด้วยสายตาอีกครั้ง โดยให้ดูอุปกรณ์ที่มีตำแหน่งขั้วและตำแหน่งขา จะต้องถูกต้องตามรูปที่ 22 จากนั้นให้เสียบปลั๊ก 220VAC โดยป้อนผ่านทาง CON1 จากนั้นให้ใช้โวลต์มิเตอร์มาวัดไฟในวงจร จุด VCC เทียบกราวด์จะต้องได้แรงดันเท่ากับ 5VDC

เมื่อพร้อมแล้วให้ทำการโหลดโปรแกรมลงบน ESP-12E ก่อนอื่นจะต้องสั่งให้ ESP-12E เข้าสู่โหมดการ Flash Firmware เสียก่อน ซึ่งการเข้าสู่สภาวะนี้จะต้องกำหนดให้ขา GPIO0 มีสภาวะเป็นลอจิก 0 หรือเชื่อมต่อลงกราวด์ก่อนจะป้อนแหล่งจ่าย ซึ่งในวงจรของเราได้ตระเตรียม SW1 และ SW2 ไว้สำหรับเข้าสู่โหมด Flash Firmware นี้ กล่าวคือ ท่านสามารถเข้าสู่โหมด Flash ได้โดยการกด SW2 ค้างไว้แล้วตามด้วยการกด SW1 เพื่อรีเซตตัว ESP-12E (ดังรูปที่ 23) เพียงเท่านี้ก็จะเป็นการเข้าสู่โหมด Flash Firmware แล้ว จากนั้นให้กดโหลดโปรแกรมจาก Arduino IDE

รูปที่ 24

รูปที่ 24 แก้ไขซอร์สโค้ดเพื่อเชื่อมต่อกับ NETPIE

รูปที่ 25

รูปที่ 25 หน้าต่าง Serial Monitor เมื่อสามารถเชื่อมต่อกับ NETPIE ได้

การเขียนซอร์สโค้ดในส่วนของ Arduino

หลังจากที่เตรียมความพร้อมสำหรับโปรแกรม Arduino IDE เรียบร้อยแล้ว ก็จะมาดูในส่วนของซอร์สโค้ดที่ใช้กำหนดการทำงานของ NodeMCU ของเรา ก่อนอื่นให้เข้าไปดาวน์โหลดซอร์สโค้ดที่ใช้ร่วมกับโครงงานทั้งหมดได้ที่เว็บไซต์ http://electronics.se-ed.com/download จะมีอยู่ 2 กระเป๋า คือ libraries และ AndroidPlug ซอร์สโค้ดของเราจะชื่อ “AndroidPlug.ino” อยู่ในกระเป๋า AndroidPlug ส่วนไฟล์ที่อยู่ในกระเป๋า libraries เป็นไฟล์ไลบรารี่ microgear-esp8266-arduino ทั้งหมดที่ท่านได้ดาวน์โหลดมาแล้วในขั้นตอนก่อนหน้านี้ หากท่านทำขั้นตอนด้านบนแล้วก็ไม่ต้องทำซ้ำอีก แต่หากยังไม่ได้เพิ่มไลบรารี่ก็สามารถนำกระเป๋านี้ไปวางในกระเป๋า libraries ดังรูปที่ 19 ได้เลยครับ

จากรูป 24 เป็นการแก้ไขซอร์สโค้ดโปรแกรมสำหรับ Arduino ต้องแก้เพียง 5 บรรทัด ดังนี้

  • บรรทัดที่ 4 แก้เป็นชื่อ WiFi ที่ต้องการใช้ ESP8266 เชื่อมต่อ

  • บรรทัดที่ 5 แก้ไขรหัสผ่านของ WiFi ที่ต้องการเชื่อมต่อ

  • บรรทัดที่ 7 แก้NETPIE_APPNAME ใส่เป็นชื่อ APPLICATIONS ที่เราตั้งไว้ใน NETPIE ในตัวอย่างโครงงานนี้ตั้งเป็น “AndroidSemiPlug”

  • บรรทัดที่ 8 แก้NETPIE_KEY ค่านี้เป็น Device Key ตรงส่วน Key จากใน NETPIE

  • บรรทัดที่ 9 แก้NETPIE_SECRET ค่านี้เป็น Device Key ตรงส่วน Secret จากใน NETPIE

หากแก้ไขเสร็จแล้วก็ให้ทำการอัพโหลดโปรแกรมได้เลยและเมื่ออัพโหลดเสร็จแล้ว ให้กดดูข้อมูลจาก Serial Monitor โดยปรับ baud rate เท่ากับ 115200 หากขึ้นประมาณดังรูปที่ 25 แสดงว่าสามารถเชื่อมต่อกับ NETPIE ได้และพร้อมรับส่งข้อมูลแล้ว 

รูปที่ 26

รูปที่ 26 การใส่ข้อมูลเพื่อส่งค่าไปยัง NETPIE

รูปที่ 27

รูปที่ 27 หน้าต่าง Serial Monitor เมื่อรับคำสั่งจาก NETPIE ได้

ทดสอบส่งข้อความเข้า NETPIE

ในการรับส่งข้อมูลในโครงงานนี้จะเขียนแอพพลิเคชัน Android ด้วย App Inventor 2 เนื่องจากแอพพลิเคชันที่เขียนนี้ไม่สามารถเชื่อมต่อกับ NETPIE โดยตรง ดังนั้นจึงจำเป็นต้องใช้ REST API ซึ่งก่อนจะเขียนแอพพลิเคชัน เรามาทำการทดสอบการส่งข้อมูลกันเสียก่อน โดยให้เข้าไปที่เว็บไซต์ http://requestmaker.com/

มุมขวาบนของหน้าเว็บให้เปลี่ยนเป็น PUT ในช่อง Request URL ให้กรอกในรูปแบบ https://api.netpie.io/topic/{NETPIE_APPNAME}/gearname/led?auth={REST API auth} โดยแก้ {NETPIE_APPNAME} เป็นชื่อ APPLICATIONS แก้ {REST API auth} เป็น REST API auth ของ Session Key กรอก Request Data เป็น ON หรือ OFF แล้วกด Submit ดังแสดงในรูปที่ 26

หลังจากที่กดปุ่ม Submit แล้ว ข้อมูลจะถูกส่งไปที่ NETPIE หากถูกต้องที่ Serial Monitor จะแสดงข้อความขึ้นมาดังแสดงในรูปที่ 27 แสดงว่าสามารถใช้งานได้แล้วและพร้อมสำหรับนำไปใช้งานทำแอพพลิเคชัน Android แล้ว

รูปที่ 28

รูปที่ 28 หน้าต่าง Serial Monitor เมื่อรับคำสั่งจาก NETPIE ได้

รูปที่ 29

รูปที่ 29 หน้าเว็บการสร้างProject ใหม่บน App Inventor 2

รูปที่ 30

รูปที่ 30 หน้าตาแอพพลิเคชันที่สร้างบน App Inventor 2

สร้างแอพพลิเคชั่น Android ด้วย App Inventor 2

App Inventor 2 เป็นเว็บแอพพลิเคชันที่สร้างโดย Google ร่วมมือกับสถาบัน MIT แต่ภายหลัง Google ถอนตัว แล้วให้สถาบัน MIT เป็นผู้พัฒนาต่อเอง โดยเน้นไปในทางด้านการศึกษา ให้ผู้ที่ไม่มีความรู้ทางด้านภาษา Java สามารถเขียนแอพพลิเคชัน Android ได้ โดยการเขียนจะอยู่ในรูปแบบ Block ทำให้เข้าใจได้ง่าย

การใช้งานให้เข้าไปที่เว็บไซต์ http://ai2.appinventor.mit.edu/ จะขึ้นหน้าต่างการ Login ขึ้นมา หากท่านมี Account ของ Gmail อยู่แล้วสามารถทำการ Login ได้เลย ให้กดยอมรับข้อตกลงต่างๆ ให้เรียบร้อย เสร็จแล้วจะเข้ามาที่หน้าต่างดังรูปที่ 29 กดที่ปุ่ม Start new project และตั้งชื่อ project ที่เราต้องการ

จากรูปที่ 30 ผู้เขียนได้ออกแบบหน้าตาของแอพพลิเคชันไว้ให้มีปุ่ม ON และ OFF สำหรับเปิดและปิดเอาต์พุตของเรา สิ่งสำคัญที่เราจะต้องแก้ไข คือ ตำแหน่ง Url ที่ใช้สำหรับเข้าถึง API บนNETPIE ของเรา ให้กดไปที่ Web1 บนเว็บ จะเห็นว่าทางด้านขวามือของหน้าจอจะขึ้นเมนู Properties ขึ้นมาให้มองหาช่อง Url ให้ใส่ตำแหน่ง API ที่เราได้ทดสอบไปแล้วในขั้นตอน “ทดสอบส่งข้อความเข้า NETPIE” มาใส่ในช่องนี้ ดังแสดงในรูปที่ 31เสร็จแล้วก็สามารถกดที่ Build แล้วเลือก App QR code หรือจัดเก็บบนคอมพิวเตอร์ แล้วแต่ความสะดวกของผู้ใช้ เมื่อติดตั้งลงโทรศัพท์แล้ว จะได้แอพพลิเคชันใช้งานดังแสดงใรรูปที่ 32

รูปที่ 31

รูปที่ 31 การแก้ลิ้งค์ URL สำหรับเชื่อมต่อกับ NETPIE

รูปที่ 32

รูปที่ 32 ข้อมูลในรูปแบบ Block บน App Inventor 2

รูปที่ 33

รูปที่ 33 แอพพลิเคชันที่ติดตั้งบนโทรศัพท์

รูปที่ 34

รูปที่ 34 หน้าต่าง Serial Monitor เมื่อรับคำสั่งจากโทรศัพท์ได้

 

เมื่อลองกดปุ่ม ON หรือ OFF บนโทรศัพท์ ขณะนั้นที่หน้าต่าง Serial Monitor หากมีข้อมูลเข้ามาดังในรูปที่ 34 แสดงว่าโครงงานเราสามารถรับข้อมูลขาก NETPIE ได้แล้ว และขณะนั้นเอาต์พุตจะปิดและเปิดตามจังหวะการกด ซึ่งจะช้ากว่าการกดสักหน่อยขึ้นอยู่กับความเร็วของอินเทอร์เน็ต

เพียงเท่านี้ท่านจะสามารถสั่งงานเปิด-ปิดอุปกรณ์ปลายทางผ่านอินเทอร์เน็ตได้แล้ว ท่านสามารถหากล่องหรือรางปลั๊กไฟที่มีขนาดใหญ่พอที่จะส่งโครงงานของเราได้ เพื่อความสวยงามและน่าใช้มากยิ่งขึ้น


รายการอุปกรณ์

ตัวต้านทาน

R1, R3 – 1k            2      ตัว

R2 –  100         1      ตัว

R4 –   10k         1       ตัว

R5 –    10          1         ตัว 

ตัวเก็บประจุ

C1 –   10uF 16V อิเล็กทรอไลต์          1       ตัว

C2 –   220uF 16V อิเล็กทรอไลต์        1      ตัว

ตัวเก็บประจุ

IC1 –   LTV817           1     ตัว

D1 –   1N4007           1      ตัว

Q1 –   2N4401           1      ตัว

LED1 – POWER         1       ตัว

LED2 –   OUTPUT       1       ตัว

อื่นๆ

CON1- CON2 – เทอร์มินอลบล็อก 2 ขา         2       ตัว

CON3 –  คอนเน็กเตอร์ 4 ขา          1         ตัว

ESP1 –   ESP8266-12E           1         ตัว

RY1 –   รีเลย์ 5V 1 คอนแท็กต์        1       ตัว

SW1- SW2 – สวิตช์กดติดปล่อยดับ        2       ตัว

TO1 –  หม้อแปลงสวิตชิ่ง 5V/3W        1       ตัว

VAR1 –  วาริสเตอร์ 250VAC            1        ตัว

หมายเหตุ ซอร์สโค้ดทั้งหมดที่ใช้ร่วมกับโครงงานนี้สามารถดาวน์โหลดได้ที่เว็บไซต์ http://electronics.se-ed.com/download, ESP1 และ TO1 สามารถซื้อได้ที่ร้าน บริษัท อีเล็คทรอนิคส์ พาร์ท ซัพพลาย จำกัด โทรศัพท์: 02-2220688

 

Leave a Comment