花 1 小時,開源設計 LoRa 繼電器開關


提示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 網絡組件,輕松構建一個商用的物聯網。

組件和材料

**LoRa 擴展板 x 1** [采購鏈接](https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-13955217965.27.715f421cEkbQLU&id=612648762230) **Arduino UNO x 1** [采購鏈接](https://item.taobao.com/item.htm?spm=a1z09.2.0.0.773d2e8dmYIyUF&id=593401940517&_u=k201cu1luac7c6) **5V繼電器模塊 x 1** [采購鏈接](https://detail.tmall.com/item.htm?id=41231430731&spm=a1z09.2.0.0.3c6a2e8dtYyRTi&_u=l34jp72pd125&skuId=3764441873869) **天線 x 1** [采購鏈接](https://detail.tmall.com/item.htm?spm=a230r.1.14.20.43dc71de9WHs3W&id=17521693052&ns=1&abbucket=7) **1K歐姆 x 1** [采購鏈接](https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16538328900.60.560c3d6c1fIOpf&id=542721590093&rn=ee1348ad4dd04ab3700b67c8996f7925&abbucket=18&skuId=3769488045642) **杜邦線 x 3** [采購鏈接](https://detail.tmall.com/item.htm?id=41254478179&spm=a1z09.2.0.0.7b0d2e8dkRdPtj&_u=k201cu1luab121&skuId=3108862773142)

軟件和網絡

**LoRa網關** [采購鏈接](https://item.taobao.com/item.htm?spm=2013.1.w4023-13955217959.11.38c65d3aDTFBlO&id=559152286301) **LoRaServer** [下載鏈接](http://www.rimecloud.com/) **LoRaApp** [下載鏈接](https://github.com/rimelink-lorawan/csharp-app-sdk/releases/download/v1.0/RDemoConfig1.0.zip) **Arduino IDE** [下載鏈接](https://www.arduino.cc/en/main/software)

技術細節

元器件介紹

這是專為 Arduino 而設計的 LoRa 擴展板,既可以安裝在 Arduino UNO 上,也能使用杜邦線連接到 Arduino Pro Mini。 它能達到==空曠 10km 的通信距離,休眠電流僅 1.3uA==。精心設計的軟件庫,使其開發極為容易: - 發送數據 ``` LoRa.write("123", 3); ``` - 接收數據 ``` if (LoRa.availabe()) { len = LoRa.read(buf, MAX_LEN); } ``` Arduino UNO 是最常用的開發板,它便宜簡單,接線方便。 繼電器模塊,帶光耦隔離,5V/5mA 直流驅動 220V/10A 交流負載。 470MHz 膠棒天線,增益 3.5dB,特別適合中國 LoRa 頻段范圍(470~510MHz)。

硬件接線

如下圖所示,使用公對公杜邦線連接 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM