Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - tumrobot

#1
เนื่องจากว่า มีความจำเป็นที่จะต้องทิ้งบ้าน เพื่อเดินทางไปธุระ บ่อยๆ จึงค่อนข้างที่จะเป็นห่วงทรัพย์สินของตนเองภายในบ้าน ซึ่งก่อนหน้านี้ ก็ได้แต่เพียงใช้การสั่งงานเปิดปิดไฟฟ้า และตั้งเวลา ผ่านระบบอินเตอร์เน็ต ซึ่งคิดว่ายังไม่น่าจะเพียงพอที่จะป้องกัน โจร ขโมย ที่อาจจะเข้ามาบุกรุกบ้านได้ เพราะเคยได้ข่าวว่า ปัจจุบัน พวกโจร ขโมย จะสังเกตุพฤติกรรมของผู้อาศัยภายในบ้าน สังเกตุเวลาเปิด ปิดไฟ ว่าอยู่บ้านเหรอเปล่า และตอนนี้ก็มีระบบกล้องวงจรปิด ที่เริ่มเป็นที่นิยมมากขึ้น ไว้คอยบันทึกเหตุการณ์ต่างๆ ที่เกิดขึ้นในขณะที่เราไม่ได้อยู่ที่บ้านให้เจ้าของ สามารถเห็นเหตุการณ์ในบ้านของตนเอง ขณะที่ไม่อยู่บ้านได้ แต่การติดกล้องวงจรปิด ก็เป็นแค่การป้องปรามโจรผู้ร้าย ไม่อาจจะช่วยขับไล่ได้ ดังนั้นจึงมีความคิดที่ว่าน่าจะมีระบบกันขโมยที่สามารถสั่งควบคุมได้ และแจ้งเตือนการบุกรุก เข้ามาที่โทรศัพท์มือถือของเราได้ด้วย

แนวคิดการแจ้งเตือนการบุกรุก เข้าโทรศัพท์มือถือ มีอยู่ 2 ทางก็คือ

1. ส่งการแจ้งเตือนผ่านระบบ SMS เข้าทางโทรศัพท์มือถือ ข้อดีก็คือสามารถทำได้ง่าย เพราะแค่ส่งคำสั่งไปที่ GSM Module ไม่กี่คำสั่งก็สามารถทั้งส่ง SMS และโทรไปยังเครื่องปลายทางได้ทันที แต่ข้อเสียก็คือ มีค่าใช้จ่ายในการที่ต้องเสียค่าส่งข้อความ และยังจะต้องเติมเงินเพื่อรักษาสภาพซิมการ์ดอีก

2. ส่งการแจ้งเตือนผ่านระบบอินเตอร์เน็ต แบบ Push Notification ก็จะมีหลายวิธี ไม่ว่าจะ Push ผ่านเวปเช่น pushbullet.com หรือผ่านทาง google notification แต่ก็รู้สึกว่ามีความยุ่งยากซับซ้อนในการทำงานมากเกินไป

จนกระทั่ง Line ได้เปิดให้ใช้งาน Line Bot Notification ให้สามารถส่งแจ้งเตือนข้อความเข้า App ไลน์ ได้โดยผ่านการส่งข้อมูลแบบ POST หรือ GET จึงทำให้ง่ายต่อการที่เราจะส่งข้อความแจ้งเตือนเข้าโทรศัพท์มือถือของเรา ประกอบกับปัจจุบันตัว WiFi Module ESP8266 ก็มีความสามารถที่จะเชื่อมต่ออินเตอร์เน็ตและสามารถเขียนโปรแกรมเพื่อพัฒนาผ่าน Arduino IDE จึงทำให้ยิ่งสะดวกมากขึ้นที่จะทำระบบการแจ้งเตือนการบุกรุก ส่งข้อความแจ้งเตือนเข้าทาง ไลน์ ซึ่งเราก็ใช้แอพพลิเคชั่นนี้เป็นประจำอยู่แล้ว

อุปกรณ์ที่ใช้ในการทดสอบ คร่าวๆ มีดังต่อไปนี้

1. สวิตช์แม่เหล็ก แบบ NO

2. อุปกรณ์ ส่วนควบคุม , MCU, WiFi Module , รีเลย์ , PCB และ Power Supply 5V

3. ไซเรน ขนาด 12V แต่ใช้ไฟเพียงแค่ 5 โวลต์ ก็สามารถทำงานได้แล้ว









      
วงจรตัวอย่างที่ต่อเสร็จแล้ว




       
สาเหตุที่ต้องเพิ่ม MCU เบอร์ PIC18F14K50-I/P เข้ามาในวงจรอีกทั้งๆ ที่ตัว ESP8266 ก็สามารถเขียนโปรแกรมให้ทำงานได้เองและมี I/O ที่น่าจะเพียงพอกับการใช้งาน ก็เนื่องมาจากว่า ก่อนหน้านี้เคยทดสอบนำตัว ESP8266 มาทำงานในลักษณะนี้แบบเดี่ยวๆ แล้วผลที่เจอก็คือ ในขณะที่มีการเชื่อมต่อไวไฟ เข้ากับเร้าเตอร์แล้วถ้าสัญญาณอินเตอร์เน็ตเกิดมีปัญหา แล้วเวลาเราให้ตัว ESP8266 ที่การ reset ตัวเองแล้วมีบางครั้งที่ตัว ESP8266 รีบูตกลับมาทำงานเองไม่ได้ดังนั้นเบื้องต้นจึงให้ทำงานควบคู่กับ MCU ไปก่อน และคอยให้ตัว MCU คอยเช็คสถานะการทำงานของ ESP8266 ซึ่งถ้าหากตรวจพบการทำงานที่ผิดปกติก็ให้ตัว MCU ทำการรีเซ็ตตัว ESP8266 แทน แล้วในอนาคตเดี๋ยวค่อยหาทางแก้ปัญหานี้ และพัฒนาให้สามารถทำงานได้ด้วยตัวโมดูลเองให้ได้อย่างเต็มประสิทธิภาพอีกครั้งนึง อีกสาเหตุนึงก็คือตัว ESP8266 นั้นการใช้ Interupt Timer ในตัวนั้นค่อนข้างจำกัด ในที่่นี้ก็คือนอกจากจะมีให้ใช้น้อยแล้ว บางครั้งยังพบการทำงานของ Timer ที่ผิดพลาดจนเป็นสาเหตุทำให้ตัว WDT ทำการรีเซ็ตตัวมันเองอีกด้วย เพราะฉะนั้น หากต้องการการทำงานของตัว ESP8266 ที่ค่อนข้างเสถียร เราจึ่งให้ตัว ESP8266 ทำหน้าที่แค่เชื่อมต่อสัญญาณอินเตอร์เน็ตเท่านั้น

ทดสอบการทำงานของ ตัวแจ้งเตือนการบุกรุก ส่งข้อความเข้าไลน์

      

https://www.youtube.com/watch?v=nZ8QYV0KPbM


Source Code:

MCU: เขียนด้วย CCS สามารถดาวน์โหลดได้ ที่นี่ http://openfog.net/MyPicture/Document/Alert/MCU_CODE.zip

ESP8266: เขียนด้วย Arduino IDE สามารถดาวน์โหลดได้ ที่นี่ http://openfog.net/MyPicture/Document/Alert/ESP8266_LINE_ALERT.zip


App Android :




Android Code: พัฒนาด้วย Android SDK บน Eclipse IDE สามารถดาวน์โหลดได้ ที่นี่ http://openfog.net/MyPicture/Document/Alert/MQTT_Test.zip



จากการทดลองนี้ เราสามารถนำการแจ้งเตือนการบุกรุก ส่งข้อความเข้าไลน์ ไปประยุกต์ใช้งานสำหรับการแจ้งเตือนในรูปแบบอื่นๆ ได้อีกด้วย เช่น

1. แจ้งเตือนการกดกริ่งหน้าบ้าน ทำเป็น Smart Ring Bell

2. แจ้งเตือนเหตุ ไฟใหม้ ไฟฟ้าลัดวงจร

3. แจ้งเตือนสำหรับกันขโมยของรถยนต์ กรณีรถโดนทุบ หรือประตูรถถูกเปิด

ไว้ถ้าหากมีโอกาสจะมาลองทำโปรเจ็คเหล่านี้เล่นๆดูครับ


ขอบคุณ ข้อมูลจาก

http://www.ioxhop.com/article/47/esp8266-esp8285-%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B9%88%E0%B8%87%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%81%E0%B8%88%E0%B9%89%E0%B8%87%E0%B9%80%E0%B8%95%E0%B8%B7%E0%B8%AD%E0%B8%99%E0%B9%80%E0%B8%82%E0%B9%89%E0%B8%B2-line


https://python3.wannaphong.com/2016/10/%E0%B8%97%E0%B8%B3%E0%B8%A3%E0%B8%B0%E0%B8%9A%E0%B8%9A%E0%B9%81%E0%B8%88%E0%B9%89%E0%B8%87%E0%B9%80%E0%B8%95%E0%B8%B7%E0%B8%AD%E0%B8%99%E0%B8%9A%E0%B8%99-line-%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2-py.html
#2
เครื่องควบคุมเครื่องใช้ไฟฟ้าผ่าน Internet ด้วย Android

โปรเจคนี้เคยเอามาเขียนโพสตอน Electoday Ver 3.0 แล้วล่ะครับ เอามาเขียนให้อ่านใหม่อีกรอบเนื่องจากว่ายังมีคนสนใจอยู่
เกริ่นอีกรอบนึงละกัน

;D

สืบเนื่องมาจากปลายปี 2554 ตอนน้ำท่วมใหญ่ที่ กทม ตอนนั้นผมได้อพยพออกนอกพื้น (เขตบางเขน) ที่เพื่อไปอาศัยอยู่ที่ต่างจังหวัด
โดยทิ้งทรัพย์สินบางส่วนไว้ที่บ้าน แต่ที่หมู่บ้านก็มีผู้คนบางกลุ่มยังอาศัยอยู่บ้างเนื่องจากว่าน้ำท่วมไม่ค่อยสูงมากแค่ 1 เมตร
เลยทำให้ทางการไม่ได้ตัดไฟฟ้า เพราะเห็นว่ายังมีคนบางส่วนยังไม่ออกพื้นที่ แต่ด้วยความที่เป็นห่วงบ้างและทรัพย์สินก็เลยคิดโปรเจค
ตัวนี้ขึ้นมา นั่นก็คือเครื่องควบคุมไฟฟ้าผ่าน Internet
แนวคิดก็คือ
สามารถควบคุมเครื่องใช้ไฟฟ้าผ่านโทรศัพท์ Android ตอนหลังเพิ่ม Application ที่สามารถควบคุมผ่านคอมพิวเตอร์ (VB6)
สามารถตั้งเวลาเปิด ปิดไฟฟ้าได้ หลอกพวกโจร และคนแถวบ้านว่ายังอยู่ที่บ้านแต่จริงๆ ตัวไปไกลแล้วล่ะครับ หุ หุ

การทำงานก็คือเริ่มจาก Concept ง่ายก่อนนั่นก็คือส่งข้อมูลผ่าน Internet ที่เรียกว่า packgage command
ไปยัง MCU ที่อยู่บนบอร์ดแต่เนื่องจากว่า MCU ที่ใช้รับข้อมูลเป็นระบบ Serial RS232 เลยจำเป็นต้องมีตัวแปลงข้อมูล
ที่เรียกว่า Serial to Ethernet และผมก็เลือกใช้ Xport เพื่อความสะดวกและง่ายในการพัฒนาเนื่องจากระยะเวลาค่อนข้างจำกัด
ครั้นจะเลือกใช้ MCU ที่รองรับ Ethernet ก็ต้องใช้เวลาในการพัฒนาถึงแม้ว่าจะมี Library มาให้ใช้ก็ต้องไปนั่งแกะ Library เค้าอีก
คิดว่าน่าจะเสียเวลาเกินไป และที่สำคัญคิดว่าถ้า Ethernet MCU จะใส่ลูกเล่นเช่นการตั้งเวลาเข้าไปอาจจะทำไม่ทันซึ่งจะยุ่งยากเข้าไปอีก
ก็เลยออกมาเป็นระบบนี้ครับ

หน้าตา HW ก็ประมาณนี้ครับ




อันนี้เอาไปต่อใช้งานที่บ้านตอนแรกครับ ตัวนี้ใส่ระบบตั้งเวลาเข้าไปแล้วล่ะครับ








ส่วนอันนี้ก็คือวงจรที่ออกแบบเอาไว้คร่าวๆ นะครับ




หลักการทำงานก็คือเริ่มจากการสั่งงานผ่านโทรศัพท์มือถือ Android ผ่าน Wireless ไปยัง Router และข้อมูลผ่าน Internet
ไปยัง IP Address ปลายทางและข้อมูลผ่าน Xport (Serial to Ethernet) จากข้อมูล TCP กลายเป็นข้อมูล Serial เข้าไปยัง MCU
เพื่อรอรับคำสั่งว่าเราต้องการทำอะไร เปิด หรือปิดไฟฟ้า ตามรูปนี้เลยครับ






ส่วนนี่ก็คือหน้าตา Application บน Android ( เวอร์ชั่นแรก ยังไม่มีการสั่งตั้งเวลา )






วิดีโอทดสอบการใช้งานครับ

http://www.youtube.com/v/_6AuaNxKiEk



และวิดีโอทดสอบการสั่งงานตั้งเวลาครับ ( สำหรับ App Android Version 2 )

http://www.youtube.com/v/so7LUHRdavw



ส่วนอันนี้เป็น VB Application ที่ใช้ควบคุมผ่านคอมพิวเตอร์ครับ






Source Code:
1. MCU Code  ที่นี่
2. Android Code  ที่นี่
3. Android APK  ที่นี่
4. VB6 Code ที่นี่


ปล. Android App เวอร์ชั่นปัจจุบัน ดาวน์โหลดได้ใน Google Play ได้ครับ


คลิ๊กเพื่อดาวน์โหลด App


Update 1 !!! Arduino Home Control ( Arduino UNO R3 + Ethernet Shield )