技术标签: ESP8266-01s 物联网 单片机
本文章为方便新手上手直接用最简单的点灯展示,关于ESP8266-01s的AT指令类就上网搜有很多这就不多讲了。
ESP-01S | USB转TTL | 51单片机 |
VCC | 3.3V | 3.3V |
GND | GND | GND |
EN | 3.3V | 3.3V |
TX | RX | P3.0 |
RX | TX | P3.1 |
IO0(注刷固件时插) | GND(注刷固件时插) |
如果是要刷固件的话ESP8266-01s的IO0接要接上USB的地,其余时候是不需要接的。
单片机烧录文件的时候需要拔掉TX和RX,不然会冲突无法烧录,烧录完成后插回去,然后按下复位键即可。如是需要在接51单片机在用串口助手去给ESP8266打指令的话就把51的RX和TX接是ESP8266-01s的RX和TX,也就是正插,平常使用都是和模块的RX与TX反插。
AT+CWMODE=2
AT+CWSAP="8266","123456789",1,3
AT+UART_DEF=9600,8,1,0,0
AT+CIPMUX=1
AT+CIPSERVER=1,8080
固件一般新买的都有默认固件,一般需要刷固件的是EPS8266-01s变成砖头打不进指令才需要刷固件,固件有两种一种是出厂固件,一种是升级固件,一般不需要很多特殊指令的话就不用刷升级固件,出厂固件够用。
1.首先从刷固件开始(若能打指令就跳过这到打指令部分)
需要的文件本博文结尾提供下载
工具
选择第一个
固件路径
原装出厂固件库\Ai-Thinker_ESP8266_AT_Firmware_DOUT_v1.5.4.1-a_20171130\Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130
等进度条完成后就ok了就关掉,在打开串口调试工具。
2.调试指令部分
AT指令不懂意思的话百度直接搜有很多解释
输入3条指令即可,这三条指令保存到Flash,掉电不删除此配置。每输入一条ESP8266-01s都会回一个ok,因为剩下两条AT指令断电会自动重置掉所以直接代码里写入。也可以全部指令在代码里写入,这部分就可跳过。
源代码如下:
#include <REGX52.H>
unsigned char Recive_table[15]; //用于接收wifi模块反馈到MCU上的数据
char Recive_state = 0;
bit uart_busy = 0;
/* ----------------------
延时5毫秒
---------------------- */
void delay5ms() {
unsigned char a,b;
for(b=101;b>0;b--)
for(a=147;a>0;a--);
}
/* ----------------------
初始化串口,波特率9600
---------------------- */
void Init_uart(void) {
TMOD = TMOD | 0x20; //定时器1工作在方式2 8位自动重装
SCON = SCON | 0x50; //串口1工作在方式1 10位异步收发 REN=1允许接收
TH1 = 0xFd; //定时器1初值
TL1 = TH1;
TR1 = 1; //定时器1开始计数
EA =1; //开总中断
ES =1; //开串口1中断
}
/* ----------------------
串口发送数据方法
---------------------- */
void Uart_SendByteData(unsigned char msg){
while(uart_busy); //等待上一个数据发送完成
SBUF=msg;
uart_busy = 1; //串口发送置忙
}
void Uart_SendStrData(unsigned char *msg){
while(*msg){
Uart_SendByteData(*msg++);
}
}
/* ----------------------
初始化WIFI模块
---------------------- */
void Init_ESP01S(){
Uart_SendStrData("AT+CIPMUX=1\r\n"); // 设置多连接
delay5ms();
Uart_SendStrData("AT+CIPSERVER=1,8080\r\n"); // 配置服务器,监听8080端口
delay5ms();
}
void main(){
Init_uart();
Init_ESP01S(); // Init_ESP01S 与 Init_uart调用的顺序不能改变
P1_0 = 1;
while(1){
if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))//MCU接收到的数据为+IPD时进入判断控制0\1来使小灯亮与灭,网络中的无线设备发送到ESP-01S的数据信息固定格式+IPD,<客户ID>,<信息长度>:<信息内容>。
{
if((Recive_table[3]=='D')&&(Recive_table[6]==','))
{
if(Recive_table[9]=='0')
{
P1_0 = 0;
}
if(Recive_table[9]=='1')
{
P1_0 = 1;
}
}
}
Recive_state = 0;
}
}
/* ----------------------
串口中断
---------------------- */
void UART_Interrupt(void) interrupt 4 {
static char i=0;
if(RI==1){
ES = 0;
RI=0;
Recive_table[i]=SBUF; //MCU接收wifi模块反馈回来的数据
i++;
if(Recive_table[i-1]=='\n')
{
Recive_table[i]='\0';
i=0; //遇到换行 重新装值
Recive_state = 1;
}
ES = 1;
}
else TI=0;
uart_busy = 0;
}
烧录代码完成后按下复位键就可以打开网络调试助手能连上能发信息就可以了。
文章浏览阅读2.5k次。数据的四种基本存储方法,(1)顺序存储方法(2)链接存储方法(3)索引存储方法(4)散列存储方法_数据存储
文章浏览阅读6.7k次。一、Mysql启用SSL配置1.检查mysql是否支持ssl在linux端用root账号进入mysql命令行界面,查看当前版本mysql数据库是否支持ssl,如果出现以下结果表示支持,如果没有考虑更换版本,或者编译一个带有SSL版本的mysqlshell>show variables like ‘%ssl%’;2.设置用户是否使用ssl连接1.查看用户是否使用SSL连接she..._jdbc mysql ssl
文章浏览阅读612次。java jwt使用,springboot 整合java-jwt,java jwt工具类================================Copyright 蕃薯耀2020-12-03https://www.cnblogs.com/fanshuyao/一、引入java-jwt的maven依赖<dependency> <groupId>..._jwtproperties
文章浏览阅读753次,点赞21次,收藏15次。列出现有主题,创建主题,该主题包含一个分区,该分区为Leader分区,它没有Follower分区副本。启动成功,可以看到控制台输出的最后一行的started状态:此时kafka安装成功。查看zookeeper状态,zookeeper启动成功,再启动kafka。onsole-producer.sh用于生产消息**开启消费者和生产者,生产并消费消息。开启消费者和生产者,生产并消费消息。在Zookeeper中的根节点路径。创建主题,该主题包含多个分区。的地址,此处使用本地启动的。查看指定主题的详细信息。
文章浏览阅读695次。6-7 在一个数组中实现两个堆栈(20 分)本题要求在一个数组中实现两个堆栈。函数接口定义:Stack CreateStack( int MaxSize );bool Push( Stack S, ElementType X, int Tag );ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;Max_pta数据结构6-7
文章浏览阅读123次。概述 您可能有大量应用程序产生的JSON数据,您可能需要对这些JSON数据进行整理,去除不想要的字段,或者只保留想要的字段,或者仅仅是进行数据查询。 那么,利用阿里云Data Lake Analytics或许是目前能找到的云上最为便捷的达到这一目标的服务了。仅仅需要3步,就可以完成对海量..._什么云服务可以直接存储json数据
文章浏览阅读206次。(17 封私信 / 1 条消息) 嵌入式Linux应用 - 搜索结果 - 知乎 (zhihu.com)
文章浏览阅读9.6k次,点赞11次,收藏89次。鼠标滚轮实现图像放大缩小的主要思想:通过wheelEvent来获得鼠标滚轮的angleDelta,即滚轮转角。然后通过数据类型转换,将读取的值转换成整型数值叠加到图像的尺寸长和宽上,从而实现图像的放大和缩小。注意:滚轮向上滑转角为正,所以图像放大。滚轮向下滑转角为负,所以图像缩小。下边直接上代码,头文件中只需要加上使用鼠标滚轮的声明函数就行:void wheelEvent(QWheelEve..._qt滚轮放大缩小
文章浏览阅读7.9w次,点赞53次,收藏235次。若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936本文章博客地址:https://blog.csdn.net/qq21497936/article/details/94585803目录前话相关博客QGLWidget概述QGLWidget子类示例更新绘制覆盖层绘制技术线程方案一:在线程中进..._qt 用qopenglwidget生成release版,依赖什么库
文章浏览阅读5.3k次。C 语言的浮点数类型_c语言float和double保留小数点后几位
文章浏览阅读3k次,点赞4次,收藏2次。gradle 打包时报以下错误:二、解决方法在 build.gradle 文件中找到 http://mirrors.huaweicloud.com/repository/maven/ 所在的位置,增加 allowInsecureProtocol = true 一行:_gradle using insecure protocols with repositories, without explicit opt-in,
文章浏览阅读7.3k次。微信群,请扫描二维码加入 本人在北京,主场北京,位置不限, 仅限java行业交流,C C##以及python请另外加群,谢谢欢迎准 java行业的进入,杜绝假冒程序员加入,精兵简政群内与java无关私事请私聊,任何java的问题,欢迎讨论——————————————————————————————————如若二维码失效,请加微信拉群..._java开发接单群