【嵌入式项目分享】ESP32红外热成像仪

目录

简介

主要性能指标

设计方案

电源

主控电路

图像传感器

接口

结构

成品展示

原理图

PCB

​​​​​​​3D图

项目地址

简介

该项目旨在使用更便宜的器件制作 DIY 热像仪。比较便宜的热成像传感器是松下的 AMG8833、Melexis 的 MLX90640 和 MLX90641。AMG8833的分辨率仅为 8x8, MLX90640 的分辨率32x24,MLX90641 的分辨率为 16x12。由于 MLX90640 的性价比较高,所以我们选择它作为 DIY 热像仪

下图为主屏幕界面。用于显示热图像本身、电池图标以及温度信息。

下图为设置界面,设有7个选项,所选选项将以绿色文字显示,其他选项则以白色文字显示。可以通过短按中间按钮来更改选择。所选选项的值可通过向上/+ 或向下/- 按钮进行调整。

以下是部分热成像效果图:

|----------------------------------------------------------------------------|----------------------------------------------------------------------------|
| | |
| | |

主要性能指标

  • 图像传感器分辨率 32x24。
  • 传感器视角 (FoV):55°x35°。
  • 温度测量范围:-40 至 300°C。
  • 工作温度范围:-40 至 85°C。
  • 可调刷新率 - 4Hz - 32Hz。
  • 10 种不同的调色板。
  • 5 种不同的插值模式。
  • 易于使用的图形用户界面。
  • 2.4" TFT 显示屏,分辨率为 320x240。
  • 图像保存功能。
  • 内置电池并具备充电功能。

设计方案

电源

USB Type C 用于充电和编程。USB 端口的电源连接到PMOS管与二极管组成的控制器电路。当 USB 电源可用时,设备将通过USB电源工作,同时为内部电池充电;当 USB 电源被切断时,设备将自动转为电池供电。

LDO选择Microchip 的 MIC5219 3.3V,额定电流为500mA,满载时的压降仅为500mV。MIC5219 的使能引脚连接了一个滑动开关。该开关用于打开和关闭红外热像仪。当该引脚接地时除电池充电部分外,设备的其他部分将关闭。

充电部分选择TP4056充电控制器,最大充电电流为1A。为了检测电池电压,使用了一个经典的分压器,可以将电池电压降低到安全水平,以便进行测量。

主控电路

程序可通过串口下载。USB TO UART转换芯片选择CH340K,因为它体积小、成本低。MOSFET 将充当 ESP32 的自动复位电路,从而无需在编程过程中进行手动休眠或启动选择。除此之外,还添加了启动和复位按钮,以防万一。

图像传感器

图像传感器通过I2C与SoC通讯。同时将I2C接口引出,其它I2C设备可通过J4与SOC进行连接。

​​​​​​​接口

最后一部分是 TFT 显示屏、导航按钮和 Micro SD 插槽。显示屏采用 2.4 英寸 TFT 显示屏,分辨率为 320x240。显示屏使用了一个 ILI9341 驱动芯片。通过 SPI 与 ESP32 连接,支持高达 65MHz 的 SPI 速度。显示器直接焊接在 PCB 上。在背光控制方面,使用了一个S8050晶体管。可以通过PWM信号控制背光亮度。显示器连接到ESP3的VSPI接口,而Micro SD插槽则连接到 HSPI 接口。ESP32可以同时访问或控制显示屏和SD卡。

结构

成品展示

原理图

PCB

​​​​​​​3D图

项目地址

https://github.com/Circuit-Digest/MLX90640-Thermal-Camera

相关推荐
朝饮坠露兮10 小时前
#浮动源 vs 共地源:模拟 IC 测试中的 VI 源架构详解
嵌入式硬件
碎光拾影13 小时前
i.MX6ULL时钟系统配置指南
c语言·arm开发·嵌入式硬件
GeekArch13 小时前
第28讲:避坑——AI堆栈分配错误、栈溢出BUG
c语言·人工智能·stm32·mcu·学习·bug
wuyk55516 小时前
59.嵌入式C语言高级宏定义实战:多行宏、字符串化与符号拼接
c语言·开发语言·stm32·单片机·嵌入式硬件·物联网·51单片机
梅名智16 小时前
找不到libm.so, libc.so
嵌入式硬件
CPETW16 小时前
企业版配套软件介绍 ---- USB TO SPI 3.0-Slave
网络·科技·单片机·嵌入式硬件·电子
piaoyiren16 小时前
STM32 综合温控风扇控制系统
stm32·单片机·嵌入式硬件·oled·lcd1602·hc-05蓝牙
无相求码18 小时前
C程序的内存到底怎么分的?栈、堆、全局区一张图讲清楚
c语言
Echo_cy_18 小时前
基于ZYNQ-7000的Ethernet驱动配置
linux·驱动开发·嵌入式硬件·fpga开发·ethernet·zynq
天空'之城18 小时前
C 语言工业级通用组件手写 08:精准软件消抖
c语言·嵌入式开发·工业级组件·软件消抖·按键防抖