抗击新型冠状病毒肺炎,开源设计 LoRa 红外检测体温

提示1:锐米所有 LoRa 产品严格遵循国际标准的 LoRaWAN 协议
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 support@rimelink.com
LoRa 红外测温终端

LoRa 红外检测体温

LoRa 红外测温可自动测量人体温度,基于 LoRa 传送到服务器和 App,既可实时报警“发烧”人群,又可以生成体温健康报表。
物联网 Arduino LoRa LoRaWAN 红外测温

运行效果

如下图所示,LoRa 红外测温终端采集4 字节浮点型小端数据,通过 LoRa 发送,App 显示人体温度。
App运行效果

项目介绍

2020 年春节前,新型冠状病毒肺炎爆发,影响全国亿万民众的生活和工作。该病症有一个临床特性,发烧到 37.5 度以上

为了有效抗击该传染病,我们设计 LoRa 红外检测体温系统,非接触式测量体温,自动识别“发烧”疑似病人

该智能系统可以部署在:学校,写字楼,商场,园区,医院,火车站,汽车站,港口,机场等入口。


LoRa 红外测温系统
红外测温智能系统


体温健康报表
体温健康报表


相比传统的产品,LoRa 红外检测体温具备的优点为:

  • 安装简单便捷,不需要布线
  • 365x24自动运行,无需人员值守
  • 成本低廉,经济效益好
  • 实时体温报警,生成健康报表

本项目开源设计 LoRa 红外检测体温的核心—软件和硬件,用户选择一个漂亮的外壳和电池,即可组成一个产品。
同时,简介了 LoRa 网络组件,轻松构建一个商用的健康监测物联网。

组件和材料

LoRa 开发板 x 1 采购链接


红外测温传感器红外测温传感器 x 1 采购链接


按钮按钮 x 1 采购链接


蜂鸣器蜂鸣器 x 1 采购链接


电阻220欧姆电阻 x 1 采购链接


杜邦线杜邦线 x 9 采购链接

软件和网络

LoRa网关 LoRa网关 采购链接


LoRaServerLoRaServer 下载链接


LoRaAppLoRaApp 下载链接


Arduino IDEArduino IDE 下载链接

技术细节

元器件介绍

LoRa 开发板遵循 LoRaWAN 国际标准,兼容 SX130x 八通道和 SX127x 单/双通道网关,接入 loraserver

软硬件 100% 兼容 Arduino,借助全球开源软件降低开发成本,串口下载程序(无须仿真器)。

它能达到空旷 10km 的通信距离,休眠电流仅 1.4uA。精心设计的软件库,使其开发极为容易:

  • 发送数据
LoRa.write("123", 3);
  • 接收数据
if (LoRa.availabe()) { 
    len = LoRa.read(buf, MAX_LEN); 
}

红外测温传感器
MLX90614 红外测温模块,无接触式测量,体积小,成本低,医疗应用的高精度,高分辨率 0.02℃。


硬件接线

如下图所示,使用公对母的杜邦线连接 Arduino、红外测温模块、按钮、蜂鸣器和电阻。
接线图

通信逻辑

如下图所示,LoRa 红外测温上报人体温度给服务器和 App

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

行业第一的超低功耗—休眠仅 1.4uA

如下图所示(实物拍摄),Arduino LoRa+ 的低功耗可达 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终端:从1到10000

延伸应用

更好地识别身份

为了识别被测体温者的身份信息,这可以与市场现有的考勤和门禁系统对接。这样,RFID、二维码、指纹、人脸识别、NFC…等成熟的技术可以利用,降低成本。

更高的测温精度

红外测温精度受一些因素的影响,包括

  • 环境温度影响
  • 被测物体反射光谱
  • 空气折射

如果要进一步提高测温精度,这需要

  • 隔离传感器和环境
  • 补偿环境温度
  • 添加线性校准算法

更远的测温距离

MLX90614-DCI 长远距离红外测温传感器,它能延长测量距离到 50cm
MLX90614-DCI长远距离红外测温传感器 采购链接