一.系统概述
系统设计分为主机端和从机端两个部分,具体功能如下:
1. 从机端功能:实现对环境参数的实时采集,包括温湿度、烟雾浓度和火焰的监测。支持RFID门禁功能,控制门的开关状态。集成zigbee通信模块,将采集到的数据信息发送到主机端。
2. 主机端功能:在主机端可以设定各个环境参数的阈值。当实时采集的数据超过设定的阈值时,主机端控制报警装置响起或调节装置开始工作。
3. RFID控制门禁:当RFID卡第一次刷卡时,控制电机正转以打开门禁。当RFID卡第二次刷卡时,控制电机反转以关闭门禁。
二.电路设计
电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 使用Zigbee组网通信模块进行组网通信,模块与单片机之间需要通过UART串口进行连接;
3. 使用MQ-2进行烟雾浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
4. 通过DHT11进行温湿度检测,并通过one-wire总线与单片机的GPIO脚进行连接;
5. 使用RC522刷卡模块进行商品的刷卡检测,该模块采用SPI总线与单片机进行通信;
6. 使用红外火焰传感器进行明火检测,该模块输出数字信号与单片机的GPIO口进行连接;
7. 通过ULN2003进行步进电机的驱动,将驱动模块的IN端接单片机GPIO口,OUT输出端接电机;
8. 通过继电器控制门禁,并将继电器的数据输出脚与单片机的GPIO脚进行连接;
9. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
10. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用NPN三极管进行蜂鸣器进行驱动。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关资料
************************************************/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(9600);
KEY1_Init();
Beep_init(); Relay_init();
ULN2003_GPIOA_Init();
OLED_Init();
OLED_CLS(); //OLED清屏
OLED_ShowCN(32,2,0); //小常硬件
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
delay_ms(100);
OLED_CLS();
// /*******显示汉字**********/
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,12);
OLED_ShowCN(0+16,2,13);
OLED_ShowCN(64,0,42);
OLED_ShowCN(64+16,0,43);
OLED_ShowCN(64,2,42);
OLED_ShowCN(64+16,2,43);
OLED_ShowCN(96,4,40);
OLED_ShowCN(96+16,4,41);
OLED_ShowCN(0,4,4);
OLED_ShowCN(0+16,4,5);
OLED_ShowCN(0,6,42);
OLED_ShowCN(0+16,6,43);
// Beep=1;//蜂鸣器初始化 系统上电后先让蜂鸣器停止叫
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}