ESP8266使用AT指令进行API访问

今天看到了一个有关使用 ESP8266的AT指令 的HTTP连接的demo,因此想拿来 访问API试一下,简单访问 心知天气 天气服务平台的地区天气接口 (万物基于API,你细品)

本文仅发布在CSDN 青云双青 和我的个人博客,其他地方出现均为搬运

需要准备的

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在线工具解析

Json解析

其实AT指令在这里就是与服务器建立了TCP连接,使用指令进行GET的访问形式来获取API对应的Json数据
你可以直接点击这个 链接测试,结果是相同的

总结

  • 借助AT指令的开发,在有时候对数据的获取会特别方便
  • 这个HTTP demo 的原理其实和浏览器访问是一样的
  • 你可以举一反三,可以再另借助单片机去 解析得到的Json数据,得到自己想要的数据
  • 也可以访问 Onenet的服务器 或者进行 BiliBili的粉丝数 的获取

本文使用MarkDown语法编辑,如有疑问可以私信或者在下方评论留言!

猜你喜欢

转载自blog.csdn.net/sinat_41690014/article/details/106183833