查看: 355|回复: 0

玩转Arduino手机编程——打造极具创客范的体温计

[复制链接]

该用户从未签到

发表于 2021-10-27 14:15 | 显示全部楼层 |阅读模式
本帖最后由 dxabdepl 于 2021-10-27 14:15 编辑

体温计是我们生活中非常常见的健康用品,自疫情以来更是在“热销”榜上居高不下,比较多见的主要有水银体温计、电子体温计、红外线体温计。

如果在紧急情况下需要,但手头上没有现成的体温计怎么办呢?

作为一名爱鼓捣的创客,这都不是事儿!不就是一个温度传感器+一个控制器+一个显示模块解决的事儿嘛。

今天小蜗牛就给大家展示一个更加极致的、更具创客范的体温计。

一、所需器件
  • 蜗牛控制器

蜗牛控制器:完全兼容Arduino,支持手机编程


  • DS18B20金属头温度传感器

DS18B20:高精度单总线数字温度传感器


DS18B20是由Maxim Integrated(以前的Dallas Semicondu ctor)生产的数字温度传感器。它是市场上最受欢迎的温度传感器之一,在较大的温度范围(-55°C至+125 C)内提供相当高的精度(+0.5C),对于我们日常生活中的湿度测量包括体温测量是绰绰有余了。由于传感器的工作电压为3.0至5.5V,因此可以与Arduino直接连接。

红线为电源线(3.0V~5.5V),黑线为地线(GND),黄线为数据线。

二、连接电路

DS18B20传感器的电源线接到蜗牛控制器的5V引脚,黑线连接到“接地”引脚,黄线连接至D2引脚。同时,数据线要串联一个5000欧姆左右的电阻上拉到5V。



三、编程实现

借用蜗牛控制器自带的蓝牙串口组件,直接将采集的温度值发送到手机上,不再需要额外的显示模块。

1.打开串口

在“串口”积木组中选择“打开串口”积木,将其拖放到右侧的“初始化区”,拼接如下。


注意:蜗牛控制器的波特率必须设置为115200
2.DS18B20获取湿度值

DS18B20利用单总线协议控制,时序严格而且复杂。但好在Arduino的开发者们为它开发了一整套的开发函数,创客们只需调用几条函数语句即可。而蜗牛控制器对DS18B20的使用更胜一筹,因为全程只需要一个积木。


DS18B20编程积木


DS18B20积木位于“传感器”积木组中。将其拖放至程序区后,只需指定它的连接引脚(DATA管脚连在蜗牛控制器的IO端口编号)即可,这里选择2,即对应D2引脚。

3.温度测量显示

蜗牛端将DS18B20采集到的温度值通过蓝牙串口发送到手机端,手机端通过接收后在“交互”窗口进行显示。

串口发送温湿度值用到了“串口打印”和“串口打印(换行)”两种串口发送积木。



  • 前者输出后不换行,保证下一次输出内容在同一行;
  • 后者输出后换行,下一次输出内容显示在下一行。

最后,因为单片机执行速度很快,执行上述语句大概只需要几十微秒,为防止串口堵塞,必须加一个延迟等待,而且温度也不需要特别快的显示频率。延时等待积木位于左侧的“控制”积木组。这里每1秒显示一次测量结果。

这些积木组合后拼接成如下的样式。

完整的程序模块


四、程序下载
1.蜗牛控制器供电

供电后,其上的蓝色指示灯会处于闪烁状态,表明蜗牛控制器正常工作了。

2.手机环境配置

使用蜗牛手机APP时,需要打开手机的蓝牙和GPS定位功能,同时保证蓝牙未被其它设备连接。

3.连接蜗牛控制器

点击左上角的“连接”按钮,按钮由灰底“连接”切换为黄底“断开”,表明连接成功。

点击“下载”按钮开始程序编绎和下载,就可以看到“下载”按钮切换为百分号数字进度条了。


程序无线下载中...


五、温度测量

程序下载完成后,连接后传感器,将DS18B20的金属头清洁后,夹在腋窝。


体温测量中...


点击APP最上面的“交互”按钮,打开手机与蜗牛控制器的交互窗口。可以看到,每隔1秒钟左右,蜗牛控制器上传一次温度值到手机上。大概3分钟后就可以看到体温趋于稳定了。

六、后记
1.测量校准

使用中,DS18B20与真实湿度值还是有一定偏差的,这时我们就需要对它进行大致的校准,做到心里有数。

最简单的校准方法就是选定一个基准温度(最常用的是人的体温),也就是在尽量短的时间内,分别用数字湿度计和我们本例的湿度计分别测量一个体温,计算两者的偏差,作为后续使用的修改系数。

2.应用范围

由于DS18B20的测量湿度范围较宽,该体温计不仅可以用于体温检测,还可以用于生活中的水温测量等等,还是比较广泛的。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

arduino解码sbus
arduino解码sbus
市面上有很多sbus接收机,它只有一根线就可以实现很多通道的通信,其本质利用了串口通
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
wemos d1 wifi具体叫啥名,我也迷糊了,无法上传程序
wemos d1 wifi具体叫啥名
淘宝入手一块这样的板,详情页提供了教程,还提供了 arduino iDE 1.6.5免安装版本,
求大佬帮忙arudino上传报错programmer is not responding
求大佬帮忙arudino上传报
报错信息avrdude: stk500_recv(): programmer is not responding avrdude: stk500_get
新手求助!端口不显示的问题
新手求助!端口不显示的问
我的板子连到电脑上没有显示端口,试过安装ch340和驱动精灵都识别不出来,数据线也换
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表