ESP8266之硬件机理

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呢

  1. 使用网络调试工具
  2. 使用matlab创建客户端对象

5.esp8266的定位

esp8266并不是一个严格意义上的服务器,我更愿意把esp8266当作是一个前台小姐,它的作用是接待客户。每当有一个新的客户来享受服务的时候,前台小姐先问你需要什么服务,然后客户提出自己的需求,当前台小姐获知客户的需求之后,就把这个需求告诉仓库管理员(目标板卡),仓库管理员把相应的资料递给前台小姐,前台小姐再将资料给客户。

由于客户最多有5个,但是前台小姐只有一个,它一个人服务5个客户肯定是会忙不过来的,因此服务质量肯定会随着客户数量的增加而降低,并且前台小姐从仓库管理员获取资料,再把资料给客户这一个过程中,每一次拿的资料里量都是有限的。因此,客户端获取数据的速度在质量保证的情况下可能要低一点。

总结

本篇博文总的来说是介绍esp8266硬件知识,它的机理。我觉得上面一张图足以说明了esp8266为什么要加入到嵌入式平台。

在这个服务器搭建好之后,我想弄两个APP:

系统监视和数据处理

但是,现在只是把esp8266的最基本的机理解决完了接下来就是实现服务器了,下一篇博客将的就是esp8266服务器的实现。

Guess you like

Origin blog.csdn.net/qq_46359697/article/details/120328052