跳转到主要内容

智能雾霾预警器

editor 提交于

虽然现在几乎每个人的手机都有app可以查看当前的pm2.5值,但是匆忙的早上为了赶早班车或者避免早高峰提前出门,匆忙之中将手机解锁然后点开app,等刷新查看pm2.5,繁琐的操作十分耽误早上宝贵的时间。如果在门口或梳妆台有一个屏幕实时显示当前的pm2.5数值,并以颜色值表示其严重程度以提醒我们佩戴不同型号的口罩或做相应的防护措施,那应该是十分方便的。

任何硬件设备以不增加操作繁琐度为前提增加其实用性与智能性才是生活中真正有用的设备。这里我们就把手头的Intel Galileo改造成这样一款设备。

鉴于前不久APEC期间,美使馆的pm2.5数据在国内各大相关app中被封,再加之国内检测设备数据的可信度问题,这里提取了来自美使馆的pm2.5数据,每个小时更新一次。

<center><img src="http://intel.eetrend.com/files/2016-02/wen_zhang_/100001142-432-112.jpe…; alt=""></center>
美使馆pm2.5更新地址, http://www.stateair.net/web/post/1/1.html 。还好其提供了如图所示xml格式的数据接口,在python程序中调用其数据将会非常方便。

#!/usr/bin/envpython

以上代码为通过python文档读取xml文档根据其标签“AQI”获取最近一个小时内(obs_values[0])的pm2.5数值,以及时间(lasttime)信息,并将其打印在LCD屏幕上:

lcd.setCursor(0,0)

需要注意的是,这里使用的LCD彩色屏为Seeedstudio生产的Intel Galileo配套的Grove系列配件之一,与Intel Galileo通信方式为IIC,直接插在扩展板的IIC接口即可使用。

<center><img src="http://intel.eetrend.com/files/2016-02/wen_zhang_/100001142-433-113.jpe…; alt=""></center>

根据上图中不同颜色代表不同的pm2.5数值,再根据颜色与十六进制对照表将颜色值分别转化为如下的十六进制,然后定义一个pmcolor函数:

defpmcolor():
ifpm25