在基本确定本次跳槽方向——物联网,终于下定决心从最基本且最具代表性的WIFI下手,从某宝上买了NodeMCU(一款易于开发的开源物联网平台),该模块插即用即刷,是一块非常适合新手入门的模块。
一、NodeMCU
NodeMCU集成了ESP8266和串口烧录模块(CH340或CP2102),使用前电脑上需要安装对应的串口驱动。
二、刷写AT固件
采用固件刷写工具【乐鑫(固件烧录工具)flash_download_tools_v3.6.4】,原安信可AT固件【v1.3.0.2 AT Firmware.bin 】。
1、打开固件烧录工具,因为该模组使用的芯片是ESP8266,因此选择ESP8266 DownloadTool。
2、为避免固件烧写失败,先进行擦除动作。设置下载参数:波特率115200,选择对应COM口(通过设备管理器查看当前COM口),FLASH SIZE选择32Mbit。点击ERAZE等待擦除完毕。
3、正式下载固件。和2设置相同参数。点击按键【…】,选择要下载的固件(文件类型为.bin),起始地址默认0x00000,注意前面的对勾要打上,点击按键【START】开始下载。等待几分钟,显示FINISH,表示固件烧录完毕。
三、AT命令调试
先贴上ESP8266官方AT指令集。包括基础AT 指令、Wi-Fi 相关 AT 指令和 TCP/IP 相关的AT 指令等。
串口调试工具:sscom5.13.1.exe。可自动识别COM口(记得此时要把之前的固件下载软件关掉退出,防止抢占),波特率115200,勾选【加回车换行】,自动对发送的命令加回车。
1、AT指令用法简介
按照AT指令属性分类,包括:测试指令、查询指令、设置指令、执行指令。
指令类型 | 指令格式 | 作用 |
---|---|---|
测试指令 | AT+[x]=? | 用于查询设置指令的参数以及取值范围 |
查询指令 | AT+[x] | 用于返回参数的当前值 |
设置指令 | AT+[x]=<…> | 用于用户修改自定义参数 |
执行指令 | AT+[x] | 用于执行受内部程序控制的变参数不可变的功能 |
2、基础AT指令调试
1)AT—测试启动。
发送AT指令,收到OK回复表示固件烧写成功,并且正常运行。
2)AT+RST—重启模块。
发送AT+RST指令,收到OK以及boot信息。ps:因AT固件强制波特率115200,而ESP8266默认波特率为74880,上电或指令复位时出现的部分乱码,只要最后显示ready或invalid均为正常。
3)AT+GMR—查询版本信息。
发送AT+GMR指令,收到AT版本、SDK版本、编译时间以及最后OK应答。
3、WIFI相关AT指令调试
1)AT+CWMODE_DEF—设置WIFI工作模式(STA/AP/STA+AP),并保存到Flash。
例如发送AT+CWMODE_DEF=1,设置为Station模式。
2)AT+CWJAP_DEF—连接 AP,并保存到 Flash。
例如发送AT+CWJAP_DEF=“iPhone”,“SeakyYjq@” 。
至此,NodeMCU已连接到热点,调试成功一半,哈哈。
4、TCP/IP 相关AT指令调试
1)AT+CIPSTATUS—查询网络连接信息
2)AT+CIFSR—查询本地 IP 地址
3)AT+CIPSTART—建立 TCP 连接,UDP 传输或 SSL 连接
例如发送AT+CIPSTART=“TCP”,“www.baidu.com”,80。参数分别代表连接类型、远端IP地址、TCP keep-alive侦测时间,单位s。
4)AT+CIPMODE—设置传输模式,本设置不保存到 Flash。
例如发送AT+CIPMODE=1,设置透传模式。透传模式传输时,如果连接断开,ESP8266 会不停尝试重连,此时单独输入 +++ 退出透传,则停止重连。
这里有个疑惑,再次打开AP,为什么自动重连怎么成功不了???
5)AT+CIPSEND—发送数据
透传模式下,发送AT+CIPSEND,开始发送数据请求。收到后换行返回>。
6)AT+CIPCLOSE—关闭 TCP/UDP/SSL 传输(当连接上一个网站时,尝试和另一个网站建立TCP连接会出错,需要先断开现有连接再建立新连接)
四、总结
本篇主要NodeMCU的固件烧录以及基于ESP8266的AT指令调试。第一次写博客,写的有点生硬,文中若有不对的地方,请多多指教,感谢。