(1)使用串口发送指令AT+CWMODE=3设置模块Wi-Fi应用模式为sttaion&ap模式
(2)发送指令AT+RST重启模块使应用模式更改生效
(3)发送指令AT+CWJAP =“热点名称”,“热点密码” 连接AP
(4)发送指令AT+CIPMUX=0设置模块为单路连接模式,模块默认为单路连接模式
(5)发送指令AT+CIPSTART=“TCP”," api.seniverse.com",80 与服务器建立TCP连接." api.seniverse.com"为第一步获取的的IP地址,即指令为:AT+CIPSTART=“TCP”,“116.62.81.138”,80
(6)发送指令AT+CIPMODE=1设置模块传输模式为透传模式
(7)发送指令AT+CIPSEND开启透传模式向服务器发送数据,模块收到此指令后先换行后返回“>”
(8)剩下只需要发送 GET https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=zhanjiang&language=zh-Hans&unit=c,就能获取到天气信息了。
(1)获取湛江当天天气信息
https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=zhanjiang&language=zh-Hans&unit=c
AT指令发送:
GET https://api.seniverse.com/v3/weather/now.json?key=smtq3n0ixdggurox&location=zhanjiang&language=zh-Hans&unit=c
返回内容:
{“results”:[{“location”:{“id”:“WX4FBXXFKE4F”,“name”:“鍖椾含”,“country”:“CN”,“path”:“鍖椾含,鍖椾含,涓浗”,“timezone”:“Asia/Shanghai”,“timezone_offset”:"+08:00"},“now”:{“text”:“鏅?”,“code”:“1”,“temperature”:“1”},“last_update”:“2019-12-04T20:40:00+08:00”}]}
(2)返回湛江近3天天气信息
https://api.seniverse.com/v3/weather/daily.json?key=rrpd2zmqkpwlsckt&location=zhanjiang&language=en&unit=c&start=0&days=3
AT指令发送:
GET https://api.seniverse.com/v3/weather/daily.json?key=rrpd2zmqkpwlsckt&location=guangzhou&language=en&unit=c&start=0&days=3
返回内容:
{“results”:[{“location”:{“id”:“WS0E9D8WN298”,“name”:“Guangzhou”,“country”:“CN”,“path”:“Guangzhou,Guangzhou,Guangdong,China”,“timezone”:“Asia/Shanghai”,“timezone_offset”:"+08:00"},“daily”:[{“date”:“2019-12-04”,“text_day”:“Cloudy”,“code_day”:“4”,“text_night”:“Cloudy”,“code_night”:“4”,“high”:“22”,“low”:“12”,“precip”:"",“wind_direction”:“N”,“wind_direction_degree”:“0”,“wind_speed”:“25.20”,“wind_scale”:“4”,“humidity”:“21”},{“date”:“2019-12-05”,“text_day”:“Overcast”,“code_day”:“9”,“text_night”:“Cloudy”,“code_night”:“4”,“high”:“16”,“low”:“11”,“precip”:"",“wind_direction”:“CLM”,“wind_direction_degree”:“0”,“wind_speed”:“34.20”,“wind_scale”:“5”,“humidity”:“26”},{“date”:“2019-12-06”,“text_day”:“Cloudy”,“code_day”:“4”,“text_night”:“Clear”,“code_night”:“1”,“high”:“19”,“low”:“9”,“precip”:"",“wind_direction”:“CLM”,“wind_direction_degree”:“16”,“wind_speed”:“34.20”,“wind_scale”:“5”,“humidity”:“24”}],“last_update”:“2019-12-04T17:23:50+08:00”}]}
4.遇到的问题
如第三步所示,不同情况下,调试助手返回的数据格式不同,不知道为什么获取当天天气信息的那个方法返回的数据是乱码的,获取三天内的天气预报的话返回的数据又是正常的。
5.查阅资料及解决方法
(1)若返回的数据是乱码的话,是因为API返回的数据是json格式的,可以通过在浏览器中打开请求地址,便能自动解析json格式,看到正常的返回数据,并在网页上显示中文内容
(2)在单片机写程序调用cjson库对返回的数据进行解析即可