大数跨境
0
0

【intel程序猿笔记】使用英特尔® Edison探索空气质量监测

【intel程序猿笔记】使用英特尔® Edison探索空气质量监测 DF创客社区
2015-07-21
4
导读:intel程序猿笔记1. intel独家授权转载【intel开发人员专区】文章2. 定期为创客小主po上最全

intel程序猿笔记

1. intel独家授权转载【intel开发人员专区】文章

2. 定期为创客小主po上最全最细最专业的intel项目教程或另类态度

3. DF创客社区“创客召集令”带你玩转intel,更多惊喜,颠覆你想象




周二福利帖又来了!首先,我们来揭晓上周【intel程序猿笔记】智能物联网婴儿车 的获奖情况。


上周有奖问答题目是:下面四个选项中,哪个不是步骤里面牵涉到的选项?



正确答案是c.好紧脏!好紧脏!有哪些小伙伴答对了呢?看下图:


哇喔~~恭喜@丄帝De咗臂 @Cain @luna @pinocchio @ hnyzcj @Qubot @Ash @heinau
貌似有几个答题专业户已经从第一期就带着100%的正确率一路杀过来了,保持好状态,大满贯在等着你们哟!~~~
奖品将在系列活动结束后统一寄出,奖品实行累积制,各位,再接再厉!没有获奖的小伙伴,今天机会又来了喔!


空气质量监测是一个关注度较高的主题,其研究领域主要包括污染增长、过敏、健康与健身意识 ,以及技术创新。消费市场显示,市场上推出的创新性产品提高了人们监测家庭空气质量的意识,其中有一类产品为智能表。这类智能表可监测各种与健康相关的参数,以及空气质量。

空气质量数据发送至云系统,应用为您提示空气质量的变化,以便您了解哪 个区域需要通风。具备空气质量意识有助于改善生活质量。本文将探讨如何通过使用 Arduino* 生态系统测量二氧化碳、挥发性有机化合物和灰尘的浓度,并将数据发送至云服务提供商来进行空气质量监测。

英特尔® Edison 平台配备了快速处理器、大容量内存,以及面向 WiFi 和蓝牙的集成连接性,非常适合启动新原型,或迁移现有原型。Arduino 生态系统可提供一系列硬件和固件库,支持使用英特尔® Edison 计算模块和英特尔® Edison Arduino Breakout 开发板进行试验。


硬件组件:

该项目的空气质量监测系统主要使用下列硬件组:

  • 英特尔® Edison 计算模块

  • 英特尔® Edison Arduino Breakout 开发板

  • 共阴极 RGB LED + 3 个 1kΩ 电阻器

  • GP2Y1010AU0F 光学灰尘传感器 + 150Ω 电阻器 + 220 µF 电解质电容器

  • MQ-135 气体传感器

  • K-30 CO2 传感器

  • PIR 运动传感器



工作原理:

如上图 所示为硬件组件与英特尔® Edison Arduino Breakout 开发板的连接。该系统将 RGB LED 用作简单的目测指示系统来显示空气质量。


为确定某区域的整体空气质量,该系统使用三个传感器:

1. 光学灰尘传感器:用于测量某区域的灰尘。

2. 气体传感器:用于测量烟雾等挥发性有机化合物。

3. CO2 传感器:借助 I2C 接口测量二氧化碳浓度。


此外,该系统还配备运动传感器,通过过滤掉由运动引起的暂时性灰尘浓度上升以及由于人们靠近传感器呼吸所引起的暂时性 CO2 浓度上升,以最大程度地真实反映某区域的整体空气质量。


如果未检测到运动,固件将读取空气质量传感器、分析传感器数据、更新目测指示系统,并将空气质量数据发送至云。 有关该系统的详细内容将会在“固件”部分做进一步介绍。


配置 I2C 时钟频率:

需注意 的一点是,在撰写本文时,英特尔® Edison 的默认 I2C 时钟频率高于 100kHZ,超过了K-30 CO2传感器的规格。K-30 CO2传感器所支持的最高 I2C时钟频率(SCL)为100kHz。


固件:

下列代码显示了空气质量系统包含的组件、宏和函数。下面将介绍针对初始化、主循环 、读取运动传感器、读取空气质量传感器、分析整体空气质量、更新目测指示 LED,以及将数据发送至云服务提供商的函数。


函数注意点(完整函数内容请点击左下【阅读原文】)


初始化:

该函数可初始化串行调试接口、I/O 针脚和 I2C 接口。


主循环:

主循环可初始化系统、检查运动、读取空气质量传感器、分析整体空气质量、更新指示 LED,并将数据发送至云服务。


读取运动传感器:

通过取样传感器的数字输出针脚可读取运动传感器。如果检测到运动,传感器输出针脚将跳变至“高电平”。该函数尝试过滤故障,并反馈是否检测到运动。


读取空气质量传感器:

该函数调用单独的气体、co2 和灰尘传感器函数。函数将指针带入整数数组,以保存乙醇、苯,烟雾等气体。气体传感器包含一个模拟电压输出,该输出与空气中的气体浓度成正比。执行 A/D 换算可读取该传感器。该函数可读取传感器、求取读数的平均值、分析传感器数据,并返回该传感器的空气质量。


读取灰尘传感器:

灰尘传感器包含光学传感系统,该系统借助数字输出针脚通电。通电后执行 A/D 换算可对传感器的模拟电压输出(与空气中的 灰尘成正比)进行取样。该函数可读取传感器、求取读数的平均值、分析传感器数据,并返回该传感器的空气质量。


读取 CO2 传感器:

CO2 传感器返回 CO2 浓度值(单位:ppm)。CO2 传感器通过 I2C 接口读取。该函数可读取传感器、求取读数的平均值、分析传感器数据,并返回该传感器的空气质量。


分析整体空气质量:

该函数可通过分析传来的气体、co2 和灰尘等空气质量值确定该地区的整体空气质量。该函数可返回该地区的整体空气质量水平。


更新目测指示 LED:

该函数可将指示 LED 更新至与传来的空气质量值相对应的颜色。 LED 变成蓝色表示空气质量水平达到最佳、绿色表示空气质量良好、红色表示空气质量差。 如果检测到运动,LED 将变成品红色。


更新数据流:

调用该函数可更新 xively.com 通道数据流的值。通道ID和数据流的值可传递至该函数。 如图 2 所示,该系统使用四条数据流。数据流可更新为气体、co2 和灰尘传感器函数的原始传感器数据。此外,主循环中的数据流 还可更新为整体空气质量值。


将数据流发送至 Xively:

该函数针对 xively.com 馈送执行 PUT 操作 。函数返回成功或失败代码状态。 主循环调用该函数。


总结:

欢迎大家使用英特尔 Edison 平台研究空气质量监测。挑战自我,添加其他显示各传感器状态的指示,添加针对空气质量变化的警告触发器增强云服务体验,并寻找机会将空气质量监测与其他系统相集成。


关于作者:

Mike Rylee 是英特尔公司的一名软件工程师,曾致力于开发基于 Android*、 Windows*、iOS* 和 Mac* 运行的嵌入式系统和应用。 他目前的主要工作是为 Android 和物联网相关项目提供支持。


广告,请广而告知——

每周二【intel 程序猿笔记】帖子下会设计一个与帖子内容相关的问答投票,你只要在留言区参与投票,选出正确的答案,社区小管家会挑选每周前10名回答正确的幸运互动者随机赠送小礼品,礼品可以实行累积制喔。也奏是说——只要你脑洞够大、热情够给力,你就可以横扫所有奖品实现大满贯喔!当然,对于大满贯获得者,我们还有神秘大礼包让你喜上加喜、锦上添花。奏这么任性,没办法!


赶紧点击下方【阅读原文】,学习完整项目、参与互动,赢取惊喜礼品。手快有,手慢无!


想要关注更多微信内容

请点击右上角→查看公众账号→点击关注


【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读2.1k
粉丝0
内容1.3k