步骤1:您要做的事情ll Need
div我在一个通道上使用了市售的热敏电阻探头,因为我希望将热敏电阻密封以便浸入液体中。对于第二个通道,我用一个热敏电阻,一些26号线和一个3.5mm的耳机插头制作了一个基本探头。您可以自由使用任何所需的热敏电阻,并且可以使用导热环氧树脂和塑料吸管/咖啡搅拌器制作自己的探头。以下是我使用的内容-并非要成为说明性清单!
硬件
1 x 100K热敏电阻探头。型号Extech TP890。这些通常可以在ebay和Amazon上获得。
2个2.5mm立体声插孔,与Extech探头上的2.5mm插头匹配。我从一台旧计算机上清理了3.5毫米插孔,因此我从Extech探针上拔下了插头,并换成了3.5毫米插头。您应该避免这种情况,只需使用2.5mm插孔,或使用现成的2.5mm至3.5mm立体声适配器插头即可。
如果要制作自己的探头,则100K热敏电阻珠加上26号规线和3.5mm立体声插头。如果没有,请购买第二台Extech探头!
1 x浅蓝豆(Punch Through Designs)。这是可作为Arduino开发板编程的蓝牙模块。该模块有点贵,但消除了很多复杂性。他们正在为下一代设备开展Kickstarter活动,这可能值得考虑。
2 x 1/4W 100K电阻器,用于对热敏电阻的参考电压进行分压。我使用了5%的电阻器,但公差更高的电阻器通常对温度的敏感度较低,并且将提供更好的性能。为此,1%是一个很好的公差值。
烙铁和焊料
剪线钳和一些小长度的26或28号连接线。
软件和固件
要编程Bean,您将需要Bean Loader应用程序。我使用过Windows,因此所有链接都将特定于Windows。您可以在LightBlueBean网站上找到使用Bean入门所需的一切,包括Arduino的具体信息。
此处提供了用于智能手机应用程序的EvoThings工作台。所有“入门”文档也都在那里。
步骤2:电路和电气结构
热敏电阻是与温度相关的电阻。 Extech探头的温度系数为负,这意味着随着温度的升高,电阻会降低。电阻值是通过一个简单的电路测量的,该电路创建一个分压器,其中一个分支为热敏电阻,另一个为固定的100K电阻。分压后的电压被馈送到Bean上的模拟输入通道,并在固件中采样。
要构建电路,我从一台破旧的PC上清除了3.5毫米音频插孔。使用万用表确定PCB上与探头的尖端和第一带相对应的两个点。如图所示,将电线焊接到音频插孔和Bean。使用双面胶带将音频插孔粘贴到Bean的原型区域。我使用的胶带是汽车级贴花胶带,可在两个零件之间形成非常牢固的粘结。
步骤3:探针系数
《与Extech探头一样普遍,斯坦因哈特系数并未在我能找到的任何地方发表。幸运的是,有一个在线计算器可以根据您提供的3个温度测量值确定系数。
http://www.thinksrs.com/downloads/programs/Therm%2 。..
是我用来得出系数的基本过程。不会赢得任何积分,但是足以让您说出+/- 1度的准确度(对我而言,这完全是指头)。..。当然,这取决于参考温度计和万用表的准确性!我的万用表是我多年前资金紧缺时购买的便宜的无名牌产品。资金仍然紧张,而且仍然有效!
要进行校准,我们需要从3个温度中获得3个电阻读数。
将冰添加到一杯水中并搅拌直至温度稳定,将其冻结。稳定后,使用万用表记录探头的电阻,并使用参考温度计记录温度。
现在将探头放入室温的一杯水中,使探头平衡水温,并在参考温度计上记录温度,并在万用表上记录电阻读数。
将探头放入一杯热水中并记录电阻。温度电阻
5.6218K
21.097.1K
38.643.2
整个过程有点麻烦,因为您需要一个已校准的温度计记录温度,用校准的万用表记录电阻。这里的错误会导致您进行的温度测量结果不准确,但出于我的目的,+/-1度超出了我的需要。
将这些记录的值放入网络计算器会产生以下结果:
将系数(A,B和C)插入Stenhart-Hart方程中,以从采样的电阻值中确定温度。该方程式定义为(来源:Wikipedia.com)
其中T =开氏温度
A,B和C是我们要确定的Steinhart-Hart方程系数。 R是温度T时的电阻
固件将执行此计算。
步骤4:固件
采样热敏电阻电压,将其转换为温度,并通过蓝牙发送到智能手机上运行的EvoThings应用程序。
要将电压转换为Bean中的电阻值,使用了一个简单的线性方程式。方程的推导作为图像提供。由于ADC和输入电压均参考相同的电池电压,因此无需将采样值转换为电压,我们可以使用ADC值代替电压。对于10位Bean ADC,满电池电压将导致ADC值为1023,因此我们将该值用作Vbat。分压电阻的实际值是一个重要的考虑因素。测量100K分压电阻器的实际值,并在公式中使用测量值,以避免由于电阻器容差而产生不必要的误差源。
计算出电阻值后,将使用Steinhart-Hart方程将电阻值转换为温度。在Wikipedia上详细描述了此等式。
由于我们有2个探针,因此将探针功能封装到C ++类中是有意义的。
该类封装了Steinhart-Hart方程系数,标称分压器电阻值以及与热敏电阻相连的模拟端口。单个方法temperature()将ADC值转换为电阻值,然后使用Steinhart-Hart方程确定以开尔文为单位的温度。返回值从计算出的温度中减去绝对零(273.15K),以提供摄氏温度值。
Lightblue Bean的强大之处在于,所有蓝牙功能基本上都在1行中实现。将采样的温度值写入蓝牙存储器上的暂存数据区域的代码。
Bean.setScratchData(TEMPERATURE_SCRATCH_IDX, (uint8_t*)&temperature[0], 12);
每个采样的温度值都由一个浮点数表示,该浮点数占4字节。暂存数据区可以容纳20个字节。我们仅使用其中的12个。有5个暂存数据区域,因此您可以使用暂存数据传输多达100个字节的数据。
事件的基本流程是:
检查是否有蓝牙连接
如果是这样,请对温度进行采样并将其写入暂存数据区域
睡眠200毫秒并重复该循环。
如果没有连接后,固件会使ATMEGA328P芯片长时间休眠。睡眠周期对于节省电量很重要。 ATMEGA328P芯片进入低功耗模式,并保持在那里,直到被LBM313蓝牙模块中断为止。 LBM313会在请求的睡眠时间结束时或与Bean建立蓝牙连接时产生中断以唤醒ATMEGA328P。通过在setup()期间显式调用Bean.enableWakeOnConnect(true)来启用WakeOnConnect功能。
请注意,该固件可与任何BLE客户端应用程序一起使用,这一点很重要。客户端所需要做的就是从临时数据库中删除温度字节,然后将它们重新组合为浮点数以进行显示或处理。对我而言,最简单的客户端应用程序是使用EvoThings。
步骤5:智能手机应用程序
Evo Things示例应用程序非常实用几乎不需要我的努力即可添加额外的显示元素来完成3通道温度测量设备。
EvoThings平台的安装和基本操作在Evo Things网站上有很好的记录,因此在此重复进行没有任何价值。我将在这里介绍的是我对其示例代码所做的特定更改,以显示从Bluetooth暂存数据区域提取的3个温度信息通道。
在安装EvoThings Workbench之后,您将在此处找到Lightblue Bean示例(在Windows 64位计算机上):
ThisPC Documents EvothingsStudio_Win64_1.XX Examples Lightblue-bean-basic app
您可以将 index.html 和 app.js 文件替换为附件中的文件这一步。对jacascript文件所做的更改将提取3个浮点温度值,这些数据将形成临时数据区域,以及HTML文件中创建的新元素的内部HTML。
function onDataReadSuccess(data) {
var temperatureData = new Float32Array(data);
var bytes = new Uint8Array(data);
var temperature = temperatureData[0]; }
步骤6:机箱
外壳是一个简单的3D打印盒。我使用Cubify Design来创建设计,但是任何3D建模程序都足够。随附了STL文件,供您打印自己的文件。如果必须重新做,我将使墙比现在的壁厚一点,并更改将板固定到位的夹子设计。夹子很容易折断,因为应力是在smae平面中作为3D打印层出现的,这是3D打印零件最弱的方向。墙壁很薄,因此按扣机制在薄弱的一面有点。我用透明的胶带将盒子保持封闭状态,因为墙壁太脆弱了-不太优雅,但是可以用!
步骤7:PC设置和蓝牙配置
Bean的固件构建和上传周期全部通过蓝牙完成。一次只能有一个活动的蓝牙连接。可以从Windows App Store中获得Bean加载器
我用来配对和连接(以及在出现问题时进行修复和重新连接)的基本周期如下:从“控制面板”/蓝牙设置中,应该会看到以下屏幕:
最终,窗口将报告“准备配对”。此时,您可以单击Bean图标,几秒钟后,Windows将提示您输入密码。 Bean的默认密码是00000
如果密码输入正确,Windows将显示设备已正确连接。您必须处于此状态才能编程Bean。
一旦配对并连接,请使用Bean Loader将固件加载到Bean。我发现这种故障经常发生,并且似乎与靠近我的计算机有关。到处移动Bean,直到找到适合您的位置。有时候,什么都不起作用,并且Bean加载程序会建议重新配对设备。通常,再次执行配对过程将恢复连接。重新配对之前,您必须“移除设备”。
Bean Loader操作非常简单,并且在其站点上有据可查。在Bean Loader打开的情况下,选择“程序”菜单项以打开一个对话框,以浏览到此说明的固件步骤中提供的Hex文件。
一旦加载了固件,请关闭Bean Loader,以便断开Bean Loader与Bean硬件之间的连接。一次只能建立一个连接。现在打开EvoThings工作台,并在智能手机或平板电脑上启动EvoThings客户端。
单击“运行”按钮时,EvoThings客户端将自动加载温度计的html页面。单击“连接”按钮以连接到Bean,您应该看到显示的温度。成功!
步骤8:结论
如果一切均已正确构建和配置,则您应该拥有一个可以运行的系统。您可以使用2个探针监视温度,也可以监视Bean开发板上BMA250传感器的温度。 EvoThings可以做更多的事情-我刚刚摸过表面,所以我把这个实验留给您!
责任编辑:wv
-
温度计
+关注
关注
6文章
404浏览量
78470
发布评论请先 登录
相关推荐
评论