当前位置: 首页 > news >正文

ESP8266模块(2)

实例1

查看附近的WiFi

步骤1:进入AT指令模式
  1. 使用USB转串口适配器将ESP8266模块连接到电脑。
  2. 打开串口终端软件,并设置正确的串口和波特率(通常为115200)。
  3. 输入以下命令并按回车确认:
AT

如果模块响应OK,则说明它处于AT指令模式。

步骤2:扫描WiFi网络

输入以下命令来扫描附近的WiFi网络:

AT+CWLAP

模块将开始扫描,并返回一系列的WiFi网络信息,包括每个网络的SSID、信号强度(RSSI)、加密类型和安全状态。

查看连接的WiFi

  1. 发送AT指令

    • 打开串口通信软件,并连接到ESP8266模块的串口。
    • 输入以下AT指令并按回车发送:
AT+CWMODE?  # 查询当前工作模式

该指令会返回当前ESP8266的工作模式(1:Station模式,2:AP模式,3:Station+AP模式)。

接下来,使用以下指令来查询已连接的WiFi信息:

AT+CWLAP     # 列出可用的WiFi网络
AT+CWJAP?    # 查询当前连接的WiFi网络信息

如果模块已经连接到一个WiFi网络,AT+CWJAP?指令将返回以下信息:

+CWJAP:"SSID","MAC",ch,ecn

这里的SSID是连接的WiFi网络的名称,MAC是该网络的MAC地址,ch是连接的频道,ecn是加密类型。

  1. 断开连接(如果需要):

AT+CWQAP     # 断开当前连接的WiFi网络

请确保在发送AT指令时,每个指令后都要按回车键,并且等待模块的响应。如果ESP8266模块没有响应,可能需要检查串口连接是否正确,或者确认模块是否已经进入了AT指令模式。有时候,可能还需要重置模块,或者发送AT+RST指令来重启模块。

  1. 连接到WiFi网络

  2.  使用以下命令连接到您的WiFi网络。您需要替换"SSID"为您的WiFi网络名称,"PASSWORD"为您的WiFi密码。

    AT+CWJAP="SSID","PASSWORD"
    

    如果连接成功,模块将返回OK。如果失败,通常会返回错误信息。

实现连接服务器

1. 设置Wi-Fi模式

将ESP8266设置为Station模式(客户端模式):

AT+CWMODE=1

2. 连接到Wi-Fi网络

连接到您的Wi-Fi网络:

AT+CWJAP="SSID","PASSWORD"

SSID替换为您的Wi-Fi网络名称,PASSWORD替换为Wi-Fi密码。

3. 查看IP地址

获取ESP8266分配的IP地址:

AT+CIFSR

4. 设置为单连接模式

(可选)如果需要,可以将ESP8266设置为单连接模式:

AT+CIPMUX=0

5. 连接到服务器

使用以下指令连接到服务器,这里以TCP连接为例:

AT+CIPSTART="TCP","SERVER_IP",SERVER_PORT

SERVER_IP替换为服务器的IP地址,SERVER_PORT替换为服务器的端口号。

6. 发送数据

连接成功后,发送数据到服务器:

AT+CIPSEND=LENGTH

替换LENGTH为您要发送的数据的长度。在发送此命令后,串口监视器将进入发送模式,您可以输入要发送的数据。

9. 接收数据

配置ESP8266以接收服务器发送的数据:

AT+CIPRECVMODE=1

设置接收超时:

AT+CIPRECVDATA=TIMEOUT

替换TIMEOUT为期望的超时时间(毫秒)。

10. 关闭连接

完成数据交换后,关闭连接:

AT+CIPCLOSE

 实现服务器端

1. 初始化ESP8266

首先,确保您的ESP8266模块已经通过串口与您的计算机或其他设备连接,并准备好接收AT指令。

2. 设置为SoftAP模式

将ESP8266设置为SoftAP模式,允许其他设备连接到它:

AT+CWMODE=2

3. 创建SoftAP

配置ESP8266创建一个热点:

AT+CWSAP="ESP8266_Server","password",1,3

这里,"ESP8266_Server"是热点名称,"password"是连接密码。

4. 设置多连接模式

允许ESP8266处理多个连接:

AT+CIPMUX=1

5. 开启TCP服务器

开启TCP服务器并指定端口:

AT+CIPSERVER=1,80

这里,80是端口号,可以根据需要更改。

6. 监听连接和数据(不用管)

一旦服务器开启,它将监听指定端口上的连接。如果有客户端连接并发送数据,ESP8266将通过以下响应通知:

plaintext

复制

+WIFI:station:xx:xx:xx:xx:xx:xx join, AID=1

这里,xx:xx:xx:xx:xx:xx是客户端的MAC地址。

当客户端发送数据时,ESP8266会响应:

+IPD,id,len:data

这里,id是连接的ID,len是数据的长度,data是接收到的数据。

ID是0

7. 发送数据到客户端ID看上图

向客户端发送数据:

AT+CIPSEND=id,len

发送此指令后,输入要发送的数据。

8. 关闭连接

当完成与客户端的数据交换后,可以关闭特定的连接:

AT+CIPCLOSE=id

9. 关闭服务器

如果需要关闭服务器,可以使用以下指令:

AT+CIPSERVER=0

查询esp8266的IP

1. 查询SoftAP IP地址

在SoftAP模式下,可以使用以下AT指令来查询ESP8266分配给自身的IP地址:

AT+CIPAP?

这个指令将返回SoftAP的IP地址、网关和子网掩码。以下是可能的响应:

+CIPAP:ip:"192.168.4.1"
+CIPAP:gateway:"192.168.4.1"
+CIPAP:netmask:"255.255.255.0"

这里的192.168.4.1是ESP8266作为SoftAP时的默认IP地址。当然,您也可以通过以下AT指令自定义SoftAP的IP地址:

AT+CIPAP="192.168.4.2","192.168.4.1","255.255.255.0"

2. 查询Station IP地址

如果您同时将ESP8266设置为Station模式(例如,Station+SoftAP模式,AT+CWMODE=3),并连接到了一个外部路由器,那么您可能还想查询分配给Station模式的IP地址。这可以通过以下AT指令完成:

AT+CIFSR

这个指令将返回ESP8266在Station模式下的本地IP地址、MAC地址、网关和子网掩码。以下是可能的响应:

+CIFSR:STAIP:"192.168.1.100"
+CIFSR:STAMAC:"5c:cf:7f:34:45:ab"
+CIFSR:Gateway:"192.168.1.1"
+CIFSR:NetMask:"255.255.255.0"

这里的192.168.1.100是外部路由器分配给ESP8266的IP地址。

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • [图解]《分析模式》漫谈16-“我用的”不能变成“我的”
  • python基础知识点(蓝桥杯python科目个人复习计划71)
  • C的预编译指令
  • LabVIEW和Alicat Scientific质量流量计实现精确流量控制
  • 2024 React 和 Vue 的生态工具
  • STM32之八:IIC通信协议
  • 【数据分享】2013-2022年我国省市县三级的逐年SO2数据(excel\shp格式\免费获取)
  • websocket状态机
  • 关于正运动学解机器人手臂算法
  • 【学习笔记】无人机系统(UAS)的连接、识别和跟踪(六)-无人机直接C2通信
  • 海外社媒矩阵为何会被关联?如何IP隔离?
  • 学懂C语言(十五):C语言递归函数在实际应用中的要点,关键点
  • Diffusion大模型
  • 生成式 AI 的发展方向:Chat 和 Agent 的有机结合
  • 【Docker】Docker Desktop - WSL update failed
  • 分享一款快速APP功能测试工具
  • 《深入 React 技术栈》
  • 2018一半小结一波
  • Java 网络编程(2):UDP 的使用
  • Javascript Math对象和Date对象常用方法详解
  • java多线程
  • js递归,无限分级树形折叠菜单
  • leetcode-27. Remove Element
  • MobX
  • mysql 数据库四种事务隔离级别
  • Redis中的lru算法实现
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • zookeeper系列(七)实战分布式命名服务
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 使用putty远程连接linux
  • 数据可视化之 Sankey 桑基图的实现
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 正则表达式
  • 函数计算新功能-----支持C#函数
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # 达梦数据库知识点
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $().each和$.each的区别
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (3) cmake编译多个cpp文件
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)hibernate配置管理
  • (十二)Flink Table API
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))