1.ESP8266简介
ESP8266是上海乐鑫信息科技设计的低功耗WiFi芯片,集成完整的TCP/IP协议栈和MCU。而ESP8266模块是深圳安信可公司基于ESP8266芯片研发(增加必要外围电路、串口flash、板载天线等)的串口WiFi模块,成本低、使用简便、功能强大。
和串口蓝牙模块一样,串口WiFi模块也是扩展单片机功能的又一神器。在没有接触8266之前,我对单片机如何联网的问题很是好奇,在书里看过用笨重繁琐的以太网模块实现,但一点都不帅好吧。而小巧的 ESP8266 WiFi模块通过串口AT指令与单片机通讯,实现串口透传,非常好上手。
esp8266可以用作很多用途,而我想把esp8266用做一个用于系统监视和数据处理的服务器转接口!
系统监视和数据处理这两个应用会在之后的博客中发布!
但是在开发这两个应用之前得先要对esp8266这个模块进行熟悉。
2.硬件结构
我使用的esp8266是正点原子的ATK-esp8266。样子长什么样我就不贴图了。
使用这个wifi模块非常简单,是通过串口进行通讯的。直接用USB转串口模块调试就可以了。
PS:像一般的调试用一些小模块然后配合上位机调试是很方便的。先要验证是不是可行然后再进行下一步。
3.运行机理
3.1 Warning
在讲这个运行机理之前,先说明一下,这个机理仅仅只是针对于ATK-esp8266。
3.2 机理
- esp8266最多能够接受5个客户端。ID0 ~ ID4
- 客户端不能一直占着茅坑不拉屎,超过最大服务时间就会把客户端踹开。并返回
ID,CLOSED\r\n 比如“0,CLOSED\r\n” - esp8266是通过串口与目标板卡进行数据交互和命令收发
- 最重要的一点:新加入的客户端被分配的ID号总是当前ID号列表中的最小的
以上,第四点是最重要的,我再说明一下:
假如有这样一种情况。
现在esp8266接待了5个客户端,他们的ID号分别为 ID0 ID1 ID2 ID3 ID4
但现在ID3 和 ID0这两个客户端退出了,不需要esp8266的服务了。那么此时,esp8266的服务列表中就只有 ID1 ID2 ID4
那么,如果此时又有一个新的用户进来了,那它被分配的ID号是什么呢?
答案是 : ID0
这个机理希望大家都能够自己亲自去验证,非常容易实现,顺便说一句:matlab非常好用,用一行命令就可以生成一个客户端,而不需要你自己去开多个网络调试助手。
PS:有的时候我发现,上位机其实是不能给很好的适用于任何场景,只能在某些特定的场景下可以适用,但是如果你对matlab和python编程的话,你就可以快速的调用相应的工具包,因此,我觉得,如果你向提高你的嵌入式开发效率,你真的需要学习一下matlab和python,建议两个都学,因为都是面向数据处理的语言,只是语法不同,组织代码块的形式不同。
4.快速搭建服务器
我在全网看了这么多篇博客,我发现他们都是以AP模式充当服务器。我觉得这其实是非常麻烦的一件事。
如果你用你电脑上的上位机与esp8266进行网络通信的话,前提是你的电脑要连入esp8266组好的局域网内,那你的电脑此时就不能给上网了,而你此时有需要查资料,那你怎么办。
因此,我觉得上面那种方法搭建服务器是非常愚蠢的。
你直接让esp8266连入你电脑连入的局域网,然后再建立服务器不就可以 了吗。
Attention
AT指令发送的时候记得加\r\n
4.1进入STA模式
AT+CWMODE=1
4.2复位
AT+RST
4.3获取附近能够连接上的wifi
AT+CWLAP
4.4找到你要接入的wifi,添加账号和密码
AT+CWJAP="s008","dianxin132"
4.5获取此时esp8266的IP地址
AT+CIFSR
Attention:记住这个IP地址,你访问esp8266的时候需要这个ip地址
4.6开启多通道模式
AT+CIPMUX=1
4.7开启服务器,设置服务端口
AT+CIPSERVER=1,1001
好了,你已经esp8266已经进入的服务器模式了,这个时候怎么验证呢,你怎么去找一个客户端去访问esp8266呢
- 使用网络调试工具
- 使用matlab创建客户端对象
5.esp8266的定位
esp8266并不是一个严格意义上的服务器,我更愿意把esp8266当作是一个前台小姐,它的作用是接待客户。每当有一个新的客户来享受服务的时候,前台小姐先问你需要什么服务,然后客户提出自己的需求,当前台小姐获知客户的需求之后,就把这个需求告诉仓库管理员(目标板卡),仓库管理员把相应的资料递给前台小姐,前台小姐再将资料给客户。
由于客户最多有5个,但是前台小姐只有一个,它一个人服务5个客户肯定是会忙不过来的,因此服务质量肯定会随着客户数量的增加而降低,并且前台小姐从仓库管理员获取资料,再把资料给客户这一个过程中,每一次拿的资料里量都是有限的。因此,客户端获取数据的速度在质量保证的情况下可能要低一点。
总结
本篇博文总的来说是介绍esp8266硬件知识,它的机理。我觉得上面一张图足以说明了esp8266为什么要加入到嵌入式平台。
在这个服务器搭建好之后,我想弄两个APP:
系统监视和数据处理
但是,现在只是把esp8266的最基本的机理解决完了接下来就是实现服务器了,下一篇博客将的就是esp8266服务器的实现。
|