物联网---ESP32

2024-08-27 05:52
文章标签 esp32 联网

本文主要是介绍物联网---ESP32,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

物联网---ESP32

  • 一、TCP/IP协议(互联网协议)
  • 二、MQTT协议(通信协议)
    • 2.1 MQTT基本原理
    • 2.2 连接MQTT服务端
  • 三、ESP32
    • 3.1 ESP介绍
    • 3.2 ESP32连接云端
      • 3.2.1 ESP32连接WIFI/MQTT
      • 3.2.2 OneNET云端

一、TCP/IP协议(互联网协议)

  • TCP/IP是一组用于互联网及其他网络中数据传输的通信协议。它定义了如何将数据从一台计算机发送到另一台计算机,包括数据的格式、传输方法以及如何确保数据的完整性和可靠性
  • TCP/IP通常被描述成四层模型

  1.应用层:提供应用程序间的通信和数据交换服务。常见的应用层协议有HTTP、FTP、SMTP、DNS等
  2.传输层:提供端到端的通信服务,确保数据能够可靠地从源主机传输到目标主机。主要的传输层协议是TCP(稳定)和UDP(快)
  3.网络层:负责数据包路由选择传输,确保数据能够从源主机传输到目标主机。主要是IP(地址)

  IP地址目前分为IPv4和IPv6,v4是由4个十进制数字组成,v6是由8个十六进制组成
  在局域网中,路由器通过WIFI连接到PC、移动端和ESP8266,路由器会给每个设备分配一个IP地址(局域网的IP地址),当路由器连接到网络服务器时,例如电信、联通等,就可以实现上网
  网关的作用就是负责将互联网连接到各个设备

在这里插入图片描述

  4.链路层(网络接口层):负责在物理网络上传输数据帧,定义了如何在本地网络中传输数据。包括以太网、WIFI等协议

二、MQTT协议(通信协议)

  • MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议
  • MQTT特点:相互可独立空间可分离时间可异步

2.1 MQTT基本原理

  MQTT客户端首先将数据发送给MQTT服务器,然后MQTT服务器保存必要的数据,再把信息发送给其他客户端
  主题和订阅:当客户端发布主题信息后,当有其他客户端订阅了某主题的信息,MQTT服务器就会把主题信息发送给订阅过的客户端

  如下图所示,汽车客户端向服务端发送主题“汽车速度”的信息,手机和PC端订阅了主题“汽车速度”信息,然后MQTT服务器发送数据

在这里插入图片描述

2.2 连接MQTT服务端

  • MQTT客户端之间要想实现通讯,无论是发布消息还是订阅消息,必须要通过MQTT服务器
  • 连接MQTT服务端步骤

  1.客户端向服务端发送连接请求
  客户端向服务端发送一个CONNECT数据包

在这里插入图片描述

  下图是CONNECT数据包(报文)内容

在这里插入图片描述

  2.服务端向客户端发送连接确认
  服务端向客户端发送一个CONNACK的数据包

在这里插入图片描述

  下图是CONNACK数据包的内容

在这里插入图片描述

三、ESP32

3.1 ESP介绍

  • ESP32是一款无线通信单片机,有32位处理器,内置SRAM闪存2.2V-3.6V供电,支持WIFI蓝牙,时钟为26MHz32KHz晶振,包括GPIO、UART、SPI、I2C、PWM、ADC等外设
  • 固件下载方式主要是UART下载
  • 网络协议是IPv4、IPv6、TCP/UDP/HTTP/MQTT
  • 用户配置方式有AT+指令集云端服务器安卓/IOS APP
  • 开发ESP32主要使用的环境是ESP-IDF和Arduino IDE两种

  下图为ESP32管脚布局,具体芯片有所不同,但大致一样
  其中EN为芯片使能,高电平有效,GND接地,VCC接3.3V电压,剩余引脚包括GPIO、串口、ADC管脚等,具体见ESP32用户手册

在这里插入图片描述

3.2 ESP32连接云端

  • ESP32和STM32之间的数据收发方式包括串口、I2C、SPI等
  • ESP32连接WIFI的三种模式:STAAPAPSTA
  • STA(station):此种模式下,设备本身不接受无线的接入,可以看作是一个终端站点设备,是一个客户端,处在STA模式下的设备,可以连接到AP节点进行网络访问,STA模式下的设备之间的通信可以通过AP进行转发实现。例如手机、平板连接到路由器
  • AP:无线接入点,是一个无线网络的中心节点,可以看作是一个服务器,提供无线接入服务,其他无线设备允许接入该节点,所有接入该节点设备的无线信号数据都要通过它才能进行交换和相互访问,例如无线路由器、热点就是工作在AP模式下
  • APSTA:此模式是一种混合模式,指的是设备在工作时,同时支持AP和STA模式,AP和STA的特性可以同时进行

3.2.1 ESP32连接WIFI/MQTT

  下面是STM32通过串口通信发送AT指令来控制ESP32连接WIFI

ESP32_SendCmd("AT+RST\r\n", "OK")//复位,保证ESP32从一个已知的状态开始
ESP32_SendCmd("AT+CWMODE=1\r\n", "OK")//设置WIFI模式:STA
ESP32_SendCmd("AT+CWDHCP=1,1\r\n", "OK")//开启DHCP,使得ESP32从路由器中获取IP地址
ESP32_SendCmd("AT+CWJAP=\"abc\",\"abc123456\"\r\n", "GOT IP")//连接指定的WIFI:网络名称+密码

  下面是STM32通过串口通信发送AT指令来控制ESP32连接到MQTT服务器
  连接MQTT服务器之前,确保ESP32已经连接到WIFI并获得了有效的IP地址

ESP32_SendCmd("AT+CIPSTART=\"TCP\",\"mqtts.heclouds.com\",1883\r\n", "CONNECT")//AT+CIPSTART=<type>,<remote_addr>,<remote_port>:指定协议类型TCP/UDP 远程服务器地址:IP地址或者域名 服务器端口号

3.2.2 OneNET云端

  • 登录OneNET官网,点击开发者中心产品开发创建产品

在这里插入图片描述

  • 选择其他行业设备接入

在这里插入图片描述

  • 产品开发设置物模型添加自定义功能点,将需要的元素逐个添加即可

在这里插入图片描述

  • 设备管理添加设备
  • 创建产品下的所有设备都会有创建的属性,例如上面的温度,数据就以属性的方式上传

在这里插入图片描述

在这里插入图片描述

  • 登录设备(登录OneNET)
  • ESP32接入OneENT步骤:生成Token连接MQTT消息组包(将MQTT协议包发送给ESP32,ESP32转发给MQTT服务器)

在这里插入图片描述

在这里插入图片描述

  • ESP32上传数据

  • OneNET平台订阅MQTT主题,ESP32向主题发送消息(温湿度等),OneNET收到消息,所有发送给主题的消息都认定为属性上报,OneNET解析属性,执行操作,保存到平台

  • 上传主题为:$sys/{pid}/{device-name}/thing/property/post:产品ID和设备名称
    在这里插入图片描述

  • OneNET下发命令

  • ESP32需要订阅主题才可以收到OneNET平台下发的数据

  • 下发主题为$sys/{pid}/{device-name}/thing/property/set,产品ID和设备名称

这篇关于物联网---ESP32的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110817

相关文章

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

4G模块、WIFI模块、NBIOT模块通过AT指令连接华为云物联网服务器(MQTT协议)

MQTT协议概述 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,它被设计用来提供一对多的消息分发和应用之间的通讯,尤其适用于远程位置的设备和高延迟或低带宽的网络。MQTT协议基于客户端-服务器架构,客户端可以订阅任意数量的主题,并可以发布消息到这些主题。服务器(通常称为MQTT Broker)则负责接受来自客户端的连接请求,并转发消

WIN11 ESP32 IDF + VSCODE 环境搭建[教程向]

前言 目录 前言 安装ESP32-IDF VSCODE插件安装 编译测试 很多时候我们想学习一门新的技能,需要使用全新的开发环境,很多时候我们会在安装环境这个环节卡住很久,这里简单介绍一下ESP32+VSCODE环境搭建。 安装ESP32-IDF https://dl.espressif.cn/dl/esp-idf/?idf=4.4 直接复制上面链接,进入idf下载界面。

物联网——DMA+AD多通道

DMA简介 存储器映像 某些数据在运行时不会发生变化,则设置为常量,存在Flash存储器中,节省运行内存的空间 DMA结构图 DMA访问权限高于cpu 结构要素 软件触发源:存储器到存储器传输完成后,计数器清零 硬件触发源:ADC、定时器、串口 重写计数器时,需关闭DMA DMA请求 数据宽度与对齐 目标宽度小于传输带宽:高位补零,反之,舍弃高位 数据转运与D

智能交通系统如何利用大数据、云计算和物联网技术优化交通流量、减少拥堵|智能交通系统|大数据|云计算|物联网|交通流量优化|减少拥堵

目录 1. 智能交通系统的定义与构成 1.1 智能交通系统的组成 1.2 智能交通系统的目标 2. 大数据技术在智能交通中的应用 2.1 交通数据采集与分析 2.2 实时交通监控与预测 3. 云计算在智能交通中的作用 3.1 云平台的数据处理能力 3.2 云计算的弹性扩展 4. 物联网技术在智能交通中的应用 4.1 智能信号灯控制系统 4.2 智能停车系统 5. 智能交通

物联网——模拟与数字转换器(ADC)

ADC(常用于信号发生器,音频解码器) 逐次逼近型ADC 利用逐次逼近寄存器SAR,二分法逼近未知电压,直到外部输入电压与输出电压保持一致:例如0~225V每次去中间值作为判断电压,逐次二分 stm32的ADC模块 规则通道一次只能选一个数据寄存器,通常搭配DMA使用; 注入通道一次能选4个数据寄存器存相应数值 ADC基本结构 ADC引脚复用 双ADC模式(同步采样

物联网-标识定位

标识技术 一维条码 商品条码-UPC EAN ISBN码 977-期刊ISSN 二维码

Class4——Esp32|Thonny两种方式同过电脑控制LED灯,路由器与电脑自带热点连接ESP32

上一节我们通过路由器和设备创建了连接,不懂可按上节配置 Class3——Esp32|Thonny——网络连接主机-wifi连接(源代码带教程)-CSDN博客文章浏览阅读57次。Esp32|Thonny网络连接主机-wifi连接(源代码带教程)https://blog.csdn.net/m0_66701835/article/details/141960572?spm=1001.2014.3001

828华为云征文|华为云Flexus X实例部署开源物联网平台ThingsBoard

背景 最近购买了一台华为云的Flexus X实例,这两天正在装一些软件,顺便记录一下华为云的Flexus X实例的使用体验和常用软件的安装过程。 什么是华为云Flexus X实例 Flexus云服务器X实例 是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用于电商直播、企业建站、开发测试环境、游戏服务器、音视频服务等中低负载场景。 该实例主要有四方面的特征 柔性算

物联网之ESP32控制舵机、通过网页设置舵机角度、Web服务、舵机原理、接线、Arduino、WiFi、Http

MENU 前言原理硬件电路设计软件程序设计LEDC输出PWM信号使用第三方库控制舵机网页控制舵机 前言 舵机在电子产品中非常常见,比如四足机器人、固定翼航模等都有应用,因此学习舵机对电子制作非常有意义。本文章使用Arguino的PWM对SG90舵机旋转角度控制。 原理 舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机只