วันอาทิตย์ที่ 4 มิถุนายน พ.ศ. 2560

Smart Plug

SMART PLUG BOX เป็นการใช้เทคโนโลยีมาควบคุมปลั๊กไฟตามจุดต่างๆภายในบ้านควบคุมการเปิด - ปิดพลังงานโดยใช้โทรศัพท์มือถือควบคุม SMART PLUG BOX ผ่าน web application เพื่ออำนวยความสะดวกแก่ผู้อยู่อาศัย ช่วยให้ผู้อยู่อาศัยภายในบ้านที่ไม่สามารเดินได้หรือไม่สะดวกที่จะเดินไปเปิด - ปิดอุปกรณ์ไฟฟ้าสามารถเปิด - ปิด อุปกรณ์เครื่องใช้ไฟฟ้าที่เชื่อมต่อกับSmart plug box จากระยะไกล

จุดประสงค์
1. ผู้ใช้งานสามารถเปิด - ปิดอุปกรณ์ไฟฟ้าจากระยะไกล
2. ผู้ใช้งานสามารถใช้งานได้แม้จะไม่เคยใช้งานมาก่อน
3. ผู้ใช้งานได้รับความสะดวกสบายในการใช้งาน

ขั้นตอนการออกแบบและการสร้างหน้าจอ

1. ส่วนติดต่อผู้ใช้ Web application





2. ส่วนของอุปกรณ์สำหรับใช้ในการเปิด-ปิด การจ่ายไฟฟ้าให้อุปกรณ์ไฟฟ้าโดยใช้บอร์ด node mcu , relay module









รูปที่ 1 โค้ดในส่วนของการกำหนดตัวแปรเริ่มต้น

จากรูปที่ 1 โค้ดในส่วนนี้เป็นการกำหนดค่าเริ่มต้นให้ตัวแปรต่างๆที่ใช้งานในโค้ด ได้แก่ การกำหนด pin สำหรับควบคุมการเปิด - ปิดของ plug แต่ละตัว ต่อมาเป็น pin สำหรับใช้ในการรับค่าเพื่อควบคุมการติด - ดับเมื่อไม่มีการเชื่อมต่อกับเครือข่าย นอกจากนี้ยังมีการกำหนด ssid และ password สาหรับ connect กับเครือข่าย รวมถึงตัวแปรสำหรับเก็บสถานะของ plug สำหรับ port ที่ใช้ในการสื่อสารคือ port 80



รูปที่ 2 โค้ดในส่วนของการกำหนดการเชื่อมต่อ Wi-Fi

ในส่วนของรูปที่ 2 จากโค้ดจะเห็นได้ว่ามีการเปิดใช้ serial port โดยใช้ baud rate ที่ 115200 และกำหนด pin ที่ใช้ในการควบคุม plug เป็น output แต่ pin ของ savecut จะเป็น input สำหรับอ่านค่า analog สำหรับการนำไปสร้างเงื่อนไขในการป้องกันไฟเกิน จากนั้นให้อุปกรณ์เชื่อมต่อกัน Access Point ซึ่งในการทดสอบนี้ใช้โทรศัพท์มือถือเป็นอุปกรณ์ปล่อยสัญญาณแทน Access Point โดยในโค้ดมีการสร้าง Loop เพื่อตรวจสอบสถานะการเชื่อมต่อ หากสถานะของ Wi-Fi ยังไม่มีการเชื่อมต่อ ให้ print “.” (จุด) ทุก ๆ 5 วินาที หากสามารถเชื่อมต่อแล้ว ให้ print แสดงสถานะและหมายเลข IP แล้วเปิดให้ TCP server เริ่มทำงาน



รูปที่ 3 โค้ดในส่วนของการควบคุมปลั๊กไฟขณะรอการเชื่อมต่อ Wi-Fi และ รอการเชื่อมต่อกับ Client

จากโค้ดในข้างต้นจะเห็นได้ว่ามีคำสั่ง While Loop เพื่อสร้างเงื่อนไขว่าถ้าไม่สามารถเชื่อมต่อกับ Wi-Fi ได้ สถานะของปลั๊กไฟทุกตัวจะยังไม่ทำงาน (Low) ต่อมาหากมีการเชื่อมต่อ Wi-Fi แล้วแต่ยังไม่มี Client มาร้องขอการ เชื่อมต่อด้วยจะให้ทำการวน Loop รอจนกว่าจะมี Client เข้ามาใช้ และเมื่อมี Client ติดต่อเข้ามาให้อ่านค่าที่ได้รับจากข้อมูลแรกถึง '\r' แล้วแสดงค่าผ่านทาง serial


รูปที่ 4 โค้ดในส่วนของการควบคุมการเปิด - ปิดของปลั๊กไฟ

จากรูปโค้ดในข้างต้นเป็นการตัดมาแสดงบางส่วน ซึ่งการทำงานหลัก ๆ ของส่วนนี้คือ การกำหนดเงื่อนไขจาก request ที่ได้จากหน้าเว็บ ดังตัวอย่างด้านบนซึ่งอธิบายได้ดังนี้ สำหรับปลั๊ก ตัวที่ 1 ถ้าได้รับ request คือ “/plug1off” ให้ status_plug 1 มีค่าเป็น 0 แล้วกำหนดขาที่ควบคุมปลั๊กตัวนี้เป็น “Low” หรือ “ดับ” พร้อมทั้งแสดงข้อความผ่าน serial แต่ถ้าหาก request ที่ส่งมาคือ “/plug1on” ให้ status_plug1 เท่ากับ 1 แล้วกำหนดขาที่ควบคุมปลั๊กนี้เป็น “High” หรือ “ติด” ซึ่งได้สร้างเงื่อนไขในลักษณะดังกล่าวสำหรับปลั๊ก 4 ตัว


รูปที่ 5 โค้ดในส่วนของการจัดแต่งหน้าเว็บสำหรับติดต่อกับผู้ใช้

สำหรับการปรับแต่งหน้าเว็บไซต์นั้นได้นำ theme ของ Bootstrap เข้ามาใช้เพื่อความสวยงามและมีการกำหนดค่าต่างๆ เช่น สี ขนาดหน้าต่างให้สวยงานเหมาะสม


รูปที่ 6 โค้ดในส่วนของการควบคุมการเปิด - ปิดไฟผ่านหน้าเว็บ

ในส่วนนี้เป็นการแสดงรูปของปลั๊กไฟตามเงื่อนไขของ status_plug จากตัวอย่างโค้ดในรูปที่ 5 เช่น หาก status_plug1 มีค่าเท่ากับ “1” หมายถึงปลั๊กไฟติดให้แสดงรูปในโทนสีขาว แต่ถ้าหาก status_plug1 มีค่าอื่นๆ ให้หน้าเว็บให้แสดงรูปโทนสีดำซึ่งต้องสร้างเงื่อนไขสำหรับปลั๊ก 4 ตัว ให้การแสดงผลในหน้าเว็บดังตัวอย่างรูปที่ 7

รูปที่ 7 รูปแสดงสถานะของปลั๊กไฟผ่านหน้าเว็บ 



รูปที่ 8 โค้ดในส่วนของปุ่มกดในหน้าเว็บ

ในส่วนนี้เป็นการสร้างปุ่มกดเพื่อสั่งการเปิด - ปิดปลั๊กไฟแต่ละตัว โดยปุ่มเปิดคือปุ่ม Turn On กำหนดให้มีสีเขียวหรือเป็นปุ่ม btn-success ซึ่งเป็น theme ของ bootstrap โดยเมื่อกดปุ่มนี้ จะส่ง request “/plug on” ไปยังอุปกรณ์เพื่อกำหนด pin ให้เป็น “High” ส่วนปุ่ม Turn Off กำหนดให้มีสีแดงหรือเป็นปุ่ม btn-danger ซึ่งเป็น theme ของ bootstrap โดยเมื่อกดปุ่มนี้ จะส่ง request “/plug off” ซึ่งต้องทำทั้งหมด 4 ชุด สำหรับควบคุมการเปิด - ปิดผ่านหน้าเว็บ ดังรูปที่ 7


ผลการดำเนินงาน

                                                             ส่วนหน้าเว็บควบคุม


รูปที่ 9 หน้าเว็บสำหรับควบคุมการทำงานของปลั๊กไฟ



ส่วนของชิ้นงาน

                                                       1. ชิ้นงานที่ใช้ในการทดสอบ


รูปที่ 10 ชิ้นงานในขั้นตอนการทดสอบ 


รูปที่ 11 อุปกรณ์การควบคุมการเปิด - ปิดปลั๊กไฟ


2. ชิ้นงานที่พัฒนาครอบด้วยพลาสติก จาก 3D printer



รูปที่ 12 ชิ้นงานที่บรรจุอุปกรณ์ควบคุมไว้ในกล่องพลาสติกจาก 3D printer 


ตัวอย่างการทดสอบ

1. กรณีที่ยังไม่ได้เปิดปลั๊กไฟ




2. กรณีที่สั่งเปิดปลั๊กไฟ 1 ดวง




3. กรณีสั่งเปิดปลั๊กไฟ 3 ดวง





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


ลิ้งค์วิดิโอสาธิตการทำงานของ Smart Plug





ขอบพระคุณทุกท่านที่รับชมครับ