กลับไปหน้ารวมไฟล์
weather-forecast-station-with-lyt-led-bulb-and-ifttt-b92380.md

ไอเดียโปรเจกต์

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

พอเซ็ตระบบเสร็จ เราจะสามารถควบคุมหลอดไฟ LED ของเราได้จากระยะไกลแบบสมบูรณ์ แถมยังสามารถตั้งค่า IFTTT DO buttons เพิ่มได้ง่ายๆ อีกด้วย

มันทำงานยังไง

หลอดไฟ LYT เป็นหลอดไฟแบบวิทยุที่สามารถควบคุมด้วยบอร์ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) พร้อมซอฟต์แวร์เฉพาะ และใช้ LYTWiFi shield โดยปกติแล้วเราสามารถส่งคำสั่งไปที่หลอด LYT ได้ผ่าน serial interface ของบอร์ด Arduino (เช่น ผ่าน Arduino IDE)

LYTWiFi shield ยังมีโมดูล ESP8266 พร้อมเฟิร์มแวร์มาตรฐานที่ใช้เชื่อมต่อ shield เข้ากับเครือข่ายผ่าน WiFi ในโปรเจกต์นี้ เราจะแทนที่เฟิร์มแวร์มาตรฐานของ ESP8266 ด้วยเวอร์ชันพิเศษที่ทำให้ระบบสามารถรับคำสั่งสำหรับหลอด LYT จากเครือข่ายได้

โดยใช้บริการอัตโนมัติบนเว็บ IFTTT คำสั่งเฉพาะสำหรับหลอด LYT จะถูกส่งออกไปตามสภาพอากาศและอุณหภูมิ ในเวลาที่กำหนดหรือตลอดทั้งวัน

สำหรับการตั้งค่าระบบให้สมบูรณ์ ให้ทำตามขั้นตอนด้านล่างนี้

หมายเหตุ

โปรเจกต์นี้พัฒนาด้วยเวอร์ชันของซอฟต์แวร์และสภาพแวดล้อมการพัฒนาดังนี้:

  • [Arduino](https://s.shopee.co.th/7fUgFAWSki) IDE ver. 1.6.8.
  • ESP8266 board manager ver. 2.0.0.

STEP 1. สร้างอีเมลแอคเคาต์สำหรับ LYTWIFI shield ของเรา

อย่างแรกเลย เราต้องมีอีเมลแอคเคาต์เพื่อใช้ส่งคำสั่งควบคุมหลอด LYT เมลเซิร์ฟเวอร์ต้องเป็น POP3 และต้องอนุญาตข้อมูลที่ไม่เข้ารหัส (server port = 110)

พอสร้างแอคเคาต์เสร็จ เราจะต้องใช้ข้อมูลต่อไปนี้สำหรับปรับแต่งเฟิร์มแวร์ LYTWiFi:

  • ชื่อเมลเซิร์ฟเวอร์
  • พอร์ตเมลเซิร์ฟเวอร์
  • ที่อยู่อีเมล
  • รหัสผ่านอีเมล

STEP 2. สร้างแอคเคาต์ IFTTT

ต้องสร้างแอคเคาต์ IFTTT ก่อน พอสร้างเสร็จ เราก็จะสามารถกำหนด "สูตร" สำหรับอัปเดตพยากรณ์อากาศได้

พอสร้างแอคเคาต์แล้ว ต้องเชื่อมต่อกับช่องทางที่จำเป็นสำหรับโปรเจกต์:

  • MAKER channel
  • Weather channel

พอเชื่อมต่อกับ MAKER channel แล้ว อย่าลืมจดคีย์ที่เชื่อมโยงกับแอคเคาต์เราไว้ สำหรับการปรับแต่งเฟิร์มแวร์ LYTWiFi ในขั้นตอนต่อไป

STEP 3. ปรับแต่งเฟิร์มแวร์ LYTWIFI

ก่อนอัปเดตเฟิร์มแวร์ LYTWiFi ต้องปรับแต่งโค้ดด้วยพารามิเตอร์ของ:

  • การเชื่อมต่อ WiFi ของเรา
  • อีเมลแอคเคาต์ของเรา
  • คีย์เชื่อมต่อ MAKER channel ของเราใน IFTTT

โดยละเอียด มีโค้ดสองตัวสำหรับอัปเดตเฟิร์มแวร์ ESP8266:

  • demo_firmware_esp8266_ifttt_thermometer
  • demo_firmware_esp8266_ifttt_remote_control

สำหรับโค้ดทั้งสองตัว ให้แก้ไขบล็อกโค้ดต่อไปนี้ด้วยพารามิเตอร์ของเราเอง:

Mail Server

const char pop_server[] =<mail server name>;
const int pop_port = <mail server port>;
const char pop_user[] = <email address>;
const char pop_pass[] = <email password>;

WiFi connection

// Connect to the specified AccessPoint
WiFiMulti.addAP(<SSID>, <password>);

MAKER channel web request

  • http.begin("https://maker.ifttt.com/trigger/lytwifi_thermometer_on/with/key/<MAKER channel key>");
  • http.begin("https://maker.ifttt.com/trigger/lytwifi_remote_control_on/with/key/<MAKER channel key>");

STEP 4. ดาวน์โหลดเฟิร์มแวร์ลง [Arduino](https://s.shopee.co.th/7fUgFAWSki) และ LYTWIFI shield

ต้องโปรแกรมทั้ง [Arduino](https://s.shopee.co.th/7fUgFAWSki) และ LYTWiFi shield ใช้ Arduino IDE สำหรับอัปเดตซอฟต์แวร์/เฟิร์มแวร์ทั้งคู่

บอร์ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) UNO ต้องโหลดโค้ด demo_firmware_lytwifi_2 code เข้าไป โค้ดนี้มีการปรับแต่งเล็กน้อยจากโค้ดตัวอย่างทางการของ Authometion สำหรับควบคุมหลอดไฟ LYT โปรแกรมบอร์ด Arduino UNO โดยใช้ Arduino IDE

สำหรับการอัปเดตเฟิร์มแวร์ของ LYTWiFI shield จำเป็นต้องใช้ USB to serial converter ภายนอก ตามที่อธิบายในคู่มือ LYTWiFi shield สำหรับการโปรแกรม ESP8266 ให้ตั้งค่าการกำหนดค่าจัมเปอร์ดังนี้:

  • ถอด JP1, JP2, JP3 ออก
  • ตั้งค่า JP4 ให้เชื่อมต่อ G0-GND
  • เชื่อมต่อพอร์ตอนุกรมกับ shield: Rx -> JP1 central Wire, Tx -> JP2 central wire, GND ไปที่จุดเชื่อมต่อ GND บนบอร์ด

พอโปรแกรมเสร็จแล้ว ให้ตั้งค่าจัมเปอร์กลับไปเป็นโหมดปกติ:

  • ถอดการเชื่อมต่อ serial converter ออกจากบอร์ด
  • ใส่ JP1, JP2, JP3 กลับเข้าไป
  • ถอดการเชื่อมต่อ JP4 G0-GND ออก

ในรูปต่อไปนี้คือการกำหนดค่าสำหรับโหมดโปรแกรมและโหมดปกติ

ตั้งค่า [Arduino](https://s.shopee.co.th/7fUgFAWSki) IDE ให้โปรแกรม "Generic ESP8266 module" โดยเลือกจากเมนู Tools -> Board และเลือกพอร์ตที่ถูกต้องสำหรับ USB to serial converter ที่เราติดตั้งไว้ เราสามารถโปรแกรม LYTWiFi shield ด้วยโค้ดตัวอย่างตัวใดตัวหนึ่ง ขึ้นอยู่กับโปรเจกต์ตัวอย่างที่เราอยากรัน

ต่อไปนี้คือคำแนะนำเฉพาะสำหรับตัวอย่างต่างๆ

EX1 - แอปพลิเคชันเทอร์โมมิเตอร์

เพื่อรันแอปพลิเคชันเทอร์โมมิเตอร์ อย่างแรกให้อัปโหลด demo_firmware_esp8266_ifttt_thermometer ลงใน LYTWiFi shield ก่อน

สร้างสูตร IFTTT

ตอนนี้ต้องสร้างสูตร IFTTT สำหรับแอปพลิเคชัน

อย่างแรก สร้างสูตรสำหรับแจ้งเตือนการเริ่มต้นระบบ สูตรนี้จะส่งการแจ้งเตือนไปยังอุปกรณ์มือถือของเราเมื่อระบบพร้อมแอปพลิเคชันเทอร์โมมิเตอร์ถูกเปิดขึ้น ต้องมีแอป IFTTT บนมือถือ

เลือก "Create" จากเมนูผู้ใช้เพื่อเริ่มขั้นตอนการสร้างสูตร:

  • เลือก "this" เพื่อกำหนดทริกเกอร์ของสูตร
  • เลือก MAKER channel
  • เลือก "Receive a web request"
  • ตั้งชื่ออีเวนต์เป็น "lytwifi_thermometer_on" และสร้างทริกเกอร์
  • เลือก "that" เพื่อกำหนดแอคชันของสูตร
  • เลือก IF Notifications channel เชื่อมต่อกับช่องทางนี้ถ้ายังไม่ได้เชื่อมต่อ
  • เลือก "Send a notification"
  • ตั้งข้อความแจ้งเตือนและสร้างแอคชัน
  • ตั้งชื่อสูตรและสร้างสูตร

สูตรที่สองจะถูกสร้างขึ้นสำหรับส่งข้อความไปยัง LYTWiFi โดยใช้อีเมล สูตรนี้จะส่งอีเมลไปยัง LYTWiFi shield พร้อมข้อมูลเกี่ยวกับอุณหภูมิปัจจุบัน ในเวลาที่เรากำหนด

เลือก "Create" จากเมนูผู้ใช้เพื่อเริ่มขั้นตอนการสร้างสูตรใหม่:

  • เลือก "this" เพื่อกำหนดทริกเกอร์ของสูตร
  • เลือก Weather channel
  • เลือก "Today's weather report"
  • ตั้งเวลาในการรายงานอุณหภูมิปัจจุบันและสร้างทริกเกอร์
  • เลือก "that" เพื่อกำหนดแอคชันของสูตร
  • เลือก Gmail channel เชื่อมต่อกับช่องทางนี้ถ้ายังไม่ได้เชื่อมต่อ
  • เลือก "Send an email"
  • ตั้งที่อยู่สำหรับส่งอีเมล นี่คือที่อยู่อีเมลที่เรากำหนดไว้สำหรับ LYTWiFi shield
  • ตั้งหัวข้ออีเมลดังนี้ "[ARDUINO](https://s.shopee.co.th/7fUgFAWSki) " และเพิ่ม CurrentTempCelsius จากปุ่ม add ingredient หัวข้อที่สมบูรณ์ต้องเป็น "ARDUINO {{CurrentTempCelsius}}"
  • ตั้งเนื้อหาอีเมลให้ว่าง
  • ตั้งไฟล์แนบอีเมลให้ว่าง
  • เลือก "Create action"
  • ตั้งชื่อสูตร
  • ติ๊ก "Receive notifications when recipe runs"
  • เลือก "Create the recipe"

หลังจากสร้างสองสูตรนี้แล้ว ให้รีเซ็ตบอร์ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) เพื่อรีสตาร์ทระบบ ถ้าระบบถูกตั้งค่าอย่างถูกต้อง:

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

สำหรับการทดสอบระบบ เราสามารถปิดสูตรที่สองไว้ก่อน เปลี่ยนเวลาในการรายงาน แล้วค่อยเปิดใหม่เพื่อรับรายงานอุณหภูมิใหม่

ด้วยการปรับแต่งเฟิร์มแวร์ LYTWiFi เพียงเล็กน้อย เราสามารถกำหนดช่วงอุณหภูมิและสีที่เกี่ยวข้องได้เอง

EX2 - สถานีตรวจอากาศ

เพื่อรันแอปพลิเคชันสถานีตรวจอากาศ อย่างแรกให้อัปโหลด demo_firmware_esp8266_ifttt_remote_control ลงใน LYTWiFi shield ก่อน

สร้างสูตร IFTTT

ตอนนี้ต้องสร้างสูตร IFTTT สำหรับแอปพลิเคชัน

อย่างแรก สร้างสูตรสำหรับแจ้งเตือนการเริ่มต้นระบบ สูตรนี้จะส่งการแจ้งเตือนไปยังอุปกรณ์มือถือของเราเมื่อระบบพร้อมแอปพลิเคชันสถานีตรวจอากาศถูกเปิดขึ้น และส่งอีเมลไปยัง LYTWiFi พร้อมคำสั่งให้เปิดหลอดไฟ LYT

เลือก "Create" จากเมนูผู้ใช้เพื่อเริ่มขั้นตอนการสร้างสูตร:

  • เลือก "this" เพื่อกำหนดทริกเกอร์ของสูตร
  • เลือก MAKER channel
  • เลือก "Receive a web request"
  • ตั้งชื่ออีเวนต์เป็น "lytwifi_remote_control_on" และสร้างทริกเกอร์
  • เลือก "that" เพื่อกำหนดแอคชันของสูตร
  • เลือก Gmail channel เชื่อมต่อกับช่องทางนี้ถ้ายังไม่ได้เชื่อมต่อ
  • เลือก "Send an email"
  • ตั้งที่อยู่สำหรับส่งอีเมล นี่คือที่อยู่อีเมลที่เรากำหนดไว้สำหรับ LYTWiFi shield
  • ตั้งหัวข้ออีเมลดังนี้ "[ARDUINO](https://s.shopee.co.th/7fUgFAWSki) PON,0,0,1"
  • ตั้งเนื้อหาอีเมลให้ว่าง
  • ตั้งไฟล์แนบอีเมลให้ว่าง
  • เลือก "Create action"
  • ตั้งชื่อสูตร (เช่น LYTWiFi remote control ON!)

ข้อมูล Frontmatter ดั้งเดิม

title: "Weather forecast station with LYT led bulb and IFTTT"
description: "Build your own weather forecast station using Authometion LYT led bulb, LYTWiFi arduino shield and IFTTT for remote control."
author: "enardone74"
category: "Internet of Things, BT & Wireless"
tags:
  - "smart bulb"
  - "home automation"
  - "internet of things"
views: 6783
likes: 1
price: 1499
difficulty: "Intermediate"
components:
  - "1x LYTWiFi Arduino shield"
  - "1x USB to serial converter"
  - "1x LYT led bulb"
  - "1x Arduino UNO"
tools: []
apps:
  - "1x IFTTT - Weather channel"
  - "1x IFTTT -GMail channel"
  - "1x Email provider (generic)"
  - "1x Maker service"
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/b0c75a7c-5da2-4417-9c85-5312b99f2b07.ino"
  - "https://projects.arduinocontent.cc/b0c75a7c-5da2-4417-9c85-5312b99f2b07.ino"
documentationLinks: []
passwordHash: "1161d36c9eb1c5326b26deb9df249027c103f0a09827c7bbae1054474673fca1"
encryptedPayload: "U2FsdGVkX1+8Pio8GBrjmOjS9mBqYIKsQR7bEnIZE0jbUc5nWd6XqN68P6xUwOpmAAd3iOKS2brXhHj9hlAEEhVRtzPEP6wqg8VTRpLqO40ZBuaOfeue+honuvSuGc3jCtdIc04YWmOEN2ZTZxgDvLr7fywceH+44mdvsWNvcJ59ZRjJMVVT6LHLv+EpFPT05JJqU+EuMT729/2VG+FbRocT+15+O8FnnI6DD43pyxg="
seoDescription: "Build a custom Weather forecast station with Authometion LYT led bulb, LYTWiFi arduino shield, and IFTTT for remote control."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/weather-forecast-station-with-lyt-led-bulb-and-ifttt-b92380_cover.jpg"
lang: "th"