stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警

stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警_第1张图片

系统实现了智能安防报警系统设计,人体感应报警,烟雾报警,GSM短信报警,同时支持远程视频监控功能,安卓端app端远程查看视频流。实物展示视频

​​​​​​基于stm32单片机ESP32智能安防系统远程视频监控物联网远程监测系统GSM短信报警_哔哩哔哩_bilibili

代码:

stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警_第2张图片

stm32/esp32/cam智能安防系统远程视频监控物联网远程传输视频图像GSM短信报警_第3张图片

 
/*WiFi事件回调*/
void wifi_event_handler(void* arg, esp_event_base_t event_base,int32_t event_id, void* event_data)
{
    /* 事件剥离 */
    if( event_base == WIFI_EVENT )
    {
        switch ( event_id )
        {
            case WIFI_EVENT_STA_START:          
            
            esp_wifi_connect();        
            
            break; // STA START
            case WIFI_EVENT_STA_STOP:           ESP_LOGI(TAG,"WIFI_EVENT_STA_STOP"); break; // STA STOP 
            case WIFI_EVENT_STA_DISCONNECTED:  
             WIFI_EVENT_STA_DISCONNECTED_FUN();   
            xEventGroupClearBits(udp_event_group, WIFI_CONNECTED_BIT);
            break; //和路由器断开
            case WIFI_EVENT_AP_START:        
               ESP_LOGI(TAG,"WIFI_EVENT_AP_START");
               xEventGroupSetBits(udp_event_group, WIFI_CONNECTED_BIT);
                break; // AP  START 
            case WIFI_EVENT_AP_STOP:       
                 ESP_LOGI(TAG,"WIFI_EVENT_AP_STOP"); 
                 xEventGroupSetBits(udp_event_group, WIFI_CONNECTED_BIT);
                  break; // AP  STOP
            case WIFI_EVENT_AP_STACONNECTED:    
            WIFI_EVENT_AP_STACONNECTED_FUN( event_data );  
            
              break; //有设备连接上ESP32的热点
            case WIFI_EVENT_AP_STADISCONNECTED: WIFI_EVENT_AP_STADISCONNECTED_FUN(event_data );  break; //有设备断开和ESP32的热点                    
            default:  break;
        }
    }
    else if( event_base == IP_EVENT )  // 路由事件ID 组
    {
        switch ( event_id )
        {
            case IP_EVENT_STA_GOT_IP:        IP_EVENT_STA_GOT_IP_FUN(event_data);       break; //获取到指定IP
            case IP_EVENT_STA_LOST_IP:       ESP_LOGI(TAG,"IP_EVENT_STA_LOST_IP");      break;
            case IP_EVENT_AP_STAIPASSIGNED:  ESP_LOGI(TAG,"IP_EVENT_AP_STAIPASSIGNED"); break;
            default:  break;
        }
    }
}


void TIMER2_Int_Init(u16 arr,u16 psc)
{
     TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;
      NVIC_InitTypeDef NVIC_InitStructure;

     TIM_TimeBaseInitStrue.TIM_Period=arr;
     TIM_TimeBaseInitStrue.TIM_Prescaler=psc;
     TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up;
     TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CounterMode_Up;
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);
   TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStrue);
   
   TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//使能TIM3更新中断

   //中断优先级NVIC设置
        NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;  //TIM3中断
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
        NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器
    
        TIM_Cmd(TIM2, ENABLE);  //使能TIMx    

}

你可能感兴趣的:(stm32,ESP32设计,物联网,iot,单片机,嵌入式硬件)