当前位置:   article > 正文

(四)stm32f103c8t6+QT安防项目1.0_stm32f103c8t6 自制安防系统

stm32f103c8t6 自制安防系统

一,介绍

前面的文章已经做了dht11温湿度模块,包括QT上位机获取json数据,这篇主要是一篇补充,补充内容包括人体红外传感器+火焰传感器+蜂鸣器报警+风扇的控制。

软件端主页:包括温湿度,可燃气,红外和火灾:正常为绿色,异常为红色报警标志。

控制端可以控制硬件部分的蜂鸣器报警和风扇的开关,监控的话目前还没做,感觉c8t6有点不够用,传输速率这块还有待研究和解决。

软件端设置页面:

这里加了一个Dialog,配置MQTT连接参数,订阅参数

硬件部分展示:

二,硬件选型

主控芯片:stm32f103 c8t6

wifi模块:ESP8266 01s

传感器:DHT11温湿度传感器、火焰传感器、HC-SR505迷你小型人体红外感应、MQ2(目前还存在一些问题有待解决)。

还有有源蜂鸣器(低电平触发)、小风扇、继电器

其他:stlink v2下载器,usb-ttl,面包板,连接线若干。

三,硬件

3.1有源蜂鸣器

这个东西很好弄,GND接GND , VCC接3.3V , IO引脚我接的PA0。

注意低电平触发,初始化使能,模式为推挽输出就可以使用了。

通过以下方式控制响动就行

GPIO_SetBits(GPIOA,GPIO_Pin_0);

GPIO_ResetBits(GPIOA,GPIO_Pin_0);

  1. void BEEP_Init(void)
  2. {
  3. GPIO_InitTypeDef GPIO_InitStructure;
  4. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口时钟
  5. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //BEEP-->PA 0 端口配置
  6. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
  7. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
  8. GPIO_Init(GPIOA, &GPIO_InitStructure); //根据设定参数初始化GPIO .0
  9. }

3.2 红外传感器

这个和蜂鸣器差不多,附一张我淘宝买的卖家介绍图,只用初始化后,通过高低电平触发的。

  1. #include "redline.h"
  2. void HC_SR505_Init(void)
  3. {
  4. GPIO_InitTypeDef GPIO_InitStruct;
  5. RCC_APB2PeriphClockCmd(HC_SR505_CLKLINE, ENABLE);
  6. GPIO.GPIO_Pin = HC_SR505_PIN;
  7. GPIO.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  8. GPIO_Init(HC_SR505PORT, &GPIO_InitStruct);
  9. // GPIO_ResetBits(HC_SR505PORT,HC_SR505_PIN);
  10. }

3.3 火焰传感器

同样的原理,也是高低电平触发,我这里是买的三线的,就是只有DO口,四线的话是由AO口的

3.4 MQ2

这个我是采购的的四线的,简单介绍下MQ2这个传感器吧,具体获得烟雾浓度,接AO口,通过这个可以获得一个电压值,随着烟雾浓度的增加,电压值也会随之增加,0.1V-0.3V是相对没有污染的,到4V就属于相对很严重的污染了。

ppm : 对大气中的污染物,常用体积浓度来表示其污染程度,也就是ppm值

根据MQ2得到的电压值,可以根据转换公式,转换为ppm值。

说一下我用这个传感器的体会吧:为什么没有贴上来,就是它这个电压很不稳定,受温度的影响很大。正常来说,得到的电压值1V以内都正常,但是,温度一高,直接给我干到2V,3V去了,我测到的值呢,也是很不稳定。

3.5 风扇

用继电器控制,很简单的电路啦~,继电器就相当于一个开关,根据信号口输出的信号的不同,控制开关的打开方向。我只能说店家说的图非常的详细,直接上图吧!

需要注意的是,如果你只是为了展示这个功能,买5V的风扇就行了,因为c8t6板子上的5V的电源口刚好能供电运转的,买5V往上走的,到时候就需要一个外接电源供电了,外接电源又要买usb转杜邦线的接口。

和蜂鸣器那个差不多,也是通过高低电平控制,你只要连好线,初始化引脚,设置为推挽输出模式,通过信号引脚输出高电平或者低电平就能控制继电器啦。

四,软件

Qt设计的2.0已经出炉了,在1.0的基础上,通过json解包,把数据拿出来显示在QLabel上。

样式就是开头显示的样子,布局都很简单,设计的很丑还请见谅,核心在上篇文章MQTT的使用上,有源代码可以参考。

https://blog.csdn.net/m0_60752380/article/details/129497215

其中涉及到MQTT官方库的配置参考上上上篇:

https://blog.csdn.net/m0_60752380/article/details/129277356

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/954159
推荐阅读
相关标签
  

闽ICP备14008679号