stm32通过wifi模块实现手机远程控制灯与舵机

您所在的位置:网站首页 远程遥控灯怎么布线视频 stm32通过wifi模块实现手机远程控制灯与舵机

stm32通过wifi模块实现手机远程控制灯与舵机

2024-06-30 16:51| 来源: 网络整理| 查看: 265

由于对wifi模块的控制需要,在网上找了许多资料,发现wifi模块通过单片机进行通讯的代码不多,也有一些存在着错误,于是便自己写了一个wifi控制舵机和灯的程序,记录下来

stm32通过wifi模块实现手机远程控制灯与舵机内容包括: 所需要的元器件整体思路连线图完成效果wifi模块初始化代码解析遇到的问题总结

所需要的元器件 stm32单片机usb-ttl模块stlinkwifi模块8066舵机 整体思路

1.stm32先进行wifi模块初始化,发送AT指令使得wifi模块进入sta模式,自动发送wifi名称与密码连接至手机的热点,接入TCP,并开启通透传递模式。 2.通过手机发送led信号让wifi模块接收到信息,并返回单片机,在串口2上显示,并翻转单片机上的led灯,返回连接成功信息到手机上。 3.通过手机发送舵机信号让wifi模块接收到信息,返回单片机,在串口2上显示,并控制连接在单片机上的舵机转动,返回连接成功信息到手机上。

连线图

stm32通过uart1与wifi连接, stlink连接stm32, usb-ttl连接stm32的uart2, 舵机连接tim4来实现用脉冲控制舵机转动角度。

完成效果

使程序能够自行连接给定的WIFI热点和服务器并实现双向通信,通过wifi模块完成手机对stm32外设(灯和舵机)的控制

wifi模块

wifi模块初始化

wifi模块的初始化中,有几个指令是不可缺少的:

AT测试AT+CWMODE=1设置工作模式AT+CWJAP=“热点名称”,“热点密码”AT+CIPSTART=“TCP”,“服务器地址”,端口号 代码解析 wifi模块初始化代码 int wifi_init() { uint8_t ret=0; ret = Send_AT_commend("AT", "OK", 100); if(!ret) return -1; ret = Send_AT_commend("AT+CWMODE=1", "OK", 100); if(!ret) return -2; wifi_str(); ret = Send_AT_commend(temp, "OK", 9000); if(!ret) return -3; server_str(); ret = Send_AT_commend(temp, "OK", 3000); if(!ret) return -4; ret = Send_AT_commend("AT+CIPMODE=1", "OK", 100); if(!ret) return -5; return 1; } uint8_t wifi_str() { int i=0; while(temp[i])temp[i++]=0x00; strcat(temp,"AT+CWJAP="); strcat(temp,"\""); strcat(temp,NAME); strcat(temp,"\",\""); strcat(temp,PWD); strcat(temp,"\""); } uint8_t server_str() { int i=0; while(temp[i])temp[i++]=0x00; strcat(temp,"AT+CIPSTART=\"TCP\",\""); strcat(temp,ADDR); strcat(temp,"\","); strcat(temp,PORT); } 发送AT指令部分代码 uint8_t Send_AT_commend(char *at_commend, char *re_commend, uint16_t time_out) { uint8_t i=0; for(i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3