资料介绍
描述
我们呼吸的空气质量对我们的健康非常重要。该设备分析我们家中的空气质量,并将数值记录在 SD 卡中。通过分析存储的值,我们知道参数随时间的变化情况。
我将使用足够便宜的温度、湿度和空气质量传感器用于此类项目,而不会牺牲太多精度。该项目背后的主要思想是了解空气是否可呼吸。
选出的传感器是:
- DTH11 温湿度传感器,约。5.00 美元(不是很准确但足够好);
- CCS811 空气质量传感器模块,约 19.95 美元。
平台:
之前用过Arduino Uno,感觉有些内存限制,所以这次决定换一块板子。由于我需要一张 SD 卡来记录这些值,因此Adafruit Feather M0 Adalogger是价格合理的完美选择(19.95 美元):
- 256KB 闪存 + 32KB 内存
- MicroSD 卡夹
- 轻(5.3 克)
- 小(51 毫米 x 23 毫米 x 8 毫米)
建造:
我首先从 https://www.arduino.cc/en/Main/Software下载最新版本的 Arduino IDE,选择 Windows 安装程序。安装完成后,请务必仔细阅读Adafruit Feather M0 Adalogger用户手册。
为了能够在该板上使用 Arduino IDE,我们必须按照Adafruit Feather M0 Adalogger 用户手册中的描述配置 IDE 。需要将 URL 添加到新的 Additional Boards Manager URLs 选项。还需要其他简单的操作,所有操作都在手册中进行了描述,
配置好一切后,(不要忘记在 IDE 上选择正确的板和端口)让我们做一些简单的测试来检查一切是否正常。我使用了这段代码:
void setup() {
pinMode(13, OUTPUT);// initialize digital pin 13 as an output.
}
void loop() {
digitalWrite(13, !digitalRead(13)); // flash the LED with inverse value
delay(500); // wait for a half a second
}
将此代码发送到 FEATHER M0 ADALOGGER 后,我没有发现任何错误,电路板上的红色 LED(连接到端口 13)开始闪烁。一切都很好。
连接显示器:
我连接到板上的第一件事是 OLED 显示屏。
我以这种方式将显示引脚连接到处理器板:
- 显示->板
- GND 接地
- Vin 变为 3V
- DATA转数字6
- CLK转数字10
- D/C转数字11
- RST 转数字 5
- CS转数字12
使用 OLED 显示器文档,安装 Adafruit SSD1306 和 Adafruit GFX 库。重新启动 Arduino IDE。
最后你可以运行 File→Sketchbook →Libraries→ Adafruit_SSD1306→ SSD1306_128x64_spi example
我有一个编译错误,抱怨显示高度不正确。这是因为库文件SSD1306.h是通用的,我必须对其进行编辑,以选择正确的显示器高度 (64)。找到相关行并通过注释不正确的行来选择正确的值。
// #define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
由于一些冲突,我更改了默认引脚。因此,我不得不更改示例代码中的默认代码定义,以匹配我使用的引脚:
#define OLED_MOSI 6
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 5
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
注意:如果您打算在 A7 中使用电池电压监控,请勿使用引脚数字 9。数字9和A7共用一个引脚。经过几个小时的糟糕 Vbat读数和糟糕的显示行为,我发现这很困难。
当显示正常工作时,您可以继续下一节:
连接传感器:
根据示意图连接DHT 11 。(不要用板子上的D13脚来读取DHT11的数据,D13脚有一个LED常接,呈低阻抗,不适合这种用途)。
我们必须使用其中一个免费的数字引脚。我们排除了 D9,因为它与用于读取 Vbat 的 A7 冲突,而 D13 则因为 LED 电路。我将使用 D19 连接到 DHT11 引脚 2,并通过其单线协议读取温度和湿度。D19在板子上标为A5,但也可以作为Digital 19使用。不要忘记在软件上定义DHTpin:
#define DHTPIN 19
CCS811连接:
- Vin 变为 3.3V 线,
- GND去GND线,
- SDA 转到 Adalogger SDA
- SCL 转到 Adalogger SCL
- /WAKE 到 GND
我使用了 Adafruit_CCS811 库 version=1.0.0 并且一切正常。
SD卡
为了能够记录整个时间的值,我使用了一张旧的 512MB 美元卡。这个 Adalogger 板非常棒,因为它已经有一个美元卡插槽。我在这里使用 Arduino 库版本 1.2.2。和引脚 D4 作为 SD 的 CS 引脚。在下图中,我展示了 SD 卡中数据的格式。逗号分隔,方便电子表格软件打开分析。
在此示例中,每 5 分钟(300 秒)记录一次数据。这个时间值很容易在软件中改变,通过改变行:
#define SD_write_interval 300 //seconds between SD writes
将 300 替换为您希望 SD 写入之间的秒数。就这么简单。
该文件采用 csv 格式(逗号分隔值),这意味着所有值均以逗号分隔。它可以通过电子表格轻松导入以进行进一步分析。
实时时钟
时间戳对于数据记录器来说是必不可少的。目前,我正在使用和评估带有 RTCZero 库的内部 RTC。
#include //author=Arduino version=1.5.2
#include //author=Adafruit version=1.2.1
但是我使用 RTClib 作为补充。对于 RTC 初始化,我使用以下代码:
//RTC initialization
DateTime now;
now = (DateTime(F(__DATE__), F(__TIME__))); //compile time
now=now+20; //20s compensation for Compile + Reset time
rtc.begin(); // initialize RTCZero
rtc.setTime(now.hour(), now.minute(), now.second());
rtc.setDate(now.day(), now.month(), now.year()-2000);
接下来要做的就是想办法调整时间。敬请关注!
LED
如果用户不知道所有这些空气质量参数的限制是什么,并且不关心这些数字,最好只告诉他它们是否安全。使用 3 个 LED 是一个更简单的界面,如果用户只想知道他/她是否可以呼吸那种空气,则更有用。这就是我决定使用这 3 个具有不同警报级别的 LED 的原因:绿色、黄色或红色。触发每个警报的级别可根据当地法规进行编程。要更改级别,只需编辑以下代码行:
//Levels
//temp levels
#define low_temp_level_1 18
#define low_temp_level_2 12
#define low_temp_level_3 8
#define high_temp_level_1 29
#define high_temp_level_2 35
#define high_temp_level_3 40
//rh levels
#define low_rh_level_1 40
#define low_rh_level_2 30
#define low_rh_level_3 20
#define high_rh_level_1 70
#define high_rh_level_2 80
#define high_rh_level_3 90
//co2 levels
#define co2_level_1 1000
#define co2_level_2 1500
#define co2_level_3 3000
//TVOC levels
#define tvoc_level_1 100
#define tvoc_level_2 500
#define tvoc_level_3 1000
显示的值只是指示性的,我使用它们只是为了测试目的
去!
好吧,我仍处于评估阶段,希望有人愿意构建一个类似的电路来帮助我改进这个有用的数据记录器。
让我们下载代码并享受乐趣,阅读那些二氧化碳值。我不得不打开一些窗户来改善空气质量:)
不要忘记在开机后等待 20 分钟,以获得良好的 CCS811 读数。(CCS811 在首次使用前也需要 48 小时的老化时间。)
玩得开心
- 空气质量传感器解决方案 0次下载
- 室内空气质量监测器开源分享
- Aerisilla空气质量监测仪
- DIY空气质量监测设备 1次下载
- 木箱空气质量监测仪开源分享
- 基于时空优化的多尺度STM空气质量预测模型 18次下载
- KQM2801A空气质量模块的数据手册和使用程序及工程文件免费下载 104次下载
- 城市空气质量评价优化法 1次下载
- 英国Atmospheric sensor远程空气质量检测 2次下载
- 基于STM32空气质量检测仪原理图 353次下载
- 基于传感器网络的空气质量检测系统 61次下载
- 空气质量传感器有什么用途? 48次下载
- 空气质量综合指数检测仪
- 基于神经网络的空气质量采集系统的设计
- 温差式热膜空气质量流量传感器
- 华盛昌五合一PM2.5空气质量检测仪产品介绍 509次阅读
- 电能质量分析仪的应用领域 758次阅读
- 电能质量分析仪的常见故障及原因分析 790次阅读
- 电能质量分析仪的原理和特性 1218次阅读
- WT2003H语音芯片在空气质量监测系统的应用方案 656次阅读
- 如何利用ESP8266实现便携式空气质量监测站的设计 3287次阅读
- DIY一个开源的空气质量监测仪 4187次阅读
- 基于创建带有空气质量传感器的室内气象站 2358次阅读
- dfrobotSHARP空气质量传感器转接模块简介 1906次阅读
- 盛思锐的环境传感器在空气质量测试中的应用 1257次阅读
- 空气质量流量计的原理及设计 3021次阅读
- 空气质量传感器原理及作用 3.2w次阅读
- 什么是空气质量传感器_小米空气净化器2空气质量传感器 3728次阅读
- 什么叫电能质量分析仪_有什么用 1.4w次阅读
- 室内空气质量检测与传感器的应用 2124次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多