基于ZigBee的智能家居安防系统设计与实现

1  适用场景


        智能家居、智能安防系统、室内安防、家居环境监测系统等场景。


2  开发环境


        下位机开发环境:IAR embedded Workbench

        上位机开发环境:OneNET云平台

        小鱼儿电子设计微信号:IOTElectronics

3  技术框架及硬件元件


  •  技术框架:ZigBee终端节点+ZigBee协调器节点+WiFi无线通信技术+OneNET云平台
  • 硬件元件:ZigBee终端节点+ZigBee协调器节点+DHT11温湿度传感器+MQ-2烟雾传感器+HC-SR501人体红外传感器+5516光敏电阻传感器+蜂鸣器+按键+OLED液晶显示屏幕+ESP8266 WifI无线通信模块+LED照明灯

4  实现功能


  1. 温湿度监测:选用DHT11温湿度传感器实时监测家居环境的温度和湿度,当温度和湿度超过设定阈值自动告警。

  2. 火灾预警:选用MQ-2烟雾传感器实时监测家居环境是否发生火灾,当烟雾浓度超过阈值,蜂鸣器自动告警提醒。

  3. 人体监测:选用HC-SR501人体红外传感器实时监测家居环境是否有人存在,在家人外出的情况下也可以防盗。

  4. 光线监测:选用5516光敏电阻传感器实时监测家居环境的光线,当光线低于设定阈值且有人在家,自动开灯。

  5. 屏幕可视化:通过OLED屏幕实时显示家居环境的温度、湿度、烟雾浓度、光线值和是否有人。

  6. 设定阈值:可以使用按键结合屏幕设定温度、湿度、烟雾浓度和光线的阈值。

  7. OneNET云平台远程监测:通过WiFi无线通信技术将监测数据上传至OneNET云平台,可以远程查看家居环境的监测数据和灯光、告警状态。

5  下位机实物图



6  OneNET云平台



7  关键源码

//ZigBee终端节点向ZigBee协调器节点发送数据
void SampleApp_Send_P2P_Message( void )
{
  unsigned char tx_temp[10];
  unsigned int read_adc;
  dht11_read();
  tx_temp[0]=ZIGBEE_ID;
  printf("zigbee_id=%d\r\n",ZIGBEE_ID);//打印ID值到串口(主要作用是用于串口调试)
  tx_temp[1]=wendu_shi*10+wendu_ge;
  tx_temp[2]=shidu_shi*10+shidu_ge; 
  read_adc=HalAdcRead(HAL_ADC_CHANNEL_0,HAL_ADC_RESOLUTION_10); 
  read_adc=read_adc*100/512; 
  tx_temp[3]=(unsigned char)read_adc;
  read_adc=HalAdcRead(HAL_ADC_CHANNEL_6,HAL_ADC_RESOLUTION_10); 
  read_adc=100-read_adc*100/512; 
  tx_temp[4]=(unsigned char)read_adc;
  printf("light=%d\r\n",tx_temp[4]);
  tx_temp[5]=ir[0];
  tx_temp[6]='\r';
  tx_temp[7]='\n';
  if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,//发送函数
                             SAMPLEAPP_P2P_CLUSTERID,
                            10,
                            tx_temp,
                            &SampleApp_TransID,
                            AF_DISCV_ROUTE,
                             AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
        {
        
      
       }
       else
       {
         
       }
  

}