ESP8266-01S使用教程
必要知识
大概流程
用串口连接ESP8266-01S简单调试模块设置
设备连接到ESP8266-01S的WiFi或者是ESP8266连接至局域网
根据需求再次对ESP8266-01S进行调试
启动手机或电脑的网络调试助手建立通讯
用网络调试助手进行信号的发送
将ESP8266-01S连接至单片机的UTX和URX与单片机进行通讯
STM32C8T6其中PA2和PA3为一个串口,PA9和PA10为1个串口
通讯协议
TCP和UDP协议
UDP会把数据一股脑儿地发送出去,并不会在意是否全部收到,适用于广播类型多对多通讯类型,缺点是具有一定的丢包率
TCP是可靠的传输协议,缺点是只能一对一通信
cilent客户端和server服务端
使用ESP8266-01S
连接模块做简单调试
需要的工具:USB-TTL下载器
如果不需要对模块的固件重新烧录或是对其功能有其他需要,不用接IO0和IO1还有EN引脚,只需要按照图4.2接好就可
特别注意,RXD和TXD 的接法,与下载器的引脚相反
不要用下载器的3.3V和GND电源,另找电源(可以接开发板上的供电)
正常情况下模块会微热,只要不是烫手的就没什么问题
打开串口调试工具
波特率设置为115200,发送AT(该指令是测试AT是否OK),会接收到返回的OK
ESP8266-01S一共有三种角色/工作模式,分别是:
1.Station (客户端模式)
2.AP (接入点模式)
3.Station+AP (两种模式共存)
买模块的时候,商家一般都会附赠一个资料包,里面有AT指令的说明
根据需要,选择模块的工作方式(一般使用模式2或者是模式3)
输入命令:
AT+CWMODE=1 //station模式(station模式不可以创建自己的WiFi)
或
AT+CWMODE=2 //AP模式
或
AT+CWMODE=3 //station+AP模式
来选择模块的工作方式,输入完成后输入
AT+RST
重启模块
使用模块
这时候,你有两种方案:
一是用模块自己创立一个WiFi(station模式不可创建自己的WiFi),二是模块连接到现有的WiFi
一、建立模块的WiFi
串口发送以下命令
AT+CWSAP="SSID","password",x,x //来创建路由
(第一个x代表通道号,第二个x代表加密方式,用数字来表示)
信道,也称作通道或频段,是以无线信号作为传输载体的数据信号传送通道。2.4G频段的工作频率为2.4-2.4835GHz,这83.5MHz频带划分为13个信道,各信道中心频率相差5MHz,向上向下分别扩展11MHz,信道带宽22MHz。中国采用欧洲/ETSI标准,使用1-13信道。
随着无线网络的普及,周围的WIFI信号越来越多,这些信号之间会相互干扰,家庭路由器一般都会自动选择工作信道,如果说想要8266处于更好的工作状态,将其设置为与周围无线网络信道不同的信道,如果说没那么多要求,随便填一个即可。
注意:该命令在断电之后不会消失,会保留下来
AT+CIPMUX=1 //开启多连接
模块是最多允许五个设备连接的,
然后输入
AT+CIPSERVER=1,6666 //端口号可以更改
来设置监听端口,以上两个指令断电后将会消失,需要写入单片机
二、 连接现有的WiFi
AT+CWJAP="SSID","password" //来连接路由器
AT+CIPMUX=1
AT+CIPSERVER=1,6666
模块就处于工作状态了
上位机操作
上位机首先要连接到模块所处的WIFI中(自建WIFI或现有无线网络)
上位机目前与ESP8266模块进行串口通讯
打开网络调试工具,可以看到两种通讯协议,TCP和UDP
在这里,我们选择TCP Client(TCP协议客户端)即可
输入模块的IP地址,如果是模块建立的现有WIFI,则IP地址应为192.168.4.1
如果是连接的现有无线网络,可以进入网络的管理员页面查看,也可以输入AT+CIFSR
指令来查看8266的IP和MAC地址,当然,这种操作必须在连接串口的条件下才能使用。
上位机发送数据
选择连接,然后输入祖传的“Hello world”发送
在串口助手里面就可接受到相应的数据
上位机接受数据
首先对ESP8266输入发送指令AT+CIPSEND=0,x(字节数)
一定要输入正确的字节数,否则会发送不全
我想发送12字节的“Hello world!”但是我给出的指令只有5字节,那么我的发送会是失败的,接收到的数据也是不正确的
当然这些AT指令都是要写入单片机的
单片机
终于到了重头戏了,在实际使用的时候是不会把ESP8266-01S对电脑同时进行网络连接和串口连接的,实际上的使用要么是电脑作为控制端,将ESP8266与单片机连接,要么是两个单片机之间的通讯。
单片机的发送
像之前所说的8266所能记忆的一些AT指令设置是可以在电脑串口中直接设置好的,这样也确实更方便些,减轻了单片机的压力,然后是每次断电之后都需要重新设置的部分:
每次单片机重新上电之后通过串口发送AT指令到8266
直接将字符串发送到串口即可
void ESP_8266_Init()
{printf("AT+CIPMUX=1\r\n");delay_ms(500);printf("AT+CIPSERVER=1,6666\r\n");delay_ms(500);
}
//这里采用的是正点原子stm32的串口代码,这里只展示最核心部分
单片机的接收
对于接受部分还是有些难度的,单片机的串口单次只能接收一字节,如果是接受长字符串的话需要准备数组,但如果是进行前进后退等基本指令的话,我想一般都会采用数字,这样我们要接受的讯息内容只有一字节。
+IPD,<客户ID>,<信息长度>:<信息内容> |
---|
这是串口接受信息的格式,可以对于接受数组进行处理,得到我们想要的数据。
笔者的编程属实是拙劣,虽然实现了相应的功能,但是代码没有参考性,也就不放出代码了。
终于是写完了,也是中间隔了挺久的,可能内容也没那么连贯,还请谅解。
如果有什么错误,还请各位大佬斧正。
ESP8266-01S使用教程相关推荐
- ESP8266 01S 继电器控制智能灯实现
ESP8266 01S 继电器控制 智能灯实现(使用小度音响) 最近研究esp8266,发现可以通过wifi连接物联网云平台实现远程控制,同时也可以加入小度语音DIY简单的智能家居. 前言 本人也是刚 ...
- 阿里云MQTT + STM32 + MQTT + ESP8266 01S WIFI 实现远程继电器控制开关和采集温湿度 登录阿里云网站,进入物联网云平台
单片机型号: STM32F103C8T6 WIFI型号: ESP8266 01S WIFI 运行协议: TCP STM32运行MQTT协议 登录阿里云网站,进入物联网云平台 进入阿里云官网并登录账号后 ...
- ESP8266固件烧录教程
在使用esp8266开发过程中,或者拿到买的esp8266模块时,有时需要先给esp8266刷所需要使用的固件,摸索许久,下面分享可用的经验教程. esp8266固件烧录分在线网站编译和esp32程序 ...
- ESP8266 01S WIFI 网络
ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸和超低能耗技术,专为移动设备和物联网应用设计,可将用户的物理设备连接到Wi-Fi 无线网络上,进行互联网或局域网 ...
- ESP8266通信详细教程
一直要不断的向前进步啊.之前有一段时间学习了ESP8266模块,当时也是一顿折腾,捣鼓了好几天,虽然实现了简单的通信,但是脑子里还是一片浆糊,对它的原理还是不太理解.最近凑着寒假有时间,又重舒旧情再来 ...
- Blinker控制esp8266 01s实现远程控制继电器开关代码
该代码只实现Blinker通过按钮on和off两种状态来实现继电器的通断,从而控制连接的电路 #define BLINKER_WIFI //以WIFI方式接入,BLINKER_BLE以蓝牙方式接入 # ...
- Arduno + ESP8266模组运用中移OneNet物联网平台实现远程监控
一.初识OneNet OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效.稳定.安全的应用平台:面向设备,适配多种网络环境和常见传输协议,提供各类硬件终端的快速接入方案和设备管理服务 ...
- WiFi-ESP8266入门http(3-3)网页认证上网-post请求-ESP8266程序
第一版 原型系统 连上西电的网 直接发送上网的认证信息 返回认证结果网页 成功上网 #include <ESP8266WiFi.h>#define Use_Serial Serialstr ...
- 【上位机与下位机通信】使用WIFI模块ESP8266连接单片机与上位机通信
文章目录 前言 一.ESP8266模块与STM32连接 二.单片机代码 三.总结 前言 承接上文WIFI上位机部分:[上位机]通过WIFI上位机与网络调试助手通信绘制曲线,现阶段实现了STM32单片机 ...
- Arduino设置esp8266实现局域网通信
硬件准备 Arduino UNO主板 Esp8266 01s 面包板 杜邦线若干 软件准备 Arduino IDE 网络调试助手(PS端或手机均可,手机可在应用市场搜索网络调试精灵) 接线 Ardui ...
最新文章
- Java代理模式/静态代理/动态代理
- sqlliet 创建多表查询的视图_第4关 复杂查询
- CodeForces - 1339D Edge Weight Assignment(思维)
- django开发个人博客
- 价值5000的三网免挂码支付系统
- Android--序列化XML数据
- wps怎么写分段函数_连Excel都做不到!WPS这几项真香功能你用过吗
- 理解 loader 的工作流
- 拓端tecdat|R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)
- 两台服务器安装redis集群_高性能分布式存储服务Minio安装配置入门
- C语言入门1(devC的安装)
- 绝地求生登录计算机需要授权,Steam第三方授权登录错误 《绝地求生大逃杀》国服绑定受影响!...
- itunes备份包括哪些内容_软件开发项目技术方案包括哪些内容
- MPB:中科院微生物所蔡磊组-​基于扩增子数据的系统发育树的构建和展示
- linux的pending状态怎么退出,状态pending是什么意思
- 《计算机网络教程》(微课版 第五版)第五章 运输层 课后习题及答案
- keras 中的 verbose 参数详解
- LIC2020 百度语言与智能技术竞赛(一)——语义解析冠军方案
- python 马赛克还原_马赛克消除还原工具Depix测试
- JAVA并发-Future/CompletableFuture