本文仅简单驱动MQ1135进行环境空气质量的检测。
实验环境:
(一)STM32F10X 单片机
(二)MQ135空气质量模块
第一步:MQ135正确与STM32接线
MQ135的外观如下
我们先来看引脚有哪些?
MQ135模块使用5V进行驱动,D0输出数字信号,A0输出模拟型号。
D0输出就相当一个开关电源,到了设定值进行跳转,基本没啥用处。
除非你要做一个气体上限报警装置那就用D0引脚吧。
我们这里使用的A0引脚进行模拟信号的输入和输出
连线:
5V+ 接开发板正极5V
5V- 接开发板负极GND
D0 接板载要开启ADC的引脚 我这里是GPIOC1
第二步:看一下外设参数
由图上我们可以知道,该外设可以检测多种有害气体。
具体的可以进行计算,得到相关要检测气体的方程式。
我们这里只进行空气质量的检测。
第三步:ADC和DMA的编写
该模块的使用非常简单,只需开启ADC端口的浮空输出,就可以检测相关的电压信号
我们再根据电压信号进行计算,得到一个相对来说准确的数据
我这里把ADC和DMA卸载一起了
我的mq135adc.c文件
代码一部分,先配置GPIO
再来配置DMA,最后配置ADC
我的代码已经备注的很详细了。
分别对 GPIO/DMA/ADC 进行配置
再看一下头文件
头文件就是声明一下变量和一个相关宏定义 ,这里注意一下
这里的ADC1_DR_Address 是DMA传输的外设地址 , 这一个非常重要
这里查询 STM32使用手册 中的外设地址就可以得到基地址,我们还要加上偏移量
偏移量就是相关寄存器的地址偏移,具体的使用翻STM32的用户手册
第四步:在主程序main.c中进行相关调用,
我这里比较丰富....就不单独举例了,直接贴上我的程序
大家有问题的可以直接留言问我
我还是分成几个部分上传吧
这是我目前用的下位机的传输程序,其中有多个传感器的数据回传信息。
但是我备注的非常清楚,所以大家还是看得懂的哈。
第五步:回传数据到上位机
打开我的MySQL数据库,就可以看到我的多种数据啦
最后一项就是MQ135的读数
有人问STM32怎么传给MySQL? 我的主语言使用的是Python进行上位机开发
我另外一个文章分类有些如何通过蓝牙串口/串口进行数据的接收并且传入数据库
大家可以看看,有不懂的可以问我。