非接触红外测温在医疗,环境监测、个人健康等领域得到越来越广泛的应用。本文将向大家介绍如何通过AliOS-Things inside的WiFi模组,快速完成体温检测,流程涵盖从传感器数据采集,到阿里云IoT智能生活平台接入,以及快速构建App完成监控。希望通过阿里云IoT提供的从设备端到云端应用的全套解决方案,快速帮助智能设备厂商,构建出可以替代人力的自动化人体测温设备和方案,在防控中降低人员接触风险,提升排查效率。
生活物联网平台提供了设备接入能力、移动端的SDK以及免开发的公版App和界面,开发者基于该平台可快速实现设备的智能化。
云智能是生活物联网平台提供的公版App,无需额外开发,下载后可直接对设备进行配网和控制。支持在全球主流应用商店中搜索“云智能”下载;
AliOS Things作为轻量级物联网OS,已支持多款芯片,可以方便的集成温度传感器,并通过设备端SDK连接生活物联网平台;这里选用其最新发布的3.0.0版本。
硬件平台选用ESP8266 nodeMCU,支持Wifi连接,带有I2C、UART等接口,并且带有按键(FLASH按键),可用于触发体温检测上报。
这颗传感器是一款红外的非接触温度计,支持I2C通信协议,主要用到SDA和SCL两条线,可以很方便的连接到ESP8266开发板上。
开发板与传感器的接线引脚对应关系如下:
硬件连接图,右键可打开大图
智能生活平台上创建产品及设备之前,请先确保以下两点:
在控制台上已创建项目、产品,并完成产品的功能定义,可参见完成这部分的操作。功能定义时,需要注意以下两点:
公版App的参数配置及流程如下所示:
获取(如图所示),并按以下步骤集成。
针对上述选用的ESP8266开发板,为保证按键中断、I2C等功能正常运行,需要做以下修改:
MLX90614是一款用于非接触式温度测量的红外温度计,这里主要介绍其使用方法。MLX90614的EEPROM主要用来做参数配置,具体可参考官方手册:
MLX90614的RAM为只读属性,用户可以读取温度等数据,例如,通过RAM上的Tobj1可以获取被检测物体的温度数据。
I2C总线通过设备地址0X5A(MLX90614出厂设置)来访问传感器。访问RAM和EEPROM时,操作命令的对应关系如下所示:
按照同样的方式,通过RAM读取被测物体温度寄存器(Tobj1)数据的操作码为0X7。
用例初始化流程如下所示,具体请参考入口函数application_start:
ESP8266的按键中断相关代码在mcuesp8266bspkey.c中,按下按键后,中断回调函数会根据按键按下的时间(短按、2秒钟长按、6秒钟长按),触发不同的event(通过aos_post_event)。application_start中注册的按键回调,会响应上述事件,按键回调代码如下:
体温数据检测、上报流程请参考相关代码,检测低于正常人体温度范围(34~42℃),则上报数据0,高于正常人体温度范围,则上报数据99:
/* 读取温度数据并上报云端 */
/* 读取温度传感器数据 */
/* 人体温度数据校准 */
/* 上报体温数据到云端 */
参考3.1节,确保设备端上报体温对应的功能标识符(appexamplethermometer目录下的app_entry.h中)与云端的配置一致:
在OS目录下执行以下命令,完成编译
开发板参考如下:
复位单板后,长按"FLASH"键(>2s),开启配网流程,APP端参考官方文档中的“”完成。
配网成功后,短按"FLASH"键(>40ms),可以触发一次温度采集,并上传云端,同时推送到手机侧云智能APP。
需要注意的是,用例中增加了校准,检测温度的的范围是34 ~ 42℃,低于这个范围,上报数据为0;高于这个范围,上报数据为99。
问题交流、技术支持群:
1、红外测温方案,LCD中文数字大屏,读数方便
2、一键测量,操作简单
3、15秒无操作自动进入休眠模式
5、耳温测量,受干扰更小,测量更准确
6、带蓝牙,可将数据发送至手机APP,数据更直观
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。