今天看到了一个有关使用
ESP8266的AT指令
的HTTP连接的demo,因此想拿来 访问API试一下,简单访问心知天气
天气服务平台的地区天气接口(万物基于API,你细品)
本文仅发布在CSDN 青云双青 和我的个人博客,其他地方出现均为搬运
需要准备的
- NodeMCU开发板一个
(ESP-12E)
- Flash Download Tools 烧录软件一个
- AT指令的固件
- 串口助手QCOM_V1.1
已经注册成功的心知天气的API接口一个(下面这个可以直接使用)
https://api.seniverse.com/v3/weather/now.json?key=SBHCbw5MrmOr6BLqN&location=nanjing&language=zh-Hans&unit=c
心知天气平台说明
心知致力于通过气象和环境大数据分析为企业提供气象信息产品和BI服务,帮助企业增强在不同天气和环境中赢利的能力。心知的团队核心成员来自微软、Google、京东、Frog Design等知名公司,心知天气正在为华为、中国航信、科勒、泰康人寿、中青旅、霍尼韦尔、大姨吗等上百家客户提供企业级的气象服务。
给8266烧录AT固件
a.将NodeMCU与PC连接,确定安装好 串口驱动
并且保证可以在设备管理器查看到端口号
b.打开 Flash Download Tools
烧录软件,选择 ESP8266
,然后按照下面的配置选择和烧录代码
c.选择的固件名称为
AiThinker_ESP8266_DOUT_32M-C1_0.0.0.7s_20170804.bin
d.下载地址为
0x0000
e.更多的信息如图,需要特别注意红框里面的内容要一致
d.点击烧录,等待完成即可,全程不用再对板子进行任何操作
烧录成功测试
让NodeMCU与PC相连,打开串口助手,设置波特率为 115200
,然后发送 AT+RST
,会收到下面的回复即为正常Ok
串口发送AT指令
这里仅给出AT指令的设置和对应的含义,对8266返回的代码不再说明
配置WiFi模组为单STA模式并保存
AT+CWMODE_DEF=1
配置要连接的AP的信息
AT+CWJAP_DEF="XXXX","XXXX"
使能上电自动连接AP
AT+CWAUTOCONN=1
建立到Host的80端口TCP连接
AT+CIPSTART="TCP","api.seniverse.com",80
设置透传
AT+CIPMODE=1
启动发送
AT+CIPSEND
访问请求格式 GET+ API 接口
GET https://api.seniverse.com/v3/weather/now.json?key=SBHCbw5MrmOr6BLqN&location=nanjing&language=zh-Hans&unit=c
- 按照顺序以此输入即可,如果指令有效则会返回
ok
- 如果使用普通的串口助手记得在指令后面添加
回车+换行
- 默认的波特率为
115200
执行结果
- 对于的到的数据判断是Json格式的数据,但是出现了乱码,可能是对汉字字符的不匹配,后续我再继续研究来解决这种问题
使用Json在线工具解析
其实AT指令在这里就是与服务器建立了TCP连接,使用指令进行GET的访问形式来获取API对应的Json数据
你可以直接点击这个 链接测试,结果是相同的
总结
- 借助AT指令的开发,在有时候对数据的获取会特别方便
- 这个HTTP demo 的原理其实和浏览器访问是一样的
- 你可以举一反三,可以再另借助单片机去
解析得到的Json数据
,得到自己想要的数据 - 也可以访问
Onenet的服务器
或者进行BiliBili的粉丝数
的获取
本文使用MarkDown语法编辑,如有疑问可以私信或者在下方评论留言!