整个课程学完对串口通信及esp8266的tcp指令和udp指令有了一个清晰的认识,我们可以沿着这一条道路进而学习其他通信协议及模块,进一步让我们学到更多地知识,从而打开stm32的大门。
一.改进代码,进行UDP传输 利用串口进行输入WIFI的账号和密码// 向ESP8266发送UDP数据
uint8_t ESP8266_Send_UDP(char *data)
{
// 1.准备发送的指令
char buf[256] = {0};
uint8_t len = strlen(data);
sprintf(buf, "AT+CIPSEND=%drn", len);
// 2.发送指令
if (ESP8266_SendCommand(buf, "OK", 500) == 0)
{
// 3.发送数据
ESP8266_SendCommand(data, "OK", 1000);
return 0;
}
return 1;
}
//更新wifi链接信息
void Key_update_WIFI(char *cmd,uint16_t time)
{
char ch=0;
char len=0;
char ssid_buf[20]="12345";
char PWD_buf[20]="1241138418..";
char WIFI_buf[100]="AT+CWJAP_DEF="";
//1.设置等待时间
HAL_Delay(time);
//2.检测是否按下,是否需要更新wifi账号密码
if (Key_GetFlag() == 1)
{
//获取WiFi的账号
memset(ssid_buf,0,20);
printf("please enter SSID:");
while(ch!='r')
{
ch=getchar ();
if(ch > ' ')
{
printf("%c",ch);
ssid_buf[len]=ch;
len++;
}
}
//获取wifi的密码
ch=0;
len=0;
memset(PWD_buf,0,20);
printf("please enter password:");
while(ch!='r')
{
ch=getchar ();
if(ch > ' ')
{
printf("%c",ch);
PWD_buf[len]=ch;
len++;
}
}
}
//3.组合指令
strcat(WIFI_buf,ssid_buf);
strcat(WIFI_buf,"","");
strcat(WIFI_buf,PWD_buf);
strcat(WIFI_buf,""");
memcpy(cmd,WIFI_buf,strlen(WIFI_buf));
}
这里是设置了初试默认密码,如果需要重新人为的更新。则,进行printf即可。
2 项目回顾基于物联网的智能家居系统是以STM32F103C8T6单片机为核心构成的。
使用板上LED和KEY,并通过WIFI将数据发送到小程序。在应用层,建立小程序显示,完善使用体验。
硬件平台:PC机,STM32F103_C8T6
软件平台:CubeMx、Keil
完成的效果:
1.手机端的小程序可以远程对LED小灯进行控制
2.实现物联网小程序和STM32F103_C8T6开发板通过WIFI连接
3.实现门铃警报功能



