ไอเดียโปรเจกต์
โปรเจกต์นี้จะให้เราสร้างสถานีพยากรณ์อากาศของตัวเองได้ โดยใช้หลอดไฟ 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_thermometerdemo_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!)