1、基于单片机Wifi无线通信方案 Demo基于单片机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脚
2、PL2303白线-ESP8266的UTXD 脚注意:用PC机上的串口助手测试时,由于ESP8266的电源是,所以先要把开发板的电源配置成 ,如下图J-PWR,跳线冒连接。PL2303 的电源(红线)不接!ESP8266引脚的VCC和CH_PD连接开发板JPWR的vcc两个脚,ESP8266的地与PL2306的地连接开发板JPWR的GND两个脚(共地)!在PC上打开软件,界面如下:注意:发送新行 选择上,波特率默认为115200,8,1,None 串口号选择PL2303的COM口(查看设备管理器) 打开串口即可测试 (软件的发送新行要打勾) 第一步:配置波特率然后在字符串输入框中输入:AT+UA
3、RT=9600,8,1,0,0发送给ESP8266 ,若返回OK,表示成功(注意最后一位不要选择流控) 第二步:ESP8266配置AP的SSID和密码然后在字符串输入框中输入:AT+CWSAP=ESP8266-gigi,90,5,3注意:操作第二步时,要把串口软件的波特率设置成9600。设置成功后,可以利用PC上的无线网卡去连接到此,ESP8266配置完成,然后下载单片机程序,此时要单片机的电源重新换成5V!注意:单片机下载程序需要5V,运行时可以为。在换成5V,注意要把ESP8266的电源断开,避免烧毁芯片!第三步:单片机与ESP8266连接(注意单片机供电换成)单片机与ESP8266连接
4、ESP8266的URXD脚-单片机的 ESP8266的UTXD 脚-单片机的 ESP8266的VCC脚 -开发板JPWR排针的VCC() ESP8266的CH_PD脚-开发板JPWR排针的VCC ESP8266的GND脚-开发板JPWR排针的GND第四步:安装Android程序在手机上安装,然后对开发板重新上电,等待10S左右,手机无线网络连接SSID为ESP8266-gigi的网络,密码为90.然后打开软件即可,如下图!第三部分:程序分析 Android程序中给出了2个按键对应的发送码APK中的协议:第一个按钮 private final String FAN_ON = 1; /数码管依次显
5、示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* 函数功能 : 使用数码管显示* 输 入 : 无* 输 出 : 无*/voi
6、d 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,按第二个按键,数码管全灭,不显示。