
使用说明:AIR RASPBERRY Pi
专为 RASPBERRY PI 400 设计。兼容 RASPBERRY PI 2、3 和 4。

1d型
介绍
适用于 Raspberry Pi 的 MonkMakes 空气质量套件基于 MonkMakes 空气质量传感器板。 Raspberry Pi 的这个插件可以测量房间内的空气质量(空气的陈旧程度)以及温度。 该板有一个显示空气质量的六个 LED(绿色、橙色和红色)和一个蜂鸣器。 Raspberry Pi 可以读取温度和空气质量读数,蜂鸣器和 LED 显示屏也可以通过 Raspberry Pi 控制。
空气质量传感器板直接插入 Raspberry Pi 400 的背面,但也可以使用套件中包含的跳线和 GPIO 模板与其他型号的 Raspberry Pi 一起使用。 
部分
请注意,此套件中不包含 Raspberry Pi。
在您执行任何其他操作之前,请检查您的套件是否包含以下物品。
空气质量和 ECO2
空气质量传感器板使用部件号为 CCS811 的传感器。 这个小芯片实际上并不测量 CO2(二氧化碳)的水平,而是测量一组称为挥发性有机化合物 (VOC) 的气体的水平。 在室内时,这些气体的水平上升速度与 CO2 的上升速度非常相似,因此可用于估算 CO2 的水平(称为等效 CO2 或 eCO2)。
我们呼吸的空气中的二氧化碳含量直接影响我们的健康。 从公共卫生的角度来看,二氧化碳水平特别令人感兴趣 view 因为,简单地说,它们是衡量我们呼吸他人空气的量度。 我们人类呼出二氧化碳,因此,如果几个人在通风不良的房间里,二氧化碳的含量会逐渐增加。 这与人们一起呼气时传播感冒、流感和冠状病毒的病毒气溶胶非常相似。
二氧化碳水平的另一个重要影响是认知功能——你的思考能力。 这项研究(以及更多研究)有一些有趣的发现。 以下引述来自美国国家生物技术信息中心:“在 2 ppm CO1,000 时,九个决策绩效等级中的六个出现适度且具有统计显着性的下降。 在 2 ppm 时,七个决策绩效等级发生了显着的统计显着下降”来源: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3548274/
下表基于来自的信息 https://www.kane.co.uk/knowledge-centre/whatare-safe-levels-of-co-and-co2-in-rooms
并显示 CO2 可能变得不健康的水平。 CO2 读数以 ppm(百万分之一)为单位。
| 二氧化碳水平 (ppm) | 笔记 |
| 250-400 | 环境空气中的正常浓度。 |
| 400-1000 | 具有良好空气交换的室内空间的典型浓度。 |
| 1000-2000 | 抱怨嗜睡和空气差。 |
| 2000-5000 | 头痛、嗜睡和 stag南特,陈旧,闷热的空气。 也可能出现注意力不集中、注意力不集中、心率加快和轻微恶心。 |
| 5000 | 大多数国家/地区的工作场所暴露限制。 |
| >40000 | 接触可能导致严重的缺氧,导致永久性脑损伤、昏迷,甚至死亡。 |
设置
无论您使用的是 Raspberry Pi 400 还是 Raspberry Pi 2、3 或 4,在连接空气质量传感器之前,请确保 Raspberry Pi 已关闭并断电。
空气质量传感器一旦从您的 Raspberry Pi 获得电力,就会显示 eCO2 读数。 因此,一旦您连接了它,显示屏应该会显示 eCO2 水平。 然后,您将学习如何与开发板交互、接收读数以及通过 Python 程序控制 LED 和蜂鸣器。
连接空气质量传感器 (Raspberry Pi 400)
请勿以一定角度将连接器推入或推得太用力,因为您可能会弯曲 GPIO 连接器上的引脚,这一点非常重要。 当引脚排列整齐时
正确地,它应该很容易推入到位。
连接器如上图所示。 请注意,电路板的底部边缘与 Pi 400 的外壳底部对齐,电路板的侧面留出足够的空间以便轻松访问 micro SD 卡。连接电路板后,启动 Raspberry Pi — 电源 LED(在 MonkMakes 徽标中)和其中一个 eCO2 LED 也应点亮。
连接空气质量传感器 (Raspberry Pi 2/3/4)
如果您有 Raspberry Pi 2、3、4,那么您将需要 Raspberry Leaf 和一些母对公跳线来将空气质量传感器板连接到您的 Raspberry Pi。
警告:颠倒电源线或将空气质量传感器连接到 5V 而不是 Raspberry Pi 的 3V 引脚可能会损坏传感器并可能损坏您的 Raspberry Pi。 因此,请在打开树莓派电源之前仔细检查接线。
首先将 Raspberry Leaf 安装在 Raspberry Pi 的 GPIO 引脚上,这样您就可以知道哪个引脚是哪个引脚。 该模板可以适合任何一种方式,因此请确保您遵循下图。
接下来,您将在 Raspberry Pi 的 GPIO 引脚和 Air Quality 板之间连接四个引线,如下所示:
| 树莓派引脚(如 标记在叶子上) | 空气质量委员会(作为 标记在连接器上) | 建议的电线颜色。 |
| GND(任何标记为 GND 的引脚都可以) | 地线 | 黑色的 |
| 3.3伏 | 3V | 红色的 |
| 14 发送 | PI_TXD | 橙子 |
| 15 接收 | PI_RXD | 黄色的 |
全部连接后,它应该如下所示:
仔细检查接线,然后打开 Raspberry Pi 电源——电源 LED(在 MonkMakes 徽标中)和其中一个 LED 也应该亮起。
拔下空气质量板
在从 Raspberry Pi 400 中移除电路板之前。
- 关闭树莓派。
- 轻轻地将电路板从 Pi 400 的背面卸下,依次从两侧稍微修边,以免弯曲引脚。
如果您有 Pi 2/3/4,只需从 Raspberry Pi 上移除跳线。
启用串行接口
即使电路板无需任何编程即可显示 eCO2 水平,这意味着我们只是使用 Raspberry Pi 作为电源。 为了能够通过 Python 程序与开发板进行交互,在我们的 Raspberry Pi 上,我们需要采取更多步骤。
首先是启用 Raspberry Pi 上的串行接口,因为 Air Quality 板使用的正是这个接口。
为此,请从主菜单中选择首选项,然后选择树莓派配置。
切换到“接口”选项卡并确保启用串行端口并禁用串行控制台。
下载前amp乐程序
前任amp该套件的文件可从 GitHub 下载。 要获取它们,请在您的 Raspberry Pi 上启动一个浏览器窗口并转到以下地址:
https://github.com/monkmakes/pi_aq 单击“代码”按钮,然后单击“下载 ZIP”选项,下载项目的 zip 存档。
下载完成后,解压 files 从 ZIP 存档中找到 ZIP file 在您的下载文件夹中,然后右键单击它并选择选项提取到。
选择一个合适的目录(我会推荐你的主目录 - /home/pi)并解压 files。 这将创建一个名为 pi_aq-main 的文件夹。 将其重命名为 pi_aq。
托尼
下载程序后,您可以从命令行运行它们。
不过,看一看还是不错的 files,Thonny 编辑器将允许我们编辑 files 并运行它们。
Thonny Python 编辑器预装在 Raspberry Pi OS 中。 您可以在主菜单的编程部分找到它。 如果由于某种原因它没有安装在您的
Raspberry Pi,然后您可以使用 Preferences Menu 项上的 Add / Remove Software 菜单选项安装它。
在我们开始使用 Python 和 Thonny 与空气质量板进行交互之前,下一部分将进一步解释该传感器正在测量的内容。
入门
在我们开始 Python 编程之前,让我们看一下空气质量委员会。
左上角的电源指示灯 LED 可快速检查电路板是否已通电。 下面是温度传感器芯片,旁边是 eCO2 传感器芯片本身。 如果你仔细观察它,你会发现它有小孔供空气进出。 eCO2 传感器正下方是一个蜂鸣器,您可以通过程序打开和关闭它。 这对于提供警报很有用。 六个 LED 的列由两个绿色 LED、两个橙色 LED 和两个红色 LED 组成(从下到上)。 当超过每个 LED 旁边标记的 eCO2 水平时,这些灯会亮起。 它们会在 Raspberry Pi 启动后立即显示电平,但您也可以使用 Python 控制它们。
让我们从命令行尝试一些实验开始。 通过单击屏幕顶部的终端图标或主菜单上的附件部分来打开终端会话。
当终端打开时,在 $ 提示符后键入以下命令,以更改目录 (cd) 并打开 Python
通过键入以下命令打开本地 aq 模块:>>> from aq import AQ
>>> 然后通过键入创建 AQ 类的实例: >>> aq = AQ()
>>> 我们现在可以通过键入以下命令读取二氧化碳水平: >>> aq.get_eco2() 2
>>> 所以在这种情况下,eCO2 水平是一个很好的新鲜 434 ppm。 现在让我们获取温度(以摄氏度为单位)。 >>> aq.get_temp()
20.32 注意:如果您在运行上述代码时收到错误消息,您可能没有安装 GUIZero。 安装说明在这里:
https://lawsie.github.io/guizero/#raspberry-pi
程序 1. ECO2 仪表
当您运行此程序时,将打开类似于下图的窗口,显示温度和 eCO2 水平。 尝试将手指放在温度传感器上,温度读数应该会上升。 您也可以在 eCO2 传感器上轻轻呼吸,读数应该会增加。
要运行程序,请加载 file 01_aq_meter.py 在 Thonny 中,然后单击运行按钮。
这是该项目的代码。 该代码使用了 GUI Zero 库,您可以在附录 B 中了解更多信息。
为了在不中断用户界面工作的情况下读取温度和光线,导入了线程库。 函数 update_readings 将永远循环,每半秒读取一次读数并更新窗口中的字段。
代码的其余部分提供了显示温度和 eCO2 水平所需的用户界面字段。 这些被布置为网格,以便字段排列。 因此,每个字段都使用表示列和行位置的网格属性定义。 因此,显示文本 Temp (C) 的字段位于第 0 列第 0 行,相应的温度值 (temp_c_field) 位于第 1 列第 0 行。
程序 2. 带报警的 ECO2 仪表
该程序扩展了程序一,通过使用蜂鸣器和一些精美的用户界面功能,如果超过设定的 eCO2 水平,则发出警报声并且窗口变为红色。
窗口底部的滑块设置蜂鸣器应响起且窗口变为红色的 eCO2 水平。 尝试将警报级别设置为略高于
当前 eCO2 水平,然后在传感器上呼吸。
这是程序 2 的代码,其中大部分与程序 1 非常相似。感兴趣的领域已以粗体突出显示。导入线程
导入时间
从 guizero 导入 App、文本、滑块
从水进口 AQ
水 = AQ()
app = App(标题=”空气质量”,宽度=550,高度=400,布局=”网格”)
def update_readings():
while True: temp_c_field.value = str(aq.get_temp()) eco2 = aq.get_eco2() eco2_field.value = str(eco2)
如果 eco2 > slider.value: app.bg = “red” app.text_color = “white” aq.buzzer_on()
否则:app.bg = “白色” app.text_color = “黑色” aq.buzzer_off() time.sleep(0.5)
t1 = threading.Thread(目标=更新读数)
t1.start() # 启动更新读数的线程 aq.leds_automatic()
# 定义用户界面
文本(应用程序,文本=“温度(C)”,网格=[0,0],大小=20)
temp_c_field = Text(app, text=”-”, grid=[1,0], size=100)
文本(应用程序,文本=“eCO2(ppm)”,网格=[0,1],大小=20)
eco2_field = Text(app, text="-", grid=[1,1], size=100)
文本(应用程序,文本=“警报(ppm)”,网格=[0,2],大小=20)
滑块=滑块(应用程序,开始=300,结束=2000,宽度=300,高度=40,网格=[1,2])app.display()
首先,我们需要将 Slider 添加到我们从 guizero 导入的内容列表中。
我们还需要扩展 update_readings 函数,以便在显示温度和 eCO2 水平的同时,它还检查水平是否高于阈值。 如果是,它将窗口背景设置为红色,将文本设置为白色并打开蜂鸣器。 如果 eCO2 水平低于滑块设置的阈值,它会反转并关闭蜂鸣器。
程序 3. 数据记录器
该程序 (03_data_logger.py) 没有图形界面。 它只是提示您输入读数之间的间隔(以秒为单位),然后是一个名称 file
在其中保存读数。
在前ample 上面,sampling 设置为 5 秒,并且 file 称为读数.txt。 完成记录数据后,CTRL-c 将结束记录并关闭 file.
数据以与上面屏幕截图中显示的格式相同的格式保存。 也就是说,第一行指定标题,每个值由 TAB 字符分隔。 这 file 保存在与程序相同的目录中。 捕获数据后,您可以将其导入 Raspberry Pi 上的电子表格(如 LibreOffice),然后根据数据绘制图表。 如果您的 Raspberry Pi 上没有安装 LibreOffice,您可以使用首选项菜单上的添加/删除软件选项来安装它。
打开一个新的电子表格,从 file 菜单,然后导航到数据 file 你想看看。 这将打开一个导入对话框(见下一页)显示
电子表格已自动检测到数据的列。
单击确定导入数据,然后选择 eCO2 读数列。 然后,您可以通过从“插入”菜单中选择“图表”来绘制这些读数的图表,然后选择“线”的图表类型,然后选择“仅线”。 这将为您提供下一页所示的图表。
作为一项实验,尝试让记录器程序运行 24 小时,以查看 eCO2 水平在一天中的变化情况。
附录 A. API 文档
对于认真的程序员——这里是技术文档。 这 file monkmakes_aq.py 未作为完整的 Python 库安装,但应将其复制到与需要使用它的任何其他代码相同的文件夹中。 水库.py
Monkmakes_aq.py 模块是一个封装了 Raspberry Pi 和 Air Quality 板之间的串行通信的类。
创建 AQ 实例:aq = AQ()
读取 eCO2 读数
aq.get_eco2() # 以 ppm 为单位返回 eCO2 读数
以摄氏度为单位读取温度
aq.get_temp() # 以摄氏度返回温度
LED显示屏
aq.leds_manual() # 设置 LED 模式为手动
aq.leds_automatic() # 设置 LED 模式为自动
# 以便 LED 显示 eCO2
aq.set_led_level(level) # level 0-LED 关闭,
# 1-6 级 LED 1 到 6 亮
蜂鸣器
aq.buzzer_on()
aq_buzzer_off()
该类使用 Pi 的串行接口与传感器板通信。 如果您想查看串行接口的详细信息,请查看该产品的数据表。 您可以从产品的 web 页 (http://monkmakes.com/pi_aq)
附录 B. GUI 零
Raspberry Pi 基金会的 Laura Sach 和 Martin O'Hanlon 创建了一个 Python 库(GUI 零),使设计 GUI 变得超级容易。 该套件使用该库。
在您可以使用该库之前,您需要导入您想要在程序中使用的部分。
例如ample,如果我们只想要一个包含消息的窗口,这里是导入命令:
从 guizero 导入应用程序,文本
App 类代表应用程序本身,您编写的每个使用 guizero 的程序都需要导入它。 这里唯一需要的其他类是 Text,用于显示消息。
以下命令创建应用程序窗口,指定标题和窗口的起始尺寸。
应用程序=应用程序(标题=“我的窗口”,宽度=“400”,高度=“300”)
要向窗口添加一些文本,我们可以使用以下行:Text(app, text=”Hello World”, size=32)
该窗口现在已准备好显示,但在程序运行以下行之前不会真正出现:app.display()
您可以在此处找到有关 guizero 的更多信息: https://lawsie.github.io/guizero/start/
故障排除
问题:该板已插入我的 Pi 400,但电源 LED 未亮起。
解决方案:检查 GPIO 引脚是否与插座正确对齐。 见第 4 页。
问题:该板已插入我的 Pi 400,但电源 LED 快速闪烁。
解决方案:这表明传感器有问题。 有时,它只需要通过关闭并重新打开 Raspberry Pi 来重置电源。 如果你这样做并且闪烁继续,你可能有一个故障板,所以请联系 支持@monkmakes.com
问题:我刚刚连接好所有设备,但 eCO2 读数似乎有误。
解决方案:MonkMakes 空气质量传感器中使用的传感器类型将从您第一次连接时开始生成读数。 但是,随着时间的推移,读数会变得更加准确。 传感器 IC 的数据表表明读数只有在运行 20 分钟后才会开始变得准确。
问题:当我尝试运行 ex 时收到错误消息amp乐程序。
解决方案: 注意:您可能没有安装 GUIZero。 请按照此处的说明进行操作: https://lawsie.github.io/guizero/#raspberry-pi
问题:我正在将此传感器的读数与真正的 CO2 测量仪进行比较,但读数不同。
解决方案:这是可以预料的。 空气质量传感器通过测量挥发性有机化合物 (VOC) 的水平来估算 CO2 浓度(即 eCO2 中的“e”的含义)。 真正的二氧化碳传感器要贵得多。
学习
编程与电子
如果您想了解更多有关 Raspberry Pi 和 Electronics 编程的信息,那么该套件的设计者 (Simon Monk) 编写了许多您可能会喜欢的书籍。
您可以在以下位置找到有关 Simon Monk 书籍的更多信息: http://simonmonk.org 或在 Twitter 上关注他,他是@simonmonk2
僧侣
有关此套件的更多信息,请访问该产品的主页: https://monkmakes.com/pi_aq
除了这个工具包,MonkMakes 还制作各种工具包和小工具来帮助您
创客项目。 了解更多信息以及购买地点: https://www.monkmakes.com/products
您也可以在 Twitter@monkmakes 上关注 MonkMakes。

文件/资源
![]() |
MONK MAKES 树莓派空气质量套件 [pdf] 指示 Raspberry Pi 空气质量套件, Raspberry Pi 质量套件, Raspberry Pi 套件, Raspberry Pi, Pi |




