提示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() 持续检测该引脚并接收数据帧。

    (为了简化设计,此处使用的是查询机制;如果要求高效率和低功耗,需要切换为中断机制,代价是复杂度大增)

  1. #include <lora.h>
  2. lora LoRa;
  3. const int wakeupPin = 2; // LoRaNode LOW wakeup connected to pin 2
  4. const int solenoidPin = 5; // Solenoid connected to pin 5
  5. #define DEBUG 0
  6. #if DEBUG
  7. #include <SoftwareSerial.h>
  8. SoftwareSerial debugSerial(8, 9); // 8=RX, 9=TX
  9. #endif
  10. void setup()
  11. {
  12. Serial.begin(115200); // for LoRa node
  13. pinMode(wakeupPin, INPUT);
  14. pinMode(solenoidPin, OUTPUT);
  15. #if DEBUG
  16. pinMode(LED_BUILTIN, OUTPUT);
  17. debugSerial.begin(115200); // start software serial port at 115200-8-N-1
  18. debugSerial.println("debug begin");
  19. #endif
  20. for (int i = 0; i < 2; ++i) {
  21. LoRa.write("hi", 2);
  22. delay(5000);
  23. }
  24. }
  25. void loop()
  26. {
  27. #define MAXINSZ 20 // like as: RY:x
  28. char instr[MAXINSZ]; // Input buffer
  29. int len;
  30. int val;
  31. do {
  32. val = digitalRead(wakeupPin);
  33. } while (HIGH == val); // check looply until the pin is LOW
  34. delay(10); // waiting until the LoRa message have been received
  35. if (LoRa.available()) {
  36. len = LoRa.read(instr, MAXINSZ);
  37. if (('R' == instr[0]) && ('Y' == instr[1]) && (':' == instr[2])) // match the "RY:0" or "RY:1"
  38. {
  39. if ('1' == instr[3]) // turn ON
  40. {
  41. digitalWrite(solenoidPin, HIGH); // activates the solenoid
  42. }
  43. else if ('0' == instr[3]) // turn OFF
  44. {
  45. digitalWrite(solenoidPin, LOW); // deactivates the solenoid
  46. }
  47. else // do nothing for the noise
  48. {
  49. }
  50. }
  51. #if DEBUG
  52. digitalWrite(LED_BUILTIN, HIGH);
  53. debugSerial.write(instr, len);
  54. digitalWrite(LED_BUILTIN, LOW);
  55. #endif
  56. }
  57. }

低成本批量生产

LoRa 继电器开关的硬件成本约 ¥60,这依赖于批量数目和供货渠道。

批量生产的一些技术挑战:尺寸,成本,功耗,烧录,升级

我们为您准备好解决方案:低成本快速开发LoRa终端:从1到10000

花 1 小时,开源设计 LoRa 继电器开关的更多相关文章

  1. 【Sass/SCSS】我花4小时整理了的Sass的函数

    [Sass/SCSS]我花4小时整理了的Sass的函数 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 Sass 定义了各 ...

  2. 12V继电器开关控制

    案例描述:“灯控项目”中让单片机通过IO口控制继电器,继电器接入GPRS电路板供电电源,从而实现单片机对GPRS电路板的开关控制 电路图 所需元器件:1个五脚继电器,1个NPN三极管,2个电阻,1个二 ...

  3. 仿QQ撒花特效--第三方开源--FllowerAnimation

    点此下载资源 xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...

  4. 订单突破10000+,仅花1小时,APPx独家深入剖析背后的秘密!

    拼多多:成立三年,获客三亿,月订单成交额达到恐怖的400亿,成功上市! 糕妈优选:营销活动推送1小时,订单超过10000+,商品成功刷屏朋友圈! 寻慢:一场活动净增7000+粉丝,付款转化率高达71% ...

  5. [开源] .Net orm FreeSql 1.5.0 最新版本(番号:好久不见)

    废话开头 这篇文章是我有史以来编辑最长时间的,历时 4小时!!!原本我可以利用这 4小时编写一堆胶水代码,真心希望善良的您点个赞,谢谢了!! 很久很久没有写文章了,上一次还是在元旦发布 1.0 版本的 ...

  6. [开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报(番号:我还活着)

    写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,在一些人眼里属于重复造轮子:不看也罢.就像昨天有位朋友截图某培训直播发给我看,内容为:"FreeSQL(个人产品),自己玩 ...

  7. [开源] .Net ORM FreeSql 1.10.0 稳步向行

    写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白).今天带点干货和湿货给大家,先说下湿货. 认识我的人,知道 CSRedisCore ...

  8. .Net orm 开源项目 FreeSql 2.0.0(满意的答卷)

    写在开头 2018年11月头脑发热到今天,一晃已经两年,当初从舒服区走向一个巨大的坑,回头一看后背一凉. 两年时间从无到有,经历数不清的日夜奋斗(有人问花了多长时间投入,答案:全职x2 + 两年无休息 ...

  9. 最大子段和的DP算法设计及其效率测试

    表情包形象取自番剧<猫咪日常> 那我也整一个 曾几何时,笔者是个对算法这个概念漠不关心的人,由衷地感觉它就是一种和奥数一样华而不实的存在,即便不使用任何算法的思想我一样能写出能跑的程序 直 ...

随机推荐

  1. Win10永久版低价购买及激活工具使用说明

    目录 按 发展历程 用户界面 激活工具 按 Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版. Windows 10操作系统在易用性和安全性 ...

  2. python IO非阻塞模型

    server端 import socket sk = socket.socket() sk.bind(('127.0.0.1', 8010)) sk.setblocking(False) # sk.l ...

  3. 代码写不对队-Beta冲刺版本

    代码写不对队:Beta冲刺版本 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework ...

  4. 亲测可用!在线购书系统项目分享(Java)

    项目简介 项目来源于:https://gitee.com/suimz_admin/BookShop 一个基于JSP+Servlet+Jdbc的书店系统.涉及技术少,易于理解,适合JavaWeb初学者学 ...

  5. [校内训练20_01_17]ABC

    1.平面上每次加入直角边平行于坐标轴的等腰直角三角形,每次询问某个点被覆盖了多少次. 大常数算法:O(nlog^2) #include<bits/stdc++.h> using names ...

  6. CF990G

    题意 https://codeforces.com/contest/990/problem/G 思考 在200000以内,因数个数最多的数位166320,共有160个因数.可以知道,从一个节点向下走最 ...

  7. The system is running in low-graphics mode

    No internet 1.Ctrl + Alt + F1 2.login 3.input the code below: sudo chown lightdm:lightdm -R /var/lib ...

  8. object-c中的int NSInteger NSUInteger NSNumber辨析

    object-c中的int NSInteger NSUInteger NSNumber辨析 #import <Foundation/Foundation.h> int main(int a ...

  9. OpenResty学习指南(一)

    我的博客: https://www.luozhiyun.com/archives/217 想要学好 OpenResty,你必须理解下面 8 个重点: 同步非阻塞的编程模式: 不同阶段的作用: LuaJ ...

  10. python基础面试集锦(51-100)

    目录 51.把aaabbbcccdd这种形式的字符串压缩成a3b3c3d2的形式? 52.给你一个字符串'abc',打印出该字符串的所有排列组合? 53.执行以下代码后,x的值为? 54.对于一个非空 ...