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

相关推荐
superman超哥几秒前
仓颉语言中错误恢复策略的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
玖剹3 分钟前
记忆化搜索题目(二)
c语言·c++·算法·leetcode·深度优先·剪枝·深度优先遍历
搬砖的kk35 分钟前
Lycium++ - OpenHarmony PC C/C++ 增强编译框架
c语言·开发语言·c++
fantasy_arch2 小时前
pd_process.c 文件源码分析
c语言·数据库·视频编解码·av1
天庭鸡腿哥2 小时前
国外软件,安装即时专业版!
stm32·microsoft·macos·everything
214实验室3 小时前
STM32串口打印使用printf乱码问题
stm32·单片机·嵌入式硬件
沐欣工作室_lvyiyi3 小时前
基于单片机的电厂烟道粉尘浓度检测系统(论文+源码)
单片机·嵌入式硬件·毕业设计
d111111111d5 小时前
什么是内存对齐?在STM32上面如何通过编辑器指令来实现内存对齐。
笔记·stm32·单片机·嵌入式硬件·学习·编辑器
黎雁·泠崖6 小时前
C 语言指针进阶教程:const 修饰、野指针规避与传址调用
c语言·开发语言
bai5459366 小时前
STM32 CuberIDE 中断
stm32·单片机·嵌入式硬件