蓝牙温度监视器
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
| ||||
|
应用和在线服务
|
关于这个项目
在本教程中,我将向您展示如何设置 Arduino 温度控制器,通过蓝牙连接将值发送到 Android 应用程序。
让我们从构建此项目所需的材料开始:
- Arduino nano。
- NTC 热敏电阻,检查 25°C 电阻,因为这在 arduino 代码中需要使用 beta 公式正确评估温度。
- 电阻器,2k、1k 和与热敏电阻相同量级的一种。
- HC 06 蓝牙模块。
- 各种跳线。
首先,您需要开始组装用于热敏电阻的分压器,图 1 显示了您需要进行的连接,以便计算作为温度函数的热敏电阻的未知电阻。
图 1 用于热敏电阻电阻评估的分压器。
该电路允许 Arduino 确定未知电阻器后的电压降。使用其他电阻值,我们可以使用以下代码部分(图 2)计算未知电阻的值。
raw=analogRead(analogPin);if(raw) { ratio =raw * Vin; Vout =(比率)/1024.0;比率 =(Vin/Vout) -1; R2=R1 * 比率;
图 2 热敏电阻电阻评估的Arduino代码。
然后使用β公式将获得的电阻转换为温度(图3)。
注意:您的热敏电阻和 Ro 在 25°C 时的 Beta 值可在您的热敏电阻的数据表中找到!在运行代码之前检查一下!
Temp =Beta/log(R2/(Ro*exp(-Beta/To)));Temp =Temp -273.15;
图3 Arduino 温度转换代码。
然后您需要设置您的蓝牙模块,图 4 将显示如何将我在本项目中使用的蓝牙模块连接到之前的蓝牙模块。 Arduino的TX1引脚需要分压器连接到模块的RX引脚,因为它接受在线3.3V作为输入。
图 4 带有 HC 06 模块的 Arduino 原理图。
然后可以通过初始化串行门并打印所需值,通过蓝牙模块发送数据。在这个例子中,我需要设备测量 25 -75°C 范围内的温度,在高温下开始计算大约 300 秒,然后改变打印的信息(图 5)。
void setup(){Serial.begin(9600); } void loop(){ if(Temp>
=74) { for (int i =0; i <=30; i++) { Serial.print("Temperature>=74 °C");延迟(10000); Serial.print("加热完成");延迟(10000); } else if (Temp <=26){ Serial.print("Temperature <=25 °C");延迟(10000); } else { Serial.print("温度:"); Serial.println(Temp);延迟(10000); }}
图 5 每个串行初始化和值打印的 Arduino 代码。
组装在面包板上的最终设备如图 6 所示。
图 6 面包板上的完整设备。
最后一步是将蓝牙模块连接到 Android 手机以进行数据可视化。使用 MIT AppInventor 2 编写了一个简单的应用程序。图 7 和图 8 分别显示了用户界面和编程块。
图 7 使用 AppInventor2 制作的用户界面。
图 8 AppInventor2的编程块。
建议的应用程序可在以下链接的应用程序发明者库中找到:http://ai2.appinventor.mit.edu/#5876233188016128
无论如何,使用应用程序发明者的简单直观的块编程系统,可以构建许多其他应用程序来实现您想要的任何目的。例如,我需要应用程序在温度低于 25°C 时发出声音通知我,以便进行一些测量,并在 75°C 下 5 分钟后通知我的加热周期已完成。
可选:最后一步可能是焊接组件并 3D 打印一些盒子以将零件保持在一起。图 9 显示了这种方法的结果。
图 9 完整的设备可供使用。
这个盒子的侧面开了一个洞,以便用迷你 USB 电缆为 Arduino 供电。添加了红色和黑色的长电缆只是为了增加热敏电阻与设备其余部分之间的距离(我需要热敏电阻来检查溶液温度,所以我希望电子元件尽可能远)。
我希望这个简单的项目能帮助您了解与蓝牙模块进行串行通信的基础知识,以便将其应用到您自己的项目中。
如果您发现一些错误或只是想提出问题,请告诉我。
编辑:我发现蓝牙模块需要分压器的原理图接线错误。已经解决了。
EDIT2:如果您在将代码上传到板上时遇到问题,请尝试断开蓝牙模块。
代码
- 带蓝牙模块的温度监控器
带蓝牙模块的温度监控器Arduino
为了计算 NTC 热敏电阻的电阻,将 5V 与一个大小大致相同的已知电阻串联(在本例中为 10kohm)。通过模拟引脚 A0 计算由串联电阻制成的分压器的电压,并使用一个电阻的已知值计算 NTC 电阻。然后使用 Beta 方程将该值转换为温度(将 Beta 更改为您正在使用的值),并使用蓝牙模块发送到 Android 应用程序。可以更改代码以监控特定范围的温度,在此示例中,我需要在 25 到 75°C 之间进行监控,并在较高温度下等待 5 分钟。
// 带蓝牙模块的温度监控器int analogPin=0;int raw =0;int Vin=5;float Vout=0;float R1=10000; //改为你的系统float Ro=10000; //改为你的系统float R2=0;float ratio=0;float Temp =0;float Beta =3694; //更改为您的系统浮动 To =298.15;// 热敏电阻在 25°C 时从 10k 开始。相应地选择参考电阻void setup(){Serial.begin(9600);}void loop(){raw=analogRead(analogPin);if(raw) { ratio =raw * Vin; Vout =(比率)/1024.0;比率 =(Vin/Vout) -1; R2=R1 * 比率;温度 =Beta/log(R2/(Ro*exp(-Beta/To)));温度 =温度 -273.15; if(Temp> =74) { for (int i =0; i <=30; i++) { Serial.print("Temperature>=74 °C"); //更改为您的系统延迟(10000); Serial.print("加热完成");延迟(10000); } else if (Temp <=26){ Serial.print("Temperature <=25 °C"); //更改为您的系统延迟(10000); } else { Serial.print("温度:"); //更改为您的系统Serial.println(Temp);延迟(10000); }}}
示意图
电阻 R2 应根据您要使用的热敏电阻的电阻进行相应更改。温度读数的误差随偏差增加 (Runknow - R2)。制造工艺