iOS版本PM2.5空气质量监控仪

前言

鉴于柴静版《苍穹之下》的火爆,或许更多的人会关心环境,空气质量等环保因素,参考某学院的Swift版本的PM2.5的获取,本人自己写个Objective-C版本的。

基本原理

从服务器获取当前的空气质量数据,气象中心开放接口亚洲空气质量实时监控, 参照人家的教程使用亚洲空气质量监控。

本地解析数据,获取PM2.5数值,进行显示。

具体实现

NSNumber *str;

-(void) loadData{
self.msgText.text = @"loading....";
NSURL *url = [NSURL URLWithString:@"http://aqicn.org/publishingdata/json"];
NSString *[email protected]"postData";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
[request setTimeoutInterval:10.0];

//GCD实现异步接口通信与UI更新的同步
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    NSOperationQueue *queue = [[NSOperationQueue alloc]init];
    [NSURLConnection sendAsynchronousRequest:request
        queue:queue
        completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
        if (error) {
            NSLog(@"Httperror:%@%d", error.localizedDescription,error.code);
        }else{
            NSInteger responseCode = [(NSHTTPURLResponse *)response statusCode];
            NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"HttpResponseCode:%d", responseCode);
            NSLog(@"HttpResponseBody %@",responseString);
            NSData *resData = [[NSData alloc] initWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding]];
            NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:resData options:NSJSONReadingMutableLeaves error:nil];
            NSLog(@"resultDic=%@", resultDic);

            arr = [[resultDic valueForKey:@"pollutants"] valueForKey:@"value"];
            str = [[arr objectAtIndex:0] objectAtIndex:0];
            NSLog(@"PM2.5=%@", [[arr objectAtIndex:0] objectAtIndex:0]);
        }
    }];
        dispatch_async(dispatch_get_main_queue(),^{
    self.msgText.text = str.stringValue;
        });
    });
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self loadData];
// start reloadData
}
- (IBAction)reloadData:(id)sender {
NSLog(@"Button Clicked");
[self loadData];
NSLog(@"Button Clicked");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

详情请参考如下链接:

源码地址

时间: 2024-11-05 13:40:00

iOS版本PM2.5空气质量监控仪的相关文章

用python+selenium获取北上广深成五地PM2.5数据信息并按空气质量排序

从http://www.pm25.com/shenzhen.html抓取北京,深圳,上海,广州,成都的pm2.5指数,并按照空气质量从优到差排序,保存在txt文档里 #coding=utf-8 from selenium import webdriver from time import sleep class PM: def __init__(self): self.dr = webdriver.Chrome() self.pm25_info = self.get_pm25_info() de

python爬虫抓取全国pm2.5的空气质量(BeautifulSoup3)

这个编码格式真的是很闹心啊,看来真的得深入学习一下编码格式,要不这各种格式错误. 这个编码还和编辑器有关系,最开始的时候实在sublime Text里编辑的代码,运行起来卡卡的,特别顺畅,但突然发现它不支持raw_input和input,所以令临时换到了python官方提供的idle中.之后就出现了各种奇葩编码错误...... 程序大概意思就是,你输入一个城市的拼音,它就会返回这个城市的空气污染情况啊,有些城市可能会没有,这个完全取决与网站上有那些城市啊,当你想退出的时候就输入quit,就退出来

python获取全国各个城市pm2.5、臭氧等空气质量

随着国家发展,中国很多城市的空气质量其实并不好,国家气象局会有实时统计,但是要去写爬虫爬取是十分麻烦的事情,并且官方网站也会做一些反爬虫措施,所以实现起来比较麻烦,最好的办法就是使用现成的免费接口,空气质量指数分析,这里是笔者自己实现的一个python调用方式,代码如下: # -*- coding: utf-8 -*- # flake8: noqa __author__ = 'wukong' import urllib from urllib import urlencode #配置您申请的ap

国内空气质量数据开源了

经过半个月的使用和维护,总算有个稳定的版本,已开源在https://github.com/hzexe/openair 本项目可以获取中国环境检测总站的空气数据,也包含restful的数据分发服务 当前数据内容包括: 城市的实时空气数据,包括AQI.pm2.5.pm10.co.o3.no2.so2.首要污染物.生活建议.污染描述等数据 城市所有空气检测点(空气站)的实时空气质量,除包含上面城市所有的基本数据,还有检测点名称,经度纬度等信息 城市空气质量历史数据(2013年以来) 检测点空气质量历史

DIY 空气质量检测表

DIY 空气质量检测表 前几天逛淘宝看到有空气颗粒物浓度测量的传感器,直接是 3.3V TTL 电压串口输出的,也不贵,也就 100 多一点.觉得挺好就买了个,这两天自己捣鼓了个小程序,搞了个软件界面的空气质量检测表.程序写的很简单,但是感觉这个小软件还是挺实用的,所以就写篇博客,大家用我的代码很容易就自己 DIY 一套. 硬件准备 传感器用的是 攀藤科技 PMS7003M .除了攀藤科技,还有几家这种传感器做的应该也不错,不过我没去用过,也没仔细调研.(之所以用的这家,不过是因为在 newsm

中国空气质量在线监测分析平台

中国空气质量在线监测分析平台是公益性质的软件平台,提供PM2.5及天气数据的实时查询和历史数据可视化分析,统计挖掘,目前收录了190个城市的PM2.5及天气信息数据,主要包括PM2.5实时查询.历史曲线查询.PM2.5时段统计分析.AQI历年数据分析.PM2.5中国城市排名.PM2.5中国城市分布图.PM2.5中国省份分布图.卫星云图查询.PM2.5城市比较.PM2.5统计排名.PM2.5与天气关联挖掘.PM2.5与经济关联挖掘等功能. 关键词:PM2.5实时查询,PM2.5历史数据,PM2.5

空气质量实时监测数据接口JSON返回示例

空气质量实时监测数据能够反映实时空气质量,空气质量实时监测数据接口可以查询不同城市的空气质量最新结果.最近几周的空气质量数据和各监测点的数据. 接口名称:空气质量实时监测数据 接口平台:聚合数据 接口地址:http://web.juhe.cn:8080/environment/air/cityair 支持格式:JSON 请求方式:GET 请求示例:http://web.juhe.cn:8080/environment/air/cityair?city=城市名称&key=您申请的APPKEY值 接

中国空气质量在线监測分析平台

中国空气质量在线监測分析平台是公益性质的软件平台,提供PM2.5及天气数据的实时查询和历史数据可视化分析,统计挖掘,眼下收录了190个城市的PM2.5及天气信息数据,主要包含PM2.5实时查询.历史曲线查询.PM2.5时段统计分析.AQI历年数据分析.PM2.5中国城市排名.PM2.5中国城市分布图.PM2.5中国省份分布图.卫星云图查询.PM2.5城市比較.PM2.5统计排名.PM2.5与天气关联挖掘.PM2.5与经济关联挖掘等功能. 关键词:PM2.5实时查询,PM2.5历史数据,PM2.5

聚合数据Android SDK 空气质量查询演示示例

1.聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据. 2.下载聚合数据SDK,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libs\armeabi目录下,如图: 3. 根据接口说明文档找到以下方法: Java代码   /** * 城市空气质量 * * @param city *            城市名称的中文名称或拼音,如:上