[应用相关]

stm32f103c8t6控制ESP8266与手机APP通信

[复制链接]
683|44
手机看帖
扫描二维码
随时随地手机跟帖
发给她更好fh|  楼主 | 2022-7-29 23:45 | 显示全部楼层 |阅读模式
stm32f103c8t6控制ESP8266与手机APP通信

之前已经发表过利用stm32控制蓝牙模块与手机APP通信的文章,那么现在我就来说说用WIFI模块来控制与手机APP的通信
首先需要的器件如下:
stm32f103c8t6
ESP8266-01S(默认波特率115200)
除此之外还需要手机下载一个通讯软件,我用的是安卓手机应用宝上面的TCP连接这个APP


使用特权

评论回复
发给她更好fh|  楼主 | 2022-7-29 23:46 | 显示全部楼层
WIFI模块的连接如下所示:
9920162e400bf1ccc6.png

使用特权

评论回复
发给她更好fh|  楼主 | 2022-7-29 23:50 | 显示全部楼层
代码很简单,我主要附上主函数代码:
/*
ESP8266 AP+Station服务器模式测试

UART2 PA2 PA3  与网络模块ESP进行通信

UART1 PA9 PA10 进行数据跟踪
*/

#include  "delay.h"
#include  "led.h"
#include  "usart.h"
#include  "string.h"
#include  "stdio.h"
extern  u8 RX_buffer[tbuf];
extern u8 RX_num;                                 //接收计数变量

u8  esp_at[]="AT\r\n";                  // 握手连接指令,返回"OK"
u8  esp_cifsr[]="AT+CIFSR\r\n";         // 本机IP地址查询指令
u8  esp_cipsend[]="AT+CIPSEND=6\r\n";   // 设置发送数据长度
u8  esp_test[]="sunny\r\n";                           //  数据内容
u8  esp_rst[]="AT+RST\r\n";                                         // 软件复位

u8  esp_cwmode[]="AT+CWMODE=3\r\n";     // 设置ESP8266的工作模式3 AP+Station,返回"OK"或者"no change"
u8  esp_cwsap[]="AT+CWSAP=\"ESP8266_TEST\",\"1234567890\",1,3\r\n";//设置WIFI的名称及密码
u8  esp_cipmux[]="AT+CIPMUX=1\r\n";                           //打开多连接       
u8  esp_cipserver[]="AT+CIPSERVER=1,8080\r\n";  //建立TCP服务器,开放端口8080

//指定字符串与缓存数组数据进行数据比较
//*p 要比较的指定字符串指针数据
//返回:1 数据一致  0 数据不一致
u8 Data_compare(u8 *p)
{
        if(strstr(RX_buffer,p)!=NULL)
            return 1;
        else
                return 0;
}

int main(void)
   {       
           delay_init();                     //延时函数初始化
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
        uart_init(115200);         //串口初始化为9600  
        LED_Init();                          //初始化与LED连接的硬件接口
        memset(RX_buffer, 0, tbuf);//清缓存数据
        RX_num=0;                                   //接收计数变量清0

        //配置wifi工作模式为ap+sta模式
    while(1)
        {
         Uart2SendStr(esp_cwmode);           // 设置ESP8266的工作模式3 AP+Station,返回"OK"或者"no change"
         if(Data_compare("OK")||Data_compare("no change"))break;
         else  Uart1SendStr("ERROR1,some problems with ESP8266 \r\n");
         delay_ms(600);
        }
         Uart1SendStr("OK,set mode as AP+Station with ESP8266! \r\n");         
         memset(RX_buffer, 0, tbuf);//清缓存数据       
         RX_num=0;                                   //接收计数变量清0
       
        while(1)
        {
         Uart2SendStr(esp_cwsap);           //设置WIFI的名称及密码
         if(Data_compare("OK"))break;
         else  Uart1SendStr("ERROR2,some problems with ESP8266 \r\n");
         delay_ms(600);
        }
         Uart1SendStr("OK,set cwsap success! \r\n");
         memset(RX_buffer, 0, tbuf);//清缓存数据       
         RX_num=0;                                        //接收计数变量清0
       
    while(1)
        {
         Uart2SendStr(esp_cipmux);           //设置多连接 (多路连接模式)
         if(Data_compare("OK"))break;
         else  Uart1SendStr("ERROR3,some problems with ESP8266 \r\n");
         delay_ms(600);
        }
        Uart1SendStr("OK,set cipmux success! \r\n");
        memset(RX_buffer, 0, tbuf);//清缓存数据
        RX_num=0;                                   //接收计数变量清0

    while(1)
        {
         Uart2SendStr(esp_cipserver);           //设置wifi模块为TCP服务器模式,并配置端口为8080
         if(Data_compare("OK"))break;
         else  Uart1SendStr("ERROR4,some problems with ESP8266 \r\n");
         delay_ms(600);
        }
        Uart1SendStr("OK,set server success! \r\n");
        memset(RX_buffer, 0, tbuf);//清缓存数据
        RX_num=0;                                   //接收计数变量清0

        while(1)
        {       
                if(Data_compare("LEDK"))               //点亮板上了的led
                {               
            led(1);       
                        memset(RX_buffer, 0, tbuf);//清缓存数据
                        RX_num=0;                                   //接收计数变量
                        Uart1SendStr("led is open!\r\n");                                                       
                }
            else if(Data_compare("LEDG"))                    //关闭板上了的led
                {
            led(0);               
                        memset(RX_buffer, 0, tbuf);//清缓存数据
                        RX_num=0;                                   //接收计数变量清0
                        Uart1SendStr("led is close!\r\n");                                                                       
                }       
        }
   }

使用特权

评论回复
发给她更好fh|  楼主 | 2022-7-29 23:59 | 显示全部楼层
这里主要用到有如下几个AT指令:
AT+CWMODE=3(设置ESP8266的工作模式3 AP+Station,返回"OK"或者"no change")
AT+CWSAP=“ESP8266_TEST”,“1234567890”,1,3(设置WIFI的名称及密码,这个名称和密码你可以随便取你自己喜欢的就行,后面两个是通道号和密码模式,默认1,3就好)
AT+CIPMUX=1(打开多连接 )
AT+CIPSERVER=1,8080(建立TCP服务器,开放端口8080)
这些AT指令我是在程序中执行的,不过你也可以利用USB转TTL模块直接与WIFI模块连接进行配置,这里说明一下,配置AP+Station模式以及配置WIFI名称和密码只要配置一次就行,即使之后断电再上电也不用重复配置,每次上电后只要输入AT+CIPMUX=1和AT+CIPSERVER=1,8080即可。

使用特权

评论回复
Uriah| | 2022-10-4 13:30 | 显示全部楼层

在掌握对象的变化频度时是有效的

使用特权

评论回复
Bblythe| | 2022-10-4 16:29 | 显示全部楼层

大部分单片机都带有加密锁定位或者加密字节

使用特权

评论回复
uytyu| | 2022-10-18 13:38 | 显示全部楼层
stm32基于wifi与手机通信怎么实现  

使用特权

评论回复
alvpeg| | 2022-10-18 14:06 | 显示全部楼层
esp8266支持http协议吗         

使用特权

评论回复
pmp| | 2022-10-18 14:33 | 显示全部楼层
Esp8266WiFi模块是怎么实现与手机进行通信的     

使用特权

评论回复
wwppd| | 2022-10-18 15:01 | 显示全部楼层
用stm32c8t6配合esp8266进行数据交互,实现用手机通过无线的方式

使用特权

评论回复
fengm| | 2022-10-18 15:38 | 显示全部楼层
stm32与串口WiFi模块ESP8266如何配置  

使用特权

评论回复
adolphcocker| | 2022-10-18 16:26 | 显示全部楼层
esp8266如何识别手机的信号  

使用特权

评论回复
mnynt121| | 2022-10-18 17:23 | 显示全部楼层
ESP8266如何实现与服务器的TCP通讯  

使用特权

评论回复
ingramward| | 2022-10-18 18:13 | 显示全部楼层
ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。  

使用特权

评论回复
bartonalfred| | 2022-10-18 19:08 | 显示全部楼层
STM32和ESP8266哪个作为硬件比较简单?  

使用特权

评论回复
hearstnorman323| | 2022-10-18 19:59 | 显示全部楼层
esp8266模块怎么实现多终端通信  

使用特权

评论回复
biechedan| | 2022-10-18 21:00 | 显示全部楼层
esp8266怎么实现远距离控制小灯

使用特权

评论回复
primojones| | 2022-10-18 21:52 | 显示全部楼层
求助用wifi ESP8266通过手机控制点亮LED灯  

使用特权

评论回复
vivilyly| | 2022-10-19 20:09 | 显示全部楼层
stm32通过串口与wifi模块通信。      

使用特权

评论回复
wwppd| | 2022-10-19 21:29 | 显示全部楼层
如何实现wifi模块与手机app的实时通讯  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

416

帖子

1

粉丝