鲜de芒果 发表于 2024-10-16 21:19

【2024 DigiKey 创意大赛】红外温度检测及火灾报警器

本帖最后由 鲜de芒果 于 2024-10-16 21:18 编辑

<p><strong><span style="font-size:22px;">一、作品简介</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本项目旨在开发一种基于红外技术的智能温度检测与火灾报警系统。该系统通过高精度的红外传感器,实时监测环境温度变化,识别温度异常上升的情况,并在检测到异常高温或快速升温时立即发出声光报警信号,有效预防火灾事故的发生。同时,系统具备远程监控能力,可通过无线网络将数据传输至监控中心,实现远程预警和数据分析。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该系统核心硬件包括高灵敏度红外温度传感器、微控制器单元(MCU)、声光报警模块、无线通信模块以及电源管理模块。红外传感器负责捕捉环境温度数据;MCU作为系统的大脑,处理数据并做出逻辑判断;无线通信模块实现数据的远程传输;电源管理模块确保系统稳定运行,支持电池和外部电源供电,以确保在紧急情况下的稳定运行。</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">二、系统框图</span></strong><br />
<span style="font-size:18px;"><strong>设计思路</strong></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设计的核心思想是集成高精度温度测量和快速反应报警机制。系统设计以高可靠性和低功耗为指导原则,确保设备在长时间运行时的可靠性和灵活性。同时,通过合理的软件设计,实现实时温度监控和智能火灾判定。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;采用模块化设计思想,各部分独立又协同工作。设计上注重低功耗与高效率,确保设备能在无持续电源供应的情况下长时间运行。软件方面,采用事件驱动编程模型,优化响应速度和准确性。</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:18px;">系统框图</span></strong></p>

<div style="text-align: center;"></div>

<ol>
        <li>如以上系统框图所示,左右两个模块分别为左侧的传感器模块,右侧的监控模块。它们之间通过 WiFi 连接到网络进行通讯。</li>
        <li>左侧的传感器模块主要作用是监控并采集环境温度数据,并通过 MQTT 将数据上报至公有云服务器或私有云服务器。搭载了舵机模块,可以使得监控的区域变得更加广阔,可以实现 300&deg; 范围内对整个房间或区域进行监控。</li>
        <li>右侧的监控模块,使用的是 ESP32-S3-DEVKITC-1-N8R8 开发板搭配一块 1.8 英寸 TFT-LCD 显示模块组成,分辨率 128 * 160。用于接收左侧传感器模块上报的环境温度数据,以及温度图的显示与异常温度警报显示。</li>
        <li>整个系统采用模块化设计,可实现无缝接入各种云端,实现远程监控。也可以将数据对接至监控中心,实现远程预警和数据分析。</li>
</ol>

<p>&nbsp;</p>

<p><strong><span style="font-size:18px;">硬件介绍</span></strong></p>

<ul>
        <li><strong>ESP32-S3-DEVKITC-1-N8R8</strong> 是一款入门级开发板,搭载 Wi-Fi + Bluetooth&reg; LE 模组 ESP32-S3-WROOM-1、ESP32-S3-WROOM-1U 或 ESP32-S3-WROOM-2。在本应用中原本打算作为主控使用,但由于体积过大,因此作为远程协控制器使用。

        <div style="text-align: center;"></div>

        <p>&nbsp;</p>
        </li>
        <li><strong>MLX90640ESF-BAB-000-TU</strong> 是一款远红外热像仪传感器,MLX90640远红外热传感器阵列可精确检测特定区域和温度范围内的目标物体,尺寸小巧,可方便集成到各种工业或智能控制应用中。在本应用中作为红外温度测量传感器使用。
        <div style="text-align: center;"></div>

        <p>&nbsp;</p>
        </li>
        <li><strong>ESP32-S3-WROOM-1U-N16R8</strong> 是一款通用型 Wi-Fi + 低功耗蓝牙 MCU 模组,搭载 ESP32-S3 系列芯片。除具有丰富的外设接口外,模组还拥有强大的神经网络运算能力和信号处理能力,适用于 AIoT 领域的多种应用场景,例如唤醒词检测和语音命令识别、人脸检测和识别、智能家居、智能家电、智能控制面板、智能扬声器等。在本应用中作为红外传感器主控使用。
        <div style="text-align: center;"></div>

        <p>&nbsp;</p>
        </li>
        <li><strong>SER0056 </strong>是 DFRobot 推出的一款带离合功能的 300&deg; 转向舵机,在本应用中作为转向机构使用,使得红外监控的范围变大。
        <div style="text-align: center;"></div>
        <br />
        &nbsp;</li>
</ul>

<p><strong><span style="font-size:18px;">软件实现</span></strong><br />
<strong><span style="font-size:16px;">传感器模块</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;软件方面参考了很多成熟方案,综合评比各方面功能最终决定采用 ESPHome 完成固件开发。ESPHome 是一个通过简单而强大的配置文件控制您的 ESP8266/ESP32 的系统,并通过家庭自动化系统远程控制它们。</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:16px;">监控模块</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;监控模块采用 CircuitPython 进行开发。CircuitPython 是一种编程语言,目的是希望能在低成本微控制器板上用简化的Python进行编程。它使入门比以往更容易,无需预先下载桌面。设置好电路板后,打开任何文本编辑器,然后开始编辑代码,就这么简单。</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">三、各部分功能说明</span></strong><br />
<span style="font-size:18px;"><strong>红外温度采集</strong></span><br />
利用 ESP32-S3 的强大处理能力和 MLX90640 的高灵敏度红外测温功能,使用 ESPHome 环境下构建一个实时温度监测系统。通过ESP32-S3读取 MLX90640 传感器的温度数据,并通过 Wi-Fi 将数据传输到云端或本地服务器进行进一步分析和处理。以下是关键代码实现:</p>

<pre>
<code class="language-ini"># 红外摄像头 MLX90640
camera_mlx90640:
  id: thermal_cam
  update_interval: 1s # 温度数据更新间隔
  sda: 4  # I2C SDA PIN
  scl: 5  # I2C SCL PIN
  frequency: 400000  # I2C Clock Frequency
  address: 0x33 # MLX90640 Address
  mintemp: 0 # Minimal temperature for color mapping
  maxtemp: 90 # Maximal temperature for color mapping
  refresh_rate: 0x05 # For 16Hz or 0x04 for 8Hz
  filter_level: 10.0 # 温度数据过滤等级
  min_temperature:
    id: mlx90640_min
    name: "MLX90640 最小温度"
  max_temperature:
    id: mlx90640_max
    name: "MLX90640 最大温度"
  mean_temperature:
    id: mlx90640_mean
    name: "MLX90640 平均温度"
  median_temperature:
    id: mlx90640_median
    name: "MLX90640 中间温度"</code></pre>

<p>上述代码为 ESPHome 采集 MLX90640 温度数据的实现,可对温度数据进行平滑过滤。实现 最小温度、最大温度、平均温度、中间温度 的采集,采集的温度还可以通过 Wi-Fi 将数据传输到云端或本地服务器进行进一步分析和处理。下图为智能家居平台以可视化形式将温度展示出来。</p>

<div style="text-align: center;"></div>

<p><br />
<span style="font-size:18px;"><strong>电池电压采集</strong></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通过测量电池单体或电池组的电压值,来监测电池的工作状态和健康程度。这一功能对于确保电池在安全范围内运行、预防过充过放、延长电池寿命等方面具有重要意义。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ESP32-S3的ADC模块具有高精度和高分辨率的特点,能够准确测量电池电压的变化。通过选择合适的 GPIO 引脚和衰减倍数,ESP32-S3 可以灵活适应不同电压范围的测量需求。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本项目中,使用两颗 470K&Omega; 的电阻分压后,接入 ESP32-S3 的 IO2 引脚。如下图所示,可在智能家居平台可看电池电压的历史数据。</p>

<div style="text-align: center;"></div>

<p><br />
<strong><span style="font-size:18px;">环境温度数据发布</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,广泛应用于物联网设备之间的通信。其基于发布/订阅模式,能够实现高效、可靠的数据传输。在环境温度数据发布功能中,MQTT协议扮演着至关重要的角色,确保温度数据从传感器节点准确无误地传输到云平台或监控中心。以下为温度数据发布的实现,以 1Hz 的频率进行发布,确保温度数据实时准确地发布至云平台、监控节点或监控中心。</p>

<pre>
<code class="language-ini">time:
  - platform: homeassistant
    on_time:
    # 每秒发布温度数据,包含 最小温度、最大温度、平均温度、中值温度
    - seconds: /1
      then:
        - mqtt.publish_json:
            topic: "/esphome/sensor/mlx90640"
            payload: |-
              root["min"] = id(mlx90640_min).state;
              root["max"] = id(mlx90640_max).state;
              root["mean"] = id(mlx90640_mean).state;
              root["median"] = id(mlx90640_min).state;</code></pre>

<p>&nbsp;</p>

<p><span style="font-size:18px;"><strong>智能家居平台集成</strong></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;智能家居平台能够实现设备的互联互通和集中控制,提供简单易懂的用户界面和操作方式,同时采取严格的安全措施来保护用户的信息和设备的安全。通过实时监测环境温度并上传到智能家居平台,可以实现对家居环境的智能化控制和管理。例如,当室内温度过高时,智能家居平台可以自动打开空调进行降温;当室外温度过低时,可以触发暖气设备的开启等。这种集成功能不仅提高了居住环境的舒适度和便利性,还有助于节能减排和环保。当然本例中的作用为监控环境温度更重要的是监控并预警火灾的发生,通过与智能家居平台集成后,可以很方便地实现异常温升的报警与监控,同时如果有其它辅助灭火的智能设备,还可以进行联动控制进行灭火操作,进一步且更智能化地保障人们的生命与财产安全。</p>

<p>下图为智能家居平台集成后的控制面板展示:</p>

<div style="text-align: center;"></div>

<p><br />
<span style="font-size:18px;"><strong>温度可视化</strong></span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通过其红外温度可视化功能,用户可以将不可见的红外辐射转化为可见的热图像,从而直观地了解物体表面的温度分布情况。</p>

<p>&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MLX90640通过其内部的红外热电堆阵列接收物体表面的红外辐射,并将其转换为电信号。这些电信号经过处理后,可以得到物体表面各点的温度值。然后,通过特定的算法将这些温度值转化为热图像,并在屏幕上进行显示。用户可以通过观察热图像来了解物体表面的温度分布情况,从而进行进一步的分析和应用。</p>

<p>&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;下图为通过算法将温度值转化为热图像后的效果图,分另为两根手指加一个热源和一个手掌的温度数据转换后的热图像:</p>

<div style="text-align: center;"></div>

<div style="text-align: center;"></div>

<p><br />
<strong><span style="font-size:18px;">异常温度警报</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常温度警报是一种基于温度监测的安全预警机制,旨在及时发现并提醒用户潜在的温度异常情况,以防止火灾、设备过热等危险事件的发生。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常温度警报功能广泛应用于各种场所,如工厂、仓库、数据中心、医院、学校等。在这些场所中,由于设备运行、人员活动等原因,可能存在温度异常的风险。通过部署异常温度警报系统,可以及时发现并处理这些风险,保障人员和财产的安全。同时,该功能还可以应用于智能家居领域,为用户提供更加舒适和安全的居住环境。</p>

<p>&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常温度警报功能通常由温度传感器、数据处理单元和警报系统组成。温度传感器负责实时监测特定区域或设备的温度数据,并将数据传输至数据处理单元。数据处理单元对接收的温度数据进行分析,判断是否存在异常温度情况。一旦检测到异常温度,数据处理单元会立即触发警报系统,发出声光或其他形式的警报信号,以提醒用户采取相应措施。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在本应用中使用监控单元,远程监控最大温度的异常温度情况,出现异常温度则以红色字体形式表示最大温度。</p>

<div style="text-align: center;"></div>

<p>正常温度效果图</p>

<div style="text-align: center;"></div>

<p>异常温度效果图,实际为在传感器前方点燃了一盏酒精灯</p>

<p><br />
<strong><span style="font-size:18px;">启动或关闭区域自动扫描</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区域自动扫描功能是一种智能化的功能,它允许设备在设定的区域内自动进行扫描,以获取相关信息或数据。这种功能广泛应用于各种领域,如安全监控、环境监测、智能家居等。通过启动或关闭该功能,用户可以灵活地控制设备的扫描行为,以满足不同的应用需求。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本项目中使用的温度传感器 MLX90640ESF-BAB-000-TU 在 X 轴方向只有 55&deg;,Y 轴方向只有 35&deg; 的视角。因此想要对大片区域监控需要借助一个可转动机构进行扫描来实现,类似摄像头的云台功能。本项目中选用了一个 SER0056 舵机来实现 X 轴的控制来实现范围扫描。如需要实现更大范围的扫描可以通过再增加一个舵机,实现 Y 轴方面的扫描。硬件上已实现两路舵机的控制。</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当用户需要对设定的区域进行自动扫描时,可以通过特定的操作来启动扫描功能。可通过智能家居平台上的启动自动扫描开关来发送远程指令。一旦扫描功能被启动,设备将开始按照预设的 X 轴路径每 5秒 转动一次角度对目标区域进行扫描。</p>

<div style="text-align: center;"></div>

<p><br />
<strong><span style="font-size:22px;">四、作品源码</span></strong><br />
项目源码下载地址:<a href="https://download.eeworld.com.cn/detail/%E9%B2%9Cde%E8%8A%92%E6%9E%9C/634584" target="_blank">https://download.eeworld.com.cn/detail/%E9%B2%9Cde%E8%8A%92%E6%9E%9C/634584</a></p>

<p>&nbsp;</p>

<p><strong>源码说明</strong></p>

<ul>
        <li>传感器模块源码 目录下为 ESPHome 项目源码,使用 ESPHome 进行编译。</li>
        <li>监控模块源码 目录下为 CircuitPython 项目源码,需要先烧录 CircuitPython 固件后,将源码拷贝至设备中运行。</li>
        <li>adafruit-circuitpython-espressif_esp32s3_devkitc_1_n8r2-en_US-8.2.6.bin 文件为项目中使用的 CircuitPython 固件, 可使用 ESPTools 进行烧录,也可使用 CircuitPython 的 Web-tools 进行烧录。</li>
</ul>

<p><br />
<strong><span style="font-size:22px;">五、作品功能演示视频</span></strong></p>

<p><iframe allowfullscreen="true" frameborder="0" height="450" src="https://training.eeworld.com.cn/shareOpenCourseAPI?isauto=true&amp;lessonid=41326" style="background:#eee;margin-bottom:10px;" width="700"></iframe></p>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">六、项目总结</span></strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;红外温度检测及火灾报警器通过集成高效传感器和可靠处理器,实现了实时温度监控和火灾早期预警的功能。它为提升安全预防措施提供了一种智能化解决方案,具有广泛的应用前景。然而,还通过远程监控技术实现了对潜在风险的早期识别与及时响应。未来,我们计划进一步优化算法,增强系统的智能化水平,如引入机器学习算法以提高误报率的降低,并探索更多应用场景,为公共安全贡献更大力量。</p>

<p>&nbsp;</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最后,感谢电子工程世界与得捷电子联合举办的【2024 DigiKey 创意大赛】活动,非常荣幸第一次参与这个活动。本次活动使我学到了不少的新知识,在项目过程中也遇到不少困难,最终实现的成品虽然有些潦草,但好在最终实现了相应的功能。祝愿 EEWorld 越办越好!</p>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">七、参考文献</span></strong></p>

<ul>
        <li><a href="https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html" target="_blank">https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html</a></li>
        <li><a href="https://esphome.io" target="_blank">https://esphome.io</a>/</li>
        <li><a href="https://www.arduino.cc" target="_blank">https://www.arduino.cc</a>/</li>
        <li><a href="https://github.com/infotronic218/esphome-mlx9060" target="_blank">https://github.com/infotronic218/esphome-mlx9060</a></li>
        <li><a href="https://circuitpython.org/board/espressif_esp32s3_devkitc_1_n8r8/" target="_blank">https://circuitpython.org/board/espressif_esp32s3_devkitc_1_n8r8/</a></li>
        <li><a href="https://docs.circuitpython.org/en/9.1.x/docs/index.html" target="_blank">https://docs.circuitpython.org/en/9.1.x/docs/index.html</a></li>
</ul>

<p>&nbsp;</p>

<p><strong><span style="font-size:22px;">八、项目文档</span></strong></p>

<div></div>

秦天qintian0303 发表于 2024-10-17 23:16

<p>这个旋转检测想法挺不错的&nbsp; &nbsp;</p>

JOEYCH 发表于 2024-10-20 13:53

<p>想问问Homeassisant是部署在哪里的呀?</p>

鲜de芒果 发表于 2024-10-20 23:35

JOEYCH 发表于 2024-10-20 13:53
想问问Homeassisant是部署在哪里的呀?

<p>NAS服务器上</p>

JOEYCH 发表于 2024-10-22 11:00

鲜de芒果 发表于 2024-10-20 23:35
NAS服务器上

<p>了解<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/handshake.gif" width="48" /></p>
页: [1]
查看完整版本: 【2024 DigiKey 创意大赛】红外温度检测及火灾报警器