IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 2021-08-13 -> 正文阅读

[嵌入式]2021-08-13

1、前期准备

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

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

ESP-01wifi模块在这里插入图片描述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;			//设置为工作方式1
	TMOD=0X20;			//设置计数器工作方式2
	PCON=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打开");
	else
	ESP8266_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模块,到一点一点熟悉,通过查询资料和参考各个博主的博客,用了两天的时间完成了整个操作过程并且效果也得到了实现。这是第一次写博客,里面会有很多不足的地方,以后慢慢的补充学习,还希望大家能够多多提供意见!

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:14:35  更:2021-08-14 14:15:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:50:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码