0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于STM32设计的物联网环境监测系统(华为云IOT)

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2023-07-14 10:20 次阅读

1. 前言

随着物联网技术的快速发展,越来越多的家庭开始关注环境监测和远程控制的需求。为了满足这一需求,设计了一款基于华为云IOT的物联网环境监测系统。

该系统实现对家庭环境中的光照强度、温湿度等信息的实时监测,并通过云端实现远程查看和控制家里的电器设备。通过使用ESP8266 Wi-Fi模块,能够将传感器获取的数据通过无线网络传输到云端,实现远程数据传输和控制。

华为云IOT物联网云平台作为基础设施,提供了丰富的功能和接口,能够帮助我们轻松构建物联网应用。使用MQTT传输协议与华为云IOT平台进行通信,通过调用其提供的接口,能够实时获取传感器数据,并将其显示在上位机界面上。

在该系统中,主要目标是实时监测家庭环境的光照强度、温湿度等信息,并将相关信息和设备状态实时显示在上位机界面上。通过远程控制功能,用户可以在任何地方使用手机电脑远程控制家里的电器设备,例如灯光、空调等,从而实现智能化的家居控制。

通过该物联网环境监测系统,用户可以随时随地监测家庭环境的状态,了解光照强度、温湿度等信息,从而做出相应的调整。同时,用户可以通过远程控制功能,实现对家里电器设备的远程控制,提高家居的舒适度和便利性。

2. 具体需求

该项目设计一个基于华为云IOT的物联网环境监测系统,实现对光照强度、温湿度等信息的实时监测,并将相关信息、设备状态信息等实时显示。通过ESP8266 Wi-Fi模块进行联网,实现远程数据传输和远程控制显示。

硬件选项要求如下:

  1. ESP8266串口WIFI模块:用于与华为云IOT平台进行远程通信,将传感器数据上传到云端,并接收云端的控制指令。
  2. DHT11温度传感器:用于检测本地环境的温度和湿度信息,通过ESP8266模块将数据上传到云端。
  3. 继电器:用于模拟控制家里的电器设备,通过ESP8266模块接收云端的控制指令,实现远程控制家用电器的开关。
  4. BH1750光敏传感器:用于检测环境的光强度,通过ESP8266模块将光照强度数据上传到云端。
  5. MQ135空气质量传感器:用于检测可燃气体、烟雾浓度等环境参数,实现火警预警功能。
  6. OLED显示屏:用于本地显示传感器的参数情况,实时展示温度、湿度、光照强度等信息。

软件要求如下:

  1. 使用华为云IOT物联网云平台:通过MQTT传输协议,实现与ESP8266模块的通信,接收传感器数据并将其存储在云端。
  2. 设计上位机界面:通过调用华为云IOT平台提供的接口,实时显示光照强度、温湿度等信息,以及设备状态信息。
  3. 远程控制功能:在上位机界面上实现远程控制家里电器设备的开关,通过华为云IOT平台向ESP8266模块发送控制指令。
    项目要求设计一个物联网环境监测系统,通过ESP8266 Wi-Fi模块实现传感器数据的采集和联网传输,利用华为云IOT物联网云平台实现数据存储和远程控制功能。通过上位机界面实时显示光照强度、温湿度等信息,并实现远程控制家用电器设备的开关。同时,使用DHT11温度传感器、BH1750光敏传感器、MQ135空气质量传感器和OLED显示屏等硬件组件来实现各项功能。

image-20220408095005963

image-20220408095020528

image-20220408095036200

image-20220408212113263

image-20220408212133681

image-20220408212154827

image-20220408212217647

image-20220411114314888

3. 硬件选型

3.1 继电器

image-20220320120540240

3.2 ESP8266 WIFI

(1)模块采用串口(LVTTL)与MCU(或其他串口设备)通信,内置TCP/IP协议栈,能够实现串口与WIFI之间的转换 (2)模块支持LVTTL串口,兼容3.3V和5V单片机系统 (3)模块支持串口转WIFI STA、串口转AP和WIFI STA+WIFIAP的模式,从而快速构建串口-WIFI数据传输方案

image-20220319213658741

3.3 MQ-135空气质量传感器

MQ135传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其它有害的监测也很理想。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。

image-20220319211928010

img

img

3.4 DHT11温湿度传感器

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有可靠性与卓越的长期稳定性,成本低、相对湿度和温度测量、快响应、抗干扰能力强、信号传输距离长、数字信号输出、精确校准。传感器包括一个电容式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。可用于暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。

特点如下:

1、可以检测周围环境的湿度

2、可以检测周围环境的温度

3、湿度测量范围:20%-95%(0度-50度范围)湿度测量误差:+-5%4、温度测量范围:o度-50度温度测量误差:+-2度

4、工作电压3.3V-5V

5、输出形式数字输出

image-20220319211432662

image-20220319211455249

3.5 STM32系统板

主控CPU采用STM32F103RCT6,这颗芯片包括48 KB SRAM、256 KB Flash、2个基本定时器、4个通用定时器、2个高级定时器、51个通用IO口、5个串口、2个DMA控制器、3个SPI、2个I2C、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口,芯片属于大容量类型,配置较高,整体符合硬件选型设计。当前选择的这款开发板自带了一个1.4寸的TFT-LCD彩屏,可以显示当前传感器数据以及一些运行状态信息。

image-20220319202557220

3.6 OLED显示屏

image-20220321181209155

特点:

OLED是有机发光二极管又称为有机激光显示、OLED显示技术具有自发光的特性、采用非常薄的有机材料涂层、和玻璃基板、当有电流通过时、这些有机材料就会发光、而且OLED显示屏幕可视角大、功耗低、OLED由于同时具备自发光、不需背光源(只是供电不会亮的、驱动程序和接线正确才会点亮)对比度高、厚度薄视角广、反应速度快、可用于挠曲面板、使用温度范围广、结构及制程等优异之特性、先接触的1286屏都是LCD的、需要背光、功耗较高、而OLED的功耗低、更加适合小系统、由于两者发光材料的不同、在不同的环境中、OLED的显示效果好、模块供电可以是3.3v也可以是5V、不需要修改模块电路、OLED屏具有多个控制指令、可以控制oLED的亮度、对比度、开关升压电路等指令、操作方便、功能丰富、可显示汉字、ASCH、图案等、同时为了方便应用在产品上、预留4个M3固定孔、方便用户固在机壳上。

3.7 母对母杜邦线

image-20220331175035193

3.8 BH1750光敏传感器

image-20220331175354383

4. 登录华为云创建云端设备

4.1 创建产品

华为运官网: https://www.huaweicloud.com/

在这里可以查看接入的协议的端口号和地址。

MQTT (1883) a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com

我们设备接入的协议选择MQTT,端口对应是1883

接下来继续创建产品,点击产品页面,点击右上角创建产品:

4.2 创建设备

这是我的设备信息:

设备ID
 61a580fad28ce3028832c2d8_esp8266_iot
 ​
 设备密钥
 1126626497
     
 {
     "device_id": "61a580fad28ce3028832c2d8_esp8266_iot",
     "secret": "1126626497"
 }

4.3 产品模型定义

这一步就是设置上报设备的属性,也就是设备的数据类型定义。

4.4 生成MQTT登录密匙

创建完产品、设备之后,接下来就需要知道如何通过MQTT协议登陆华为云服务器。

官方的详细介绍在这里: https://support.huaweicloud.com/devg-iothub/iot_01_2127.html#ZH-CN_TOPIC_0240834853__zh-cn_topic_0251997880_li365284516112

MQTT设备登陆密匙生成地址: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

下面就得到了MQTT协议设备登录的参数。

4.5 使用MQTT客户端软件登录

所有的参数已经得到,接下来采用MQTT客户端登录华为云进行测试。

下面这个软件是自己开发的,为了方便测试MQTT协议登录。

华为云物联网平台的域名是: a161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com

华为云物联网平台的IP地址是: 121.36.42.100

在软件里参数填充正确之后,就看到设备已经连接成功了。

接下来打开设备页面,可以看到设备已经在线了。

4.6 上报数据

官方文档: https://support.huaweicloud.com/devg-iothub/iot_01_2127.html#ZH-CN_TOPIC_0240834853__zh-cn_topic_0251997880_li365284516112

在这个文档里介绍了MQTT上报数据的格式。

总结的格式:

//订阅主题: 平台下发消息给设备
 $oc/devices/61a580fad28ce3028832c2d8_esp8266_iot/sys/messages/down
 ​
 //设备上报数据
 $oc/devices/61a580fad28ce3028832c2d8_esp8266_iot/sys/properties/report
 ​
 //上报的属性消息 (一次可以上报多个属性,在json里增加就行了)
 {"services": [{"service_id": "dht11","properties":{"DHT11-C":50}}]}

下面采用MQTT软件上报数据:

到此,设备数据已经上报成功,如果需要增加更多的属性,按照流程继续增加即可。

5. STM32设备端代码

STM32连接华为云IOT的工程代码Get: https://download.csdn.net/download/xiaolong1126626497/81993720

串口上会输出当前程序运行的状态信息,可以打开串口调试助手查看。

image-20220408201532756

5.1 LCD汉字取模

LCD上需要显示汉字,使用点阵字模取模软件进行取模。

image-20220408103722736

5.2 硬件连线

image-20220411103214276

1. ESP8266 WIFI接线
 ATK-ESP8266串口WIFI模块与STM32的串口2相连接。
 PA2(TX)--RXD 模块接收脚
 PA3(RX)--TXD 模块发送脚
 GND---GND 地
 VCC---VCC 电源3.3V~5.0V)
 ​
 2. TFT 1.44 寸彩屏接线
 GND   电源地
 VCC   接5V或3.3v电源
 SCL   接PC8(SCL)
 SDA   接PC9(SDA)
 RST   接PC10
 DC    接PB7
 CS    接PB8
 BL    接PB11
 ​
 3. DHT11 温湿度
 VCC--VCC
 GND---GND
 DAT---PA5 
 ​
 4. LED灯-模拟房间的照明灯
 VCC--- >5V
 DAT--- >PB12 
 GND--- >GND
 ​
 5. 智能窗帘-模拟家里的窗帘
 VCC--- >5V
 DAT--- >PB13  
 GND--- >GND
 ​
 6. MQ135空气质量检测传感器
 VCC--- >5V
 GND--- >GND
 DAT--- >PA1
 ​
 7. BH1750环境光检测模块:
 SDA-----PB5
 SCL-----PB6
 GND---GND 地
 VCC---VCC 电源(3.3V~5.0V)
 ​
 8. 板载LED灯接线
 LED1---PA8
 LED2---PD2
 ​
 9. 板载按键接线
 K0---PA0 
 K1---PC5 
 K2---PA15

5.2 keil工程布局

工程Get地址: https://download.csdn.net/download/xiaolong1126626497/81993720

image-20220411103633943

image-20220411103651426

5.3 main.c代码

MQTT协议连接华为云IOT源码工程参考: https://download.csdn.net/download/xiaolong1126626497/81993720

#include "stm32f10x.h"
 #include "led.h"
 #include "delay.h"
 #include "key.h"
 #include "usart.h"
 #include < string.h >
 #include "timer.h"
 #include "esp8266.h"
 #include "motor.h"
 #include "oled.h"
 #include "dht11.h"
 #include "adc.h"
 #include < string.h >
 #include < stdlib.h >
 #include "font.h"
 #include "mqtt.h"
 #include "iic.h"
 #include "bh1750.h"/*
 ​
 (1)ESP8266  串口WIFI,用来与华为云IOT进行远程通信。
 ​
 (2)DHT11 温度传感器,检测本地环境的温度湿度信息。
 ​
 (3)继电器,来模拟控制家里的电器。
 ​
 (4)BH1750 光敏传感器,检测环境光强度
 ​
 (5)MQ135 空气质量传感器。可以检测可燃气体、烟雾浓度,实现火警预警。
 ​
 (6)OLED显示屏显示本地的传感器的参数情况,实时展示
 ​
 */
 ​
 ​
 //华为物联网服务器的设备信息
 #define MQTT_ClientID "61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510"
 #define MQTT_UserName "61b9ba3a2b2aa20288c1e7f1_QQ1126626497"
 #define MQTT_PassWord "385ce91dfe7da5b7431868d5d87e7998163c493344040935d5a00024d6324242"//订阅与发布的主题
 #define SET_TOPIC  "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/messages/down"  //订阅
 #define POST_TOPIC "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/properties/report"  //发布
 ​
 ​
 //设置连接的路由器信息
 #define CONNECT_WIFI  "Xiaomi_meizi6"   //将要连接的路由器名称 --不要出现中文、空格等特殊字符
 #define CONNECT_PASS "12170307yu"       //将要连接的路由器密码#define CONNECT_SERVER_IP "121.36.42.100"   //服务器IP地址
 #define CONNECT_SERVER_PORT 1883            //服务器端口号//JTAG模式设置,用于设置JTAG的模式
 //mode:jtag,swd模式设置;00,全使能;01,使能SWD;10,全关闭;    
 #define JTAG_SWD_DISABLE   0X02
 #define SWD_ENABLE         0X01
 #define JTAG_SWD_ENABLE    0X00       
 void JTAG_Set(u8 mode)
 {
     u32 temp;
     temp=mode;
     temp< <=25;
     RCC- >APB2ENR|=1< < 0;     //开启辅助时钟       
     AFIO- >MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
     AFIO- >MAPR|=temp;       //设置jtag模式
 }
 ​
 ​
 u8 motor_flag=0; //窗帘的状态      0表示关闭  1表示打开
 u8 led_flag=0;   //房间照明灯状态  0表示关闭  1表示打开
 u16 MQ135_data=0; //MQ135烟雾传感器的值
 u8 DHT11_T=0; //环境温度
 u8 DHT11_H=0; //环境湿度
 u8 BH1750_data=0; //环境光照强度char request_id[100];
 char mqtt_message[100];
 ​
 //WIFI发送数据存储区域
 char data_buff[300];
 ​
 int main()
 {
     u8 esp8266_state=0;
     u8 key;
     u8 i;
     u32 time_cnt=0;
     u32 timer_hour_cnt=0; //记录定时的时间
     
     JTAG_Set(JTAG_SWD_DISABLE); //释放PA15
     LED_Init();
     KEY_Init();
     USART1_Init(115200);
     Moto_Init();  //风扇、加热棒初始化
     USART2_Init(115200);//串口-WIFI
     TIMER2_Init(72,20000); //超时时间20ms
     DHT11_Init();       //初始化DHT11
     Lcd_Init(); //LCD初始化
     Lcd_Clear(0); //清屏为黑色
     LCD_LED_SET;//通过IO控制背光亮     
     AdcInit();  //ADC初始化--检测MQ2烟雾传感器的数据
     IIC_Init();
     printf("正在初始化WIFI请稍等.rn");
     
     for(i=0;i< 5;i++)
     {
         if(ESP8266_Init()==0)
         {
             esp8266_state=1;
             break;
         }
         else
         {
             esp8266_state=0;
             printf("ESP8266硬件检测错误.n");  
         }
     }
   
    if(esp8266_state)
    {
        printf("准备连接服务器....rn");
         //非加密端口
         printf("WIFI:%dn",ESP8266_STA_TCP_Client_Mode(CONNECT_WIFI,CONNECT_PASS,CONNECT_SERVER_IP,CONNECT_SERVER_PORT,1));
          
         //2. MQTT协议初始化  
         MQTT_Init(); 
 ​
         //3. 连接服务器  
         for(i=0;i< 5;i++)
         {
             if(MQTT_Connect(MQTT_ClientID,MQTT_UserName,MQTT_PassWord)==0)
             {
                 esp8266_state=1;
                 break;
             }
             esp8266_state=0;
             printf("服务器连接失败,正在重试...n");
             delay_ms(500);
         }
         printf("服务器连接成功.n");
 ​
         //3. 订阅主题
         if(MQTT_SubscribeTopic(SET_TOPIC,0,1))
         {
            printf("主题订阅失败.n");
         }
         else
         {
            printf("主题订阅成功.n");
         } 
    }
    
     
     //环境温度
    LCD_ShowChineseFont(0,0,16,HZ_FONT_16[0],RED,0);
    LCD_ShowChineseFont(16*1,0,16,HZ_FONT_16[1],RED,0);
    LCD_ShowChineseFont(16*2,0,16,HZ_FONT_16[2],RED,0);
    LCD_ShowChineseFont(16*3,0,16,HZ_FONT_16[3],RED,0);
      
    //环境湿度
    LCD_ShowChineseFont(0,16*1,16,HZ_FONT_16[4],RED,0);
    LCD_ShowChineseFont(16*1,16*1,16,HZ_FONT_16[5],RED,0);
    LCD_ShowChineseFont(16*2,16*1,16,HZ_FONT_16[6],RED,0);
    LCD_ShowChineseFont(16*3,16*1,16,HZ_FONT_16[7],RED,0);
    
    //光照强度
    LCD_ShowChineseFont(0,16*2,16,HZ_FONT_16[8],RED,0);
    LCD_ShowChineseFont(16,16*2,16,HZ_FONT_16[9],RED,0);
    LCD_ShowChineseFont(16*2,16*2,16,HZ_FONT_16[10],RED,0);
    LCD_ShowChineseFont(16*3,16*2,16,HZ_FONT_16[11],RED,0);
    
    //空气质量
    LCD_ShowChineseFont(0,16*3,16,HZ_FONT_16[12],RED,0);
    LCD_ShowChineseFont(16,16*3,16,HZ_FONT_16[13],RED,0);
    LCD_ShowChineseFont(16*2,16*3,16,HZ_FONT_16[14],RED,0);
    LCD_ShowChineseFont(16*3,16*3,16,HZ_FONT_16[15],RED,0);
    
    //智能照明
    LCD_ShowChineseFont(0,16*4,16,HZ_FONT_16[16],RED,0);
    LCD_ShowChineseFont(16,16*4,16,HZ_FONT_16[17],RED,0);
    LCD_ShowChineseFont(16*2,16*4,16,HZ_FONT_16[18],RED,0);
    LCD_ShowChineseFont(16*3,16*4,16,HZ_FONT_16[19],RED,0);
    
    //智能窗帘
    LCD_ShowChineseFont(0,16*5,16,HZ_FONT_16[20],RED,0);
    LCD_ShowChineseFont(16,16*5,16,HZ_FONT_16[21],RED,0);
    LCD_ShowChineseFont(16*2,16*5,16,HZ_FONT_16[22],RED,0);
    LCD_ShowChineseFont(16*3,16*5,16,HZ_FONT_16[23],RED,0);
    
    while(1)
    {
         //按键可以手动控制开启窗帘和LED灯
         key=KEY_Scan();
         if(key)printf("key=%drn",key);
        
         //控制LED灯
         if(key==2)
         {
             led_flag=!led_flag;
             if(led_flag)
             {
                 LED_OUT=1;
             }
             else
             {
                 LED_OUT=0;
             }
         }    
         
         //控制继电器
         if(key==1)
         {
             motor_flag=!motor_flag; 
             if(motor_flag)
             {
                 MOTOR_OUT=1;
             }
             else
             {
                 MOTOR_OUT=0;
             }
         }    
         
         //轮询时间到达
         if(time_cnt >=100)
         {
             time_cnt=0;
             LED1=!LED1;
             
             //读取光强度
             BH1750_data=Read_BH1750_Data();
             printf("环境光强度:%drn",BH1750_data);
             
             //获取环境温湿度
             if(DHT11_Read_Data(&DHT11_T,&DHT11_H))
             {
                 printf("温度读取失败.rn");
             }
             printf("环境温度:%drn环境湿度:%drn",DHT11_T,DHT11_H);
             
             //获取空气质量
             MQ135_data=GetAdcCHxDATA(1);
             printf("空气质量:%drn",MQ135_data);
             
             //LCD屏实时显示温湿度、空气质量,系统工作状态等等。
             
             //环境温度
             sprintf(data_buff,"%d",DHT11_T);
             Gui_DrawFont_GBK16(72,16*0,RED,0,(u8*)data_buff);
             
             //环境湿度
             sprintf(data_buff,"%d",DHT11_H);
             Gui_DrawFont_GBK16(72,16*1,RED,0,(u8*)"       ");
             Gui_DrawFont_GBK16(72,16*1,RED,0,(u8*)data_buff);
               
             //环境光强度
             sprintf(data_buff,"%d",BH1750_data);
             Gui_DrawFont_GBK16(72,16*2,RED,0,(u8*)"       ");
             Gui_DrawFont_GBK16(72,16*2,RED,0,(u8*)data_buff);
             
             //空气质量
             sprintf(data_buff,"%d",MQ135_data);
             Gui_DrawFont_GBK16(72,16*3,RED,0,(u8*)"        ");
             Gui_DrawFont_GBK16(72,16*3,RED,0,(u8*)data_buff);
     
             //智能照明
             sprintf(data_buff,"%d",led_flag);
             Gui_DrawFont_GBK16(72,16*4,RED,0,(u8*)"        ");
             Gui_DrawFont_GBK16(72,16*4,RED,0,(u8*)data_buff);
 ​
             //智能窗帘
             sprintf(data_buff,"%d",motor_flag);
             Gui_DrawFont_GBK16(72,16*5,RED,0,(u8*)"        ");
             Gui_DrawFont_GBK16(72,16*5,RED,0,(u8*)data_buff);
 ​
             //上报数据
             sprintf(data_buff,"{"services":{"BH1750":[{"v":%d}],"DHT11_H":[{"v":%d}],"DHT11_T":[{"v":%d}],"MQ135":[{"v":%d}],"motor":[{"v":%d}],"LED":[{"v":%d}]}}",
             BH1750_data,DHT11_H,DHT11_T,MQ135_data,motor_flag,led_flag);
             
             MQTT_PublishData(POST_TOPIC,data_buff,0);
             printf("更新数据.rn");
         }
              
         // 接收WIFI返回的数据
         if(USART2_RX_FLAG)
         {
             USART2_RX_BUFFER[USART2_RX_CNT]='�';
             
             printf("WIFI收到数据:rn");
             //向串口打印服务器返回的数据
             for(i=0;i< USART2_RX_CNT;i++)
             {
                 printf("%c",USART2_RX_BUFFER[i]);
             }
             
             /*
             LED_ON    智能照明灯打开
             LED_OFF   智能照明灯关闭
             MOTOR_ON  智能窗帘打开
             MOTOR_OFF 智能窗帘关闭
             */
             
             //如果是下发了属性
             if(USART2_RX_CNT >5)
             {
                 //向服务器应答
                 if(strstr((char*)&USART2_RX_BUFFER[5],"cmd/request/"))
                 {  
                     char *p=NULL;
                     p=strstr((char*)&USART2_RX_BUFFER[5],"cmd/request/");
                     if(p)
                     {        
                         //解析数据
                         strncpy(request_id,p+12,36);      
                     }
                     
                     
                     //上报给服务器的数据
                     sprintf(mqtt_message,"success");
                     
                     //应答主题
                     sprintf(data_buff,"$sys/501579/dev1/cmd/response/%s",request_id);
                     
                     MQTT_PublishData(data_buff,mqtt_message,0);
                     
                     printf("发布主题:%srn",data_buff);
                     printf("发布数据:%srn",mqtt_message);
                 }
                 
                 //LED:0 LED:1 MOTOR:0 MOTOR:1
                 
                 //开灯
                 if(strstr((char*)&USART2_RX_BUFFER[5],"LED:0"))
                 {
                     LED_OUT=0;
                     led_flag=0;
                 }
                 //关灯
                 else if(strstr((char*)&USART2_RX_BUFFER[5],"LED:1"))
                 {
                     LED_OUT=1;
                     led_flag=1;
                 }
                 //开窗帘
                 else if(strstr((char*)&USART2_RX_BUFFER[5],"MOTOR:0"))
                 {
                     MOTOR_OUT=0;
                     motor_flag=0;
                 }
                 //关窗帘
                 else if(strstr((char*)&USART2_RX_BUFFER[5],"MOTOR:1"))
                 {
                     MOTOR_OUT=1;
                     motor_flag=1;
                 }
             }
             
             USART2_RX_CNT=0;
             USART2_RX_FLAG=0;
         }
         
         DelayMs(10);
         time_cnt++;
         timer_hour_cnt++;
      }
 }

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2909

    文章

    44557

    浏览量

    372790
  • STM32
    +关注

    关注

    2270

    文章

    10895

    浏览量

    355744
  • 监测系统
    +关注

    关注

    8

    文章

    2719

    浏览量

    81305
  • IOT
    IOT
    +关注

    关注

    187

    文章

    4202

    浏览量

    196698
  • 华为云
    +关注

    关注

    3

    文章

    2445

    浏览量

    17410
收藏 人收藏

    评论

    相关推荐

    【GoKit申请】基于大数据和计算的环境监测系统

    ,想研究下项目描述:准备依托这款能够提供服务的板子设计一款基于大数据和计算的环境监测系统,主要是讲采集到的环境信息通过将硬件接入互
    发表于 11-02 10:47

    【CANNON申请】家庭室内环境监测系统

    申请理由:想做一个家庭室内环境监测系统,主要是测量室内温度、湿度、粉尘浓度、光照、噪声等环境参数,同时对室内换气设备/空气净化设备、灯光等进行控制。本人有STM32F1系列单片机开发经
    发表于 01-26 14:30

    【Intel Edison申请】儿童环境监测

    满足了简单的环境监测了,将这些小项目组合起来就可以实现一个简单的环境监测系统了。这里要调试各个模块之前的逻辑关系与兼容性,不可以产生冲突。实现一个web或是在一个服务器上可以查看监测
    发表于 06-27 17:20

    【钛极小龟试用申请】钛极小龟环境监测及温湿度远程调控实验

    项目名称:钛极小龟环境监测及温湿度远程调控实验试用计划:本人从事多年软件开发工作, 擅长Java,Android程序开发, 同时对51,STM32单片机也有一定的开发经验, 对
    发表于 11-13 17:09

    14个环境监测系统设计案例

    工作的前提。随着现代科学技术的发展,环境监测越来越趋于智能化,无线传感网络、微波辐射技术、ZigBee等技术都被运用到环境检测中来。本文就将为大家介绍一些基于现代技术的环境监测系统的设
    发表于 04-26 09:16

    鸿蒙软、硬件综合小案例——环境监测报警系统

    环境监测报警系统,该系统主要实现对环境监测、报警功能,。系统共包含以下三部分:鸿蒙智能手表:实
    发表于 04-14 10:32

    环境监测系统解决方案

    环境监测系统解决方案 一、系统概要 本综合管控平台是一套基于计算的
    发表于 07-10 10:53 5480次阅读

    联网环境监测方面的发展趋势

    在万联时代,联网技术已经成为环境监测工作主要的手段,在社会发展中所起到的作用也变得十分突出。尤其是在
    发表于 05-24 09:04 2627次阅读

    中易环境监测系统解决方案概述

    感知、精准操作、精细管理,提供稳定、可靠、低成本维护的一站式云端联网平台。   环境监测系统通过对现场温度、湿度、光照、风向、风速、PM2.5、气压等参数的数据采集,将参数数据远至
    的头像 发表于 01-12 09:15 1110次阅读

    联网仓储环境监测系统

    以万互联为口号的联网技术,其应用之广泛超出想象,不仅能对农业温室大棚、水肥灌溉等进行远程管理,也能对仓库、粮库、机房等进行环境监测、控制。 仓储
    的头像 发表于 02-08 16:16 1069次阅读

    应用笔记|基于STM32联网环境监测系统

    之间进行数据交互。当无线通讯模组成功连接网络,并接入机智联网平台时,用户可以通过登录联网
    的头像 发表于 03-18 03:15 2360次阅读

    应用笔记|基于STM32联网环境监测系统

    本应用笔记以STM32单片机作为控制和数据处理的单元,使用AHT10、BH1750和BMP280传感器去监测周围的环境参数,在LCD屏完成传感器数据和相关信息的显示。同时,采用了无线模组与单片机之间
    的头像 发表于 03-30 15:13 3848次阅读
    应用笔记|基于<b class='flag-5'>STM32</b>的<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>环境监测</b><b class='flag-5'>系统</b>

    联网网关设备在环境监测中应用实现对环境状况的全方位监测和管理

    、大数据、人工智能等技术的快速发展,环境监测行业也在不断升级和转型。其中,基于联网环境监测系统得到了广泛应用,通过
    的头像 发表于 12-07 16:46 593次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>网关设备在<b class='flag-5'>环境监测</b>中应用实现对<b class='flag-5'>环境</b>状况的全方位<b class='flag-5'>监测</b>和管理

    LoRa ZWS应用(4)-环境监测设备接入篇

    环境监测系统中,要将监测设备接入联网平台,才能进行对
    的头像 发表于 01-26 08:25 757次阅读
    LoRa  ZWS<b class='flag-5'>云</b>应用(4)-<b class='flag-5'>环境监测</b>设备接入篇

    仓储环境监测联网系统方案

    系统的智能化水平,数之能推出了基于联网技术的仓储环境监测系统方案。 仓储环境监测
    的头像 发表于 12-13 13:41 70次阅读