หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ สถานี Weather forecast station ด้วย LYT led bulb และ IFTTT

สร้าง Weather forecast station ของคุณเองโดยใช้ Authometion LYT led bulb, LYTWiFi arduino shield และ IFTTT สำหรับ Remote control

โปรเจกต์ สถานี Weather forecast station ด้วย LYT led bulb และ IFTTT

รายการอุปกรณ์และเครื่องมือ

1x LYTWiFi Arduino shield
-
1x USB to serial converter
-
1x LYT led bulb
-
1x Arduino UNO
-

รายละเอียดและวิธีทำ

Project abstract

โปรเจกต์นี้จะช่วยให้คุณสร้างสถานีพยากรณ์อากาศของตัวเองโดยใช้หลอดไฟ RGBW led เป็นตัวบ่งชี้สภาพอากาศและ/หรืออุณหภูมิ ด้วยการใช้ visual communication สีของแสงที่แตกต่างกันสามารถให้ข้อมูลเกี่ยวกับสภาพอากาศปัจจุบันเมื่อคุณตื่นนอนในตอนเช้า หรือข้อมูลเกี่ยวกับอุณหภูมิในเวลาที่กำหนด ข้อมูลสภาพอากาศที่แตกต่างกันสามารถรับได้จาก weather channel บนสภาพแวดล้อม IFTTT ที่ใช้สำหรับการ remote control ของหลอดไฟ led เพื่อสั่งการเปิด/ปิด (ON\\OFF) และการเปลี่ยนสี

เมื่อการตั้งค่าระบบเสร็จสมบูรณ์ คุณจะสามารถควบคุมหลอดไฟ led ของคุณแบบ remote control ได้อย่างสมบูรณ์ ด้วยการกำหนดค่าเพิ่มเติมที่ง่ายดายของ IFTTT DO buttons เฉพาะ

How it works

หลอดไฟ LYT led คือหลอดไฟ led แบบวิทยุที่สามารถควบคุมได้โดยบอร์ด Arduino พร้อม software เฉพาะและใช้งานร่วมกับ LYTWiFi shield โดยปกติแล้ว คำสั่งเฉพาะสามารถส่งไปยังหลอดไฟ LYT ได้โดยใช้ serial interface ของบอร์ด Arduino (เช่น ผ่าน Arduino IDE)

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

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

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

Note

โปรเจกต์นี้ได้รับการพัฒนาโดยใช้ software development environment เวอร์ชันต่อไปนี้:

  • Arduino IDE ver. 1.6.8.
  • ESP8266 board manager ver. 2.0.0.

STEP 1. Create an email account for your LYTWIFI shield

ก่อนอื่น จำเป็นต้องมีบัญชีอีเมลสำหรับส่งคำสั่งเพื่อควบคุมหลอดไฟ LYT โดย mail server ต้องเป็นแบบ POP3 และอนุญาตข้อมูลแบบ non-encrypted (server port = 110)

เมื่อสร้างบัญชีแล้ว จำเป็นต้องมีข้อมูลต่อไปนี้เพื่อนำไปปรับแต่ง LYTWiFi firmware:

  • mail server name
  • mail server port
  • email address
  • email password

STEP 2. CREATE AN IFTTT ACCOUNT

ต้องสร้างบัญชี IFTTT เมื่อสร้างบัญชีแล้ว คุณสามารถกำหนด "recipes" สำหรับการอัปเดตพยากรณ์อากาศได้

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

  • MAKER channel
  • Weather channel

เมื่อเชื่อมต่อกับ MAKER channel แล้ว ให้เก็บ key ที่เกี่ยวข้องกับบัญชีของคุณไว้เพื่อใช้ในการปรับแต่ง LYTWiFi firmware ในขั้นตอนต่อไป

STEP 3. Customize LYTWIFI firmaware

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

  • การเชื่อมต่อ WiFi ของคุณ
  • บัญชีอีเมลของคุณ
  • IFTTT MAKER channel connection key ของคุณ

ในรายละเอียด มี Code สองชุดที่แตกต่างกันสำหรับการอัปเดต firmware ของ ESP8266:

  • demo_firmware_esp8266_ifttt_thermometer
  • demo_firmware_esp8266_ifttt_remote_control

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

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 and LYTWIFI shield firmware download

ต้องทำการโปรแกรมทั้ง Arduino และ LYTWiFi shield โดยใช้ Arduino IDE สำหรับการอัปเดตทั้ง software\\firmware

บอร์ด Arduino UNO ต้องถูกโหลดด้วย Code demo_firmware_lytwifi_2 Code นี้มีการปรับเปลี่ยนเล็กน้อยจาก Authometion sample code อย่างเป็นทางการสำหรับการควบคุมหลอดไฟ LYT led ให้โปรแกรมบอร์ด Arduino UNO โดยใช้ Arduino IDE

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

  • ถอด JP1, JP2, JP3 ออก
  • ตั้งค่าการเชื่อมต่อ JP4 G0-GND
  • เชื่อมต่อ serial port เข้ากับ shield: Rx->JP1 central Wire, Tx->JP2 central wire, และ GND เข้ากับจุดเชื่อมต่อ GND ใดก็ได้

เมื่อโปรแกรมเสร็จแล้ว ให้ตั้งค่าการเชื่อมต่อ jumper ในโหมดปกติ (default mode):

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

ในรูปภาพต่อไปนี้คือการกำหนดค่าสำหรับโหมดการโปรแกรม (programming mode) และโหมดปกติ (default mode)

ตั้งค่า Arduino IDE เพื่อโปรแกรมโมดูล "Generic ESP8266 module" โดยเลือกจากเมนู Tools-> Board และเลือก port ที่ถูกต้องสำหรับ USB to serial converter ที่คุณติดตั้งไว้ คุณสามารถโปรแกรม LYTWiFi shield ด้วยหนึ่งในตัวอย่าง Code ตามตัวอย่างโปรเจกต์ที่คุณต้องการรัน

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

EX1 - Thermometer application

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

Create IFTTT recipes

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

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

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

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

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

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

  • เลือก "this" เพื่อกำหนด trigger ของ recipe
  • เลือก Weather channel
  • เลือก "Today's weather report"
  • ตั้งเวลาสำหรับการรายงานอุณหภูมิปัจจุบันและสร้าง trigger
  • เลือก "that" เพื่อกำหนด action ของ recipe
  • เลือก Gmail channel เชื่อมต่อกับ channel หากยังไม่ได้เชื่อมต่อ
  • เลือก "Send an email"
  • ตั้งที่อยู่อีเมลที่จะส่งไป ซึ่งคือที่อยู่อีเมลที่กำหนดไว้สำหรับ LYTWiFi shield
  • ตั้งหัวข้ออีเมลดังนี้ "ARDUINO " และเพิ่ม CurrentTempCelsius จากปุ่ม add ingredient หัวข้อที่สมบูรณ์ต้องเป็น "ARDUINO {{CurrentTempCelsius}}"
  • ตั้งค่าเนื้อหาอีเมลว่างไว้
  • ตั้งค่าไฟล์แนบว่างไว้
  • เลือก "Create action"
  • ตั้งชื่อ recipe
  • ทำเครื่องหมายที่ "Receive notifications when recipe runs"
  • เลือก "Create the recipe"

หลังจากสร้าง recipes ทั้งสองนี้แล้ว ให้รีเซ็ตบอร์ด Arduino เพื่อเริ่มระบบใหม่ หากระบบได้รับการกำหนดค่าอย่างถูกต้อง:

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

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

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

EX2 - Weather station

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

Create IFTTT recipes

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

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

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

  • เลือก "this" เพื่อกำหนด trigger ของ recipe
  • เลือก MAKER channel
  • เลือก "Receive a web request"
  • ตั้งชื่อ event เป็น "lytwifi_remote_control_on" และสร้าง trigger
  • เลือก "that" เพื่อกำหนด action ของ recipe
  • เลือก Gmail channel เชื่อมต่อกับ channel หากยังไม่ได้เชื่อมต่อ
  • เลือก "Send an email"
  • ตั้งที่อยู่อีเมลที่จะส่งไป ซึ่งคือที่อยู่อีเมลที่กำหนดไว้สำหรับ LYTWiFi shield
  • ตั้งหัวข้ออีเมลดังนี้ "ARDUINO PON,0,0,1
  • ตั้งค่าเนื้อหาอีเมลว่างไว้
  • ตั้งค่าไฟล์แนบว่างไว้
  • เลือก "Create action"
  • ตั้งชื่อ recipe (เช่น LYTWiFi remote control ON!)
  • ทำเครื่องหมายที่ "Receive notifications when recipe runs"
  • เลือก "Create the recipe"

recipe ที่สองจะถูกสร้างขึ้นเพื่อส่งข้อความไปยัง LYTWiFi โดยใช้อีเมล โดย recipe นี้จะส่งอีเมลไปยัง LYTWiFi shield เมื่อสภาพอากาศปัจจุบันเปลี่ยนเป็น "Clear" พร้อมคำสั่งให้ตั้งค่าสีหลอดไฟ LYT led เป็นสีเขียว

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

  • เลือก "this" เพื่อกำหนด trigger ของ recipe
  • เลือก Weather channel
  • เลือก "Current condition changes to"
  • ตั้งค่าการเปลี่ยนสภาพอากาศเป็น "Clear" และสร้าง trigger
  • เลือก "that" เพื่อกำหนด action ของ recipe
  • เลือก Gmail channel เชื่อมต่อกับ channel หากยังไม่ได้เชื่อมต่อ
  • เลือก "Send an email"
  • ตั้งที่อยู่อีเมลที่จะส่งไป ซึ่งคือที่อยู่อีเมลที่กำหนดไว้สำหรับ LYTWiFi shield
  • ตั้งหัวข้ออีเมลดังนี้ "ARDUINO RGB,0,0,0,255,0,1"
  • ตั้งค่าเนื้อหาอีเมลว่างไว้
  • ตั้งค่าไฟล์แนบว่างไว้
  • เลือก "Create action"
  • ตั้งชื่อ recipe เป็น "If current condition changes to clear, then set LYT green"
  • ทำเครื่องหมายที่ "Receive notifications when recipe runs"
  • เลือก "Create the recipe"

ต้องสร้าง recipes อื่นๆ อีกสามรายการในลักษณะเดียวกับรายการก่อนหน้า:

  • "If current condition changes to cloudy, then set LYT blue" โดยใช้ "ARDUINO RGB,0,0,0,0,255,1"
  • "If current condition changes to snow, then set LYT red" โดยใช้ "ARDUINO RGB,0,0,255,0,0,1"
  • "If current condition changes to rai, then set LYT yellow" โดยใช้ "ARDUINO RGB,0,0,127,127,0,1"

หลังจากสร้าง recipes แล้ว ให้รีเซ็ตบอร์ด Arduino เพื่อเริ่มระบบใหม่ หากระบบได้รับการกำหนดค่าอย่างถูกต้อง:

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

ด้วยการปรับเปลี่ยนเพียงเล็กน้อยใน LYTWiFi firmware คุณสามารถกำหนดรหัสสีของคุณเองสำหรับสภาพอากาศที่แตกต่างกัน ข้อมูลสภาพอากาศอื่นๆ สามารถรับได้จาก IFTTT weather channel สำหรับการใช้งานระบบที่แตกต่างกัน (อุณหภูมิ, ความชื้น)

EX3 - LYT remote control

ด้วย firmware เดียวกับที่ใช้สำหรับแอปพลิเคชันสถานีพยากรณ์อากาศ เป็นไปได้ที่จะได้รับการควบคุมแบบ remote control ที่สมบูรณ์สำหรับหลอดไฟ LYT led จากอุปกรณ์มือถือของคุณ คำสั่งสำหรับการเปิด/ปิด LYT และการตั้งค่าสีสามารถส่งจากบริการเว็บ IFTTT โดยใช้ DO buttons แทน IF recipes

ปุ่ม DO สามารถใช้ได้จากอุปกรณ์มือถือของคุณเท่านั้น ดังนั้นจึงต้องติดตั้ง App เฉพาะ

Create IFTTT DO buttons

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

อันดับแรก ต้องสร้าง DO button สำหรับการเปิด LYT ปุ่มนี้จะส่งอีเมลไปยัง LYTWiFi พร้อมคำสั่งให้เปิดหลอดไฟ LYT led

จาก DO button mobile app ให้เลือกไอคอน recipe collection:

  • เลือก + เพื่อเพิ่ม DO button ใหม่
  • เลือก tab channel
  • เลือก Gmail channel
  • เลือก "Create a New Recipe"
  • เลือก "Send an Email"
  • ตั้งชื่อ (เช่น Turn LYT ON)
  • ตั้งที่อยู่อีเมลที่จะส่งไป ซึ่งคือที่อยู่อีเมลที่กำหนดไว้สำหรับ LYTWiFi shield
  • ตั้งหัวข้ออีเมลดังนี้ "ARDUINO PON,0,0,1"
  • ตั้งค่าเนื้อหาอีเมลว่างไว้
  • ตั้งค่าไฟล์แนบว่างไว้
  • เลือก "Add"

ต้องสร้างปุ่มอื่นๆ ในลักษณะเดียวกับปุ่มก่อนหน้า:

  • "Turn LYT OFF" โดยใช้ "ARDUINO POF,0,0,1" เป็นหัวข้ออีเมล
  • "Set LYT mid white" โดยใช้ "ARDUINO SBR,0,0,127,1" เป็นหัวข้ออีเมล
  • "Set LYT min white" โดยใช้ "ARDUINO SBR,0,0,255,1" เป็นหัวข้ออีเมล
  • "Set LYT red" โดยใช้ "ARDUINO RGB,0,0,255,0,0,1" เป็นหัวข้ออีเมล
  • "Set LYT green" โดยใช้ "ARDUINO RGB,0,0,0,255,0,1" เป็นหัวข้ออีเมล
  • "Set LYT blue" โดยใช้ "ARDUINO RGB,0,0,0,0,255,1" เป็นหัวข้ออีเมล

หลังจากสร้าง recipes แล้ว ให้รีเซ็ตบอร์ด Arduino เพื่อเริ่มระบบใหม่ หากระบบได้รับการกำหนดค่าอย่างถูกต้อง:

  • หลังจากการรีเซ็ตบอร์ด จะมีการแจ้งเตือนบนอุปกรณ์มือถือของคุณเพื่อแจ้งว่าแอปพลิเคชัน lytwifi_remote_control เริ่มทำงานแล้ว และหากหลอดไฟ LYT led ปิดอยู่ มันจะถูกเปิดขึ้นมา
  • จากอุปกรณ์มือถือของคุณ ให้กดหนึ่งใน DO button ที่สร้างขึ้นเพื่อเปลี่ยนสถานะของหลอดไฟ led (เช่น ตั้งค่าสี LYT เป็นสีแดง)
  • รอการตรวจจับคำสั่งจาก LYTWiFi shield และตรวจสอบว่าหลอดไฟ led เปลี่ยนสีตามคำสั่งล่าสุด

Note

การ remote control ในโปรเจกต์นี้ไม่ได้พัฒนามาเพื่อให้เป็นวิธีแบบ real-time คำสั่งอาจใช้เวลาหลายวินาทีกว่าจะได้รับโดย shield เนื่องจากสภาพการเชื่อมต่อเครือข่ายและสถานะของ mail server

System Test and Debug

หลังจากการกำหนดค่า คุณสามารถทดสอบและ Debug ระบบของคุณโดยใช้ serial debug port บน LYTWiFi shield โดย firmware ของโมดูล ESP8266 จะใช้ port นี้เพื่อส่งข้อความเกี่ยวกับกิจกรรมต่างๆ เช่น สถานะการเชื่อมต่อ และคำสั่งที่ส่งไปยังบอร์ด Arduino สำหรับการควบคุมหลอดไฟ LYT

ใช้ USB to serial converter ตัวเดียวกับที่ใช้สำหรับการอัปเดต firmware ของ ESP866 โดยเชื่อมต่อดังนี้: 

  • Rx->JP4-G13 pin,
  • Tx->JP4-G14 pin
  • GND เข้ากับจุดเชื่อมต่อ GND ของบอร์ด

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: weather-forecast-station-with-lyt-led-bulb-and-ifttt-b92380
1499 บาท
PromptPay QR Code

ประเมิน Project

อยากได้งานคล้ายโปรเจคนี้? กดไปหน้าประเมินราคา

เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...