当前位置:   article > 正文

ESP8266与手机相互通信 透传模式(STM32F103C8T6 HAL库)有APP和完整代码_esp8266手机端app开发

esp8266手机端app开发

一、目标

        stm32f103c8t6用串口发送AT指令控制esp8266发送数据到手机APP上,同时手机也可以发送数据到stm32f103c8t6主控,控制LED的亮灭。

         将esp8266模块的GND、VCC、TXD、RXD、CH-PD与单片机对应引脚连接,其中TXD与RXD要反接,模块在工作时CH-PD要处于高电平状态。

二、串口助手实验过程  

        步骤:1 esp8266配置wifi模式  AT+CWMODE=1

                   2 esp8266重启  AT+RST

                   3 开启手机热点

                   4 esp8266连接手机热点  AT+CWJAP="热点名称","热点密码"

                   5 esp8266设置成单路模式  AT+CIPOMUX=0   

                   6 esp8266开启透传模式   AT+CIPMODE=1

                   7 打开手机APP,建立tcp server配置端口号,点击激活就可以看到服务器的ip地址

                   8 esp8266建立TCP连接   AT+CIPSTART="TCP","ip地址",端口号

                   9 进入透传模式 AT+CIPSEND  

        

        具体作如下:

        打开手机热点再以下步骤

       在助手串口助手输入AT指令,发送的时候注意勾选“发送新行”

配置完以上就可以打开手机app,建立一个服务端

点击激活以后就会弹出ip地址,如下图,记住ip地址 

接下来就可以建立tcp连接,输入AT指令,填好ip地址、端口号,就可以发送,返回CONNECT则连接成功,就可以接着发送进入透传模式的AT指令

出现这个箭头表示可以发送数据了,同时app上会出现esp8266连接的图标

到这里就配置完成,接下来就可以发送数据了。

串口助手发送数据到手机app(注意要取消勾选“发送新行”)

 app上就接收到从串口助手发送过来的数据了

 手机app发送数据到串口助手

在输入框输入内容,点击发送

 串口助手收到数据

三、stm32f103c8t6发送AT指令控制esp8266与手机APP通信

        如果是esp8266的第一次配置,建议先用串口助手配置,直接下载代码会连接失败。

用串口助手配置后,重新上电会自动连接手机热点,这样就可以省下前面好几个步骤了。

        我用的是串口3来做收发指令。对应引脚 TX--PB10  RX--PB11

        esp8266配置代码

  1. void esp8266_start_trans(void)//ESP8266配置
  2. {
  3. //第一次配置esp8266模块需解开以下注释 (esp8266第一次配置建议用串口助手)
  4. /*
  5. esp8266_send_cmd("AT+CWMODE=1","OK",50);//设置为AP模式
  6. esp8266_send_cmd("AT+RST","ready",20);//重启
  7. HAL_Delay(1000);
  8. HAL_Delay(1000);
  9. HAL_Delay(1000);`
  10. HAL_Delay(1000);
  11. esp8266_send_cmd("AT+CWJAP=\"heimao\",\"840777967\"","OK",200);//连接WiFi名称、密码
  12. HAL_Delay(1000);`
  13. HAL_Delay(1000);
  14. */
  15. esp8266_send_cmd("AT+CIPMUX=0","OK",20);//配置单路连接模式
  16. HAL_Delay(1000);
  17. esp8266_send_cmd("AT+CIPMODE=1","OK",20);//开启透传模式
  18. HAL_Delay(1000);
  19. esp8266_send_cmd("AT+CIPSTART=\"TCP\",\"192.168.234.24\",8080","OK",200);//建立TCP连接
  20. HAL_Delay(1000);
  21. esp8266_send_cmd("AT+CIPSEND","OK",50);//进入透传模式
  22. HAL_Delay(1000);
  23. }

接收代码

  1. void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
  2. {
  3. UNUSED(huart);
  4. if(huart->Instance == USART3)
  5. {
  6. if(Uart3_Rx_Cnt >= 255) //检测是否溢出
  7. {
  8. Uart3_Rx_Cnt = 0;
  9. memset(RxBuffer,0x00,sizeof(RxBuffer)); //清除缓存区
  10. }
  11. else
  12. {
  13. RxBuffer[Uart3_Rx_Cnt] = usart3_buffer; //接收数据缓存
  14. Uart3_Rx_Cnt++;
  15. }
  16. HAL_UART_Receive_IT(&huart3, (uint8_t *)&usart3_buffer, 1);
  17. }
  18. }

操作步骤:

        1 完成stm32f103c8t6与esp8266的接线

        2 打开手机热点

        3 打开手机APP,建立tcp server配置端口号,点击激活就可以看到服务器的ip地址

        4 下载代码

        5 连接成功

操作展示

        已提前开启热点

esp8266_1

点击下发链接 内有完整代码

https://live.csdn.net/v/294693

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/745731
推荐阅读
  

闽ICP备14008679号