资源描述
基于单片机Wifi无线通信方案第一部分:功能介绍 通过手机发送指令控制LED亮与灭单片机原理图第二部分:硬件接法1. 连接实验相关模块连线如图:JP10(P0)接J12J21跳线帽接左边A P22BP23CP24J10与J12相连接(即是P0口控制LED) 单片机与ESP8266连接:由于单片机的串口通常配置成9600,而ESP8266初始的波特率为115200,所以先用PC通过PL2303去配置ESP8266模块的波特率为9600 ESP8266图示 PL2303图示PC与ESP8266通过PL2303连接 PL2303绿线-ESP8266的URXD脚 PL2303白线-ESP8266的UTXD 脚注意:用PC机上的串口助手测试时,由于ESP8266的电源是3.3V,所以先要把开发板的电源配置成3.3V ,如下图J-PWR,跳线冒连接3.3V。PL2303 的电源(红线)不接!ESP8266引脚的VCC和CH_PD连接开发板JPWR的vcc两个脚,ESP8266的地与PL2306的地连接开发板JPWR的GND两个脚(共地)!在PC上打开软件sscom42.exe,界面如下:注意:发送新行 选择上,波特率默认为115200,8,1,None 串口号选择PL2303的COM口(查看设备管理器) 打开串口即可测试 (软件的发送新行要打勾) 第一步:配置波特率然后在字符串输入框中输入:AT+UART=9600,8,1,0,0发送给ESP8266 ,若返回OK,表示成功(注意最后一位不要选择流控) 第二步:ESP8266配置AP的SSID和密码然后在字符串输入框中输入:AT+CWSAP=ESP8266-gigi,1234567890,5,3注意:操作第二步时,要把串口软件的波特率设置成9600。设置成功后,可以利用PC上的无线网卡去连接到此,ESP8266配置完成,然后下载单片机程序,此时要单片机的电源重新换成5V!注意:单片机下载程序需要5V,运行时可以为3.3V。在换成5V,注意要把ESP8266的电源断开,避免烧毁芯片!第三步:单片机与ESP8266连接(注意单片机供电换成3.3V)单片机与ESP8266连接 ESP8266的URXD脚-单片机的P3.1 ESP8266的UTXD 脚-单片机的P3.0 ESP8266的VCC脚 -开发板JPWR排针的VCC(3.3v) ESP8266的CH_PD脚-开发板JPWR排针的VCC(3.3v) ESP8266的GND脚-开发板JPWR排针的GND第四步:安装Android程序在手机上安装MyClient.apk,然后对开发板重新上电,等待10S左右,手机无线网络连接SSID为ESP8266-gigi的网络,密码为1234567890.然后打开MyClient.apk软件即可,如下图!第三部分:程序分析 Android程序中给出了2个按键对应的发送码APK中的协议:第一个按钮private final String FAN_ON = 1; /数码管依次显示01234567第二个按钮private final String FAN_OFF = 2;/数码管不显示 单片机程序:/-声明全局函数-/void DigDisplay(); /动态显示函数/* 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*/void main(void)unsigned char i;for(i=0;i8;i+)DisplayDatai=DIG_CODEi;while(1)DigDisplay();/* 函 数 名 : DigDisplay* 函数功能 : 使用数码管显示* 输 入 : 无* 输 出 : 无*/void DigDisplay()unsigned char i;unsigned int j;for(i=0;i8;i+)switch(i) /位选,选择点亮的数码管,case(0):LSA=0;LSB=0;LSC=0; break;/显示第0位case(1):LSA=1;LSB=0;LSC=0; break;/显示第1位case(2):LSA=0;LSB=1;LSC=0; break;/显示第2位case(3):LSA=1;LSB=1;LSC=0; break;/显示第3位case(4):LSA=0;LSB=0;LSC=1; break;/显示第4位case(5):LSA=1;LSB=0;LSC=1; break;/显示第5位case(6):LSA=0;LSB=1;LSC=1; break;/显示第6位case(7):LSA=1;LSB=1;LSC=1; break;/显示第7位GPIO_DIG=DisplayDatai;/发送段码j=10; /扫描间隔时间设定while(j-);GPIO_DIG=0x00;/消隐 若ESP接收数据,数据模式为:+IPD,0,1,1 共计10个字符,我们只需要得到最后一个传过来的一个字节即可! 最后现象是:按APP的第一个按键,数码管依次显示01234567,按第二个按键,数码管全灭,不显示。
展开阅读全文