基于51单片机+ESP-01WIFI模块LED灯的控制

  • 1、前期准备
  • 2、ESP-01与USB-TTL接线图
  • 3、ESO-01的调试
  • 4、单片机软件程序的设计
  • 5、感想

1、前期准备

提前了解ESP-01WIFI模块的AT指令,了解串口调试助手的基本使用方法,准备一个USB-TTL模块工具,准备一块C51单片机开发板,当然也可以自己制作一个简单的开发板,这个根据个人的情况,手机上下载一个网络调试助手,前期的工作基本准备就绪。

2、ESP-01与USB-TTL接线图

ESP-01wifi模块中供电电压一般是3.0~3.6v之间,所以在选择电压时要选择3.3的电压,否则芯片会发烫甚至会烧坏。ESP-01wifi模块需要接GND、TXD、RXD、VCC、EN这5个端口。EN端是高电平触发,所以要接3.3V电压。在ESP-01wifi模块与USB-TTL时,注意TXD和RXD接法,ESP-01wifi模块的TXD、RXD与USB-TTL的RXD、TXD对应相接。具体的连接如下图所示:

3、ESO-01的调试

个人总结了ESP-01WIFI模块的设置步骤和指令,供大家参考:
1、AT+UART=9600,8,1,0,0 进行波特率的设置。
2、AT 查看wifi模块是否正常工作。
3、AT+RST 重启wifi模块。
4、AT+CWSAP=“HZ”,“12345678”,1,4 wifi账号和密码,这个配置掉电可以保存。
5、AT+CIPMUX=1 设置连接方式(0单连接,1多连接),该设置为多连接。
6、AT+CIPAP=“192.168.4.1” 设置IP地址。
7、AT+CIPSERVER=1,8086 设置端口号。
到了这一步设置基本上已经完成,wifi模块可以正常使用了。AT+CIFSR 查询IP地址,AT+CIPSEND=0,18 wifi模块的发送指令,从串口调试助手发送手机上接收。下图为调试设置成功图如下:


如果没有成功可能会出现因为以下原因:1、串口通信波特率没有选对,一般的wifi模块,通过手册可以查询到初始波特率,一般为115200。2、USB-TTL模块与WIFI模块的对应端口连接不对。3、如果手机与wifi模块连接失败,查看wifi模块的EN端看是否连接,或者电压是否正确。4、查看设置的IP地址和端口是否正确。5、串口号没有选择正确,或着没有开启。这个是自己在操作时所遇到的,应该还会有其它的原因,希望大家多多补充。本次操作手机使用的是-有人网络助手。

4、单片机软件程序的设计

本实验的目标是通过手机输入控制8个LED灯的亮灭,输入0单片机的8个LED灯全部亮,输入1全部灭。并且结果反馈到手机上。单片机的程序设计主要有下面几个主要程序。
首先是串口初始化:

void UsartInit()
{SCON=0X50;            //设置为工作方式1TMOD=0X20;           //设置计数器工作方式2PCON=0X80;         //波特率加倍TH1=0XF3;               //计数器初始值设置,注意波特率是4800的TL1=0XF3;ES=1;                       //打开接收中断EA=1;                      //打开总中断TR1=1;                  //打开计数器
}

字符串发送程序:

void ESP8266_Set(uchar *puf)     // 用来发送字符串的函数
{    while(*puf!='\0')           {   Send_Uart(*puf);         us_delay(10);   puf++;    }  us_delay(10);  Send_Uart('\r');           us_delay(10);  Send_Uart('\n');
}

wifi模块初始化:

void wifi_Init()//初始化
{ESP8266_Set("AT");us_delay1(4000);ESP8266_Set("AT+CWMODE=2");us_delay1(4000);ESP8266_Set("AT+RST");us_delay1(4000);ESP8266_Set("AT+CIPMUX=1");us_delay1(4000);ESP8266_Set("AT+CIPSERVER=1,8086");us_delay1(4000);ESP8266_Set("AT+CIPSTO=0");}

wifi接收模块:

void wifi_recive()    interrupt 4
{static uchar i=0;  if(RI==1)  {   RI=0;   Receive=SBUF;                           receiveTable[i]=Receive;   if((receiveTable[i]=='\n')){             i=0;}    else i++;                                          }   else TI=0;   }

wifi发送模块:

void wifi_send()
{ESP8266_Set("AT+CIPSEND=0,10");us_delay1(200);if(P2 == 0x00)ESP8266_Set("LED打开");elseESP8266_Set("LED关闭");
}

wifi数据的解析:

void wifi_ZX()
{if((receiveTable[0]=='+')&&(receiveTable[1]=='I')&&(receiveTable[2]=='P'))//{if(receiveTable[9]=='0' ) {       P2 = 0x00;wifi_send();                    }if(receiveTable[9]=='1' ) {       P2 = 0xff;wifi_send();}}}

通过实验操作,实现了上述的操作目标。

5、感想

从拿到wifi模块,到一点一点熟悉,通过查询资料和参考各个博主的博客,用了两天的时间完成了整个操作过程并且效果也得到了实现。这是第一次写博客,里面会有很多不足的地方,以后慢慢的补充学习,还希望大家能够多多提供意见!

基于51单片机+ESP-01WIFI模块LED灯的控制相关推荐

  1. 基于51单片机的wifi智能led灯的毕业设计

    基于51单片机的wifi智能led灯的毕业设计 摘要 系统基于STC89C52RC单片机设计,拥有自动与手动两种模式,自动模式下可以过热释红外传感器检测是否有人,采用光敏电阻构成的电路检测环境光的强度 ...

  2. 基于51单片机的智能无线LED灯控制 蓝牙手机APP控制灯亮灭亮度方案原理图设计

    硬件电路的设计 (下方附文件) 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+8位LED灯电路+蓝牙模块电路+电源电路组成. 1.通过手机APP可以控制8路 ...

  3. 基于51单片机小板的led灯全亮全灭

    #include<reg51.h> //led灯在小板里用P0口 unsigned char i=5000;//定义一个短暂的延时 void main(){ P0=0x00; while( ...

  4. 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计

    1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...

  5. 基于51单片机的汇编/C程序:拨码开关控制八位LED实现流水灯

    基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯 2022-03-08,51单片机学习笔记 功能 打开K1循环左移,打开K2循环右移,打开K3两侧到中心来回点亮,打开K4单双数位置交替点亮. ...

  6. 51单片机入门 第一篇:LED灯

    文章目录 前言 一.LED原理图 二.创建keil5工程 三.代码的编写 四.程序的烧录 总结 前言 本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机. 一.LE ...

  7. 51单片机入门学习篇-led灯、按键、数码管、中断

    文章目录 前言 一.Proteus仿真 二.Keil代码编写 1.流水灯 2.来回点灯 3.按键操作 4.中断操作 5.数码管 6 动态数码管 三. 练习题 总结 前言 本文用来记录博主学习单片机的过 ...

  8. 【造物笔记】基于51单片机的心形流水灯

    记录一下首个独立完成的小项目(虽然没有什么技术含量) 硬件方面:入门级的单片机点灯电路 软件方面:主要利用了c语言的位操作 整个项目的下载链接放在了文章最后 一.成品展示 正面 反面 二.元器件清单 ...

  9. 基于51单片机的WIFI模块的简单通信

    文章目录 ESP-01S-WIFI模块 AT指令 用到的AT指令 软件下载 如果是新WIFI设备,例如波特率9600,双模等等需要配置 与单片机通信接线 如何接线 代码(当作客户端接入自己家路由器,单 ...

  10. 基于51单片机的心形流水灯

    心形流水灯套件 1  设计目的 (1)掌握单片机芯片AT89C51的基本功能和使用. (2)熟悉Proteus仿真软件的使用,了解各元件的功能及作用. (3)了解音乐的基本知识. (4)提高数字电子电 ...

最新文章

  1. [leetcode] Construct Binary Tree from Preorder and Inorder Traversal
  2. 退出出库复核是什么意思_干货 | 电商仓储与传统仓储有什么不同?
  3. Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验
  4. MySQL中,21个写SQL的好习惯
  5. 干货 | 广电行业数字化时代的「数据破局」指南
  6. fir滤波器算法c语言程序,FIR滤波器设计C语言程序
  7. 【bzoj4327】JSOI2012 玄武密码 AC自动机
  8. unity3d从零開始(五):了解摄像机
  9. 《Applying Deep Learning to Answer Selection: A Study And an Open Task》文章理解小结
  10. hg255d php,HG255D刷潘多拉共享惠普1020打印机的问题汇总
  11. 数据中心建筑设计及功能区布局的注意事项
  12. xps文件服务器端,XPS文档读取查看器
  13. 下载并安装 J2SDK以及运行第一个java程序
  14. Modelica学习笔记1
  15. Linux替换压缩包下的文件,Linux下rar及zip压缩包中批量替换某文件脚本
  16. msdp rpf 规则1
  17. 【V-REP自学笔记(六)】基于V-REP逆运动学模块的机械臂轨迹规划
  18. XML文件处理——XML文件简介
  19. 【已解决】Failed to discover available identity versions when contacting http://controller:5000/v3.
  20. Python实现学生成绩管理系统

热门文章

  1. GitChat · 前端 | 从软件工程角度看大前端技术栈
  2. win10新版蓝牙驱动没有电源管理问题
  3. postman接口测试七
  4. Redis常用命令总结,java开发流程面试
  5. 一种FlashBuilder不能启动的解决方法
  6. C++网易云课堂开发工程师-操作符重载
  7. 一个简单的python爬虫,以豆瓣妹子“http://www.dbmeizi.com/category/2?p= ”为例
  8. 正定矩阵,半正定矩阵,负定矩阵的通俗理解
  9. laravel框架使用datatables
  10. WPF界面框架的设计