您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > esp8266如何怎样连接公网外网设置
ESP8266连接公网,外网注:本文用手机apk与电脑串口显示进行通信,接线我就不说了。单片机上电后,对模块进行初始化设置ESP8266模块Esp8266设置:AT+CWMODE=3'AP兼Station模式AT+CWJAP=ssid,password;连接WiFiAT+CIPMUX=1'设置多连接AT+CIPSERVER=1,5566‘开启服务器,设置端口号路由器设置:找到esp8266对应的MAC地址,复制一下IP与MAC绑定,并添加进去,这样每次esp8266连接路由器时,分配到的为固定的IP,不会变。在路由转发中,把8266的ip与刚才分配的端口号添加进去,并使之生效。这样,路由器的设定就完成了。此时,手机通过外网连接,路由器的外网IP(不是192.168.1.***)+刚才设置端口号,就可以控制单片机了手机上软件有“tcp连接”这个apk,自己去下载个就行。连接就好了,付一张我连接成功发送数据的图。可以看出,手机上连接的是移动网络,电脑上已经收到信息了。可是,8266做了服务器,不能再用透传了,这样只能手机向上位机发送消息,上位机怎么向电脑发送哪?手机连接上8266的时候,电脑串口是不是显示了0,connect?那个0就是客户端号,一般来说,只有一个客户端连接8266的话,就是0,connect,如果有多的,就是1,2,3了。电脑上先发送:AT+CIPSEND=0,6;//客户端号,要发送字符长度再发送字符:123456;//此时电脑就可以向手机发信息了不过这种发送每次发送前都要发AT+CIPSEND=*,*;比较麻烦就是了。--------------------------------------------分割线------------------------------------1.Esp8266与电脑(单片机)通信波特率怎么调?(提取码:463b)这个工具可以设置(想我花了一天才百度到这个,还以为要烧结固件哪)。360会报毒,添加信任就行了。2.付单片机调试程序:#includereg52.h//?????#defineuintunsignedint#defineucharunsignedchar#defineRELOAD_COUNT0xFA//9600波特率,11.0592MHZ晶振sfrAUXR=0x8E;sfrBRT=0x9C;sfrAUXR1=0xA2;ucharReceive,i;uintn;ucharRecive_table[15];uchardataledon[]=ononon;ucharledoff[]=off1;voidms_delay(uintt){uinti,j;for(i=t;i0;i--)for(j=110;j0;j--);}voidus_delay(uchart){while(t--);}voidUart_Init()//初始化{SCON=0x50;//PCON=0x80;//TMOD=0x21;TH1=RELOAD_COUNT;//TL1=TH1;EA=1;//ES=0;//TR1=1;}/********************************************************************发送一字节********************************************************************/voidSend_Uart(ucharvalue){ES=0;//??????TI=0;//????????????SBUF=value;//??while(TI==0);//??????TI=0;//????????????ES=1;//??????}/********************************************************************发送字符串********************************************************************/voidESP8266_Set(uchar*puf)//????*puf???????{while(*puf!='\0')//????????{Send_Uart(*puf);//?WIFI?????????us_delay(5);puf++;}us_delay(5);Send_Uart('\r');//??us_delay(5);Send_Uart('\n');//??ms_delay(1000);}/****************************************************向手机发信息要先设置字符长度“AT+CIPSEND=0,6”,才能再发送字符*****************************************************/voidESP8266_Sent(uchar*puf)//????*puf???????{uchari;for(i=0;i6;i++){ledon[i]=puf[i];//?WIFI?????????}ESP8266_Set(AT+CIPSEND=0,6);ESP8266_Set(ledon);us_delay(5);Send_Uart('\n');//??ms_delay(10);}/********************************************************************主函数********************************************************************/voidmain(){Uart_Init();//???????????ESP8266_Set(AT+CWMODE=3);//???????1station??2AP//??????3station+AP????ESP8266_Set(AT+RST);//????wifi??ESP8266_Set(AT+CWSAP=\562\,\tongji123\);//????SSID:WIFI,PWD:???????????(WPA2-PSK)ESP8266_Set(AT+CIPMUX=1);//???????,??????????ESP8266_Set(AT+CIPSERVER=1,5566);//上面都是初始化ES=1;//开总中断while(1){if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))//MCU???????+IPD???????0\1???????{if((Recive_table[3]=='D')&&(Recive_table[6]==','))//收到的数据格式是:+IPD,0,3:123,第九位才开始收到数据{if(Recive_table[9]=='0'){//LED0=0;//0??/*ESP8266_Set(AT+CIPSEND=0,2);Send_Uart('o');us_delay(5);Send_Uart('n');us_delay(5);*/ESP8266_Set(hahaha);}elseif(Recive_table[9]=='1'){ESP8266_Set(AT+CIPSEND=0,2);Send_Uart('o');us_delay(5);Send_Uart('f');us_delay(5);//ESP8266_Sent(ledoff);}}}}}/*********************************************************************串口中断********************************************************************/voidUart_Interrupt()interrupt4{staticuchari=0;if(RI==1){RI=0;Receive=SBUF;//Recive_table[i]=Receive;i++;if((Recive_table[i-1]=='\n'))i=0;//考虑一下前面i定义为static格式}elseTI=0;}
本文标题:esp8266如何怎样连接公网外网设置
链接地址:https://www.777doc.com/doc-2870432 .html