วันศุกร์ที่ 19 ตุลาคม พ.ศ. 2561

กล่องจดหมายแจ้งเตือนผ่าน line

โครงงานนี้เป็นการนำเอาโมดูลเซ็นเซอร์แสงสำหรับตรวจจับเมื่อมีจดหมายส่งเข้ามา แล้วแจ้งเตือนเข้า LINE ผ่าน NodeMCU ESP8266 

ในยุคปัจจุบันตู้รับจดหมายยังคงมีความจำเป็นสำหรับบ้านเรือน เพื่อใช้ในการรับฝากข่าวสาร เอกสารสำคัญต่างๆ ที่ถูกส่งมาทางไปรษณีย์ เนื่องจากตู้รับจดหมายมีลักษณะที่ปิดทึบ ทำให้เจ้าของบ้านสังเกตจดหมายที่อยู่ในตู้ได้ยาก อีกทั้งเมืองไทยนั้นอากาศร้อน ทำให้ลำบากที่จะเดินไปเช็คตู้รับจดหมายที่หน้าบ้านอยู่บ่อยๆ เมื่อทิ้งจดหมายค้างไว้ในตู้รับจดหมายเป็นเวลานาน อาจทำให้จดหมายสำคัญได้รับความเสียหายได้

เพื่อเป็นการแก้ปัญหาดังกล่าว จึงจำเป็นต้องทำให้ตู้รับจดหมายมีความอัจฉริยะ สามารถรับรู้ได้เมื่อมีจดหมายส่งเข้ามา แล้วแจ้งเตือนเจ้าของบ้านผ่านทางแอพพลิเคชั่น LINE ทำให้ไม่พลาดจดหมายสำคัญๆอีกต่อไป

รูปที่ 1 ตู้รับจดหมายแจ้งเตือนผ่าน LINE Notify

เซ็นเซอร์แสงตรวจจับสิ่งกีดขวาง

โครงงานนี้ผู้เขียนเลือกใช้เป็นโมดูลเซ็นเซอร์แสงสำหรับตรวจจับสิ่งกีดขวาง ที่สามารถหาซื้อได้ตามร้านค้าขายอุปกรณ์ Arduino ทั่วไป โดยโมดูลตัวนี้จะมีตัวรับและตัวส่ง infrared ในตัว ตัวส่งจะส่งสัญญาณ infrared ออกมา เมื่อมีวัตถุมาบัง คลื่นสัญญาณ infrared ที่ถูกส่งออกมาจะสะท้อนกลับไปเข้าตัวรับสัญญาณ สามารถนำมาใช้ตรวจจับวัตถุที่อยู่ตรงหน้าได้ ภายในโมดูลยังสามารถปรับความไว ระยะการตรวจจับ ใกล้หรือไกลได้

รูปที่ 2 เซ็นเซอร์แสงตรวจจับสิ่งกีดขวาง

ตัวโมดูลมี 4 ขาคือ GND, VCC (ไฟบวก), OUT และ EN เราสามารถต่อใช้งานเพียงแค่ 3 ขาได้แก่ GND, VCCและ OUT โดยในสภาวะที่ไม่มีวัตถุมาบัง สัญญาณที่ออกจากขา OUT จะเป็นลอจิก “1” และเมื่อมีวัตถุมาบัง สัญญาณที่ออกจากขา OUT จะเป็นลอจิก “0” 

รูปที่ 3 Mini NodeMCU ESP-8266

 Mini NodeMCU ESP8266

ถ้าพูดถึงเรื่อง Internet of Things (IoT) แล้วคงต้องพูดถึงอุปกรณ์ตัวนี้ เพราะมันเป็นหัวใจสำคัญในการเชื่อมต่อกับอินเตอร์เน็ตนั่นเอง NodeMCU คือ แพลตฟอร์มหนึ่งที่ช่วยในการทำโปรเจค IoT และตัวมันเองนั้นมีพอร์ต Input Output มาในตัว ทำให้สามารถเขียนโปรแกรมคอนโทรลอุปกรณ์ต่างๆได้โดยไม่ต้องผ่านอุปกรณ์อื่นๆ

นอกจากนี้ NodeMCU ยังสามารถใช้งานได้กับ Arduino IDE อีกด้วย แต่ก่อนที่จะใช้งานได้นั้น เราต้องติดตั้งโปรแกรมเพื่อใช้ในการเขียนโปรแกรมให้กับ NodeMCU ผ่านทาง Arduino IDE เสียก่อน สามารถค้นหาข้อมูลขั้นตอนการติดตั้งโดยใช้คำว่า “ติดตั้ง Arduino IDE ลงบน ESP8266 NodeMCU” สำหรับโครงงานนี้ผู้เขียนเลือกใช้ NodeMCU ESP-8266 แบบ Mini เพราะมีขนาดเล็กนั่นเอง โดยในการเชื่อมต่อกับอินเตอร์เน็ตนั้น NodeMCU จะทำงานร่วมกับ Router ของบ้าน เพราะฉะนั้น ต้องมีสัญญาณ WiFi จาก Router ของบ้านครอบคลุมถึงสถานที่ที่ติดตั้งตู้รับจดหมายด้วย 

LINE Notify

LINE Notify ก็คือการแจ้งเตือนผ่าน LINE เป็นลูกเล่นที่ทาง LINE ทำออกมาให้เหล่านักพัฒนาอย่างเราๆ ได้สนุกสนานกัน เป็นบริการและช่องทางที่ถูกต้อง โดยสามารถส่งข้อความแจ้งเตือนต่างๆ ไปยังบัญชีของเรา หรือกลุ่มต่างๆที่เราอยู่ได้ ผ่านทาง API ที่ทาง LINE ได้เตรียมไว้ให้นั่นเอง

การจะใช้งานได้นั้น ขั้นแรกเราต้องมี LINE Account ที่ลงทะเบียนด้วย Email แล้ว เพื่อใช้ในการสมัคร LINE Notify โดยเข้าไปสมัครได้ที่ https://notify-bot.line.me/th/ แล้วกด เข้าสู่ระบบ” แล้ว Login บัญชี LINE ด้วย Email และรหัสผ่าน จากนั้นให้กดลูกศรชี้ลงด้านข้างชื่อบัญชีแล้วเลือก หน้าของฉัน” แล้วเลื่อนลงมาด้านล่างให้กดปุ่ม ออก Token” ซึ่งในหน้าออก Token นี้ในช่องป้อนชื่อ Token ผู้เขียนใส่คำว่า MailBox” ชื่อนี้จะแสดงเมื่อมีการแจ้งเตือน ผู้ใช้สามารถใส่เป็นชื่ออื่นๆได้ตามต้องการ และเลือกการแจ้งเตือน

ในที่นี้เลือกเป็นเป็น รับการแจ้งเตือนแบบตัวต่อตัวจาก LINE Notify” ซึ่งจะทำให้ LINE ส่งการแจ้งเตือนมายังผู้ใช้เพียงคนเดียว จากนั้นกด ออก Token” นอกจากนี้ยังสามารถเลือกการแจ้งเตือนแบบกลุ่มได้ ซึ่งในการแจ้งเตือนนั้น สมาชิกที่อยู่ในกลุ่มทุกคนจะสามารถมองเห็นการแจ้งเตือนจาก LINE Notify นี้


 

รูปที่ 4 การกรอกข้อมูลและเลือกรับการแจ้งเตือนในขั้นตอนออก Token

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

เมื่อได้คัดลอก Token แล้วถือเป็นการเสร็จสิ้น ให้ปิดและออกจากระบบได้เลย

รูปที่ 5 แสดง Token ที่ออก

หลักการทำงาน

จากรูปที่ 6 เป็นการแสดงวงจรที่ใช้ในโครงงานนี้ วงจรการทำงานหลักๆแบ่งออกเป็น 2 ส่วนได้แก่

ส่วนแรก คือ โมดูลเซ็นเซอร์แสง หรือ IR Sensorทำหน้าที่ตรวจจับจดหมายที่เข้ามาในตู้รับจดหมายและส่งสัญญาณออกทางขา OUT ที่มี 2 สภาวะคือ สภาวะที่ไม่มีจดหมายเข้ามา แรงดันที่ขา OUT จะเป็น 3.3 โวลต์ หรือลอจิก “1” และสภาวะเมื่อมีจดหมายเข้ามา แรงดันที่ขา OUT จะเป็น 0 โวลต์ หรือลอจิก “0”

ส่วนที่สอง คือ Mini NodeMCU ESP-8266 ทำหน้าที่เชื่อมต่อสัญญาณ WiFi เข้ากับ Router ของบ้านเพื่อส่งข้อมูลออกทางอินเตอร์เน็ต และทำหน้าที่รับสัญญาณอินพุตจากจากขา OUT ของ IR Sensor ต่อเข้าขา D7 โดยในโปรแกรมนี้จะตั้งค่าให้ขา D7 ทำงานในโหมด External Interrupt เมื่อสัญญาณจากขา OUT ของ IR Sensor เปลี่ยนแปลงสถานะจากแรงดัน 3.3 โวลต์เป็น 0 โวลต์ NodeMCU จะถือว่ามีจดหมายเข้ามาในตู้รับจดหมาย จากนั้นจะทำการนับจำนวนจดหมายเพิ่ม 1 ฉบับต่อการเปลี่ยนแปลงสถานะ 1 ครั้งแล้วส่งการแจ้งเตือนผ่าน LINE ไปยังเจ้าของบ้าน

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

การประกอบ

เนื่องจากอุปกรณ์ที่ใช้ในโครงงานนี้เป็นแบบโมดูล และอุปกรณ์มีไม่กี่ชิ้น การประกอบจึงไม่ซับซ้อนมากนัก การจำทำแผ่นวงจรพิมพ์อาจจะเป็นการสิ้นเปลืองงบประมาณและสิ้นเปลืองเวลาอีด้วย

ดังนั้นโครงงานนี้จึงใช้แผ่นปริ๊นท์อเนกประสงค์หรือแผ่นปริ๊นท์ไข่ปลา ซึ่งขั้นแรกให้บัดกรีอุปกรณ์ทั้งหมดเอาไว้บนแผ่นปริ๊นท์ (ดังรูปที่ 7 ก) ที่เหลือก็แค่เชื่อมต่อส่วนต่างๆ เข้าด้วยกัน (ดังรูปที่ 7 ข) จะเห็นว่าการประกอบไม่ซับซ้อนมากนัก บัดกรีสายไฟแค่ 2 เส้น กับตัวต้านทานอีก 1 ตัวเท่านั้นเอง

รูปที่ 7 แสดงการประกอบวงจรลงบนแผ่นปริ๊นท์อเนกประสงค์

นำวงจรที่ประกอบเสร็จแล้วไปติดตั้งในตู้รับจดหมาย โดยใช้สกรูยึดแผ่นปริ๊นท์กับวัสดุที่พอจะหาได้ เช่น แผ่นพลาสติกหรือแผ่นไม้บางๆ เป็นต้น (ดังรูปที่ 8) จากนั้นใช้กาวร้อนแบบแห้งเร็วยึดแผ่นพลาสติกเข้ากับตู้รับจดหมาย โดยให้ทิศทางของ IR Sensor หันไปทางช่องรับจดหมายดังรูปที่ 9และในส่วนของไฟเลี้ยง จะใช้เพาเวอร์อะแดปเตอร์ USB สำหรับเสียบชาร์จโทรศัพท์มือถือในระบบแอนดรอยด์ ซึ่งหาซื้อได้ง่ายและราคาถูก หรือถ้าหากมีเพาเวอร์อะแดปเตอร์ที่ไม่ได้ใช้งานแล้ว ก็สามารถนำมาใช้จ่ายไฟเลี้ยงให้วงจรได้

รูปที่ 8 แสดงการใช้สกรูยึดแผ่นปริ๊นท์เข้ากับแผ่นพลาสติก

รูปที่ 9 แสดงการยึดวงจรที่ประกอบเสร็จแล้วลงภายในตู้รับจดหมาย 

การโปรแกรม

โครงงานนี้จะใช้โปรแกรม Arduino IDE สำหรับเขียนโปรแกรมลงบน NodeMCU โดยต้องติดตั้งโปรแกรมเพื่อใช้ในการเขียนโปรแกรมให้กับ NodeMCU ผ่านทาง Arduino IDE ก่อน ดังที่ได้กล่าวไว้ในก่อนหน้านี้แล้ว

หลังจากติดตั้งเรียบร้อยแล้ว ต้องลงโปรแกรมให้ NodeMCU เสียก่อน โดยโค้ดทั้งหมดสามารถดาวน์โหลดได้ที่เว็บไวต์ http://electronics.se-ed.com/download จากนั้นใช้ Arduino IDE เปิดโค้ดที่ดาวน์โหลดมา แล้วตั้งค่าต่างๆ ให้เป็นของเราเอง โดยแก้ไขโค้ด 3 ส่วนดังต่อไปนี้

  1. WIFI_SSID ให้แก้ YOURWIFINAME ในบรรทัดที่ 4 เป็นชื่อของ Router ของบ้านที่ต้องการให้ NodeMCU ใช้เชื่อมต่อกับอินเตอร์เน็ต

  2. WIFI_PASSWORD ให้แก้ YOUR PASSWORD ในบรรทัดที่ 5 เป็น Password ของ Router จากข้อ 1

  3. LINE_TOKEN ให้แก้ YOUR TOKEN ในบรรทัดที่ 8 เป็น Token ที่ได้ทำการขอจาก LINE ในขั้นตอนก่อนหน้านั้นและคัดลอกไว้เรียบร้อยแล้ว


รูปที่ 10 แสดงส่วนของโค้ดที่ต้องทำการแก้ไข

เนื่องจากไมโครคอนโทรลเลอร์ไม่รองรับ UTF-8 ทำให้ไม่รองรับการพิมพ์ภาษาไทยลงไปตรงๆ หากต้องการส่งข้อความที่ไม่ใช่ภาษาอังกฤษ ต้องแปลงข้อความให้อยู่ในรูปที่เรียกว่า URL Encode ก่อน โดยใช้บริการแปลงจากเว็บ http://meyerweb.com/eric/tools/dencoder/ เมื่อเข้าไปในเว็บแล้วให้พิมพ์ข้อความที่ต้องการ จากนั้นกดปุ่ม Encode ก็จะปรากฏข้อความที่ถูกแปลงแล้วออกมา ดังรูปที่ 11 ผู้เขียนใส่คำว่า “คุณมีจดหมาย” ลงในกล่องข้อความแล้วกดปุ่ม Encode จะเห็นว่าข้อความจะถูกแปลงไปเป็น


“%E0%B8%84%E0%B8%B8%E0%B8%93%E0%B8%A1%E0%B8%B5%E0%B8%88%E0%B8%94%E0%B8%AB%E0%B8%A1%E0%B8%B2%E0%B8%A2”


จากนั้นผู้เขียนก็คัดลอกข้อความที่ถูกแปลงนี้ไปใส่ไว้ในตัวแปร msg_you_have_got_mail เพื่อให้การแจ้งเตือนขึ้นต้นด้วยข้อความว่า “คุณมีจดหมาย” เช่นเดียวกันกับคำว่า “ฉบับ” ก็ใช้วิธีแปลงข้อความแล้วเก็บไว้ในตัวแปร msg_pieces หากผู้ใช้ต้องการส่งข้อความที่แตกต่างออกไปจากในโค้ด เราสามารถนำข้อความที่ต้องการส่งไปแปลงแล้วไปใส่ในตัวแปร msg_you_have_got_mail ในบรรทัดที่ 12 หรือตัวแปร msg_pieces ในบรรทัดที่ 13 ได้เลย

ในการส่งข้อความแจ้งเตือนนั้นจะแบ่งออกเป็น 3 ข้อความได้แก่ “คุณมีจดหมาย”+ จำนวนจดหมาย + “ฉบับ” โดยจำนวนจดหมายจะนับเพิ่มขึ้นเรื่อยๆ ตามจำนวนจดหมายที่เข้ามา

รูปที่ 11 แสดงการแปลงข้อความ URL Encoder

หลังจากแก้ไขการตั้งค่าต่างๆเรียบร้อยแล้วให้โหลดโปรแกรมไปที่ NodeMCU จากนั้นจึงเริ่มทดสอบการทำงาน 

การทดสอบ

เมื่อจ่ายไฟเลี้ยง NodeMCU จะเริ่มทำงานโดยเชื่อมต่อกับ Router ของบ้านที่ได้ทำการใส่ชื่อ SSID และ Password ที่ตั้งค่าเอาไว้ในโค้ด จากนั้นทดสอบส่งจดหมายเข้าไปในตู้รับจดหมาย จะเห็นว่ามีการแจ้งเตือนจากท่าน LINE Notify เข้ามายัง LINE ที่ได้ป้อนรหัส Token ไว้ในโค้ดด้วยข้อความ คุณมีจดหมาย 1 ฉบับ” ดังรูปที่ 12

รูปที่ 12 ข้อความแจ้งเตือนมีจดหมายเข้าผ่านทาง LINE

และเมื่อทดสอบส่งจดหมายอีก 1 ฉบับ ข้อความจะแจ้งเตือนเข้ามาด้วยข้อความ คุณมีจดหมาย 2 ฉบับ” ซึ่งการแจ้งเตือนนั้นรวดเร็วมาก เรียกได้ว่าจดหมายที่ส่งยังไม่หล่นถึงพื้นตู้รับจดหมายเลย ก็มีข้อความแจ้งเตือนเข้ามายัง LINE ของเจ้าของบ้านแล้ว ทั้งนี้ทั้งนั้นก็ขึ้นอยู่กับปัจจัยแวดล้อมต่างๆด้วย เช่น คุณภาพของสัญญาณ WiFi เป็นต้น

เพียงเท่านี้ เราก็สามารถจัดการแปลงร่างตู้รับจดหมายธรรมดาๆ ให้กลายเป็นตู้รับจดหมายอัจฉริยะที่จะทำให้เราไม่พลาดจดหมายสำคัญๆ อีกต่อไป


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

  1. Mini NodeMCU ESP-8266     1    ตัว

  2. IR Sensor     1      ตัว

  3. Power Adaptor USB 5V      1   ตัว

  4. แผ่นปริ๊นท์อเนกประสงค์      1    ตัว

  5. R 1k        1     ตัว

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

งานที่ 5

การบริหารงานคุณภาพเทคโนโลยีและสารสนเทศคือ   ISO 9001-2000  ในด้านคุณภาพการผลิตและบริการ ซึ่งเป็นมาตราฐานสากลที่องค์กรธุรกิจทั่วโลกให้คว...