เปิดปิด ไฟ แจ้ง เตือน ผ่าน ไลน์

วิธีใช้งาน Adafruit IO ในตัวอย่างนี้เราจะมาทดลองทำปุ่มกดแล้วให้อัพเดทที่ Adafruit IO แล้วส่งข้อความเข้า LINE ด้วย Service IFTTT

สอนวิธีใช้งาน Adafruit IO

ที่ Adafruit IO สร้าง Block toggle ตั้ง Feed ชื่อ switch

1. Adafruit IO esp8266 ต่อวงจรดังนี้

  • สวิตช์ขา 1 -> GND
  • สวิตช์ขา 2 -> D6

2. ดาวน์โหลดโค้ดตัวอย่าง ESP8266 Adafruit IO ที่นี่
อัพโหลดโค้ดลงบอร์ด แล้วดูผลลัพธ์
ที่ SerialMonitor และ Dashboard

เมื่อกดปุ่ม ใน Adafruit IO Dashboard ของเรา จะเห็น Block ชื่อ button มีการเปิด/ปิด ตามปุ่มที่เรากดแบบเรียวไทม์แล้ว

จากนี้เราจะเพิ่ม เมื่อสวิตช์มีการเปิด / ปิด จะให้ส่งข้อความไปที่ LINE ด้วย ทำได้ดังนี้

1. ที่เมนู่ Services ด้านบน เลือก IFTTT เลือก Connect from IFTTT.com


2. สร้าง IFTTT เมื่อปุ่มถูกกด ให้ส่งข้อความไปที่ LINE กดที่เมนูด้านบน เลือก Create

กด + เพื่อกำหนดเงื่อนไข ที่ช่องค้นหาพิมพ์คำว่า adafruit แล้วเลือก Service นี้



กำหนดเงื่อนไข ถ้า Feed ชื่อ switch มีค่าเท่ากับ 1 ให้สร้างเหตุการณ์ทริกเกอร์ ดังรูปนี้


กด + เพื่อสั่งให้ทำงาน เมื่อเกิดเหตุการณ์ตามที่เราตั้งค่าไว้

พิมพ์เลือก line


ตั้งค่าการส่งข้อความ ดังรูปนี้ สามารถเปลี่ยน Recipiedt เป็นคนอื่นได้

เป็นอันเสร็จสิ้นการสร้างส่งข้อความเข้า Line จาก Adafruit IO
ทดสอบกดสวิตช์ที่ ESP8266 NodeMCU ของเรา จะเห็นสวิตช์ที่ Adafruit IO เปลี่ยนแปลงด้วย และอีกประมาณ 30 วินาที (เพราะเป็น Adafruit IO เวอร์ชั่นฟรี จะหน่วงเวลาในการทริกเหตุการณ์ 30 วินาที) จะมีข้อความแจ้งมาที่ LINE ได้แล้ว

Adafruit IO Nodemcu ด้วยความง่ายของ IFTTT และบริการที่หลากหลาย เราสามารถใช้วิธีนี้ทำงานในหลาย ๆ อย่าง เช่น ส่ง Email , โพส Facebook , หรือความคุม เปิด/ปิดไฟจาก SONOFF ก็ได้

วันนี้ทางร้านมานำเสนอโปรเจค แจ้งเตือนไฟไหม้ ด้วย Nodemcu esp8266 พัฒนาโปรแกมด้วย Arduino IDE เป็นโปรเจคง่าย เหมาะสำหรับน้องๆนักเรียน นักศึกษาที่ต้องการหัดเขียนโปรแกรมพื้นฐาน เรียนรู้เบื้องต้นเพื่อนำไปพัฒนา ต่อยอดในอนาคต เป็นโปรเจคที่เรียบง่ายต่อสายง่าย ราคาถูกมาเริ่มกันเลยครับ

อุปกรณ์มีดังต่อไปนี้

สามารถสั่งซื้ออุปกรณ์ ทั้งหมดได้ตามลิงค์ด้านบน เลยครับ

การต่อสายของโปรเจคนี้สามารถดูในคลิปนี้ได้เลย ครับ

Code ตัวอย่างสำหรับโปรเจคนี้

อธิบายตัวโปรแกรมเพิ่มเติม

  • จากตัวโปรแกรม ให้เราแก้ใน 4 ส่วน ดังนี้
    • SSID คือ Use ของ Wifi ที่เราเชื่อมต่อ
    • Pass คือ Password ของ Wifi ที่เราเชื่อมต่อ
    • token ได้จากการสร้าง ตามลิงค์นี้ //www.ab.in.th/b/6
    • service สามารถขอจากทางร้าน 
  • เราสามารถปรับแต่งความไวของการตรวจจับได้ที่ ตัวต้านทานปรับค่าได้ของ Sensor

..

IoT Weekend: ควบคุมการเปิด/ปิดหลอดไฟด้วย LINE Bot ผ่าน Messaging API และ MQTT Protocol [ver. 2018] Part 3

สวัสดีกันอีกครั้งครับทุกท่าน สืบเนื่องจากตอนที่ 1 และตอนที่ 2 ที่โมได้นำทุกท่านเข้ามาสู่โลกของ Internet of Things โดยมีการนำ Messaging API ของทาง LINE เข้ามาประยุกต์ใช้ ในบทความนี้นะครับ โมจะพูดถึงการสร้าง IoT device ง่ายๆ จะพัฒนาบนสิ่งที่เรียกว่า Arduino ซึ่งจะเป็นตัวที่รับข้อความ (subscriber) จาก Messageing API และ MQTT Broker ที่โมได้พาทุกท่านสร้างในบทความที่แล้ว โดยจะพัฒนาด้วยภาษา C เพื่อนำไปควบคุมวงจร เปิด/ปิดหลอดไฟ

จากซีรีย์ของ Iot Weekend ที่ถูกแบ่งออกเป็น 3 Part เพื่อจะได้คลอบคลุมการทำงานทุกอย่าง โดยเริ่มจาก การตั้ง MQTT Server บน บน Heroku, ต่อด้วยการ สร้าง Bot ด้วย LINE DevTrail Account และจบท้ายด้วย สร้าง IoT Device กัน

และแล้วเราก็มาถึง Part ที่ 3 เราจะมาสร้าง IoT Device กัน มาสนุกกัน!!!

KeyWording จะได้พูดถึงในบทความนี้

Internet of Things, Arduino, ESP32, Microcontroller, GPIO, Basic Electronics, Development board, Embedded System, C Programming

อะไรคืออินเตอร์เน็ตของสรรพสิ่ง? (Internet of Things)

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

ตัวอย่างของ Internet of Things

ตัวอย่างการนำ Internet ไปติดกับสรรพสิ่งแล้วเกิดประโยชน์ที่น่าสนใจ เช่น

Smart Home — ลองคิดดูว่าถ้าเรามีอินเตอร์เน็ตอยู่ในรถและเครื่องใช้ไฟต่างๆทั่วบ้าน พอ GPS ในรถใกล้ถึงบ้านก็ส่งข้อมูลผ่านอินเตอร์เน็ตไปบอกประตูหน้าบ้านให้ปลดล็อกอัตโนมัติ หรือถ้าเราเดินออกไปจากบ้านแล้ว โทรศัพท์มือถือของเราก็ส่งข้อมูลไปบอกให้ใส่เปิดระบบเตือนภัย หรือส่งข้อมูลความเคลื่อนไหวในบ้านมาท่ีมือถือเราได้

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

เครื่องมือที่ใช้ในการพัฒนา Internet of Things

โดยบอร์ดพัฒนาที่นิยมนำมาใช้ก็ได้แก่ Arduino ESP8266 (รู้จักกันดี ในชื่อ NodeMCU) หรือ ESP32

Nano32 Development Board

ทุกท่านคงสงสัย เจ้า Arduino คืออะไร????

มารู้จักกับ Arduino กันเถอะ

Arduino คือ โครงการที่นำชิปวงจรควบคุมขนาดเล็ก (Microcontroller) ทางด้านอิเล็กทรอนิกส์ (มันคือสมองกลนั่นเอง) แบบต่างๆ มาสร้างบอร์ดสำหรับการพัฒนาฮาร์แวร์ (Hardware) เพื่อใช้ร่วมกันกับโปรแกรม (Software) ซึ่งถูกพัฒนาขึ้นบนภาษา C เจ้าบอร์ดพัฒนาตัวนี้ มีความสามารถมากกกก ขึ้นอยู่กับว่าเราจะนำมันไป สั่งงาน/ใช้งานในรูปแบบไหน ขึ้นอยู่กับการเขียนโปรแกรมของเรา

Fritzing

เรามาต่อวงจรทางไฟฟ้าและอิเล็กทรอนิกส์ง่ายๆกันดีกว่า

อุปกรณ์ที่ใช้ในครั้งนี้นะครับ
  1. Hardware
    - ESP32 / ESP8266
    - ตัวต้านทาน 330 ohm
    - หลอด LED สีแดง
  2. Arduino IDE (Download: //www.arduino.cc/en/Main/Software)
  3. เครื่องคอมพร้อมสาย USB ไว้สำหรับ Upload Code ที่เราเขียน
เรามาเริ่มกันเลยดีกว่า!!!

ขั้นตอนแรก ดาว์นโหลดและติดตั้ง Arduino IDE ลงบนเครื่องคอมของเราก่อน: เข้าไปที่ arduino.cc

เลือก Software แล้วเลื่อนลงไป เลือกระบบปฏิบัติการของเครื่องคอม เพื่อทำการดาว์นโหลด

พอโหลดและติดตั้งเสร็จ เราได้หน้าตาแบบนี้

สิ่งที่เห็นอยู่บนหน้าจอของโปรแกรมก็คือพื้นที่ในการเขียนโค้ดหรือเรียกว่า Sketch โดยจะมี สองฟังชั่นหลักๆ ได้แก่ void setup() กับ void loop()

  • setup(): ฟังชั่นที่เอาไว้ประกาศค่าตัวแปรต่าง ขาดิจิตอลที่เราจะทำงานด้วย และการเรียกใช้ libraries ต่างที่จะใช้ในโปรแกรม ซึ่งจะกระทำเพียงครั้งเดียว ตอน เริ่มต้น Program หรือ Reset
  • loop(): Code อะไรก็ตามที่เขียนไว้ในฟังชั่นนี้ จะถูกกระทำซ้ำๆ จนกว่าจะมีการสั่งหยุดการทำงาน หรือ Reset

โมจะใช้ บอร์ด ESP32 ที่ชื่อว่า nano32 มาเป็นบอร์ดหลักในการพัฒนา

ก่อนที่จะเริ่มต้นโปแกรม เจ้า ESP32 ได้นั้น ต้องลง Arduino Cor for ESP32 กันก่อน

  • สามารถ Download Arduino core for ESP32 ได้ที่ //github.com/espressif/arduino-esp32

  • เมื่อทำการ Download เรียบร้อยให้เข้าไปที่
    ~.\Documents\Arduino\hardware\espressif\esp32 กรณี ถ้าไม่มี folder ตั้งแต่ espressif ก็สามารถสร้าง folder ขึ้นมาได้ไปจนถึง folder esp32 จากนั้นทำการ Extract ไฟล์ arduino-esp32-master
  • Copy ข้อมูลภายใน folder arduino-esp32-master ไปวางใน ~.\Documents\Arduino\hardware\espressif\esp32
  • จากนั้นให้เข้าไปที่ ~.\Documents\Arduino\hardware\espressif\esp32\tools ดับเบิ้ลคลิ้กที่ไฟล์ get.py เพื่อเริ่มทำการติดตั้ง Library ESP32 ให้รอจนเสร็จแล้วโปรแกรมจะทำการปิดเอง
  • ทำการเปิดโปรแกรม Arduino IDE เข้าไปที่ Tools/Board/ ลองเช็คดูว่า Arduino IDE รองรับการใช้งานร่วมกับ ESP32 แล้วหรือไม่
    ถ้าเจอหัวข้อ ESP32 Arduino แสดงว่าสามารถใช้งานใด้ ESP32 ได้แล้ว

บอร์ดพัฒนาต่างๆที่ใช้ชิป ESP32

เมื่อติดตั้ง Arduino Core เสร็จเรียบร้อย สิ่งต่อมาที่ทำคือ ไปโหลด Profile กับ Libaries ของ DevBoard ที่จะใช้มาติดตั้ง

โดยเข้าไปที่ Tools/Board/Board Manager… ก็จะได้หน้าต่างอะไรประมาณนี้ขึ้นมา

กดติดตั้ง Libraries เข้าไปที่ Sketch/Include Library/Manage Libraries…

เรามาทดสอบว่าบอร์ดที่เรามี ทำงานได้ไหม?

ในโลกของ Hardware เนี่ย ถ้าตอนเราอยากจะรู้ว่า อุปกรณ์ที่เราซื้อมาเนี่ย โดยเฉพาะพวกบอร์ดพัฒนา ว่าทำงานได้หรือไม่ เราจะมีคำสั่งเบื้องต้นที่เรียกว่า Blink หรือไฟกระพริบ เปรียบเสมือน “Hello World” ในทางโลกของ Software

โดยเข้าไปที่ Files/Examples/01.Basics/Blink

โค้ดที่ได้ก็จะหน้าตาประมาณนี้

Q: อะไรคือ LED_BUILTIN?
A: LED_BUILTIN ในที่นี้คือหลอดไฟ LED ที่ฝังอยู่บนตัวบอร์ดเอง ซึ่งจะแตกต่างกันออกไปตามการออกแบบของผู้ผลิต เปรียบเสมือนค่าเริ่มต้น

เสียบสาย USB เข้าไปที่บอร์ด แล้วเข้าไป check ว่าเจ้า IDE เห็นบอร์ดหรือไม่ แล้วกดปุ่ม Upload

พอ Upload เสร็จแล้วก็จะปรากฏดังภาพ หลอดไฟของเราก็จะกระพริบ เป็นการบอกว่าบอร์ดของเราสามารถทำงานได้อย่างปกติ

ต่อไปเรามาเพิ่มความสามารถให้บอร์ดเราดีกว่า!!!

ตามโครงสร้างที่ได้วางเอาไว้

ขั้นต่อไปคือการ เขียนให้เจ้าอุกปรณ์ของเรา ไปรอรับฟังข้อมูลที่ถูกส่งจาก ChatBot ของเราเข้าไปยัง MQTT Broker (Subscriber)

เริ่มจากวงจรง่ายๆกันก่อน
ต่อ ตัวต้านทาน 330 ohm เข้ากับขา GPIO หลายเลข 2 (ย่อมาจาก General Purpose Input Output)

ต่อตัวต้านทานเข้ากับขั้วบวก (ขายาว) ของ LED

สุดท้าย ต่อขาขั้วลบ (ขาสั้น) ไปยัง GND ของ ESP32 เสร็จแล้ว!

หลังจากที่เราได้วงจรเบื้องต้นดังกล่าวแล้ว เราก็จะมาทำการเขียนโค้ด

  • ติดตัง Libraries ที่จำเป็นต่อการพัฒนา เช่น WiFi และ PubSubClient

Wifi library

PubSubClient library

เมื่อติดตั้ง Libraries ที่จำเป็นต่อการพัฒนา เช่น WiFi และ PubSubClient แล้ว เรามาเริ่มเขียนโค้คที่จะใช้ควบคุมกัน เรามาทำความเข้าใจกับ Code จุดสำคัญๆ

  • pinMode(2, OUTPUT): บอกอุปกรณ์ให้ ใช้ GPIO ขาหมายเลข 2 ให้เป็นตัวควบคุม
  • Wifi.begin(ssid, pasword): ให้อุปกรณ์ของเราไปเชื่อมต่อกับ internet ผ่านการเชื่อมต่อแบบ wifi
  • Client.setServer(mqtt_server, mqtt_port): เมื่อต่อ Wifi ได้แล้ว อุปกรณ์ของเราไปเชื่อมต่อกับ MQQTT Broker
  • Client.subscribe({topic}): ให้อุปกรณ์ของเราไปรับฟังข้อความที่ topic นี้ ใน mqtt server
  • digitalWrite(2, (msg == “LEDON” ? HIGH : LOW)) : ในส่วนนี้เป็นส่วน Logic ที่ทำการสั่งว่า เมื่อข้อความที่ไปรับมา ตรงกับที่เราตั้งไหวไหม ถ้าตรงให้เปิดหลอกไฟ แต่ถ้าไม่ตรงให้ปิดไฟ

Base Code

อย่าลืม เปลี่ยนค่าต่างๆ เช่น wifi ssid และ password ให้ตรงกับ Router ของทุกท่าน และใส่ค่าของ MQTT Brokerโมได้นำพาทุกท่านตั้งในบทความที่ 1 ให้ตรงกับที่เราตั้งไว้ใน MQTT Broker นะครับ (mqtt_server, mqtt_port, mqtt_user, mqtt_password และ topic)

set ค่าต่างๆของ Board ดังนี้

กด Upload Code

เมื่ออัพโหลดเสร็จเรียบร้อย เริ่มทดสอบกันได้เลย!!!

แค่นี้ทุกท่านก็จะได้ LINE ChatBot สามารถควบคุมการเปิดปิดหลอดไฟได้แล้ว เป็น IoT ง่ายๆที่ใครๆก็สามารถทำได้ และสามารถนำไปต่อยอด ควบคุมสิ่งต่างๆ

จบแล้ว ~ หวังว่าบทความนี้คงทำให้หลายๆคนเข้าใจวิธีการสร้าง LINE ChatBot เบื้องต้นเพื่อใช้ในการควบคุม IoT Device นะครับ

กระทู้ที่เกี่ยวข้อง

Toplist

โพสต์ล่าสุด

แท็ก

ไทยแปลอังกฤษ แปลภาษาไทย โปรแกรม-แปล-ภาษา-อังกฤษ พร้อม-คำ-อ่าน lmyour แปลภาษา แปลภาษาอังกฤษเป็นไทย pantip ไทยแปลอังกฤษ ประโยค แอพแปลภาษาอาหรับเป็นไทย ห่อหมกฮวกไปฝากป้าmv ระเบียบกระทรวงการคลังว่าด้วยการจัดซื้อจัดจ้างและการบริหารพัสดุภาครัฐ พ.ศ. 2560 แปลภาษาอาหรับ-ไทย Terjemahan พจนานุกรมศัพท์ทหาร หยน แปลภาษา มาเลเซีย ไทย Bahasa Thailand ข้อสอบภาษาอังกฤษ พร้อมเฉลย pdf บบบย tor คือ จัดซื้อจัดจ้าง การ์ดแคปเตอร์ซากุระ ภาค 4 ชขภใ ยศทหารบก เรียงลําดับ ห่อหมกฮวกไปฝากป้า หนังเต็มเรื่อง เขียน อาหรับ แปลไทย แปลภาษาอิสลามเป็นไทย Google map กรมพัฒนาฝีมือแรงงาน อบรมออนไลน์ กระบวนการบริหารทรัพยากรมนุษย์ 8 ขั้นตอน ข้อสอบคณิตศาสตร์ พร้อมเฉลย ค้นหา ประวัติ นามสกุล อาจารย์ ตจต แจ้ง ประกาศ น้ำประปาไม่ไหล แปลบาลีเป็นไทย แปลภาษา ถ่ายรูป แปลภาษาจีน แปลภาษามลายู ยาวี โรงพยาบาลภมูพลอดุยเดช ที่อยู่ Google Drive Info TOR คือ กรมพัฒนาฝีมือแรงงาน ช่างไฟฟ้า กรมพัฒนาฝีมือแรงงาน อบรมฟรี 2566 กลยุทธ์ทางการตลาด มีอะไรบ้าง การบริหารทรัพยากรมนุษย์ มีอะไรบ้าง การประปาส่วนภูมิภาค การ์ดแคปเตอร์ซากุระ ภาค 3 ขขขขบบบยข ่ส ข่าว น้ำประปา วันนี้ ข้อสอบโอเน็ต ม.6 มีกี่ตอน ตารางธาตุ ประปาไม่ไหล วันนี้