这篇文章会具体描写叙述如何马上得到指定城市的天气状况(比方首尔)。由OpenWeatherMap提供。

用JSON(由OpenWeatherMap提供),XML和一个以太网模块。使WIZnet-WizFi250执行起来。

首先,在OpenWeatherMap上检查API内容。

由城市的名称调用。API用一列结果应答。来匹配一个搜索词。

在JSON中:

api.openweathermap.org/data/2.5/weather?q=London,uk 在XML:

api.openweathermap.org/data/2.5/weather?q=London&mode=xml
http://openweathermap.org/current

然后,尾随上面的指导。在电脑上将JSON和XML格式中的首尔天气数据提取出来。

以下有一个网络数据包的截屏能够作为參考。

红色高亮部分的数据是由PC发送的。我们准备消除不必要部分,并使用请求数据输入下面数据。

在这步。 \r(Carriage return, 0x0d), \n(Line Feed, 0x0a)必须准确输入,而且传送数据(72 Byte, 81 Byte)也要特别注意。

* JSON

GET /data/2.5/weather?q=Seoul HTTP/1.1\r\n

Host: api.openweathermap.org\r\n\r\n

(72 Byte)

* XML

GET /data/2.5/weather?q=Seoul&mode=xml HTTP/1.1\r\n

Host: api.openweathermap.org\r\n\r\n

(81 Byte)

既然初始化设置已完毕,我们将执行WizFi250.首先,在AP上建立联接。

AT+WSET=0,Team Wiki

[OK] AT+WSEC=0,,12345678

[OK] AT+WNET=1

[OK] AT+WJOIN

Joining : Team Wiki

Successfully joined : Team Wiki

[Link-Up Event] IP Addr : 192.168.101.33

Gateway : 192.168.101.1

[OK]

提取OpenWeatherMap API server的IP地址。

AT+FDNS=api.openweathermap.org,3000

128.199.164.95

[OK]

与OpenWeatherMap API server连接。

AT+SCON=O,TCN,128.199.164.95,80,,0

[OK] [CONNECT 0]

发送JSON请求数据到 OpenWeatherMap APIserver。

AT+SSEND=0,,,72

[0,,,72] (여기에서 위에 설명된 72 Byte를 전송하면 된다.)

[OK]

然后,OpenWeatherMap API server将用一个JSON回复(例如以下)来应答。

{0,128.199.164.95,80,857}HTTP/1.1 200 OK

Server: nginx

Date: Wed, 06 Aug 2014 00:06:49 GMT

Content-Type: application/json; charset=utf-8

Transfer-Encoding: chunked

Connection: keep-alive

X-Source: redis

Access-Control-Allow-Origin: *

Access-Control-Allow-Credentials: true

Access-Control-Allow-Methods: GET, POST

221

{“coord”:{“lon”:126.98,”lat”:37.57},”sys”:{“type”:3,”id”:8519,”message”:0.033,”country”:”KR”,”sunrise”:1407184771,”sunset”:1407234998},”weather”:[{"id":721,"main":"Haze","description":"haze","icon":"50n"},{"id":500,"main":"Rain","description":"light
rain","icon":"10n"},{"id":701,"main":"Mist","description":"mist","icon":"50n"}],”base”:”cmc stations”,”main”:{“temp”:297.26,”pressure”:1005,”humidity”:83,”temp_min”:295.15,”temp_max”:298.15},”wind”:{“speed”:1,”deg”:140},”clouds”:{“all”:40},”dt”:1407277800,”id”:1835848,”name”:”Seoul”,”cod”:200}

0

假设一旦完整接收,连接仍在进行。用OpenWeatherMap APIserver来终止连接。

AT+SMGMT=ALL

[DISCONNECT 0] [OK]

如今。分析如上接收的JSON数据,使用期望的天气数据(首尔的温度,湿度。风速等等)Enjoy!

以下是当你在XML格式下接收数据情况下。然而。WizFi250操作的基本规则是与JSON想死的。所以应该非常easy。

AT+SCON=O,TCN,128.199.164.95,80,,0

[OK] [CONNECT 0] AT+SSEND=0,,,81

[0,,,81] (여기에서 위에 설명된 81 Byte를 전송한다.)

[OK] {0,128.199.164.95,80,969}HTTP/1.1 200 OK

Server: nginx

Date: Tue, 05 Aug 2014 23:59:54 GMT

Content-Type: text/xml; charset=utf-8

Transfer-Encoding: chunked

Connection: keep-alive

X-Source: back

Access-Control-Allow-Origin: *

Access-Control-Allow-Credentials: true

Access-Control-Allow-Methods: GET, POST

29a

<current>

<city id=”1835848″ name=”Seoul”>

<coord lon=”126.98″ lat=”37.57″>

<country>KR</country>

<sun set=”2014-08-06T10:35:34″ rise=”2014-08-05T20:40:21″>

</sun></coord></city>

<temperature value=”297.38″ unit=”kelvin” min=”296.15″
max=”298.15″>

<humidity value=”83″ unit=”%”>

<pressure value=”1006″ unit=”hPa”>

<wind>

<speed value=”1″ name=”Calm”>

<direction value=”170″ name=”South” code=”S”>

</direction></speed></wind>

<clouds value=”75″ name=”broken clouds”>

<visibility>

<precipitation mode=”no”>

<weather value=”haze” number=”721″ icon=”50n”>

<lastupdate value=”2014-08-05T23:30:00″>

</lastupdate></weather></precipitation></visibility></clouds></pressure></humidity></temperature></current>

0

AT+SMGMT=ALL

[DISCONNECT 0] [OK]

欢迎登陆WIZnet官方站点:http://www.iwiznet.cn

WIZnet官方博客:http://weibo.com/wiznet2012

让你的WizFi250适应各种气候的更多相关文章

  1. 用Python下载美国国家气候数据中心(NCDC)的气候数据

    美国国家气候数据中心的官网地址是https://www.ncdc.noaa.gov/ 气候数据的下载地址是: 长格式:ftp://ftp.ncdc.noaa.gov/pub/data/noaa/,这种 ...

  2. 怎么用Python写一个三体的气候模拟程序

    首先声明一下,这个所谓的三体气候模拟程序还是很简单的,没有真的3D效果或数学模型之类的,只不过是一个文字表示的模拟程序.该程序的某些地方可能不太严谨,所以也请各位多多包涵. 所谓三体气候模拟,就是将太 ...

  3. 极端气候频现 五款开发天气预报应用的API

    http://www.csdn.net/article/2014-02-07/2818322-weather-forecast-api-for-developing-apps

  4. 2015微软MVP全球峰会见闻

    2015.10.31-2015.11.8 一周的时间完成微软MVP全球峰会旅程,这一周在不断的倒时差,行程安排非常的紧张,还好和大家请假了没有更新微信公众号,今天开始继续更新微信公众号,开始新的旅程, ...

  5. CSS常见居中讨论

    先来一个常见的案例,把一张图片和下方文字进行居中: 首先处理左右居中,考虑到img是一个行内元素,下方的文字内容也是行内元素,因此直接用text-align即可: <style> .con ...

  6. 《Just for Fun》读后感

    这本书有一个长长的中文名字:<只是为了好玩:Linux之父林纳斯自传>,所以博客标题我就用英文书名了. 读罢此书,不禁想起一位长者的名言:“一个人的成功当然要靠自我奋斗,但也要考虑历史的进 ...

  7. TODO:小程序的春天你想做什么

    TODO:小程序的春天你想做什么 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 初步了解小程序的特点 导航明确,来去自如 统一稳定, 视觉规范 ...

  8. WebService入门案例

    关于WebService的作用和好处,大家应该都了解.但如何在Asp.Net中添加Web Service等问题一直是新手朋友的一大难题.鉴于网上没有一个像样的实际案例,特将课程设计中运用到的WebSe ...

  9. UML类图简单介绍

    先上一张图: 概述 类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础.类图主要是用来显示系统中的类.接口以及它们之间的静态结构和关系的一种静态模型. 类图组 ...

随机推荐

  1. Bootstrap_表单_表单控件

    一.输入框input 单行输入框,常见的文本输入框,也就是input的type属性值为text. 在Bootstrap中使用input时也必须添加type类型,如果没有指定type类型,将无法得到正确 ...

  2. php开发学习目录

    最近有个项目需要使用php,没办法学习吧 本文不适合没有任何语言的初学者,也不适合 php熟练者.只是个人工作中需要的总结 目录 一.环境安装 1.1 apache 简介安装使用等 1.2 php 5 ...

  3. C++函数重载遇到了函数默认参数情况

    一.C++中的函数重载 什么是函数重载? 我的理解是: (1)用一个函数名定义不同的函数: (2)函数名和不同参数搭配时函数会有不同的含义: 举例说明: #include <stdio.h> ...

  4. Github Https方式push错误”Empty reply from server”

                  1 2 3 4 5 6 7 8 9 10 2014-11-19 20:41:30.130 GitHub for Mac Login[2595:326257] AskPass ...

  5. 转:LESS CSS 框架简介

    原文来自于:http://www.ibm.com/developerworks/cn/web/1207_zhaoch_lesscss/ 简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTM ...

  6. C#中&与&&的区别

    刚刚翻书发现这个问题,在网上找了一下,我的理解吧. 他俩的区别就是“&”和“|”不执行短路计算,而&&和||执行了短路计算. &不执行短路计算 ——————表达式A&a ...

  7. ECMAScript 6 模块简介

    任何平台的其中一个重要特性,除了需要支持代码库外就是模块.直到现在,Javascript还不支持原生的模块化.结果是,各种解决方案都将模块添加到类库中,比如CommonJS modules(部分由no ...

  8. BZOJ 3893 Cow Jog

    Description The cows are out exercising their hooves again! There are \(N\) cows jogging on an infin ...

  9. BZOJ 1028 麻将

    Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张.在 ...

  10. Computational Methods in Bayesian Analysis

    Computational Methods in Bayesian Analysis Computational Methods in Bayesian Analysis  [Markov chain ...