4732| 9
|
[项目] 【2020】多掌控无线测温仪 |
岁岁年年花相似,年年岁岁人不同。原是感叹景物依旧,人事多变。但让人意想不到的是,传统佳节——春节,竟然也会有一年变得与往年全然不同。 春节前暴发的疫情让满心欢喜期待过一个团圆年的中国人民措手不及,84岁的钟南山院士再次披挂出征,冲在防疫最前线;医务人员“不计报酬,无论生死”,通宵达旦与病魔抢着生命。这些天使不过是些披着白大褂的孩子,稚气未脱的脸上因口罩、护目镜等重重防护留下一道道深深浅浅的红印,这英雄的徽章让人看了心疼不已;社区工作人员为排查可能携带病毒者走村串户,媒体工作者为让关注疫情的民众第一时间了解情况也冲在前线…… 我,区区一介资深吃瓜群众,目前能做的便是宅,宅在家里不让病毒有觊觎我和家人的机会。好在朱老师组织了一个比赛,让我的宅变得生动而有意义。这个宅是真宅,是坐在某个角落保持一个姿势几个白天不变,偶尔还要加上几个更深的静夜。 终于,“多掌控无线测温仪”新鲜出炉。 项目背景:目前,疫情形势严峻,湖北省新增病例依然居高不下,各地被隔离观察的人员数目也非常庞大。“多掌控无线测温仪”可定时提醒被测人员测量体温,并将测温结果通过MQTT发送到服务器,也可以通过无线广播发送到接收端。如果体温异常,测温端和接收端都会发出警告,让测温人员及医务人员都能够及时处置。此测温仪的定时提醒功能方便测温者定时监测,以免忘记;无线广播功能则让医务人员省去奔波劳累之苦、接触病毒之险,足不出户便能记录测温者的体温。 所用器材: 掌控板1.0 *2 掌控板2.0 *1 百灵鸽2.0 *1 掌控宝 *1 DHT11 温湿度传感器 *2 (虽然LOW,但是比没有强呀……) 取暖器 *1 (不是必备,我只是用他来调体温偏高状态) 设计思路:不检测的时候,三个掌控板上都显示时间。到测温的间隔时间时,测温掌控板语音提醒“请测体温”,测温后,掌控板上显示体温,并将结果发送到MQTT服务器上,再通过无线广播发送到接收的掌控板上。测温端和接收端对结果作出判断,如果体温正常,测温端播报“体温正常,请消毒”,接收端不作任何提醒。如果体温偏高,测温端播报“体温偏高”,接收端则红灯闪烁、蜂鸣器发出警报声。测温的每一次记录数据可在MQTT服务器中下载,方便使用者了解测温者的体温变化情况。 器材连接: 将两个温湿度传感分别接到掌控宝和百灵鸽的13号口,注意S、V、G的对应。 百灵鸽与温湿度传感器的连接 掌控宝与温湿度传感器的连接 操作准备: 1. 下载适用的SIOT,并运行。 本项目采集数据采用SIOT程序、MQTT协议。 SIoT是一个为中小学STEM教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(Simple)的意思。SIoT重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。 SIoT为“虚谷物联”项目的核心软件,是为了帮助中小学生理解物联网原理,并且能够基于物联网技术开发各种创意应用。 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一个基于客户端-服务器的消息发布/订阅传输协议。 MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 根据自己电脑的系统,对应下载SIoT软件压缩包。 SIoT1.2 是一款绿色软件,解压后即可立即运行。 测温仪需要与服务器通讯,使用过程中此窗口若关闭,将导致测温仪运行出错。 2. 访问服务器,设置好项目及设备。 运行cmd,在黑窗口中输入ipconfig,回车,获得本机IP地址。 在浏览器地址输入IP地址,在后面加上”: 8080“ 。需注意此处的冒号必须是英文状态!!!8080为端口号。 登陆。 设置项目及设备。 程序设计: 1. 准备语音文件及图像取模文件。 2.编写测温端程序,命名时标识为测温一号。 先设置WIFI、MQTT、网络时区等。 为测试方便,此程序设置间隔时间为2分钟检测一次。 定时提醒、测温,将结果发送到MQTT服务器,并通过无线广播发送到接收端。 判断体温是否正常。 未到检测间隔时间时,掌控板屏幕显示时钟。 测温一号完整程序截图: 3. 迁移测温一号的程序,修改,命名时标识为测温二号。 有了测温一号的程序,测温二号就简单了许多,只需要修改其中的间隔时间及项目设备号即可。 测温一号的间隔时间,每2分钟的00秒开始提醒 测温二号的间隔时间,每2分钟的20秒开始提醒 测温一号,将数据发送到主题cewen/1 测温二号,将数据发送到主题cewen/2 4. 编写接收端程序。 注意:为避免无线广播冲突,将两个测温端打开广播、发送消息及关闭广播的时间错开。接收端接收、显示消息时用变量将来自两个测温端的消息区别开来。 程序中开头连接网络及MQTT服务器部分和后面没有收到信息时屏幕显示时钟部分与测温的掌控板程序完全一致。 程序中设了变量i,变量i表示接收端收到消息的次数,奇数与偶数分别对应两个测温端。 设了变量_msg,它表示收到的消息。 又设了变量num1和num2,根据无线广播收到的次数判断该消息来自哪一个测温端。 用是否收到无线广播消息来决定程序怎样运行。 如果体温超过37度,接收端红灯闪烁、蜂鸣器响起以示提醒。 完整程序如下:(此处略去网络设置部分) 测试效果: 走过的弯路: 1. 温度传感器检测到的温度一直为0。 原因:温湿度传感器要在5V的电压环境下才能正常工作,掌控板连接电脑后只有3.3V。 解决办法:打开掌控宝电源开关。 2. 在WiFi连接的情况下,接收端无法正常接收消息,屏幕上无法正确显示。 原因:WiFi与无线广播有冲突。 解决办法:接收端只需要一次校准时间。如果程序后面不需要用WiFi,可将无线广播一直开启,不关闭。 鸣 谢: 帮助解决温度传感问题的大咖老师:张玉华老师、豪老师、珠韵老师、冥想者老师、甘肃的陈老师、风雨无阻老师……(可能有遗漏,若遗漏了请见谅哈!) 帮助解决无线广播问题的大咖老师:朱现伟老师。 混迹在DF论坛,以后我们当地搞创客活动,我就算啥也不干,光是数一数论坛里大咖们的名字,就能唬得他们一愣一愣的~~(‐^▽^‐)(‐^▽^‐) |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed