STM32移植BME680传感器输出IAQ(室内空气质量)

1.准备材料

软件: stm32cubemx 、IAR for arm、jlink(或者stlink)驱动(已安装请忽略)、任意的串口调试助手软件、我提供的“myfile”文件

硬件: stm32f103ct6单片机、BME680传感器模块、jlink(或者stlink)烧录器、串口线(usb转ttl,ch340或者pl2303模块)、杜邦线

IAR for arm 安装参考我的这篇博客

https://blog.csdn.net/shuige2215/article/details/108312156

2.说明

<1>此方法是基于stm32的HAL库完成的(1.能用stm32cubemx生产驱动代码2.能为BSEC库运行提供时间戳),用到的代码生产软件是stm32cubemx,强烈推荐!!!没用过的去问度娘。

<2>为什么使用IAR而不使用stm32开发常用的keil呢?因为输出IAQ用到的核心算法库libalgobsec.a文件,只有在IAR中支持(我是用keil没有成功,感兴趣可以再试试),如果不需要IAQ,可以用keil开发,但是如果不输出IAQ为啥不用更加便宜的BME280传感器呢。

<3>根据下图,确定自己选择的单片机是否有对应库文件以及rom是否够用,上面说的libalgobsec.a文件比较大,例如我们使用的stm32f103c8t6(cortex M3 128KB rom) libalgobsec.a需要的空间是20KB,lite版本是不带自动校准。stm8或者51等都是不支持IAQ输出的,没有对应的.a文件,限制还是挺多的

博世github 链接:https://github.com/BoschSensortec/BSEC-Arduino-library

3.让我们开始吧

<1>烧录方式设置,我们设置为SDW方式烧录,可以使用jlink或者stlink等烧录工具,当然串口烧录也是也可以的。

<2>配置时钟源,我们就全部使用单片机内部晶振,毕竟要是自己打板也能省点买晶振的钱

<3>配置i2c接口,BME680与单片机通过i2c接口连接,使用spi接口也可以,我们使用i2c,配置默认就可以

<4>配置串口1,打印传感器数据,默认配置,波特率115200

<5>设置堆栈

<6>工程必要的配置,以及生产工程文件

<7>先编译一下,确认没有问题。

<8>然后配置烧录器为jlink SWD方式下载,可以根据自己使用的烧录工具设定

<9>SWD方式

<10>添加“myfile”分组到工作空间

<11>将我提供的“myfile”文件,添加到工程文件夹下.注意区分两个“myfile”,第一个是添加到工作空间的目录结构叫“myfile”,第二个是我给你提供的以及写好的代码,添加到工程文件中。

<12>注意!!!我使用的是stm32f103c8t6 是cortex M3 ,一定要根据自己所选平台架构更换核心算法库libalgobsec.a文件

博世github 链接:https://github.com/BoschSensortec/BSEC-Arduino-library

<13>将工程文件夹下的四个文件添加到工作空间

<14>指定头文件相对路径

<15>添加串口重定向

<16>添加i2c读写函数

<17>添加i2c读写函数声明

<18>添加头件

<19>添加传感器配置,我们配置为3s模式,方便看到效果,上电5min输出第一个IAQ值,然后每3s输出一个,温湿度是实时的不需要等5min。还有一个是5min模式,上电30min输出第一个IAQ值,然后每5min输出一个IAQ值,这个是BSEC规定的,只有这两种模式,3s模式功耗900ua,5min模式功耗90ua。

修改这个宏定义#define APP_BSEC_SAMPLE_RATE BSEC_SAMPLE_RATE_LP

BSEC_SAMPLE_RATE_LP - Low power mode with sample period of 3 seconds.

BSEC_SAMPLE_RATE_ULP - Ultra low power mode with sample period of 5 minutes.

<20>传感器初始化和函数调用,我是1s调用一次,但也是每个3s才有一个数据输出,你完全可以设计成使用定时器传入next_call,定时采集。150%时间内必须要调用一次,也就是4.5s内必须调用一次,如果不按照规定,输出IAQ会不准确

<21>打印出来验证

4.有错误或者不明白给我留言

源码和用到的文件

链接:https://pan.baidu.com/s/1XCOVftrSTntzc_THm7WgOg

提取码:i0wo

STM32移植BME680传感器输出IAQ(室内空气质量)相关推荐

  1. 快速实现一个室内空气质量检测仪

      冬天我们大多会关闭门窗,而依靠暖通空调设备来维持室内温度.而在保证居室温度的同时,我们也希望保持居室内大气环境的健康度.鉴于此,我们设计了一个简单的室内空气质量检测器. 1.系统概述   我们依靠 ...

  2. 基于单片机的室内空气质量检测系统(甲烷甲醛)

    设计简介: 本设计是基于单片机的室内空气质量检测系统,主要实现以下功能: 可通过LCD1602显示当前甲烷和甲醛的值: 可通过按键调整甲醛甲烷的最大值: 可通过MS1100检测甲醛的值: 可通过MQ- ...

  3. 室内空气质量类毕业论文文献包含哪些?

    本文是为大家整理的室内空气质量主题相关的10篇毕业论文文献,包括5篇期刊论文和5篇学位论文,为室内空气质量选题相关人员撰写毕业论文提供参考. 1.[期刊论文]室内装饰空气质量的改良与室内空气质量提升的 ...

  4. ESP32开发之旅——基于ESP32的室内空气质量检测系统

    ESP32开发之旅--基于ESP32的室内空气质量检测系统 前言 成果展示 核心代码 MQTT部分 获取传感器数据部分 连接WiFi部分 结尾 前言 本文主要是我课设项目的一个备忘,部分资料来源于网上 ...

  5. 【毕设狗】【单片机毕业设计】基于单片机的室内空气质量检测系统的设计

    软件安装: Keil:点击下载 Proteus:点击下载 AD:点击下载 Visio:点击下载 设计简介: 本设计是基于单片机的室内空气质量检测系统的设计,主要实现以下功能: 实现通过甲烷气体传感器检 ...

  6. 2022年全球市场智能室内空气质量检测仪总体规模、主要生产商、主要地区、产品和应用细分研究报告

    本文研究全球市场.主要地区和主要国家智能室内空气质量检测仪的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,智能室内空气质量检测仪销量.价格.收入和市场份额等.针对过去五年(201 ...

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

    在智能家居相关的物联网毕设中,少不了室内气体检测功能,比如检测烟雾,检测一氧化碳,检测甲醛等有害气体浓度,别人有的,我们也要有!所以本章给大家介绍一款气体传感器--SGP气体传感器,这款气体传感器能够 ...

  8. 毕业设计 STM32空气质量检测仪 - 单片机 嵌入式

    文章目录 1 简介 2 系统设计概述 3 系统总体方案 4 硬件设计方案 4.1 stm32 主控 4.2 温度采集模块 4.3 甲醛浓度检测模块 4.4 PM2. 5 浓度检测模块 4.5 液晶显示 ...

  9. 单片机毕业设计 stm32空气质量检测仪

    文章目录 1 简介 2 系统设计概述 3 系统总体方案 4 硬件设计方案 4.1 stm32 主控 4.2 温度采集模块 4.3 甲醛浓度检测模块 4.4 PM2. 5 浓度检测模块 4.5 液晶显示 ...

最新文章

  1. Visual Basic 9.0 前沿播报·静态篇(一)局部变量类型推测和数组初始化器
  2. 如何使用lazyCSRF在Burp Suite上生成强大的CSRF PoC
  3. 【Linux】一步一步学Linux——touch命令(33)
  4. Taro+react开发(4)--tora官网2
  5. Ubuntu 安装和使用 jupyter 出现的问题总结
  6. Java中String类、字符串常量池、字符串常用方法
  7. Codeforces Round #368 (Div. 2) C. Pythagorean Triples
  8. VMware NSX系列教程-部署NSX Manager(转)
  9. 苹果Mac定制化App开发神器:​​​​FileMaker
  10. itellij jdk多重选择Class JavaLaunchHelper is implemented in both
  11. RH124 Chapter 2 Managing Files From the Command Line
  12. 教你使用GitHub搭建个人网站
  13. 单向散列函数的实际应用
  14. EXCEL打开文件显示“文件已损坏,无法打开。”
  15. 2014河北职称计算机ppt,2014河北省职称计算机考试详解.doc
  16. 星露谷物语多玩家显示联机服务器没法邀请,星露谷物语怎么联机
  17. 容易和不易导入生产计划系统的工厂
  18. HBM传感器 德国HBM
  19. 社区初鸣,梦想始兴 - 腾讯游戏DBA携手MariaDB开源起航
  20. Vue 常用指令 自定义指令

热门文章

  1. Sencha SDK 工具之 Slicer 简介
  2. 计算机专业英语2013影印版翻译第六章,计算机专业英语2013影印版重点翻译.docx...
  3. Chrome OS安装配置全攻略
  4. Unity 从零开始的2D游戏开发 —— 碰撞检测 和 用射线实现地面检测
  5. 中小企业ERP项目需要顾问吗?
  6. python语言数据类型_Python中的数据类型 | 萧小寒
  7. VLOOKUP查找未交作业的学生
  8. stl格式说明和stl文件生成(ascII,binary),vs2005,文件生成后imageware读取成功
  9. Mask R-CNN环境搭建完整流程
  10. java过滤.txt_关键词过滤实现(JAVA TXT)