基于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 实现功能
温湿度监测:选用DHT11温湿度传感器实时监测家居环境的温度和湿度,当温度和湿度超过设定阈值自动告警。
火灾预警:选用MQ-2烟雾传感器实时监测家居环境是否发生火灾,当烟雾浓度超过阈值,蜂鸣器自动告警提醒。
人体监测:选用HC-SR501人体红外传感器实时监测家居环境是否有人存在,在家人外出的情况下也可以防盗。
光线监测:选用5516光敏电阻传感器实时监测家居环境的光线,当光线低于设定阈值且有人在家,自动开灯。
屏幕可视化:通过OLED屏幕实时显示家居环境的温度、湿度、烟雾浓度、光线值和是否有人。
设定阈值:可以使用按键结合屏幕设定温度、湿度、烟雾浓度和光线的阈值。
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
{
}
}