Day7-项目优化与回顾——百问网7天物联网智能家居

Day7-项目优化与回顾——百问网7天物联网智能家居

1 项目优化

基于WiFi代码改进添加了2项功能,利用串口手动输入WiFi账号和密码和优化展示ESP8266IP
1、设置上电后等待时间 如果在等待时间内按下按键,可输入账号和密码超时则跳出。
2、判断是否有按键按下
如果有按键按下,就马上获取数据首先获取WiFi账号
while循环获取字符,每次只能获取一个字符
getchar获取串口输入的字符,每次获取一个
定义char ch 来存放字符
while循环判定ch是否是\r,一旦输入回车就判断我们输入完了
ch是单个数据,要把ch保存起来,定义 char ssid_buf[20]="NETGEAR"保存起来,默认的账号是NETGEAR,密码100ask.cq,
定义长度 char len ssid_buf[len]=ch,每次长度+1 len++
在判断有按键按下时将ssid buf ,清空一下,不然输入账号时,如果字符少于7个就不会完全覆盖所以要将 ssid buf清空,memset(ssdi buf,0,20)
if(ch>“ ”)的意思是输入的如果是一些控制符,就给他过滤掉
接下来就是获取WiFi的密码操作和上面获取WiFi的账号基本一致
3、组合指令(“AT+CWJAP=“NETGEAR”,“100ask.cq””)
利用strcat将账号密码拼接起来,再利用memcpy将账号密码传回去。
借鉴:https://blog.csdn.net/su165108515/article/details/123783955?spm=1001.2014.3001.5502
核心代码

 ESP8266_GetIP();    /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
     //按键按下
     if (Key_GetFlag()) 
     {
        ESP8266_Send_UDP("{\"data\":\"doorbell\",\"status\":\"1\"}");
     }
     
     //收到UDP数据
     if (USART2_Receive(rx_data))
     {
         //printf("%s\r\n", rx_data);
         if (strstr((char *)rx_data, "\"dev\":\"led\",\"status\":\"0\"")) 
         {
            printf("led off\r\n");
            HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
            USART2_ClearBuf(); 
            memset(rx_data, 0, 200);
         }
         else if (strstr((char *)rx_data, "\"dev\":\"led\",\"status\":\"1\""))
         {
            printf("led on\r\n");
            HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
            USART2_ClearBuf(); 
            memset(rx_data, 0, 200);             
         }
     }
      
  }
  /* USER CODE END 3 */

2 项目回顾

基于物联网的智能家居系统是以STM32F103C8T6单片机为核心构成的。使用板上LED和KEY,并通过WIFI将数据发送到小程序。在应用层,建立小程序显示,完善使用体验。
硬件平台:百问网STM32F103_MINI、PC机
软件平台:Keil、CubeMx
完成的项目实验
1.实现百问网物联网小程序和STM32F103_MINI开发板通过WIFI连接
2.手机端可以远程点亮LED小灯
3.实现门铃警报功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值