栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【百问网】7天物联网智能家居 第七天:改进程序

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【百问网】7天物联网智能家居 第七天:改进程序

  整个课程学完对串口通信及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.实现门铃警报功能

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971131.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号