【嵌入式项目分享】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

相关推荐
点亮一颗LED(从入门到放弃)1 小时前
C语言学习笔记(1)——输入输出,数据类型
c语言·笔记·学习
Zsy_0510031 小时前
【数据结构】二叉树介绍及C语言代码实现
c语言·数据结构·算法
小柯博客1 小时前
从零开始打造 OpenSTLinux 6.6 Yocto 系统 - STM32MP2(基于STM32CubeMX)(二)
stm32·单片机·嵌入式硬件·嵌入式·yocto·openstlinux·stm32mp2
就是蠢啊1 小时前
51单片机——串口通信(一)
单片机·嵌入式硬件·51单片机
szxinmai主板定制专家1 小时前
基于x86和ARM的EtherCAT运动控制器,最大支持32轴,支持codesys和实时系统优化
arm开发·人工智能·嵌入式硬件·yolo
d111111111d2 小时前
STM32-外设学习-读写备份寄存器(代码)--学习笔记
笔记·stm32·单片机·嵌入式硬件·学习
自小吃多2 小时前
5.2 FreeRTOS 二值信号量使用示例-笔记
笔记·stm32
脏脏a2 小时前
【初阶数据结构】栈与队列:定义、核心操作与代码解析
c语言·开发语言
国科安芯2 小时前
AS32系列MCU芯片TIM模块的捕获和比较
单片机·嵌入式硬件·fpga开发·架构·risc-v