在某宝买了一个ESP8266串口WiFi模块NodeMCU,在客服帮助指导下测试OK!下面自学AT指令功能:
Vol.01
✦
烧录固件
✦
首先下载固件并烧录,串口CH340驱动、固件bin文件/烧录软件都可以在网络上找到,客服也可以提供。
我觉得还是官网给的固件比较好!
安信可官网固件下载地址:
https://docs.ai-thinker.com/%E5%9B%BA%E4%BB%B6%E6%B1%87%E6%80%BB
烧录软件如图
Vol.02
✦
获取网络时间
✦
一般烧录完成后需要复位或重新上电。
注意选择正确的串口号(查看设备管理器)、波特率一般是115200,正常情况下打开串口,就可以发送了。
AT(返回OK)
AT+CWMODE=1
(设置为STATION接收模式)
AT+CWJAP="WiFi名称","WiFi密码"
(连接无线网络)
AT+CIPMUX=0
(设置为单连接模式) AT+CIPSTART="TCP","quan.suning.com",80
(建立通信连接,返回 CONNECT,成功连接服务器)
AT+CIPMODE=1
(开启透传模式)
AT+CIPSEND
(开始透传,返回ok换行>)
GET http://quan.suning.com/getSysTime.do HTTP/1.1
Host: quan.suning.com
(GET方法需要URL和http协议版本、主机名,我刷的固件后面必须有协议版本和主机名)
最后会返回
{"sysTime2":"2024-01-03 15:08:30","sysTime1":"20240103150830"}
很明显提取到“systime2”就可以定位时间数据了(至于前面无用的一坨数据如何取消,我也没搞懂,欢迎高手指点)。
结束透传模式需要发送不换行的+++。
时间戳API接口还有很多,例如
http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp
这个提供的是自1970年1月1日以来的毫秒数(很大很变态的一个数)。
Vol.03
✦
获取心知天气
✦
—————
(此处插播一条广告)
心知天气成立于2016年,隶属于北京心知科技有限公司,是国内领先的气象服务提供商,是中国气象局授权企业和国家级高新技术企业,致力于利用气象等自然界大数据和人工智能技术,帮助企业优化运营,提高收益,降低风险,助力人类绿色可持续发展。
心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案
https://www.seniverse.com/
关于使用心知服务的说明
https://docs.seniverse.com/api/start/start.html
登录心知天气网站免费注册申请,可以长期使用免费版(可以获取的信息较少,毕竟是免费的),获得API密钥(私钥),然后剩下的工作交给AT固件了。
AT+RST(初始化,我刷的固件可以重新连接WiFi)
AT+CIPSTART="TCP","api.seniverse.com",80
(建立通信连接,返回 CONNECT,成功连接服务器)
AT+CIPMODE=1
(开启透传模式)
AT+CIPSEND
(开始透传,返回ok换行>)
GET https://api.seniverse.com/v3/weather/now.json?key=你的密钥&location=qingdao&language=zh-Hans&unit=c
(我的密钥是免费的,此处就不分享了,可以明显看到我申请的是山东最大的城市青岛(qingdao Tsingtao Beer)的天气,zh-Hans中文简体)
返回数据:
{"results":[{"location":{"id":"WWMT5Q64CR3G","name":"青岛","country":"CN","path":"青岛,青岛,山东,中国","timezone":"Asia/Shanghai","timezone_offset":"+08:00"},"now":{"text":"晴","code":"0","temperature":"4"},"last_update":"2024-01-03T15:14:24+08:00"}]}
免费的数据确实不多,有用的只有“天气晴,温度4℃”。
作为爱好者可以入手DIY一下,后期准备加显示屏制作WiFi天气时钟。