这篇文章会具体描写叙述如何马上得到指定城市的天气状况(比方首尔)。由OpenWeatherMap提供。
用JSON(由OpenWeatherMap提供),XML和一个以太网模块。使WIZnet-WizFi250执行起来。
首先,在OpenWeatherMap上检查API内容。
由城市的名称调用。API用一列结果应答。来匹配一个搜索词。
在JSON中:
api.openweathermap.org/data/2.5/weather?q=London,uk //代码效果参考:http://www.lyjsj.net.cn/wz/art_24023.html
在XML:api.openweathermap.org/data/2.5/weather?q=London&mode=xml
然后,尾随上面的指导。在电脑上将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
KR
0
AT+SMGMT=ALL
【DISCONNECT 0】 【OK】
欢迎登陆WIZnet官方站点:
WIZnet官方博客: