本文是百问网七天物联网智能家居训练营学习笔记,官网链接。
1 ESP8266
本文要使用的wifi模块为ESP8266,我们直接使用官方提供的固件即可,无须单独开发。直接通过串口和wifi模块进行通信,所以这里主要使用AT指令,下面我们简单了解下AT指令:
AT 指令可以细分为四种类型:
- 测试指令 AT+=? 该命令⽤于该命令⽤于查询设置指令的参数以及取值范围。
- 查询指令 AT+? 该命令⽤于返回参数的当前值。
- 设置指令 AT+=<…> 该命令⽤于设置⽤户⾃定义的参数值。
- 执⾏指令 AT+ 该命令⽤于执⾏受模块内部程序控制的变参数不可变的功能。
当然还要注意:
- 不是每条 AT 指令都具备上述 4 种类型的命令。
- 括号内为缺省值,不必填写或者可能不显示。
- 使⽤双引号表示字符串数据 ”string”,例如:AT+CWSAP=“ESP756290”,“21030826”,1,4
- 默认波特率为 115200。
- AT 指令必须⼤写,并且以回⻋换⾏符结尾(CR LF)。
2 网络基础
下面简要的介绍下网络基础相关的知识。
IP地址:
IP地址是一个32位的地址,比如192.168.1.1。如果我们要通过互联网访问一个IP地址,那么这个IP地址要是公网IP地址才行(NAT方式也可以,不过是另一种情况了)。
下面看一下端口的概念:
我们可以通过IP地址找到某一台特定的主机,但是这台主机上有很多应用,这时候我们就需要端口号来找到这个具体的应用。所以在网络通信中,我们都是通过IP地址+端口号的方式进行确定。
下面来看下TCP和UDP:
TCP是面向连接的,意味着我们的数据会被可靠的送达;而UDP是无连接的,也就是说UDP只负责发数据出去,至于数据是否正确、可靠的送达,UDP是不管的,这需要我们在应用层进行处理。正因为这种特性,所以UDP的效率要比TCP高,一般在实时性的场景我们通常会使用UDP。而在要求可靠传输的场景,我们会使用TCP。
3 TCP连接流程
TCP连接流程如下: