ESP8266 WIFI模块的使用

news2025/1/11 23:48:02

ESP8266 wiFI 可以用作连接周边的无线设备,也可以作为发送器供其他设备连接通常在产品中,我们经常用作无线的接收使用,也可能会用作在线升级使用等。
说点题外话:虽然在线升级已经较为成熟,但我不推荐在一些重要的产品中推荐这种在线OTA升级,像汽车、智能家居等这种代码直接由软件架构生成的底层逻辑代码类型。因为如果,底层结构或者一些代码逻辑被破解之后,很容易造成安全隐患,这种事情发生过不少,而且这种人,是最难被抓捕的。除非哪天,所有的系统网络是被破解或者很难针对的算法出现以及普及。我认为才是安全的。

1- ESP8266 初体验

esp8266是一种无线网络设别,内部集成常用的网络配置,只要不是太精密的产品,是都可以应用的。同时他本身就是一个MCU,在没有其他外在MCU的情况下也是可以开发使用的。当然,这只是其中一款而已。具体的产品特性如下:

我们主要是讲如何使用,原理在这里不在多说,只需要数据手册就可以了。

1.1 硬件连接

我们在电脑上使用USB转串口进行连接。具体的连接方式请根据自己手中的设备进行连接,几乎所有的无线通信都是使用AT命令来进行操作的。连接如下图:

就是上面这个逻辑图。
然后我们连接好之后根据手册看看会返回那些有用的信息

1.2 尝试

1 AT指令


我们在发送区发送AT。如果得到OK,那么说明是可以正常通信的。

2 AT固件版本


发送AT+GMR

3 软件重启

这种会重启模块,打印出OK后会相关的配置信息。

在这里插入图片描述

4重置出厂设置


1.3 通信测试

接下来我们进行一些通信测试,下面这些是写代码的时候常常用到的指令

1.3.1 模式配置

TCP Server 为 AP 模式,TCP Client 为 Station 模式。

1-配置WIFI模式:
其他模式是一样的这里是两种模式都配置了。
输入:AT+CWMODE=3

1.3.2-连接路由器

AT+CWJAP=“SSID”,“password”
下面这个图说明连接成功了,如果没有请检查密码和SSID,请注意中间不能有空格

1.3. 3-查询 ESP8266 设备的 IP 地址

AT+CIFSR

把下面这个记录下来,在写代码的时候需要,后面会总结。

[21:44:56.358]收←◆AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"be:dd:c2:b3:a0:f1"
+CIFSR:STAIP,"192.168.0.102"
+CIFSR:STAMAC,"bc:dd:c2:b3:a0:f1"

4. ESP8266 设备作为 TCP client 连接到服务器

在这里我们需要一个服务,如下:

然后我们对其进行连接:下面这种就是成功了。如果出现 error CLOSED,需要检查是否在同一局域网下,以及要把这个串口工具添加到入站规则同时添加8080这个端口(具体的请百度)

如果建立成功就可以通信了,如下图:

下面这些才是我们需要的:


AT

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

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

// 3. 查询 ESP8266 设备的 IP 地址
AT+CIFSR

// 响应
[21:44:56.358]收←◆AT+CIFSR
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"be:dd:c2:b3:a0:f1"
+CIFSR:STAIP,"192.168.0.102"
+CIFSR:STAMAC,"bc:dd:c2:b3:a0:f1"
OK

// 4. ESP8266 设备作为 TCP client 连接到服务器
AT+CIPSTART="TCP","192.168.0.107",8080			 //protocol,	server	IP	and	port

// 5. ESP8266 设备向服务器器发送数据
AT+CIPSEND=4				//	set	date	length	which	will	be	sent,		such	as	4	bytes	
>test						//	enter	the	data,		no	CR

// 响应
Recv	4	bytes
SEND	OK

// 6. 当 ESP8266 设备接收到服务器器发来的数据,将提示如下信息:
+IPD,n:xxxxxxxxxx				//	received	n	bytes,		data=xxxxxxxxxxx	

如何实现AT命令的编写,以后在说,这段时间太忙了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118159.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shell程序编写猜数字的小游戏

文章目录 目录 文章目录 前言 一、设计思路 二、代码编写 三、效果图 总结 前言 在学习Linux课程中学习了一点简单的shell语法,实现了一个猜数字功能的程序。感兴趣的可以看完后自己手动编写玩玩~这个小游戏的编写也是把基础的shell语法基本上都用到了&#…

在QQ音乐巅峰榜年度榜单中,听懂国人2022年的音乐记忆!

拐左为夏,拐右为冬,时至年末,各类形式的年终报告层出不穷。2022年,是特殊的一年,音乐作为不可或缺的一部分,也陪伴广大用户走过了日日夜夜。一首首歌曲拨动着心弦、同时也承载着回忆,熟悉的旋律…

【软件测试】不好,事搞大了,APP测试的血泪教训总结......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 听说,人…

C语言链表-记录学生信息

题目要求: 创建一个 单向链表 来记录学生信息,人数3–5人;链表结点为结构变量,结构的要求如下: struct stu_info{char stu_num[10]; //学号char stu_name[8]; //姓名char stu_sex[2]; //性别int stu_score /…

Flowable学习笔记(二):flowable实战

1.定义流程模板 (1)Call Activity(调用活动) 在这个流程图中,定义了一个开始节点、调用活动节点和结束节点(bpmn.xml文件在文章最后附上)。 开始节点:定义了一个执行监听器(commonStartExecut…

【MyBatis】进一步理解choose、when、otherwise标签

choose、when、otherwise choose里面包含when、otherwise两个标签,choose是父标签,when和otherwise必须都要写在它里面 当 when 中有条件满足的时候,就会跳出 choose,即所有的 when 和 otherwise 条件中,只有一个会输…

半导体设备中制冷系统的压力和温度准确控制解决方案

摘要:针对半导体低温工艺中制冷系统在高压防护和温度控制中存在的问题,本文将提出一种更简便有效的解决方案。解决方案的核心是在晶片托盘上并联一个流量可调旁路,使制冷剂在流入晶片托盘之前进行部分短路。即通过旁路流量的变化调节流出晶片…

罗切斯特大学将研究未来执行军事任务的量子计算

罗切斯特大学的专家将开发受量子启发的求解器系统,以解决军事任务中的实际问题。 美国军事研究人员需要使用量子启发求解器系统的量子计算技术,将高性能计算性能提高至少两个数量级的新方法。于是,他们从纽约的罗切斯特大学找到了解决方案。美…

Akka 进阶(三)Route 路由

目录一 路由Actor二 Pool方式的方式创建路由三 Group方式创建路由消息可以通过多种方式送达目的地,比如tell、ask、forward等,这些方式是最常规也是最简单的,但是对于复杂的消息投递逻辑,比如轮询投递、随机投递、广播组等&#x…

IB课程预估分,请认真规划学习进程

近年受疫情影响,IB考试形式与分数情况,有不小的波动,年度出分依然吸引着众人目光。尤其明后年准备参加大考的同学,更关心实战难度和考试分数的变化趋势。 01预估分:严重被压低的预期分数 全球疫大环境下,IB…

合宙 ESP32C3 烧录 Micropython 后连接端口报错

合宙esp32c3 开发板烧录micropython 后连接VScode 或 Thonny报错: Device is busy or does not respond. 1. 原因: 烧录的micropython bin文件有问题。 问题参考: 链接: 合宙ESP32-C3 烧录Micropython报错入坑记 2. 解决办法&#xff1a…

H3C smart-link实验 C套拆解

H3C smart-link实验 C套拆解一、项目拓扑二、项目需求三、配置步骤1.vlan-trunk2.STP3.smart-link四、测试一、项目拓扑 二、项目需求 总部局域网内sw3进行双上行链路灵活备份,smart-link组1 引用实例1(绑定vlan10)的流量从经过sw1的链路通向出口路由器r1&#xff…

10个优秀的Python库,实用且有趣

序言 哈喽兄弟们,今天分享10个优秀的Python库,超级实用! 为什么这么多人选择学习python?首先,python是一门全场景编程语言,对于初学编程的人而言,选择一门全场景编程语言是非常不错的选择;其次&#xff…

PHP aws-sdk-php文件存储的实现与应用

前言 最近项目需要用到对象存储,将所有上传文件,存储到BOS云存储上。在开发过程中,遇到一些小小的问题,做个简单记录。 功能实现 1 下载sdk(以下两种方式,任选其一即可) (1&#…

手绘图说电子元器件-电阻,电容,电感

电阻器与电位器 电阻器是最基本的电子元件,电位器是最基本的可调电子元件,它们广泛应用在各种电子电路中。 电阻器 电阻器是限制电流的元件,通常简称为电阻,是一种最基本、最常用的电子元件,包括固定电阻器、可变电阻器、敏感电阻器等。 电阻器的主要参数有电阻值和额…

FFT(2)

DFT到FFT 这是DFT公式 对DFT代数变换 将DFT的计算,分为计数组和偶数组。 惊奇的发现:只需要改变WkNW_k^NWkN​的符号即可得到X(k)的另一半项数的结果。 得到FFT算法(蝶形运算) 惊奇的发现&#xff1…

docker安装教程,即学即会

docker教程: https://www.runoob.com/docker/docker-tutorial.html卸载docker 较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。 yum remove docker docker-client docker-client-latest docker-co…

maven打包缺少依赖异常eu.neilalexander:jnacl:jar:1.0.0 was not found in...解决

在Linux系统的服务器上使用脚本部署项目,脚本的逻辑是: 进入到工作空间的项目文件夹从SVN拉取最新代码命令svn up执行mvn clean执行mvn package进入jar包生成的target文件夹nohub java -jar xxxxx.jar >/dev/null 2>&1 & 在项目打包过程…

C++迭代器详解

思考一个问题&#xff1a;我们该如何遍历一个字符串呢&#xff1f; 方法一&#xff1a;正常遍历 string s1("hello"); for(size_t i 0;i<s1.size();i) {cout<<s1[i]<<" ";//[]是一个重载运算符&#xff0c;实际上调用了s1.operator[](i)…

【爬虫+数据清洗+可视化分析】用Python分析哔哩哔哩“阳了“的评论数据

目录 一、背景介绍 二、爬虫代码 爬虫部分不作讲解。 三、可视化代码 3.1 读取数据 3.2 数据清洗 3.3 可视化 3.3.1 IP属地分析-柱形图 3.3.2 评论时间分析-折线图 3.3.3 点赞数分布-直方图 3.3.4 评论内容-情感分布饼图 3.3.5 评论内容-词云图 三、演示视频 一、…