当前位置:   article > 正文

【FlexLua】0基础实现LoRa无线非接触式红外测温采集装置

【FlexLua】0基础实现LoRa无线非接触式红外测温采集装置

【FlexLua】0基础实现LoRa无线非接触式红外测温采集装置

本文章里的素材来源参考于:https://www.flexlua.com/FL-S/S000/S000D

0 引言

Lua 低代码的方式开发硬件,仅需复制粘贴代码即可实现本采集装置,如果稍微具备一些编程能力还可创造更丰富的功能。

1 简介

本装置的实现是基于一款 I2C 接口的红外非接触式测温传感器(W-TRS-5.5D)和 FlexLua 的 DUT01 万能采集器(内置 LoRa 通信模块)。

  • W-TRS-5.5D:DIP 4 Pin 封装数字红外热电堆传感器,芯片内置热电堆传感器和专用芯片,用于非接触测温应用。

f449db9b6c8624df49d28d725f1fa741.jpeg

  • FlexLua DUT01:一款支持 Lua 编程的低代码且软硬件灵活可配置的采集器,即使不会写代码也可通过拷贝复制实现各种采集和通信功能。

b52ecc11e9387abbc9b331f03663efd9.jpeg

2 实现功能描述

基于 DTU01 万能采集器实现采集 I2C 接口的 非接触式红外测温传感器数据,并将采集到的传感器数据以 Json 字符串的形式通过可选的 4G/WiFi/以太网/LoRa 其中一种方式发送给网关或云服务器。在需要电池供电的场景下,还可通过给 DTU01 增加低功耗模块以实现周期性休眠采集,休眠电流可低至 3uA 以内,以实现在电池供电场景下的几个月甚至几年的周期性长期采集。

这里我们仅需实现 LoRa 通信即可,其他方式可参考官方资料实现。

3 传感器采集核心代码实现

--采集接口初始化函数
function SensorInit()
--设置红外测温传感器占用SCL0和SDA0引脚,并启动传感器以每秒输出5组数据的频率工作
LIB_IfrTempConfig("IIC0")
end

--读取IIc 接口的 非接触式红外测温传感器数据,获取到的json data数据形式可如下:
--{"AmbTemp":29.3, "ObjTemp":26.8, "BodyTemp":36.8},表示:环境温度=29.3度,物体温度=26.8度,人体温度=36.8度
function SensorGetValue()
err = "null" --err包含错误信息,如果没有错误,设置为"null"

--查询传感器是否出数
ifr_flag,AmbTemp,Vol,ObjTemp,BodyTemp = LIB_IfrTempGetResult()
if ifr_flag == 1 then
--如果获取成功,data将是一条完整的json字符串
--%.1f 表示传感器结果只保留1位小数
--将传感器输出的环境温度,物体温度,以及人体温度组合成Json字符串
data = string.format("{\"AmbTemp\":%.1f, \"ObjTemp\":%.1f, \"BodyTemp\":%.1f}", AmbTemp, ObjTemp, BodyTemp)
else
--如果获取失败,data设置为"null"
data = "null"
err = "Read sensor fail"
end

--返回结果
finish = 1 --finish=1表示传感器读取完成(无论是否成功)
return finish,data,err
end

这里的源代码用来展示采集器采集传感器数据的核心过程,完整的源代码可以在 FlexLua 官网的 S000D 文档里找到。

4 传感器参数介绍

远距离(型号:FWTRS55D)

c68f3f3c80e51dca591c5ad8358f9b33.jpeg

近距离(型号:WTRS55D)

5666dda63820f840bbbf42ddd1ead96f.jpeg

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/438172
推荐阅读
相关标签
  

闽ICP备14008679号