花 1 小时,开源设计 LoRa 继电器开关

提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 [email protected]

LoRa 继电器开关

LoRa 继电器开关,用于无线远程控制电气设备,通过 App 下发指令能实时控制:电器,灯光,电机,阀门等。
物联网 Arduino LoRa LoRaWAN 继电器开关

组件和材料


LoRa 扩展板 x 1 采购链接


Arduino UNO x 1 采购链接


5V继电器模块 x 1 采购链接


天线 x 1 采购链接


1K欧姆 x 1 采购链接


杜邦线 x 3 采购链接

软件和网络


LoRa网关 采购链接


LoRaServer 下载链接


LoRaApp 下载链接


Arduino IDE 下载链接

项目介绍

一个城市有上 100,000 盏路灯,一栋楼宇有上 10,000 电器,一个工厂有上 1,000 电气设备,大型农场有上 1,000 阀门。。。。远程实时控制这些电气设备,不但可以节能减排,而且降低运营维护成本

LoRa 继电器开关,使用 App 实时远程控制电气设备。它的实时性好,一般在 2 秒内响应;操作简单,业余人员使用手机即可操作;成本低廉,硬件物料批量生产仅 ¥60

LoRa 继电器开关可以应用在:工厂,楼宇,农场,鱼塘,学校,路灯等场景。

LoRa 继电器开关_应用场景

LoRa 继电器开关_App远程控制

相比传统的产品,LoRa 继电器开关具备的优点为:

  • 安装简单便捷,不需要布线
  • App远程控制,简单便捷
  • 成本低廉,没有流量费用
  • 实时控制,响应时间 < 2 秒

本项目==开源设计 LoRa 继电器开关的核心---软件和硬件==,用户选择一个漂亮的外壳,即可组成一个产品。
同时,简介了 LoRa 网络组件,轻松构建一个商用的物联网。

技术细节

元器件介绍


这是专为 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 可以控制继电器开关的接通或断开

为此,需要配置如下的网络组件:

运行效果

如下图所示,通过 App 下发控制命令给 LoRa 继电器开关(RY 是 Relay(继电器) 的缩写)

  • RY:1 接通继电器,点亮灯光
  • RY:0 断开继电器 ,熄灭灯光

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

原文地址:https://www.cnblogs.com/rimelink/p/12359916.html

时间: 2024-10-12 19:19:56

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

【实习记】2014-08-17关于json格式的小错误花2小时debug

现象:jQuery开发时$.get()或$.getJSON()的回调均没调用,但firebug中确定以请求该资源. 原因:返回的json格式出错,"name":json,因为这样没有双引号而导致的. 排除过程:1.查看服务器的http头,确定Conten-Type:application/json没有错.2.回调函数没有执行,想到换掉旧的可用jquery和boostrap版本,结果并非版本问题.3.修改回调函数,不管怎样都无法执行.4.对比其它正确的json的http头,但无论有无加入

老板雇佣的是40小时的工作量还是普通人需要花40小时才能完成的工作成果?

一周工作俩小时 但老板不知道 我有错么?   6 月 27 日在问答网站StackExchange,有这样一个帖子 我在一个公司做遗留系统工作,大部分工作是美化数据,编写很多SQL脚本.这并不是一份很简单的活,因为最初开发这个系统的人写反了.实际上,创建电子表单的分析师要花很多时间来验证我的工作,原因是我这活太繁杂,易出错. 1年半以后,我摸索到了套路,编写了自动化程序.1个人做1个月的事,现在10分钟就可以完成了.虽然有时候规范需要修改,加上邮件来回沟通的时间,我每周的实际工作时间约 1-2

极客48小时APP设计大赛

为期三天的极客APP设计大赛,完美结束.下面我们来介绍这个大赛的整个过程. 一 极客APP设计大赛性质 由铂涛孵化器主办,百思一刻承办的铂涛创新体验极客挑战赛.主要由在校大学生.社会工作人士.创业者等组成的.期间有国家发改委主任等领导人莅临现场. 二 参赛的规模 整个过程总共有300个团队及个人报名参加报名,最终由举办方精选了16个团队80人参赛.里面有酷狗音乐第一队,小跑科技的第16对等等. 我们是代表公司参赛的,公司总共有两个队:第12队和第8队. 三 比赛时间 48小时激烈角逐和一下午的路

12V继电器开关控制

案例描述:“灯控项目”中让单片机通过IO口控制继电器,继电器接入GPRS电路板供电电源,从而实现单片机对GPRS电路板的开关控制 电路图 所需元器件:1个五脚继电器,1个NPN三极管,2个电阻,1个二极管. 元器件作用.参数与选型:  五脚继电器:1.3脚导通时,2和5连接,不导通时2和4连接.实质是1/3脚之间为线圈,通电后产生磁力.  R4起限流作用,降低三极管Q1功耗.阻值取1K~2K:  R10使三极管可靠截止,即SIMPD14悬空或三态输入时,三极管基极电荷能通过R10流到地,保证Q1

最详细爬虫入门教程!花半小时你应该就能去爬一些小东西了!

爬虫对目标网页爬取的过程可以参考下面黑色文字部分: 首先访问初始url,获取其相应内容对相应内容进行解析,提取感兴趣的信息和新的链接将上一步提取到的数据存储,将获取到的链接去重并存储至仓库从url仓库获得一条未爬取过的url,开始新的循环 图片中由黑色文字组成的循环应该很好理解,那么具体到编程上来说,则必须将上面的流程进行抽象,我们可以编写几个元件,每个元件完成一项功能,上图中的蓝底白字就是对这一流程的抽象: 爬虫调度器将要完成整个循环,下面写出python下爬虫调度器的程序: 存储器.下载器.

Pongo网页版JavaScript源代码及设计思路

1.游戏背景介绍(写在前面的废话): 五月初的某天,看到某网推荐了这款游戏,Pongo,看着还不错的样子就用ipad下下来试玩了下,玩了两局感觉还错挺过瘾的,因为是手欠类游戏嘛大家懂的. 但是没一会发现游戏在ipad似乎有些bug,玩一会就会卡住然后只能强退了,真是揪心,记录还等着破呢. 怎么办?玩游戏不如玩自己的游戏的念头又邪恶的出现了,然后就把pad丢给了朋友虐心去,我默默回到电脑前开始动手自己写个不会卡的. 大概两小时吧,写出了基本框架,然后扔sinaapp里试了下效果基本能玩就洗洗睡了.

使用 jQuery Mobile 和 CSS3 实现响应式设计

使用 jQuery Mobile 和 CSS3 实现响应式设计 创建可以适应每个用户的屏幕分辨率的 Web 页面布局 jQuery Mobile 框架就其本身而言就是一个优秀的解决方案,可以快速创建一个可访问的由 HTML5 标记驱动的移动网站.当与 CSS3 配合使用时,工作真的会变得很有趣,因为它使创建一个根据屏幕分辨率来响应用户设备的 Web 页面布局成为可能.本文展示了如何使用 jQuery Mobile 框架和 CSS3 媒体查询在您的 Web 页面中实现响应式设计. jQuery M

常用算法设计技术总结

算法,即计算的方法,使用计算的思想.方法.工具和技术来实现问题求解的思路和途径.计算机提供了计算的能力和硬件设施:算法则提供了计算的思想和软件技术,更好地发挥计算机的潜能. —— 引 有人说,算法无用,这种观点就如同盲人看不到花开就说世界上没有花一样,是一个长眼睛的人无论如何也难以接受的.举个简单的例子,假如你要对1000,000条记录进行排序,你的计算机每秒可处理1000,000 条记录, 那么, 如果你选择 O(nlogn)的快速排序,所花时间大约是 log2(1000000) = 20s,

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

表情包形象取自番剧<猫咪日常> 那我也整一个 曾几何时,笔者是个对算法这个概念漠不关心的人,由衷地感觉它就是一种和奥数一样华而不实的存在,即便不使用任何算法的思想我一样能写出能跑的程序 直到一年前帮同学做了个手机游戏demo才发现了一个严峻的问题 为啥*一样的画面能跑出ppt的质感? 虽然发现当时的问题主要出现在使用了一个有bug的API,它导致了低性能的循环调用,但是从那时便开始就重新审视算法了,仅仅一个函数就能大幅地改变程序带给用户的体验这个观念根植心底 后来多多少少也学习了一些算法的知识