提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议。
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创。
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 [email protected]
LoRa 红外检测体温
LoRa 红外测温可自动测量人体温度,基于 LoRa 传送到服务器和 App,既可实时报警“发烧”人群,又可以生成体温健康报表。
物联网 Arduino LoRa LoRaWAN 红外测温
组件和材料
LoRa 扩展板 x 1 采购链接
Arduino UNO x 1 采购链接
红外测温传感器 x 1 采购链接
按钮 x 1 采购链接
蜂鸣器 x 1 采购链接
220欧姆电阻 x 1 采购链接
天线 x 1 采购链接
杜邦线 x 9 采购链接
软件和网络
LoRa网关 采购链接
LoRaServer 下载链接
LoRaApp 下载链接
Arduino IDE 下载链接
项目介绍
2020 年春节前,新型冠状病毒肺炎爆发,影响全国亿万民众的生活和工作。该病症有一个临床特性,发烧到 37.5 度以上。
为了有效抗击该传染病,我们设计 LoRa 红外检测体温系统,非接触式测量体温,自动识别“发烧”疑似病人。
该智能系统可以部署在:学校,写字楼,商场,园区,医院,火车站,汽车站,港口,机场等入口。
LoRa 红外测温系统
体温健康报表
相比传统的产品,LoRa 红外检测体温具备的优点为:
- 安装简单便捷,不需要布线
- 365x24自动运行,无需人员值守
- 成本低廉,经济效益好
- 实时体温报警,生成健康报表
本项目开源设计 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 是最常用的开发板,它便宜简单,接线方便。
MLX90614 红外测温模块,无接触式测量,体积小,成本低,医疗应用的高精度,高分辨率 0.02℃。
470MHz 胶棒天线,增益 3.5dB,特别适合中国 LoRa 频段范围(470~510MHz)。
硬件接线
如下图所示,使用公对母的杜邦线连接 Arduino、红外测温模块、按钮、蜂鸣器和电阻。
通信逻辑
如下图所示,LoRa 红外测温上报人体温度给服务器和 App
为此,需要配置如下的网络组件:
运行效果
如下图所示,LoRa 红外测温终端采集4 字节浮点型小端数据,通过 LoRa 发送,App 显示人体温度。
行业第一的超低功耗—休眠仅 1.4uA
如下图所示(实物拍摄),ArduinoLoRa+ 的低功耗可达 1.4uA,这不仅是行业第一的超低功耗,而且达到了器件极限!
Arduino 代码
编译本工程需要添加 LoRa 和 MLX90614 驱动库,下载这 2 个库:
LoRa 驱动库
MLX90614
使用 Arduino IDE 打开工程,点击"Sketch -> Include Library -> Add .ZIP Library…"
Arduino 的 zip 库安装路径一般为:C:\Users\Administrator\Documents\Arduino\libraries
Arduino 的代码简洁,容易理解,下载链接
- DEBUG 设置为 0 禁止调试功能;设置为 1 它将通过 8 和 9 两个引脚打印调试信息(使用“USB转串口”连接到 PC)。
- debounce() 可靠地检测按钮的闭合,它使用”去抖“算法,仅当在指定周期(本例为 50ms)按钮保持稳定,才返回状态值(按下为真,不按为假)。
#include <lora.h>
#include <Wire.h> // Wire library for I2C communication
#include <Adafruit_MLX90614.h> // MLX90614 library from Adafruit
lora LoRa;
Adafruit_MLX90614 MLX90614 = Adafruit_MLX90614();
const int buttonPin = 2;
const int speakerPin = 13;
const int debounceDelay = 50; // milliseconds to wait until stable
#define DEBUG 0 // 0=disable, 1=enable
#if DEBUG
#include <SoftwareSerial.h>
SoftwareSerial debugSerial(8, 9); // 8=RX, 9=TX
#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(speakerPin, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin, HIGH); // pull up that would read LOW if pressed
Serial.begin(115200); // for LoRa Node
MLX90614.begin();
#if DEBUG
debugSerial.begin(9600); // add this to the setup function
#endif
}
void loop()
{
double array[1];
if (debounce(buttonPin))
{
array[0] = MLX90614.readObjectTempC(); // get temperature from MLX90614
LoRa.write(array, sizeof(array[0]));
digitalWrite(speakerPin, HIGH);
delay(100);
digitalWrite(speakerPin, LOW);
#if DEBUG
debugSerial.println(array[0]);
#endif
}
}
低成本批量生产
LoRa 红外测温终端的硬件成本约 ¥80,这依赖于批量数目和供货渠道。
批量生产的一些技术挑战:尺寸,成本,功耗,烧录,升级。
我们为您准备好解决方案:低成本快速开发LoRa终端:从1到10000
延伸应用
更好地识别身份
为了识别被测体温者的身份信息,这可以与市场现有的考勤和门禁系统对接。这样,RFID、二维码、指纹、人脸识别、NFC…等成熟的技术可以利用,降低成本。
更高的测温精度
红外测温精度受一些因素的影响,包括
- 环境温度影响
- 被测物体反射光谱
- 空气折射
如果要进一步提高测温精度,这需要
- 隔离传感器和环境
- 补偿环境温度
- 添加线性校准算法
更远的测温距离
MLX90614-DCI 长远距离红外测温传感器,它能延长测量距离到 50cm
长远距离红外测温传感器 采购链接