【百问网智能家居】学习嵌入式,韦东山基础班day7

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


【百问网智能家居】学习嵌入式,韦东山基础班day7

一、程序改进,UDP传输。

用户数据报协议(UDP):UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。因此报文可能会丢失、重复以及乱序等。但由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

二、程序

代码如:


// 向ESP8266发送UDP数据
uint8_t ESP8266_Send_UDP(char *data)
{
	// 1.准备发送
	char buf[256] = {0};
	uint8_t len = strlen(data);
	sprintf(buf, "AT+CIPSEND=%d\r\n", 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));
}



---

# 总结
基于物联网的智能家居系统是以STM32F103C8T6单片机为核心构成的。使用板上LED和KEY,并通过WIFI将数据发送到小程序。在应用层,建立小程序显示,完善使用体验。
硬件平台:电脑,STM32F103_C8T6
软件平台:Keil5
实现的功能:
1.手机端远程对LED小灯进行控制
2.实现物联网小程序和STM32F103_C8T6开发板通过WIFI连接
3.实现门铃警报功能

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值