前言
哈喽,大家好,由于我最近准备参加学校组织的一个学科竞赛,比赛的项目需要实现物联网的功能,因此我准备开始学习物联网的相关知识。由于自己搭建服务器比较繁琐,我们团队打算前期先使用中国移动的OneNet云平台实现设备数据上报。
按照项目规划,我们前期先通过使用STM32F407芯片搭配ESP8266WIFI模块通过AT指令的方式实现云平台物联网功能,后期根据项目需要再决定是否改为通过4G模块实现物联网。
写这篇博客主要是对我的学习过程进行记录,这样不仅方便自己以后进行回顾,而且还可以很方便的把文章分享给其他人一起交流学习。
一、ESP8266 WIFI模块学习基础入门
1.1 什么是ESP8266
ESP8266其实是由乐鑫公司推出的一款WIFI芯片,而国内的一些物联网公司基于乐鑫的ESP8266芯片开发出了许多WIFI模块,这些WIFI模块大多以ESP8266作为前缀命名,因此我们通常用ESP8266指ESP8266WIFI模块。
下图是我从乐鑫官网截取的图片,图中那个芯片就是ESP8266芯片,这颗芯片内部集成了很多电路,仅需要很少的外部器件就能实现WIFI联网功能。
我平常使用较多的ESP8266WIFI模块是国内安信可公司开发的,安信可公司开发的ESP8266WIFI模块有数十款,分为ESP-01、ESP-07、ESP-12三个系列,每个系列又包含不同的后缀进行细分,安信可公司这数十款WIFI模块的主芯片基本上都是乐鑫公司的ESP8266,不同型号间的主要区别是模块的尺寸、IO口数量、Flash容量大小,有的Flash是8Mbit而有的是32Mbit。这些型号间的具体区别如下图所示。
综上所述,其实ESP8266就是一个WIFI模块,通过这个WIFI模块可以让我们的单片机设备实现联网的功能,当我们的设备连上网络后,我们就可以在电脑端、手机端远程控制我们的设备,也可以远程查看我们的设备信息,当然这里边还涉及到很多的知识,不着急,在后边的课程里我们一起学习。
1.2 购买ESP8266开发板
为了学习ESP8266,我们需要先购买一块ESP8266WIFI模块开发板,如果直接在淘宝中搜索ESP8266,会有各种各样的店铺和各种各样的型号,对于初学者根本不清楚如何选择,这里我建议大家直接去安信可的淘宝店铺购买,并且建议大家购买CP1202版本 AT固件+USB数据线版本。
这里给大家说明一下我们为什么要买开发板而不是只购买一个模块,因为ESP8266模块与电脑或者单片机通信是通过串口的方式,因此需要USB转串口芯片,如果我们仅仅购买一个模块,还需要自己焊接杜邦线连接USB串口,为了提高效率,我们先买一个ESP8266开发板。并且由于我们自己家里的数据线质量参差不齐,这里建议大家直接购买带有数据线的版本。
在安信可的店铺中会发现有两款开发板可以选择,一款是CP2102另一款是CH340,它们的区别主要是USB转串口芯片不同,CH340串口芯片价格便宜,CP1202串口芯片价格稍贵,但是可靠性更好。我自己购买的是CP1202版本 AT固件+USB数据线版本,
1.3 安装串口驱动
需要注意的是,由于这两款开发板采用的串口芯片不同,因此大家需要根据自己开发板上的串口芯片安装不同的串口驱动。
如果开发板用的是CH340芯片,我们可以去沁恒的官网下载相应的CH340驱动
如果开发板采用的是CP2102串口芯片,我们可以去Silicon Labs官网下载CP2102驱动
双击下图中的驱动,即可安装CP2102的驱动。
这两个串口驱动我也放到了我的蓝奏云里,大家可以自行下载。
https://wwb.lanzoum.com/b03cyqexi 密码:g9y2
1.4 给ESP8266开发板烧录固件
下面我们对开发板烧录AT固件,此处烧录的是安信可官方的AT固件。其实开发板出厂的时候里边已经烧录了固件,但是为了学习如何烧录固件,我们亲自动手烧录一下。
step1:点击链接下载安信可AT固件
step2:点击链接下载固件烧录软件和安信可串口调试助手
step3:解压我们下载的安信可AT固件,我们烧录要使用第二个文件夹里的固件
step4:将开发板通过数据线连接到电脑,如果驱动安装的没有问题的话,就可以在电脑的设备管理器中找到我们的开发板对应的串口号,如图所示我的串口号是COM6。
step5:解压flash_download_tool_3.9.2_0软件,双击打开,chipType和wordMode不用改,直接打开软件即可
step6:打开后的界面如下图所示
step7:按照下图中的步骤进行设置,最后点击START开始烧录,烧录时开发板上的LED灯会闪烁,等待进度条走完即可完成固件烧录。
其实ESP8266有很多种开发方式,不同的开发方式需要不同的固件,本教程使用AT指令开发:
1)基于乐鑫官方的SDK二次开发
2)基于AT固件,使用AT指令开发
3)基于NodeMCU固件,使用的Lua脚本语言开发
4)使用Python脚本开发
5)使用Arduino IDE开发
1.5 通过串口助手测试我们的开发板
把ESP8266开发板通过数据线连接到电脑,打开我们下载的安信可串口调试助手,选择你的开发板对应的COM口,波特率选择115200,然后按下开发板上左侧的复位按键,串口助手则会收到消息,此时我们给开发板发送AT,开发板会回复OK,表示我们烧录的固件是正确,开发板已经正常工作。
时间原因,今天先更新第一部分,后续章节会开始学习一些基础的AT指令和网络协议,然后开始基于STM32F407移植中国移动OneNet的SDK,一步一步来,我最终的目标是要实现连接中国移动OneNet平台,后期会遇到什么问题和困难还不太清楚。
由于我们的比赛项目需要传输双目视觉摄像头的图像,通过ESP8266用通过串口发送图像数据感觉帧率会很低,后期可能会换成支持SDIO接口的WIFI模块或者4G模块。
我写的教程比较细节,应该比较容易看懂,大家有疑问的地方可以留言,教程中的每一步都是我自己尝试过可行的。有什么纰漏大家也可以留言指出。
今天先这样吧,现代数字信号处理课程快要结课考试了,得抽时间复习功课,下次有时间再更新吧。