本帖最后由 ylyfxzsx 于 2020-2-16 13:02 编辑
研究了二天ESP8266,记录一下过程,力争本贴作为小白的教学贴,哪怕你从来没有编程基础,也可以快速上手。
网上很多的ESP8266都是刷的AT固件,采用AT指令和MCU交换信息,我觉得MCU的负荷太大,刷Node MCU的固件完全可以解放MCU。
我的思路是MCU只需要接收ESP8266发送的串口信息,截取文本,显示,MCU的鸭梨就小了,好勒,废话不说,开始主题
首先得有个ESP8266的模块,我的是这样的
接下来,定制固件,https://nodemcu-build.com/
然后一会儿就会收到网站发过来给你编译好的固件,float和integer的区别是支持浮点数
然后接上node mcu ESP8266 模块,打开ESP8266固件下载工具 flash_download_tools_v3.6.5
升级完成后,复位模块,可以看到串口输出信息
LUA版本5.1.4 SDK3.0.1 固件网站给的各种API函数接口的使用,非常详尽,稍微阅读下即可上手
https://github.com/nodemcu/nodemcu-firmware/tree/master/docs/modules
好了,接下来我们开始进行LUA编程,先下载一个 Esplorer,然后连接上模块,因为我们还没有编写应用文件,所以提示
“lua: cannot open init.lua”
那么接下来写个最简单的控制GPIO点亮LED的LUA指令,点击发送到ESP看看效果
点击保存到ESP,就下载进入ESP8266内部模块了
至此,框架是搭起来了,至于NodeMcu LUA的语法和编程,自己去看我上面给的API函数文档,我就不罗嗦了,现在我们要干嘛呢,找提供天气接口函数的服务商给我们调用,我这里用的是心知天气
https://www.seniverse.com/
注册账号,然后我们用免费的就行了,会得到一个密匙key
心知天气的http天气获取url
https://api.thinkpage.cn/v3/weather/now.json?key= &location= &language=en
加上 -Hans&unit=c 会有中文显示
我们用https://api.thinkpage.cn/v3/weather/now.json?key=&location=&language=en
就行了,上面url中 key= 后面填写你自己申请的key location= 后面填写你自己的城市拼音
输入好后可以自己先在浏览器测试下:
例如 :https://api.thinkpage.cn/v3/weather/now.json?key=24qbvr1mjsnukavo&location=beijing&language=en
不出意外的话浏览器返回一串天气信息,如下图,有些地级市可能没有数据,那么你在 location= 后面换成比你所在城市更大一点的城市再测试下即可
好了,天气数据的接口有了,下一步就是怎么让ESP8266模块通过WiFi 自动连接网络,通过http请求天气数据,然后串口输出了
编写好LUA指令后串口效果如下
采用串口助手试试,效果完美