当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]大多数空气质量设备将有趣的部分隐藏在屏幕上的数字背后。而这个作品则恰恰相反:它将DFRobot Gravity ENS160气体传感器的读数,转化为Arduino UNO Q上13x8蓝光LED矩阵上的生动动画。走过它时,你立刻就能知道空气状况——当空气清新时,会呈现出柔和的微光;当空气不洁时,则像暴风雨般翻腾。它既是一个实用的监测工具,又是一款桌面小玩具,是学习Arduino最新主板上I2C传感器和LED矩阵图形的绝佳方式。

大多数空气质量设备将有趣的部分隐藏在屏幕上的数字背后。而这个作品则恰恰相反:它将DFRobot Gravity ENS160气体传感器的读数,转化为Arduino UNO Q上13x8蓝光LED矩阵上的生动动画。走过它时,你立刻就能知道空气状况——当空气清新时,会呈现出柔和的微光;当空气不洁时,则像暴风雨般翻腾。它既是一个实用的监测工具,又是一款桌面小玩具,是学习Arduino最新主板上I2C传感器和LED矩阵图形的绝佳方式。

它做什么

•矩阵底部的5块计数器随空气质量指数(AQI 1-5)上升。

•污染颗粒从测量仪上飘升而起——在洁净空气中是一缕轻烟,而在恶劣天气中则化作浓密的快速风暴。

•当挥发性有机物(VOC)浓度上升时,只需在传感器上呼吸,就会瞬间释放出一股粒子喷射而出。

•一道巨大的闪光,一道闪电划过整个面板。

物料清单

•Arduino UNO Q(x1) - STM32U585 + 内置 13x8 蓝色 LED 矩阵

•DFRobot Gravity ENS160(x1) - TVOC / eCO2 / AQI 传感器,I2C (0x53)

•跳线 / 重力电缆(x4)- VCC、GND、SDA、SCL

•USB-C 数据线(1根) - 供电 + 编程

•JUSTWAY 保护套(适用于 UNO Q)(x1)- 3D 打印,保护电路板

传感器

ENS160 是一款微型金属氧化物气体传感器,通过 I2C 接口报告三项数据:空气质量指数(1-5)、总挥发性有机化合物(TVOC,单位为 ppb)以及等效 CO₂ 值(eCO₂,单位为 ppm)。在 DFRobot Gravity 板上,它只需简单的 4 芯连接即可使用。

软件

•Arduino IDE 2.x(或 Arduino App Lab)。

•Arduino "Zephyr" 板子包(添加了 UNO Q、FQBN arduino:zephyr:unoq)。

•库:DFRobot_ENS160 和 ArduinoGraphics。(Arduino_LED_Matrix 与板芯一同提供。)

1 - 连接传感器

四根线,你就完成了。将ENS160连接到UNO Q的I2C引脚(SDA和SCL,位于AREF旁边),并接上3V3和GND作为电源。

2 - 设置棋盘

从 arduino.cc 安装 Arduino IDE 2.x。

•在 Boards Manager 中,安装 Arduino “Zephyr” / UNO Q 板件包。

•选择工具 > 板子 > Arduino UNO Q,然后选择正确的 COM 端口。

•设置“USB CDC 启动时启用”,以便串行监视器通过 USB 运行。

注意 - UNO Q 需要现代的工具链。旧版 Arduino IDE 1.8.x 无法上传到它,因为它在查找“remoteocd”工具时会失败。请使用 Arduino IDE 2.x 或 Arduino App Lab。

3 - 安装库文件

打开图书馆管理器,安装 DFRobot_ENS160(传感器驱动程序)和 ArduinoGraphics(矩阵绘图基本图形)。无需单独安装 Arduino_LED_Matrix,它已包含在 UNO Q 板的套装中。

4 - 代码

创建一个新草图,粘贴下方代码并上传。它每两秒轮询一次传感器,将AQI映射到动画中,并以每秒约18次的速度重新绘制矩阵,实现平滑的运动效果。巧妙之处在于:

一个小的粒子系统(28个粒子)从光照水平方块上升起;其生成速率和速度均与AQI成比例。

•TVOC突然急剧上升,引发一次突发性爆发(>80 ppb)或一次全量雷击(>200 ppb)。

•读取和绘图是解耦的,因此即使传感器每秒只更新一次,风暴仍能保持平滑。

提示 - 如果之后仍未检测到传感器,95%的情况下是电源问题或SDA/SCL线接反。请确保VCC连接为3V3,并重新插拔连接器。该代码还会打印I2C扫描信息,帮助你快速定位问题。

5 - 显示屏如何映射到你的空气

EN160 将空气质量从 1(优秀)到 5(不健康)进行分级。以下是各等级在矩阵中的具体表现:随着空气质量恶化,方块数量增多,颗粒物风暴也更浓密;当达到“差”或“不健康”时,最上方的方块会闪烁。

6 - JUSTWAY 机箱

为了确保UNO Q安全地放置在桌面上,它被安置在一个由JUSTWAY制造的3D打印外壳中。一个重要的细节是:这个外壳仅保护电路板,而ENS160则保持在室外露天环境中。如果将气体传感器密封在盒内,它无法获取室内环境数据,读数会不准确,因此我们让其自由呼吸。

•打印JUSTWAY UNO Q外壳(使用PLA或PETG材料,0.2毫米层厚,填充率约15-20%即可)。

•将UNO Q安装在底座上,使LED矩阵与窗口对齐,USB-C接口也与缺口对齐。

•将四线传感器电缆从侧面引出,并将ENS160安装在外部,用短跳线固定,以便其通风。

•关闭盖子,并确保传感器远离USB-C接口及任何发热部件,以获得更清晰的读数。

7 - 充能并开始游戏

•插入USB-C接口。矩阵以一束光和轻柔的微风——洁净的空气,悄然苏醒。

•以115200波特率打开串行监视器,实时查看AQI、TVOC和eCO2数据。

•轻柔地吹气到传感器上:TVOC值飙升,颗粒物爆发,方块开始上升。

•用力呼吸,或在下方擦拭酒精湿巾或标记笔。

注意——全新的ENS160在“初始启动”阶段最多持续一小时,但在此期间始终会输出可用的AQI值,因此显示屏会立即开始动画显示,无需等待。

故障排除

•未找到 ENS160 / 网格上的 X - 检查 VCC->3V3、GND 以及 SDA/SCL 是否未交换;重新设置连接器。该代码会打印 I2C 扫描以提供帮助。

•IDE 1.8.x 上传错误(remoteocd)——请使用 Arduino IDE 2.x 或 App Lab;1.8.x 无法闪存 UNO Q。

•在串口监视器输出中 - 上传前请启用“启动时启用USB CDC”。

•读数停留在基线水平——热身;新传感器需要时间,但在此期间数值仍可用。

小贴士:给传感器留出几厘米的空隙,并避免风扇直接吹过它——你希望它读取的是房间内的环境,而不是被气流吹动。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

交通摄像头可生成有用信息,但向云端持续发送视频需要大量带宽,并可能引发隐私问题。

关键字: 摄像头 RK3576 NPU 传感器

空气质量问题不仅限于户外,室内空间也可能积聚挥发性有机化合物(VOCs)、二氧化碳(CO₂)和污染物,影响健康与工作效率。本项目将XIAO RP2040和ENS160传感器改造为一款桌面型空气质量监测仪。设备内置一个JU...

关键字: 传感器 LED XIAO RP2040

在本项目中,您将学习如何使用Arduino Uno和Python构建一个低成本的多通道数据采集(DAQ)系统。该系统可实时采集多个通道的传感器数据,并自动将测量结果保存到CSV(逗号分隔值)文件中,便于在电子表格软件或其...

关键字: 数据采集 Arduino LM35传感器

在翻新我的工作室时,我决定为未来的自动化做好准备,而不是依赖Wi-Fi设备。每面墙上的开关和插座位置都额外增加了网线,为传感器、开关和控制器提供了可靠的通信通道。

关键字: 传感器 自动化 智能家居 C4002

我的目标是一个简单且自包含的自主系统:用我最喜爱的M5Stack/ESP32硬件实现一个现实可行的系统,同时精度足够,能够实现可重复运行。我没有依赖SLAM或ArduPilot,而是从零开始自行构建定位、传感器融合和导航...

关键字: 传感器 自动驾驶 激光雷达 M5Stack

厌倦了普通的不透明LED矩阵吗?在这个项目中,我将向你展示如何使用150颗WS2812B可寻址RGB LED,通过一块柔性透明PCB设计并制作出一个完全透明的15x10 LED矩阵。该PCB没有接地平面,因此在可见铜线的...

关键字: Arduino LED矩阵 柔性PCB WS2812B

火焰无声,但我们可以通过简单的电子元件为它们“装上耳朵”!这个DIY火灾报警器项目利用红外接收传感器检测火光辐射,并立即触发声音(蜂鸣器)和视觉(LED)报警。该电路以13009 NPN晶体管作为主开关,结构简单、可靠且...

关键字: 蜂鸣器 LED 传感器 1N4007二极管

如果我们用Arduino核心在ESP8266上写任何代码,很可能已经遇到了这个瓶颈。你写的每一行代码都运行在loop()函数内部,而loop()是协作式的——它从上到下依次执行,只有在完成所有操作后,SDK才会有机会进行...

关键字: Arduino CPU LED ESP8266

OpenTherm 协议使用 8 位数据 ID 字段,可提供 256 种可能的寄存器编号。官方规格文档仅覆盖了其中一部分,而制造商可能会在上面实现自己的私有寄存器。为了准确了解我的锅炉所暴露的所有信息,我将 ESPHom...

关键字: 扫描器 寄存器 传感器

众多机器人团队最终都会面临同一个困惑:明明芯片性能表现出色、基准测试结果亮眼、技术演示也稳定流畅,可为什么从实验室原型到真正可部署的机器人产品,中间仍然需要长达18个月的时间?问题的关键往往不在处理器本身,而在处理器之外...

关键字: 算力 机器人 传感器
关闭