killercat 发表于 2014-2-7 22:56:09

Cubie PM2.5 监控小程序

Cubietruck 的 led 闪的人眼睛疼,也许你已经把它给关了,这里我合理利用了一下 led 开发了一个利用它们来显示空气质量的小应用,这个小应用会获取当前的空气质量并用 led 灯的颜色来显示:
如果 led 灯显示为绿色,表示空气质量不错(优和良)
如果 led 灯显示为蓝色,表示空气轻度污染
如果 led 灯显示为橘黄,表示空气污染严重(中度污染及中度污染以上)
如果 led 灯显示为白色,表示当前无法获取到空气污染数据

数据每半个小时更新一次

这个程序是一个 shell 脚本程序:#!/bin/bash

# api key: http://www.pm25.in/api_doc
api_key="5j1znBVAsnSf5xQyNQyq"
city="shanghai"

lighten_led() {
    ls /sys/class/leds/*/brightness | xargs -i -n1 echo "echo 0 > {}" | sh
    echo 1 > /sys/class/leds/$1*/brightness
}

get_quality() {
    local api="http://www.pm25.in/api/querys/pm2_5.json?city=$1&stations=no&token=$api_key"
    wget --quiet --no-check-certificate --output-document=- $api | sed 's/.\+,"quality":"\([^"]\+\)".\+/\1/'
}

update_quality() {
    local quality=$(get_quality $city)
    if [ "$quality" == "优" ] || [ "$quality" == "良" ]; then
      lighten_led green
    elif [ "$quality" == '轻度污染' ]; then
      lighten_led blue
    elif [ "$quality" == '中度污染' ] || [ "$quality" == '重度污染' ] || [ "$quality" == '严重污染' ]; then
      lighten_led orange
    else
      lighten_led white
    fi
}

while true; do
    update_quality
    sleep 1800
done首先你配置一下这个脚本,api_key 需要申请,大家去 http://www.pm25.in/api_doc 申请,默认的 api_key 可能不能很好的工作(详见 http://www.pm25.in/api_doc)
然后修改一下 city,这里的值是 shanghai,更加需要改成你需要监控的城市

配置完成以后,把此脚本保存并在开机的时候执行(加入 /etc/rc.local 中)

祝大家玩的愉快

flyword 发表于 2014-2-14 09:14:40

赞一个!!

allen 发表于 2014-2-14 09:16:28

利用LED灯来显示,想法不错!

aaron 发表于 2014-2-18 11:35:12

很好的应用

sunbeyond 发表于 2014-2-21 15:52:56

不错不错已经有去试过了。

mancook 发表于 2014-2-25 23:36:57

楼主,你太有才了!!

nextw3 发表于 2014-3-3 12:53:47

如果能用GPIO,连接一个微粒传感器来检测PM2.5,那就更好了:)
页: [1]
查看完整版本: Cubie PM2.5 监控小程序