构建一款开源温度枪,由定制的ESP32 C6开发板与MLX90614红外温度传感器配对驱动
扫描二维码
随时随地手机看文章
大家好,欢迎回来。TempGun Pro是一款手持开源红外温度采集枪,由ESP32 C6 1.47显示器和定制电路供电。
这个项目背后的目的很简单。在使用电子设备和3D打印时,我需要一个温度计来测量不同的东西。我已经有了一个Fluke温度枪,但当它停止工作时,我需要一个紧急的替代品,一个更便宜但性能几乎一样好的东西。
最好的部分是它很容易建造。我重用了我之前的Medic Mini项目,一个带有屏幕、按钮和电池电路的ESP32C6开发板。我只是在GPIO引脚上添加了一个MLX90614红外温度传感器,写了一个快速代码,做了一个外壳,项目就准备好了。
本文通过几个简单的步骤引导您完成这个过程。
材料要求
这些是这个项目中使用的材料:
•Medic迷你定制PCB(由PCBWAY提供)
•Waveshare ESP32-C6 1.47英寸LCD开发模块
•MLX90614红外温度传感器
•IP5306
•10uf电容器
•按钮4x4尺寸
•按钮6x6尺寸
•连接电线
•3D打印的部分
•uh SMD电感器
•10 k电阻
•3.7V 600mAh锂电池
•M2螺丝
Medic Mini主板
我们通过重复使用Medic Mini主板构建了TempGun Pro,只进行了一些小的修改和添加。简而言之,Medic Mini是一款手持自我诊断工具,由ESP32 - C6和1.47英寸Waveshare显示屏驱动,全部封装在定制PCB和3D打印外壳中。它有三个触觉按钮,可以指导用户进行症状检查,并提供快速建议,而不需要应用程序或互联网。
界面很简单:每次一个症状,回答是,否,或不确定。根据这些输入,该设备提供了一个基本的诊断建议,使健康检查快速和方便。
我把Medic Mini设计成一个紧凑、独立的工具,它易于使用,完全是从零开始构建的,将硬件、逻辑和设计整合到一个项目中。
MLX90614
MLX90614是由Melexis公司开发的数字红外温度计传感器。与需要物理接触的传统传感器不同,它可以探测物体发出的红外辐射,并将其转换为温度读数。这使其成为手持式温度计、工业监控甚至医疗设备等应用的理想选择。
它是一个3.3V的设备,使用I2C进行通信。
MLX90614采用黑体辐射原理。每个物体发射的红外能量与其温度成正比。传感器的热电堆探测器捕获这种辐射,内部信号处理器将其转换为数字温度值。
PCB设计
这是Medic Mini PCB设计的原理图,分为两个主要部分。首先,我们围绕Waveshare ESP32-C6开发板构建了原理图,该开发板连接到三个触觉按钮以供用户输入。这些按钮连接到GPIO9, GPIO18和GPIO19,每个开关也连接到GND。当按下按钮时,相应的GPIO引脚被拉低,注册一个有效的输入。我们稍后将使用GPIO18作为温度读取按钮!并将使用GPIO4和GPIO5作为I2C引脚。
第二部分处理电力输送。我们使用IP5306电源管理IC,它将锂离子电池的3.7V提升到2A时稳定的5V,足以可靠地为ESP32板和显示器供电。该模块还包括充电状态LED;充电时它会闪烁,电池充满后它就会保持稳定。内置功能,如过充电保护,低电池切断,和完全充电切断有助于延长电池寿命,防止损坏不安全的电压水平。
使用CAD模型的尺寸,我们准备了PCB轮廓,然后将按钮放置在设计中指定的安装位置。我们对Waveshare ESP32板、Type-C端口和安装孔做了同样的处理。剩下的组件放置在我们找到足够空间的地方,然后我们连接轨道并最终确定电路板。
在完成PCB设计后,我们导出Gerber数据并与PCB制造商共享以制作样品。
PCBWAY
一旦电路板设计完成,我选择了一个紫色的锡掩膜与白色丝网,并将Gerber文件上传到PCBWay的报价页面进行制造。
虽然我通常使用白色或黑色阻焊罩,但这次我决定尝试PCBWay的紫色选项,只是为了改变。订单下得很顺利,pcb在一周内就到了。
质量非常好——干净的表面,锋利的丝印,一切都与设计完美匹配。
在过去的十年中,PCBWay通过提供出色的PCB制造和组装服务而脱颖而出,成为全球无数工程师和设计师值得信赖的合作伙伴。
此外,PCBWay正在组织第八届PCBWay项目设计大赛,这是一个全球性的活动,邀请制造商,工程师和创新者展示他们最具创意的建筑。在电子,机械和AIoT类别中,这是一个分享您的工作,与社区联系并争夺令人兴奋的奖品的绝佳机会。
Medic迷你PCB编辑
对于这个构建,我们重用了Medic Mini电路,但修改了按钮布局。
•连接GPIO9和GPIO19的触觉按钮被移除,因为它们不需要。
•连接到GPIO18的中心按钮被保留下来,并被重新用作温度触发按钮。
温度传感器接线
在布线方面,我们使用四根连接线。
ESP32C6 (SDA和SCL)的GPIO4和GPIO5连接到MLX90614传感器的I2C引脚。
VCC接3.3V引脚,GND接地。
这样就完成了传感器供电和与Medic Mini板通信所需的基本四线设置。
代码
这是我们为TempGun Pro准备的代码,它很简单;让我解释一下。
首先,我们使用以下三个库。
Arduino GFX处理在Waveshare ST7789显示器上绘制图形;Wire库处理I2C通信,Adafruit MLX90614提供处理温度传感器的功能。
现在我们添加引脚定义。
本节定义了Waveshare显示器、MLX传感器I2C引脚和按钮引脚的引脚。
使用上述部分,我们基本上创建了全局对象,其中包括MLX90614传感器对象、SPI总线和ST7789显示对象。
本节定义了三种状态:就绪、测量和显示结果。这保持了代码的组织性,避免了混乱的逻辑。
因为我们在这个项目中使用一个按钮,所以我们必须使用脱扣逻辑,这可以防止错误触发并确保只按一次干净的按钮。
接下来我们添加了一些绘图功能;这些函数包括drawreadysscreen()、drawmeasuuringscreen()、drawResultScreen()和drawSensorErrorScreen()。
在设置功能中,串行与I2C,传感器,显示器和按钮一起初始化。
如果没有找到传感器,将在屏幕上看到错误,并且温度枪将停止工作。
这个循环做三件事。它检查按钮是否按下,如果按下,它从准备到测量。在测量中,它等待500ms,然后读取温度并显示它。在Display Result中,读数在屏幕上停留5秒,然后返回Ready并重复。
外壳设计
使用我们最初的Medic Mini的设计,我们保留了整体的想法,但简化了前面。这三个按钮被移除,取而代之的是一个椭圆形的按钮,这个按钮带有一个执行器,可以按下连接到GPIO18的开关。前面的外壳几乎保持不变,而后面的外壳完全重新设计。增加了一个圆形部分来固定温度传感器,并使设备具有类似温度枪的设计。
总体而言,构建包括一个前后外壳,以及两个开关执行器,一个用于温度读数,一个用于电源开/关。
两个外壳都是在Anycubic Kobra S1上用高速PLA打印的,而开关执行器则是用透明PLA打印的。
装配过程
•我们通过将MLX90614传感器添加到后外壳的位置来开始组装过程,然后使用热熔胶将其固定在适当的位置。
•接下来,在前面的外壳中,我们添加开关执行器的位置。
•然后将主电路翻转并放置在前外壳的插槽中,用两个M2螺钉固定。
•电源开/关按钮的开关执行器放在后框的相应位置,然后将前后框连接在一起,关闭设备。
•最后,使用四周设计提供的四个安装孔,我们插入M2螺钉来固定前后外壳,完成组装过程。
测试
为了测试,我们从一杯冷的可乐开始,测量它的外表面;读数为15.1°C。
接下来,在热测试中,我们煮了一些黑咖啡,并从同样的距离测量了杯子的外表面,结果是44.2°C。
有了TempGun Pro,我们可以测量各种日常用品。MLX90614传感器在近距离下工作效果最好,理想测量距离为2-5厘米。
对于更远距离的测量,该装置可以升级到MLX90640,它提供了更广泛的热检测能力。
结论
TempGun Pro是一款便携式电池供电的温度枪,易于携带,并提供准确的近距离读数。它覆盖范围从-70 °C到+380 °C,公差约为±0.5 °C,使其在日常使用中可靠。
我现在用它来检查电子设备、3D打印机床和其他部件,当我的Fluke出去修理时,这是一个完美的选择。
本文编译自hackster.io





