在智能家居相关的物联网毕设中,少不了室内气体检测功能,比如检测烟雾,检测一氧化碳,检测甲醛等有害气体浓度,别人有的,我们也要有!所以本章给大家介绍一款气体传感器——SGP气体传感器,这款气体传感器能够检测室内空气中二氧化碳和甲醛的浓度值,只不过得上电几分钟之后,检测得数值才会趋于稳定。使用也是非常简单,如下图所示,该模块有四根引脚,分别是VCC,GND,SCL和SDA。

看到SCL和SDA,我们就知道了接下来STM32是通过I2C总线来跟它进行通讯的。按照资料提供的接线图,用杜邦线将STM32与SGP模块连接起来,再通过JLink或STlink将提供的SGP气体传感器的代码编译并烧录进去STM32,即可使SGP气体传感器工作起来。

接下来说一下代码部分。

第7行的 SGP_DATA变量负责存储GSP30模块回复给STM32的气体浓度数据

第8行的 CO2DATA和TVOCDATA 两个变量分别存储气体浓度数据中CO2和TCVO的浓度值。

第10行和第11行代码,在前面章节都有说了,一个是设置中断优先级分组,一个是初始化系统时钟相关,使延时效果准确。

第12行是对SGP30模块进行初始化的函数,有兴趣想了解初始化步骤的可以从资料的代码里自行查看。

上图中,方框1区域的代码是STM32单片机每500ms获取GSP30模块检测到的空气中CO2浓度值和TVCO浓度值,目的是让我们知道SGP30模块是否开始检测,当CO2浓度一直等于400ppm且TVCO浓度一直等于0ppd时,说明该模块还未开始检测,当STM32获取到的CO2浓度和TVCO浓度值开始变化了,说明模块开始检测,此时代码就会运行方框2区域的代码,执行内容依旧是STM32单片机每500ms获取SGP30模块检测到的空气中CO2浓度值和TVCO浓度值,其中CO2DATA存储CO2和TVOCDATA 存储TCVO的浓度值。


正好第七章我们实现了OLED显示温湿度,现在顺便将该模块的功能移植到第七章的代码中,实现OLED显示环境的温湿度、二氧化碳和甲醛的浓度。

首先打开SGP30工程文件和第七章的工程文件,因为SGP30与STM32之间是通过I2C进行通讯的,所以我们把I2C驱动源码文件移植到第七章的工程文件中。

移植完I2C驱动源码文件后,我们就可以将包含GSP30初始化函数以及STM32获取CO2、TCVO浓度所需的函数的代码文件也移植过来。但是GSP30的代码工程已将这部分内容都整合在上面移植的SGP30文件内了,所以文件方面的移植只要完成上图的操作就可以了。

接下来打开第七章的代码,进行下图操作,将包含I2C驱动源码和STM32获取CO2和TCVO浓度所需的函数的代码C文件添加进工程中。

在弹出的窗口进行一下操作。

将移植过来的SGP30文件添加到编译路径。 具体操作如下:

1.点击图中红色框的“魔法棒”图标。

2.点击“魔法棒”后会弹出一个窗口,先点击窗口顶部的 C/C++ (图中1号标位置),然后点击图中2号标位置。

3.完成2的步骤后,会弹出一个窗口,先点击1号标的位置,会弹出下面蓝色区域的长条框,长条框里面就可以选择我们要新的编译路径。

4. 点击长条框右侧的地方(2号标位置),找到刚从SGP30工程文件移植过来的GSP30文件即可,如下图所示就是工程将移植过来的GSP30文件添加到编译路径,然后点击OK推出即可。

做完上图操作,我们就可以调用sgp30.c里面函数了,首先在第七章代码的main.c开头添加SGP30.h头文件(第1个箭头指示),并将存储CO2、TVCO浓度数值的变量也复制过来(第2个箭头指示),然后调用SGP30初始化的函数(第3个箭头指示)。

初始化完SGP30模块后,我们就可以调用获取CO2、TVCO浓度数值的代码并进行显示了,如下所示。1号标位置作用是在OLED上显示字符“CO2”、“ppm”、“TVCO”、“ppd”,2、3号标位置代码我就不多说了,上面有讲,4号标位置代码是在OLED上显示CO2、TVCO浓度数值。

效果如下:

想要资料的同学,评论区留下邮箱。

第八章 STM32+SGP气体传感器+DHT11温湿度传感器+OLED模块显示室内温湿度、二氧化碳和甲醛浓度相关推荐

  1. STM32F103+DHT11模块+DS18B20模块 显示实时温湿度并高温高湿报警

    目录 前言 代码下载: 功能介绍: 接线 DS18B20 DHT11 效果图 普通环境 普通版main.c 升级版 哈热气 普通版 升级版 搓手捂热 核心代码 普通版main.c 升级版main.c ...

  2. Domoticz加入dht11温湿度模块,显示室内温湿度

    Domoticz加入dht11温湿度模块 前言 刷ESPEasy固件 网页配置8266温湿度参数 Domoticz服务器设置参数 最后看看手机APP上的效果 前言 前几天在Domoticz服务器上添加 ...

  3. STM32读取DS18B20温度,并在OLED上显示

    部分代码来源于网络,侵权删 本文使用硬件:STM32F103C8T6最小系统板.IIC协议0.96寸OLED屏幕显示.DS18B20传感器 实现功能:在OLED上显示出DS18B20采集到的温度,精确 ...

  4. zigbee CC2530 系列教程 15 温湿度传感器DHT11实验

    所有课程见此链接: zigbee CC2530 系列教程 0 课程介绍 4.12温湿度传感器DHT11实验 4.12.1 实验目的 学习使用温湿度传感器DHT11,并在串口显示温湿度数据. 4.12. ...

  5. 温湿度传感器DHT11介绍

    温湿度传感器DHT11简介 DHT11数字温湿度传感器是一种出厂时经过校准的数字信号输出的温湿度数字温湿度传感器.DHT11数字温湿度传感器应用温湿度传感技术和数字采集技术,确保其具有极高的可靠性和卓 ...

  6. 基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块+DHT11温湿度采集+MQ系列 烟雾及可燃气体+蜂鸣器+步进电机模拟窗帘+OLED液晶显示+

    ## **基于 STM32 的语音识别智能家居控制系统的设计(LD3320语音识别芯片+ESP8266 WIFI模块(阿里云 或ONENET或局域网)+DHT11温湿度采集+MQ系列 烟雾及可燃气体+ ...

  7. STM32读取MQ4传感器、DHT11温湿度传感器、GP2Y1014AU0F夏普光学灰尘传感器数据

    1.功能 STM32测量MQ4.灰尘传感器.DHT11温湿度传感器,并在TFT上显示,超过浓度阈值蜂鸣器报警. 使用普中STM32F103ZET6开发板+2.8寸触摸屏. 2.MQ4天然气传感器 MQ ...

  8. 玩转传感器——DHT11温湿度传感器(STM32版)

    玩转传感器--DHT11温湿度传感器(STM32版) 文章目录 玩转传感器--DHT11温湿度传感器(STM32版) 前言 一.接口说明 1 接线图 2 电源引脚 3 串行接口(单线双向) 二.通信过 ...

  9. STM32应用(八)数字温度传感器DS18B20、数字温湿度传感器DHT11(软件模拟I2C)

    文章目录 1.DS18B20 数字温度传感器实验 1.1 DS18B20简介 1.2 硬件与IO口配置 1.3 实物图与接线 1.4 工程配置 1.5 驱动和检测代码编写 1.5.1 ds18b20. ...

最新文章

  1. 从Windows Server 2003升级到2008
  2. Xcode 7中Static Cells自动计算高度失效的解决方法
  3. *.bmp序列保存为*.raw文件[matlb实现]
  4. mysql索引列是锁表还是锁行_[转]关于MYSQL Innodb 锁行还是锁表
  5. python实时数据流设计_Python读取实时数据流示例
  6. linux错误码61,Linux编程中的错误码列表
  7. sqlalchemy 查询
  8. String当中的高效函数(优化)
  9. ubuntu查看 固态硬盘位置_Linux的硬盘使用情况、挂载、SSD挂载(查看df -h不能看到的卷)...
  10. 【Docker篇之三】Dockerfile创建镜像
  11. python标准库math中用来计算平方根的函数是_Python程序设计的复习题资料合集免费下载...
  12. 堆栈callstack打印
  13. wps表格怎么添加附页_关于WPS里面页码的问题
  14. 离职通知邮件主题写什么好_辞职信邮件主题.doc
  15. 从敏思博客的倒闭事件看历史重现...
  16. 自定义联系人快速索引栏
  17. Grafana-创建仪表板的Best实践
  18. 初识powerpoint的计算机教案,《初识PowerPoint》教学设计
  19. 设计师如何提高个人的色彩搭配能力?
  20. 什么是拓扑结构、拓扑结构图

热门文章

  1. 最新 全球 ip地址 归属地 字典表 (202108)
  2. 【推导】线性变换的矩阵表达式
  3. 为什么深度学习都在用python,你知道吗
  4. Java 校验注解的使用、自定义校验注解
  5. 结构化数据和非结构化数据、半结构化数据的区别-归纳总结整理
  6. R语言垃圾邮件分类--朴素贝叶斯(机器学习)
  7. 大学计算机word图文混排,WORD图文混排教学设计
  8. java实现消息提醒功能,终于彻底把握了
  9. NumPy与ndarray简介
  10. UNR #1 火车管理