CAT LoRa Starter Kit ตอนที่ 9 เปิด-ปิดควบคุมเครื่องใช้ไฟฟ้า ผ่านเครือข่าย LoRa IoT by CAT

Relay Module คืออะไร ?

General Relay — แบบในรูปรองรับไฟฟ้ากระแสสลับได้ 10A
Solid State Relay (SSR) — แบบในรูปรองรับไฟฟ้ากระแสสลับได้ 2A

อุปกรณ์

  1. CAT LoRa Starter Kit จำนวน 1 บอร์ด
  2. DS3231 Module จำนวน 1 ชิ้น
  3. Red LED จำนวน 1 หลอด
  4. Green LED จำนวน 1 หลอด
  5. 330 ohm resistor จำนวน 2 อัน
  6. Relay Module (active low relay) แบบ 2 Channel ชนิด 5 โวลต์ จำนวน 1 อัน
  7. เต้าปลักไฟบ้านแบบ 2 ช่องแยกกัน จำนวน 1 อัน
  8. สายไฟ

การต่อวงจร

การต่อวงจรอุปกรณ์
สายไฟภายในสาย Micro USB
ทดสอบสายสีแดง(+) สายสีดำ (-)
การแยกสายไฟมาเข้ากับ Relay
  • GND ของ Relay → GND ของบอร์ด
  • VCC ของ Relay → สายสีแดง (+)
  • GND ของบอร์ด→ สายสีดำ (-)

Library ที่จำเป็น

  1. SmartEverything HTS221 : https://github.com/ameltech/sme-hts221-library
    (เนื่องจากมีการใช้ CatLoRaS76S จากตอนที่ 4 )
  2. DS3231 Real-Time Clock : https://github.com/jarzebski/Arduino-DS3231

ออกแบบ Payload Format

เขียนโปรแกรม

ทดลองส่งข้อมูล Downlink จาก LoRa by CAT

  • Relay A เริ่มเปิดเวลา 2020–01–25 09:00:00 ถึง 2020–01–25 18:00:00
    ดังนั้น Payload คือ012020012509000020200125180000
  • Relay B เริ่มเปิดเวลา 2020–01–25 05:10:59 ถึง 2020–01–25 14:30:00
    ดังนั้น Payload คือ022020012505105920200125143000
ตั้งเวลาเปิดปิด Relay A
ตั้งเวลาเปิดปิด Relay B

อธิบายการทำงาน

content-catlora-lab8.ino

RelayModule relayA("Relay A", RELAY_A_PIN);
RelayModule relayB("Relay B", RELAY_B_PIN);
String startTimeRelayA = "1970-01-01 00:00:01";
String stopTimeRelayA = "1970-01-01 00:00:01";
String startTimeRelayB = "1970-01-01 00:00:01";
String stopTimeRelayB = "1970-01-01 00:00:01";
RelayModule relayA("Relay A", RELAY_A_PIN);
RelayModule relayB("Relay B", RELAY_B_PIN);
void setup(){ ...// Initialize Relay
relayA.begin();
relayB.begin();
relayA.trunOnWhen(startTimeRelayA, stopTimeRelayA);
relayB.trunOnWhen(startTimeRelayB, stopTimeRelayB);
...}
void loop(){   ...// ----- Check datetime for action -----
relayA.doAction(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
relayB.doAction(dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second);
...}

ดาวน์โหลดไฟล์ตัวอย่าง

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store