提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议。
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创。
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 support@rimelink.com
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074013209-1895779691.png)
LoRa 继电器开关
LoRa 继电器开关,用于无线远程控制电气设备,通过 App 下发指令能实时控制:电器,灯光,电机,阀门等。
物联网 Arduino LoRa LoRaWAN 继电器开关
运行效果
如下图所示,通过 App 下发控制命令给 LoRa 继电器开关(RY 是 Relay(继电器) 的缩写)
- RY:1 接通继电器,点亮灯光
- RY:0 断开继电器 ,熄灭灯光
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225082849601-581156356.png)
项目介绍
一个城市有上 100,000 盏路灯,一栋楼宇有上 10,000 电器,一个工厂有上 1,000 电气设备,大型农场有上 1,000 阀门。。。。远程实时控制这些电气设备,不但可以节能减排,而且降低运营维护成本。
LoRa 继电器开关,使用 App 实时远程控制电气设备。它的实时性好,一般在 2 秒内响应;操作简单,业余人员使用手机即可操作;成本低廉,硬件物料批量生产仅 ¥60
LoRa 继电器开关可以应用在:工厂,楼宇,农场,鱼塘,学校,路灯等场景。
LoRa 继电器开关_应用场景
LoRa 继电器开关_App远程控制
相比传统的产品,LoRa 继电器开关具备的优点为:
- 安装简单便捷,不需要布线
- App远程控制,简单便捷
- 成本低廉,没有流量费用
- 实时控制,响应时间 < 2 秒
本项目开源设计 LoRa 继电器开关的核心---软件和硬件,用户选择一个漂亮的外壳,即可组成一个产品。
同时,简介了 LoRa 网络组件,轻松构建一个商用的物联网。
组件和材料
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074807810-1802277410.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074642570-890417490.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225080958560-609301975.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074714637-1742240917.png)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074833167-1807785075.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074721164-1284890712.jpg)
软件和网络
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074732651-47393429.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074846247-1165003210.png)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074741697-169215463.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074651224-590141242.jpg)
技术细节
元器件介绍
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074807810-1802277410.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074642570-890417490.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225080958560-609301975.jpg)
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225074714637-1742240917.png)
硬件接线
如下图所示,使用公对公杜邦线连接 Arduino、继电器模块和1K欧姆电阻。
(在本设计案例中,继电器的输出回路(NO 和 COM)连接到 220V 火线上,绝缘处理要严格,否则可能导致触电危险!)
电路图
实物图
通信逻辑
如下图所示,通过 App 可以控制继电器开关的接通或断开。
为此,需要配置如下的网络组件:
![](https://img2018.cnblogs.com/blog/1915372/202002/1915372-20200225082813012-1899236994.png)
Arduino 代码
编译本工程需要添加 LoRa 驱动库
使用 Arduino IDE 打开工程,点击"Sketch -> Include Library -> Add .ZIP Library..."
Arduino 的 zip 库安装路径一般为:C:UsersAdministratorDocumentsArduinolibraries
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