基于51单片机+ESP-01WIFI模块LED灯的控制
基于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灯的控制相关推荐
- 基于51单片机的wifi智能led灯的毕业设计
基于51单片机的wifi智能led灯的毕业设计 摘要 系统基于STC89C52RC单片机设计,拥有自动与手动两种模式,自动模式下可以过热释红外传感器检测是否有人,采用光敏电阻构成的电路检测环境光的强度 ...
- 基于51单片机的智能无线LED灯控制 蓝牙手机APP控制灯亮灭亮度方案原理图设计
硬件电路的设计 (下方附文件) 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+8位LED灯电路+蓝牙模块电路+电源电路组成. 1.通过手机APP可以控制8路 ...
- 基于51单片机小板的led灯全亮全灭
#include<reg51.h> //led灯在小板里用P0口 unsigned char i=5000;//定义一个短暂的延时 void main(){ P0=0x00; while( ...
- 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计
1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...
- 基于51单片机的汇编/C程序:拨码开关控制八位LED实现流水灯
基于51单片机的汇编程序:拨码开关控制八位LED实现流水灯 2022-03-08,51单片机学习笔记 功能 打开K1循环左移,打开K2循环右移,打开K3两侧到中心来回点亮,打开K4单双数位置交替点亮. ...
- 51单片机入门 第一篇:LED灯
文章目录 前言 一.LED原理图 二.创建keil5工程 三.代码的编写 四.程序的烧录 总结 前言 本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机. 一.LE ...
- 51单片机入门学习篇-led灯、按键、数码管、中断
文章目录 前言 一.Proteus仿真 二.Keil代码编写 1.流水灯 2.来回点灯 3.按键操作 4.中断操作 5.数码管 6 动态数码管 三. 练习题 总结 前言 本文用来记录博主学习单片机的过 ...
- 【造物笔记】基于51单片机的心形流水灯
记录一下首个独立完成的小项目(虽然没有什么技术含量) 硬件方面:入门级的单片机点灯电路 软件方面:主要利用了c语言的位操作 整个项目的下载链接放在了文章最后 一.成品展示 正面 反面 二.元器件清单 ...
- 基于51单片机的WIFI模块的简单通信
文章目录 ESP-01S-WIFI模块 AT指令 用到的AT指令 软件下载 如果是新WIFI设备,例如波特率9600,双模等等需要配置 与单片机通信接线 如何接线 代码(当作客户端接入自己家路由器,单 ...
- 基于51单片机的心形流水灯
心形流水灯套件 1 设计目的 (1)掌握单片机芯片AT89C51的基本功能和使用. (2)熟悉Proteus仿真软件的使用,了解各元件的功能及作用. (3)了解音乐的基本知识. (4)提高数字电子电 ...
最新文章
- [leetcode] Construct Binary Tree from Preorder and Inorder Traversal
- 退出出库复核是什么意思_干货 | 电商仓储与传统仓储有什么不同?
- Java程序员从笨鸟到菜鸟之(九十一)跟我学jquery(七)jquery动画大体验
- MySQL中,21个写SQL的好习惯
- 干货 | 广电行业数字化时代的「数据破局」指南
- fir滤波器算法c语言程序,FIR滤波器设计C语言程序
- 【bzoj4327】JSOI2012 玄武密码 AC自动机
- unity3d从零開始(五):了解摄像机
- 《Applying Deep Learning to Answer Selection: A Study And an Open Task》文章理解小结
- hg255d php,HG255D刷潘多拉共享惠普1020打印机的问题汇总
- 数据中心建筑设计及功能区布局的注意事项
- xps文件服务器端,XPS文档读取查看器
- 下载并安装 J2SDK以及运行第一个java程序
- Modelica学习笔记1
- Linux替换压缩包下的文件,Linux下rar及zip压缩包中批量替换某文件脚本
- msdp rpf 规则1
- 【V-REP自学笔记(六)】基于V-REP逆运动学模块的机械臂轨迹规划
- XML文件处理——XML文件简介
- 【已解决】Failed to discover available identity versions when contacting http://controller:5000/v3.
- Python实现学生成绩管理系统
热门文章
- GitChat · 前端 | 从软件工程角度看大前端技术栈
- win10新版蓝牙驱动没有电源管理问题
- postman接口测试七
- Redis常用命令总结,java开发流程面试
- 一种FlashBuilder不能启动的解决方法
- C++网易云课堂开发工程师-操作符重载
- 一个简单的python爬虫,以豆瓣妹子“http://www.dbmeizi.com/category/2?p= ”为例
- 正定矩阵,半正定矩阵,负定矩阵的通俗理解
- laravel框架使用datatables
- WPF界面框架的设计