IoT-enabled Smart Dorm Security System Design

1.主函数代码

#include "stm32f10x.h"

#include "bsp_led.h"

#include "bsp_delay.h"

#include "bsp_usart1.h"

#include "bsp_timer.h"

#include "bsp_usart2.h"

#include "bsp_dht11.h"

#include "bsp_adc.h"

#include "bsp_oled_iic.h"

#include "bsp_key.h"

#include "bsp_FMQ.h"

#include "gizwits_product.h"

#include "gizwits_protocol.h"

DHT11_Data_TypeDef DHT11_Data;

uint8_t Temp = 0;

extern uint16_t ADC_ConvertedValue[NOFCHANEL];

uint8_t MqValue = 0;

char oledbuf_temp[16];

char oledbuf_mqvalue[16];

uint8_t MqValue_Last = 0;

extern uint32_t WIFI_Status;

uint16_t MQ_yuzhi = 0;

uint16_t Temp_yuzhi = 0;

uint8_t Alarmflag = 0;

extern uint16_t TimeMs;

void HardwareInit()

{

    LED_GPIO_Config();

    DHT11_Init ();

    USART1_Config();

    Delay_Init();

    ADCx_Init();

    OLED_Init();

    OLED_Clear();

    HZ=GB16_NUM();

    OLED_ShowCH(10,0,"烟雾报警系统");

    FMQ_Init();

}

void GizwitConfig()

{

    USART2_Config();

    GENERAL_TIM_Init();

    KEY_Init();

    gizwitsInit();

}

void SetupNet()

{

    if(KEY1 == RESET)

    {

    DelayMs(10);

    if(KEY1 == RESET)

    {

        gizwitsSetMode(WIFI_SOFTAP_MODE);

        printf("SOFTAP_MODE Set OK\n");

    }

    }

}

void OLED_show()

{

   

    sprintf(oledbuf_temp,"Temp:%d.%d", DHT11_Data.temp_int,DHT11_Data.temp_deci);

    OLED_ShowCH(10,3,(u8*)oledbuf_temp);

    sprintf(oledbuf_mqvalue,"MQ:%d%%", MqValue);

    OLED_ShowCH(10,5,(u8*)oledbuf_mqvalue);     

}

void ReportStatus()

{

    if(WIFI_Status == 1)

    {

    currentDataPoint.valuemqvalue = MqValue;

    currentDataPoint.valueTemp = Temp;

    currentDataPoint.valuebuzzer = Alarmflag;

    }

}

void SmokeAlarm()

{

    MQ_yuzhi = currentDataPoint.valuemq_yuzhi;

    Temp_yuzhi = currentDataPoint.valueTemp_yuzhi;

    if(Temp > Temp_yuzhi || MqValue > MQ_yuzhi)

    {

    if(Alarmflag == 1)

    {

       if(TimeMs == 1)

       {

              GPIO_SetBits(FMQ1_GPIO_PORT, FMQ1_GPIO_PIN);

              GPIO_ResetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);

       }

       else

       {

              GPIO_ResetBits(FMQ1_GPIO_PORT, FMQ1_GPIO_PIN);

              GPIO_SetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);

       }    

    }

    else

    {

              GPIO_ResetBits(FMQ1_GPIO_PORT, FMQ1_GPIO_PIN);

              GPIO_SetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);    

    }

    }

    else

    {

              GPIO_ResetBits(FMQ1_GPIO_PORT, FMQ1_GPIO_PIN);

              GPIO_SetBits(LED2_GPIO_PORT,LED2_GPIO_PIN);                                

    }

}

int main()

{

    HardwareInit();

    GizwitConfig();

    while(1)

    {

    SetupNet();

    ReportStatus();

    SmokeAlarm();

    gizwitsHandle((dataPoint_t*)&currentDataPoint);//ЭÒé´¦Àí

    if(DHT11_Read_TempAndHumidity(&DHT11_Data) == 1)

    {

       Temp = DHT11_Data.temp_int;

       MqValue = (ADC_ConvertedValue[0]/40.96);           

    }

    OLED_show(); 

    }

}

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值