ESP8622物联网基础

小白能懂:嵌入式进阶:RTOS嵌入式系统框架

第一章 嵌入式常用裸机编程框架
第二章 面向对象编程基础
第三章 ESP8622物联网基础



前言

学习韦东山老师的七天物联网实战及直播课相关内容,以其课程笔记为骨,记录一下学习的过程,可能会加入一些自己的感想。
最后欢迎点赞、收藏与评论交流!


本文主要介绍一些物联网的基础,通过ESP2822模块完成,主要内容包括:AT指令,网络基础,UDP连接及stm32相应的程序框架。

一、AT指令

主要以ESP8266 Non-OSAT指令集进行说明。

1 AT指令说明

AT 指令主要可以细分为四种类型:

类型指令格式描述
测试指令AT+=?该命令⽤于该命令⽤于查询设置指令的参数以及取值范围
查询指令AT+?该命令⽤于返回参数的当前值
设置指令AT+=<…>该命令⽤于设置⽤户⾃定义的参数值
执行指令AT+命令⽤于执⾏受模块内部程序控制的变参数不可变的功能

指令格式需要注意的有:

  • 不是每条 AT 指令都具备上述 4 种类型的命令。
  • [ ] 括号内为缺省值,不必填写或者可能不显示。
  • 使⽤双引号表示字符串数据 ”string”,例如:AT+CWSAP=“ESP756290”,“21030826”,1,4
  • 默认波特率为 115200。
  • AT 指令必须⼤写,并且以回⻋换⾏符结尾(CR LF)

2 常用AT指令

  1. 基础指令
    常用的基础指令如下所述:
指令描述
AT测试 AT 启动
AT+RST重启模块(开发板上电后一般要重启)
ATE开关回显功能
AT+RESTORE恢复出⼚设置(当ESP8622设置错乱后可以恢复出厂设置)
AT+UART_CURUART 当前临时配置
AT+UART_DEFUART 默认配置,保存到 Flash
AT+SLEEP设置 sleep 模式
AT+WAKEUPGPIO设置 GPIO 唤醒 Light-sleep 模式
  1. WIFI指令
    常用的WIFI指令如下所述:
指令描述
AT+CWMODE_CUR设置 Wi-Fi 模式 (STA/AP/STA+AP),不保存到 Flash
AT+CWMODE_DEF设置 Wi-Fi 模式 (STA/AP/STA+AP),保存到 Flash
AT+CWJAP_CUR连接 AP,不保存到 Flash
AT+CWJAP_DEF连接 AP,保存到 Flash
AT+CWLAPOPT设置 AT+CWLAP 指令扫描结果的属性
AT+CWLAP扫描附近的 AP 信息
AT+CWQAP与 AP 断开连接
  1. TCP/IP指令
    常用的TCP/IP指令如下所述:
指令描述
AT+CIPSTATUS查询⽹络连接信息
AT+CIPDOMAIN域名解析功能
AT+CIPSTART建⽴ TCP 连接,UDP 传输或者 SSL 连接

二、网络基础

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、UDP连接

因为手机端的IP地址未知,ESP8266的IP可以进行打印,因此一般选择UDP进行连接。一般步骤如下所述:

  1. 配置 WiFi 模式
AT+CWMODE=3						//	softAP+station	mode

--OK
  1. 连接路由器
AT+CWJAP="SSID","password"							//	SSID	and	password	of	router

--OK
  1. 查询 ESP8266 设备的 IP 地址

此步骤目的是手机与ESP模块进行连接。

AT+CIFSR

--
+CIFSR:APIP,"192.168.4.1"

+CIFSR:APMAC,"1a:fe:34:a5:8d:c6"

+CIFSR:STAIP,"192.168.101.133"

+CIFSR:STAMAC,"18:fe:34:a5:8d:c6"

OK
  1. 创建 UDP 传输。
AT+CIPSTART="UDP","192.168.101.110",8080,1112,2


--CONNNECT	

--OK

//“192.168.101.110”, 8080 为 UDP 传输的远端 IP 和端⼝,即前⽂ PC 建⽴的 UDP 端⼝;
//1112 为 ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
//2 表示当前 UDP 传输建⽴后,UDP 传输远端仍然会更改;UDP 传输远端会⾃动更改为最近⼀个与ESP8266 UDP 通信的远端。(一开始不知道手机的IP,未连接时,随便给一个IP就可以,当手机连接上ESP8622后,单片机的UDP变为最新的IP->手机的IP)

  1. 发送数据
AT+CIPSEND=7	 	 //	Send	7	bytes	

>UDPtest										 //	enter	the	data,no	CR



--
Recv	7	bytes

SEND	OK

发送数据时,如果输⼊的字节数超过了设置⻓度(n):

  • 系统将提示 busy,并发送数据的前 n 个字节,发送完成后响应 SEND OK。
  • 超出⻓度的部分数据被认为是⽆效数据,不被接受。

发送数据到其他指定远端。例如,发数据到 192.168.101.111, 端⼝ 1000。

AT+CIPSEND=7,"192.168.101.111",1000	 	 //	Send	7	bytes	

>UDPtest								//	enter	the	data,		no	CR



--
Recv	7	bytes

SEND	OK
  1. 接收数据

当 ESP8266 设备接收到服务器发来的数据,将提示如下信息:

+IPD,n:xxxxxxxxxx				//	received	n	bytes,		data=xxxxxxxxxxx	
  1. 断开连接

断开 UDP 传输

AT+CIPCLOSE

--
CLOSED

OK

流程图如下所述:
在这里插入图片描述

四、Stm32与ESP8622程序框架

智能家居物联网实战的程序框架如下所述:
在这里插入图片描述


总结

本文主要介绍了一些stm32物联网操作的基础,主要是AT指令的相关介绍与物联网的基础知识。

04-01
### 关于ESP8622模块的详细介绍 #### 模块概述 ESP8622(也常被称为ESP-12F)是一种基于ESP8266芯片的Wi-Fi模块,广泛应用于物联网设备开发中。该模块支持STA(Station)、AP(Access Point)以及STA+AP三种工作模式[^2]。 #### 固件烧录流程 为了使ESP8622正常运行并实现特定功能,通常需要对其进行固件烧录操作。以下是具体的操作说明: 1. **选择工具** 使用ESP8266 DownloadTool软件作为固件烧录工具。启动该工具后,在界面中的指定位置设置参数[^1]。 2. **配置选项** - 勾选第一个选项框以启用固件下载功能。 - 浏览并选择目标`.bin`文件路径。 - 设置起始地址为`0x0000`。 - 配置串口号(COM口),确保其与实际硬件连接一致。 3. **执行烧录** 完成上述配置后点击“Start”按钮即可开始固件写入过程。整个过程中需保持物理连接稳定以免中断操作。 #### AT指令集简介 对于初学者而言,掌握基本的AT命令是非常重要的一步。这些命令允许开发者轻松控制ESP8622的行为,比如建立WiFi连接、发送数据包等。常见的几条核心语句如下所示: ```plaintext AT // 测试模块响应状态 AT+CWMODE=1 // 切换至客户端模式 AT+CWJAP="SSID","PWD"// 连接到指定热点 AT+CIPSTART="TCP","example.com",80 // 初始化TCP会话 ``` 更多高级用法可以参考专门文档进一步学习[^3]。 #### 应用实例分析 下面给出一段简单的STM32平台调用ESP8266进行HTTP请求的例子代码片段供参考: ```c #include "stm32f1xx_hal.h" void UART_SendData(uint8_t* pData, uint16_t Size){ HAL_UART_Transmit(&huart1, pData, Size, 100); } int main(void){ uint8_t cmd[] = "AT+CWJAP=\"Your_SSID\",\"Your_PASSWORD\"\r\n"; /* Initialization Code Here */ UART_SendData(cmd,sizeof(cmd)-1); while (1){} } ``` 此段程序展示了如何利用单片机向ESP8622发送字符串形式的AT指令来完成联网动作[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值