提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议。
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创。
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 [email protected]
一键式紧急按钮,基于 LoRa 传送到服务器,通过手机 / PC / 电子显示屏 / 语音等通知工作人员快速处理事件。
LoRa LoRaWAN 按钮终端 开源设计 Arduino
LoRa 扩展板 x 1 采购链接
Arduino UNO x 1 采购链接
按钮 x 1 采购链接
LED x 1 采购链接
天线 x 1 采购链接
杜邦线 x 2 采购链接
LoRa网关 采购链接
LoRaServer 下载链接
LoRaApp 下载链接
Arduino IDE 下载链接
应急处理保障生命财产安全,一直是社会的基本需求,LoRa 紧急报警系统广泛应用于:部队、学校、医院、银行、养老院等场景。
LoRa 紧急报警系统
相比传统的产品,LoRa 按钮终端具备的优点为:
本项目开源设计 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 是最常用的开发板,它便宜简单,接线方便。
按钮开关,按下闭合接通,松开恢复开路。
470MHz 高频胶棒天线,增益 3.5dB,特别适合中国 LoRa 频段范围(470~510MHz)。
如下图所示,使用公对母的杜邦线连接 Arduino 和 按钮+LED
如下图所示,按钮终端上报事件给 App。
为此,需要配置如下的网络组件:
如下图所示,当用户压下按钮,LoRa 终端闪烁 LED 灯,App 显示本次紧急事件。
ArduinoLoRa+按钮演示视频
如下图所示(实物拍摄),ArduinoLoRa+ 的低功耗可达 1.4uA,这不仅是行业第一的超低功耗,而且达到了器件极限!
如下图所示,2 节 5 号碱性电池容量约 2890mAH,因为 LoRa 按钮终端是”平时休眠,触发供电“,设平均 10 分钟工作一次,电池可工作近 9 年。终端电池寿命计算器
编译本工程需要添加 LoRa 驱动库
使用 Arduino IDE 打开工程,点击"Sketch -> Include Library -> Add .ZIP Library…"
Arduino 的 zip 库安装路径一般为:C:\Users\Administrator\Documents\Arduino\libraries
Arduino 的代码简洁,容易理解,下载链接
#include
lora LoRa;
const int inputPin = 2; // the number of the input pin
const int ledPin = 13; // the number of the output pin
const int debounceDelay = 50; // milliseconds to wait until stable
#define DEBUG 0 // 0=disable, 1=enable
#if DEBUG
#include
SoftwareSerial debugSerial(8, 9); // 8=RX, 9=TX
int count; // add this variable to store the number of presses
#endif
boolean debounce(int pin)
{
boolean state;
boolean previousState;
previousState = digitalRead(pin); // store switch state
for (int counter=0; counter < debounceDelay; counter++)
{
delay(1); // wait for 1 millisecond
state = digitalRead(pin); // read the pin
if (state != previousState)
{
counter = 0; // reset the counter if the state changes
previousState = state; // and save the current state
}
}
// here when the switch state has been stable longer than the debounce period
if (LOW == state)
return true;
else
return false;
}
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT);
digitalWrite(inputPin, HIGH);
Serial.begin(115200);
#if DEBUG
debugSerial.begin(9600); // add this to the setup function
#endif
}
void loop()
{
boolean array[1];
if (debounce(inputPin))
{
array[0] = true;
LoRa.write(array, sizeof(array[0]));
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
#if DEBUG
count++; // increment count
debugSerial.println(count); // display the count on the Serial Monitor
#endif
}
}
批量生产的一些技术挑战:尺寸,成本,功耗,烧录,升级。
我们为您准备好解决方案:低成本快速开发LoRa终端:从1到10000