提示1:銳米所有 LoRa 產品嚴格遵循國標標准的 LoRaWAN 協議。
提示2:您可以免費復制,修改和商用本項目,請注明銳米原創。
提示3:如果您有其他 LoRa 需求或建議,歡迎聯系銳米 support@rimelink.com

LoRa 繼電器開關
LoRa 繼電器開關,用於無線遠程控制電氣設備,通過 App 下發指令能實時控制:電器,燈光,電機,閥門等。
物聯網 Arduino LoRa LoRaWAN 繼電器開關
運行效果
如下圖所示,通過 App 下發控制命令給 LoRa 繼電器開關(RY 是 Relay(繼電器) 的縮寫)
- RY:1 接通繼電器,點亮燈光
- RY:0 斷開繼電器 ,熄滅燈光

項目介紹
一個城市有上 100,000 盞路燈,一棟樓宇有上 10,000 電器,一個工廠有上 1,000 電氣設備,大型農場有上 1,000 閥門。。。。遠程實時控制這些電氣設備,不但可以節能減排,而且降低運營維護成本。
LoRa 繼電器開關,使用 App 實時遠程控制電氣設備。它的實時性好,一般在 2 秒內響應;操作簡單,業余人員使用手機即可操作;成本低廉,硬件物料批量生產僅 ¥60
LoRa 繼電器開關可以應用在:工廠,樓宇,農場,魚塘,學校,路燈等場景。
LoRa 繼電器開關_應用場景
LoRa 繼電器開關_App遠程控制
相比傳統的產品,LoRa 繼電器開關具備的優點為:
- 安裝簡單便捷,不需要布線
- App遠程控制,簡單便捷
- 成本低廉,沒有流量費用
- 實時控制,響應時間 < 2 秒
本項目開源設計 LoRa 繼電器開關的核心---軟件和硬件,用戶選擇一個漂亮的外殼,即可組成一個產品。
同時,簡介了 LoRa 網絡組件,輕松構建一個商用的物聯網。
組件和材料






軟件和網絡




技術細節
元器件介紹




硬件接線
如下圖所示,使用公對公杜邦線連接 Arduino、繼電器模塊和1K歐姆電阻。
(在本設計案例中,繼電器的輸出回路(NO 和 COM)連接到 220V 火線上,絕緣處理要嚴格,否則可能導致觸電危險!)
電路圖
實物圖
通信邏輯
如下圖所示,通過 App 可以控制繼電器開關的接通或斷開。
為此,需要配置如下的網絡組件:

Arduino 代碼
編譯本工程需要添加 LoRa 驅動庫
使用 Arduino IDE 打開工程,點擊"Sketch -> Include Library -> Add .ZIP Library..."
Arduino 的 zip 庫安裝路徑一般為:C:\Users\Administrator\Documents\Arduino\libraries
Arduino 的代碼簡潔,容易理解,下載鏈接
-
DEBUG 設置為 0 禁止調試功能;設置為 1 它將通過 8 和 9 兩個引腳打印調試信息(使用“USB轉串口”連接到 PC)。
-
按 LoRaWAN 協議,Class C 的節點入網后,必須先發送一幀數據並且服務器成功接收后,節點才能處於持續接收狀態。因此,在 setup() 中節點發送了 2 幀數據。
-
當 LoRa 節點接收到來自 App 的下發數據幀時,它通過拉低 Pin2 引腳來通知 Arduino。這里,loop() 持續檢測該引腳並接收數據幀。
(為了簡化設計,此處使用的是查詢機制;如果要求高效率和低功耗,需要切換為中斷機制,代價是復雜度大增)
#include <lora.h>
lora LoRa;
const int wakeupPin = 2; // LoRaNode LOW wakeup connected to pin 2
const int solenoidPin = 5; // Solenoid connected to pin 5
#define DEBUG 0
#if DEBUG
#include <SoftwareSerial.h>
SoftwareSerial debugSerial(8, 9); // 8=RX, 9=TX
#endif
void setup()
{
Serial.begin(115200); // for LoRa node
pinMode(wakeupPin, INPUT);
pinMode(solenoidPin, OUTPUT);
#if DEBUG
pinMode(LED_BUILTIN, OUTPUT);
debugSerial.begin(115200); // start software serial port at 115200-8-N-1
debugSerial.println("debug begin");
#endif
for (int i = 0; i < 2; ++i) {
LoRa.write("hi", 2);
delay(5000);
}
}
void loop()
{
#define MAXINSZ 20 // like as: RY:x
char instr[MAXINSZ]; // Input buffer
int len;
int val;
do {
val = digitalRead(wakeupPin);
} while (HIGH == val); // check looply until the pin is LOW
delay(10); // waiting until the LoRa message have been received
if (LoRa.available()) {
len = LoRa.read(instr, MAXINSZ);
if (('R' == instr[0]) && ('Y' == instr[1]) && (':' == instr[2])) // match the "RY:0" or "RY:1"
{
if ('1' == instr[3]) // turn ON
{
digitalWrite(solenoidPin, HIGH); // activates the solenoid
}
else if ('0' == instr[3]) // turn OFF
{
digitalWrite(solenoidPin, LOW); // deactivates the solenoid
}
else // do nothing for the noise
{
}
}
#if DEBUG
digitalWrite(LED_BUILTIN, HIGH);
debugSerial.write(instr, len);
digitalWrite(LED_BUILTIN, LOW);
#endif
}
}
低成本批量生產
LoRa 繼電器開關的硬件成本約 ¥60,這依賴於批量數目和供貨渠道。
批量生產的一些技術挑戰:尺寸,成本,功耗,燒錄,升級。
我們為您准備好解決方案:低成本快速開發LoRa終端:從1到10000