前言

学习教程:B站太极创客,原教程采用的开发板为ESP8266,开发环境Arduino

本人使用开发板:ESP32S3,开发环境Vscode中的platformio,框架为Arduino

乐鑫科技:ESPRESSIF

注意:引脚输入电压不能超过3.3V

互联网基础知识

物联网是在互联网的基础上的应用

互联网协议:TCP/IP协议

TCP/IP包含以下协议:

  • 应用层:HTTP、FTP、mDNS、WebSocket、OSC
    DNS服务器:把网址转化为IP地址
  • 传输层:TCP、UDP
    TCP协议:稳定,可以保证所有数据都能被接收端接收,数据的传输顺序不会被打乱,传输数据如有损坏则重发受损数据。应用领域:电子邮件、文件传输,缺点:传输速度比较慢
    UDP协议:比TCP速度块,但是不能保证所有数据都能被接收端接收,数据一旦受损,UDP协议将抛弃受损数据,有数据损坏不会重发受损数据。应用领域:在线语音/视频,网游
  • 网络层:IP,IP协议版本IPV4(4个10进制组成,192.168.0.3),IPV6(8组16进制组成)
    电脑查看IP地址的方法:在控制端输入 ipconfig 命令
    默认网关:wifi路由器的IP地址
  • 链路层(网络接口层):Ethernet、Wi-Fi,主要作用是实现设备之间的物理链接(WIFI)

HTTP协议

由请求和响应两部分组成

(1)请求

tcp物联网 物联网tcp/ip_ESP32

HTTP1.0定义了三种请求方法:GET(读取)、POST(发送)和HEAD

HTTP1.1新增了五种请求方法:OPTIONS、PUT、DELETE、TRACE、CONNECT

 

tcp物联网 物联网tcp/ip_ESP32_02

 (2)响应

tcp物联网 物联网tcp/ip_物联网_03

响应状态码200,代表连接成功,404代表连接失败

常见的服务器状态码:

100~199:成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。

200~299:成功接收请求并已完成整个处理过程。常用200

300~399:完成请求,客户需进一步细化请求。

400~499:客户端的请求有错误,常用404和403(403的含义是权限不够,服务器拒绝访问。)

500~599:服务器端出现错误,常用500

 

tcp物联网 物联网tcp/ip_物联网_04

tcp物联网 物联网tcp/ip_tcp物联网_05

 

tcp物联网 物联网tcp/ip_tcp物联网_06

ESP32的三种工作模式

(1)接入点模式:建立WIFI网络

tcp物联网 物联网tcp/ip_数据_07

无线终端模式:Wireless Station,连接WIFI路由器

tcp物联网 物联网tcp/ip_ESP32_08

      

tcp物联网 物联网tcp/ip_数据_09

混合模式:AP+STA

tcp物联网 物联网tcp/ip_物联网_10

 ESP32物联网开发基础

使用无线终端模式,自动连接最强wifi网络

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>

WiFiMulti wifiMulti;

void setup()
{
  Serial.begin(115200); // 启动串口通讯
  wifiMulti.addAP("613专属", "613613613");
  wifiMulti.addAP("leisure", "shadow27");

  Serial.println("Connecting to... ");

  /*等待wifi连接*/
  int i = 0;
  while (wifiMulti.run() != WL_CONNECTED)
  {
    delay(1000);
    Serial.print(i++);
    Serial.print(' ');
  }

  Serial.println('\n'); // WiFi连接成功后
  Serial.print("Connected to ");
  Serial.println(WiFi.SSID()); // 连接的WiFI名称
  Serial.print("IP address:\t");
  Serial.println(WiFi.localIP()); // NodeMCU的IP地址
}

void loop()
{
}