之前寒假期间趁着有时间学习了一下物联网的基础器件——ESP8266 WiFi模块,即上面的前期教程,没想到看得人不少,挺多人收藏了,可见物联网的火热~
最近在做一个小物件,想要在里面添加WiFi模块,实现联网获取实时时间,这算是很普通的需求,而且网上相关的资料也是一大把。但是当我翻开自己写的博客时,突然发现写得有点不太详细(估计是当时正值假期尾声~),很多内容只是一个概述,而且感觉给出的资料有点乱,对于完全没有接触过的人来说看起来还是有点费劲的,于是想着再补一遍博客,老规矩,尝试“授人与渔”。
对于硬件学习,我最推荐的就是自己去官网找资料,而不是疯狂地找各种博客,因为很有可能出现资料下了一大堆,结果能用的却没几个的尴尬情况。官网资料最主要的好处就是全且新。
对于ESP8266(或者ESP32)来说,一般说的官网有这么几个:
对于这几家,乐鑫是做芯片的,其ESP8266EX芯片据说是物联网领域里程碑式的突破,将搭载WiFi的成本大大降低,而其他的商家则是基于这个芯片开发固件并组装系统,也就有了模组(即那个板载天线引脚是小缺口的小板子)和开发板。当然,现在乐鑫也有它的模组和开发板。
所以,很显然,如果买来一个开发板或模组,首要的肯定是找开发板或模组的厂家给出的资料,如果是固件开发和代码编写的话,就得要参考芯片厂家资料了。
现在,你已经掌握了资料查找的方法,所以建议首先将开发板或模组的手册通读一遍,建立基本印象。
在上一篇博客里面,我重点区分了一些常见(且我有的)WiFi模块,但实际上更应该区分的是芯片的型号,基于同样的芯片的不同型号的模组,一般来说大同小异,基本能够支持相同的固件烧录。

友情提示:这个链接的资料非常完善,建议反复阅读。

这一块本人实践不多,不再多讨论,以后有机会继续更新!
区分完了型号,确定了手里拿着的到底是啥板子,接下来就是根据需求确定开发方式了,这里也需要根据板子的型号来选择。
ESP8266的开发方式非常多。但是其本质就是编写能够在ESP8266中运行的代码,最后生成一个bin文件,烧录到ESP8266中,因为ESP8266本身就是一个单片机,但是这个单片机可以有多个集成开发环境,下面一一介绍。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
个人觉得使用Arduino开发入门的最快方法就是看它附带的例程
一般我们常用的AT指令是统一的,都是参考乐鑫官方的AT指令,这个是链接,可以作为AT指令使用的参考。所以如果AT指令没有响应不要去找与固件相对应的AT指令,而应该马上换固件。
关于AT固件,只推荐乐鑫官方和安信可官方的固件,不过需要注意的是,下载的固件大小要和ESP8266型号相对应,一般就是两种:1M的固件对应8Mbit的EEPROM;4M的固件对应32Mbit的EEPROM,这个也是在使用FLASH DOWNLOAD TOOLS下载固件时需要设置的参数。至于型号的EEPROM的大小可以参考安信可的官方选型表,链接还是上面那个安信可官网。

使用AT指令的时候,后面一定要加换行,或者\r\n,如果是在使用过程中需要传数据,就不需要加换行,而且AT指令在返回时还会重复一遍AT指令,使用时不要觉得奇怪。
前面提到,ESP8285是自带FLASH的ESP8266EX,代表的产品系列就是四博智联的DT-06和ESP-M系列,虽然官方给了很多烧录固件的方法,但不知道为啥给的都是ESP-12的附图,总之烧录固件就没成功过,令人迷惑。最终我得出的结论就是,DT-06和ESP-M系列的WiFi模块是TTL-WiFi,这也是他们数据手册的大标题,也就意味着它不能组网!!! 最明显的体现就是它不能烧录固件,只能用它自带的固件,而且支持的所谓AT指令也仅有几条而已,它的设置方法是登录一个网站,然后在网站中设置,具体操作建议参考官方的手册,总而言之,DT-06和ESP-M系列WiFi为TTL-WiFi,主要作用是串口透传。基本可以和HC-05的蓝牙模块划等号。
说了这么多,最后回到本次的需求上来:通过ESP8266联网实现实时网络时间的获取。这个网上的资料很多,这里给两个教程链接:
然后总结几个要点: