Arduino驱动BME680四合一传感器模块

目录

  • 一、简介
  • 二、技术参数
  • 三、使用方法
  • 四、实验现象

一、简介

在这里插入图片描述

点击图片购买

GYMCU680 是一款低成本空气检测模块,工作电压 3-5v 功耗小,体积小。其工作原理,是通过 MCU 读取 BME680传感器数据,经过算法得到,温湿度,大气压, IAQ 室内空气质量,电阻值。
此模块,有两种方式读取数据,即串口( TTL 电平)或者芯片本身 IIC通信方式。该产品精度高,稳定性高。能够直接输出实用数据,省略了算法。串口的波特率有 9600bps 与 115200bps,有连续输出与询问输出两种方式,可适应不同的工作环境。与所有的单片机及电脑连接当焊接上 PS 焊点时候,模块是芯片本身 IIC 模式,此时 MCU 不参与工作,不消耗电流。可以当成简单的 BME680 模块使用。IAQ 室内空气质量算法是根据 BME680 芯片官网的例程移植,测试时候上电要一定时间,大约 5 分钟,数据才会正常。可应用于手持式仪器仪表、室内空气品质质量检测、天气预报系统、家庭自动化与控制、物联网,互联网、室外休闲与体育运动。

二、技术参数

在这里插入图片描述

三、使用方法

实验准备

BME680传感器模块1个
原装正版Arduino uno r3开发板1个
USB2.0打印机数据线高速方口连接转接线 A公对B公1条
杜邦线若干

接线

ArduinoBME680传感器模块
5V5V
GNDGND
11RX
10TX

如下图所示
在这里插入图片描述

程序下载

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
uint16_t temp1=0;
int16_t temp2=0;

unsigned char Re_buf[30],counter=0;
unsigned char sign=0;
int led = 13;


//-----------------------------------------------------------
void setup()
{
  Serial.begin(9600);  
   mySerial.begin(9600);
   mySerial.listen();  
  delay(4000);    
 
  mySerial.write(0XA5); 
  mySerial.write(0X55);    
  mySerial.write(0X3F);    //初始化GY_MCU680,输出所有数据
  mySerial.write(0X39); 
  delay(100); 

  mySerial.write(0XA5); 
  mySerial.write(0X56);    //初始化GY_MCU680,连续输出模式
  mySerial.write(0X02);    
  mySerial.write(0XFD);
  delay(100);  
}
//-------------------------------------------------------------
void loop(){
  float Temperature ,Humidity;
  unsigned char i=0,sum=0;
  uint32_t Gas;
  uint32_t Pressure;
  uint16_t IAQ;
  int16_t  Altitude;
  uint8_t IAQ_accuracy;
  while (mySerial.available()) {   
    Re_buf[counter]=(unsigned char)mySerial.read();
    
    if(counter==0&&Re_buf[0]!=0x5A) return;      // 检查帧头     
    if(counter==1&&Re_buf[1]!=0x5A)
  {
    counter=0;
     return;
   };      // 检查帧头       
    counter++;       
    if(counter==20)                //接收到数据
    {    
       counter=0;                 //重新赋值,准备下一帧数据的接收 
       sign=1;
    }      
  }
  if(sign)
  {  
     sign=0;
     
     if(Re_buf[0]==0x5A&&Re_buf[1]==0x5A )        //检查帧头,帧尾
     {  	
       
            for(i=0;i<19;i++)
               sum+=Re_buf[i]; 
             if(sum==Re_buf[i] ) 
             {
                     temp2=(Re_buf[4]<<8|Re_buf[5]);   
                     Temperature=(float)temp2/100;
                     temp1=(Re_buf[6]<<8|Re_buf[7]);
                     Humidity=(float)temp1/100; 
                     Pressure=((uint32_t)Re_buf[8]<<16)|((uint16_t)Re_buf[9]<<8)|Re_buf[10];
                     IAQ_accuracy= (Re_buf[11]&0xf0)>>4;
                     IAQ=((Re_buf[11]&0x0F)<<8)|Re_buf[12];
                     Gas=((uint32_t)Re_buf[13]<<24)|((uint32_t)Re_buf[14]<<16)|((uint16_t)Re_buf[15]<<8)|Re_buf[16];
                     Altitude=(Re_buf[17]<<8)|Re_buf[18]; 
                     Serial.print("Temperature:");
                     Serial.print(Temperature); 
                     Serial.print(" ,Humidity:"); 
                     Serial.print(Humidity); 
                     Serial.print(" ,Pressure:"); 
                     Serial.print(Pressure);     
                     Serial.print("  ,IAQ:");
                     Serial.print(IAQ); 
                     Serial.print(" ,Gas:"); 
                     Serial.print(Gas ); 
                     Serial.print("  ,Altitude:"); 
                     Serial.print(Altitude);                       
                     Serial.print("  ,IAQ_accuracy:"); 
                     Serial.println(IAQ_accuracy);  
            }            
           delay(1000);           
   }
  } 
} 
//---------------------------------------------------------------

四、实验现象

在这里插入图片描述
测量温度为19.70℃,湿度是38.75%,压力是102498pa,空气品质IAQ是49。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/270030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【温故而知新】css提高性能的方法都有那些

前言 CSS&#xff08;层叠样式表&#xff09;是一种用于描述HTML&#xff08;超文本标记语言&#xff09;文档外观样式的语言。它定义了如何在网页中呈现元素的布局、颜色、字体、大小等属性。CSS文件通常与HTML文件分离&#xff0c;使得修改样式更加灵活和可维护。 CSS基于选…

浅谈师范双非普本工科专业的秋招历程

本人普通师范院校通信工程专业&#xff0c;于秋招历程之中四处碰壁&#xff0c;迫于家庭等各种因素考虑&#xff0c;最终选择移动的偏远县城岗位的OFFER&#xff01;本人秋招历程之中&#xff0c;屡屡碰壁&#xff0c;也算得上“收获满满”&#xff01;我简单给各位浅谈一下我的…

javaweb初体验

javaweb初体验 文章目录 javaweb初体验前言一、流程&#xff1a;1.创建Maven的父工程2.创建Maven&#xff0c;Webapp的子工程3.在pom.xml文件中添加依赖&#xff08;父工程与子工程共用&#xff09;4.写一个helloservlet类实现httpservlet接口&#xff0c;重写doget&#xff0c…

whistle网络监控 fiddler的开源替代

github源码&#xff1a;https://github.com/avwo/whistle 官网说明&#xff1a;http://wproxy.org/whistle/ windows/mac一键安装 先安装nodejs 然后运行命令 npm i -g whistle && w2 start --init启动 w2 start停止 w2 stop注意停止后要手动关闭代理服务器设置 w…

让学习成为一种生活方式:数字化助力终身学习

12月以来,“让学习成为一种生活方法”全民终身学习活动在北京、安徽、湖北、湖南、云南等地密集启动,而依托数字化赋能终身学习成为共同关键词。 近年来,随着教育现代化体系的不断深入推进,数字化转型成为建设高质量终身学习体系的重要“推动力”,数字技术与大数据的应用汇聚了…

第一次记录QPSK,BSPK,MPSK,QAM—MATLAB实现

最近有偶然的机会学习了一次QPSK防止以后忘记又得找资料&#xff0c;这里就详细的记录一下 基于 QPSK 的通信系统如图 1 所示&#xff0c;QPSK 调制是目前最常用的一种卫星数字和数 字集群信号调制方式&#xff0c;它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为…

Vue3设计目标和优化

vue3.0的设计目标是什么&#xff1f;做了哪些优化&#xff1f; Vue3的设计目标&#xff1a;更小、更快、更友好、优化方案 一、设计目标 Vue3之前我们会面临的许多问题&#xff1a; 随着功能的增长&#xff0c;复杂组件的代码变得越来越难以维护起来缺少一种比较【干净】的…

Redis基础-Redis概念及常见命令

1.nosql数据库 NoSQL数据库是一种提供了非关系型数据存储的数据库系统&#xff0c;与传统的关系型数据库&#xff08;如SQL数据库&#xff09;不同。NoSQL数据库的特点是灵活性高&#xff0c;能够处理结构化、半结构化或非结构化数据。它们通常用于大数据和实时Web应用。NoSQL数…

平衡二叉树的构建(递归

目录 1.概念&#xff1a;2.特点&#xff1a;3.构建方法&#xff1a;4.代码&#xff1a;小结&#xff1a; 1.概念&#xff1a; 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;&#xff0c;也称为AVL树&#xff0c;是一种二叉树&#xff0c;它满足每个节点的左子树和右…

如何分析 JVM 内存瓶颈浅谈

背景&#xff1a; 当操作系统内存出现瓶颈时&#xff0c;我们便会重点排查那个应用占用内存过大。对于更深一步分析内存的使用&#xff0c;就进一步去了解内存结构&#xff0c;应用程序使用情况&#xff0c;以及内存如何分配、如何回收&#xff0c;这样你才能更好地确定内存的…

图像九宫格切分1x3、3x3 Python

文章目录 1、需求2、实现2-1 贴图、切分2-2 GUI 3、运行效果4、代码 1、需求 把一个图像切分成 1x3 或者 3x3切分出来的图像比例希望都是 1:1 正方形如果图像尺寸满足 切分条件&#xff0c;自动填充一些“白边”然后继续切分如果填充了白边的话&#xff0c;希望能够调整原图像…

挖到宝了,大数据分析工具做分析真的太快了

随着企业越做越大&#xff0c;累积数据的速度越来越快&#xff0c;但分析的效率却不升反降&#xff0c;不利于数字化运营决策。但大数据分析工具的出现让这一现象成为过去&#xff0c;无他&#xff0c;就是大数据分析工具做分析的真的太快了&#xff0c;可在任意终端上随时按需…

网络编程--socket编程

这里写目录标题 套接字概念通信原理总结 预备知识网络字节序简介字节转换函数 IP地址转换函数为什么单独列出函数原型sockaddr结构体 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 套接字 概念 Socket本身有插座的意思&#xff0c;但他是进程之间网络通…

《LIO-SAM阅读笔记》1.IMU预积分模块

前言&#xff1a; LIO-SAM是一个多传感器融合的紧耦合SLAM框架&#xff0c;融合的传感器类型有雷达、IMU和GPS&#xff0c;其中雷达和IMU在LIO-SAM框架中必须使用的。LIO-SAM的优化策略采用了GTSAM库&#xff0c;GTSAM库采用了因子图的优化方法&#xff0c;其提供了一些列C的外…

K8S理论

kubernetes&#xff1a;8个字母省略&#xff0c;就是k8s 自动部署自动扩展和管理容器化部署的应用程序的一个开源系统 k8s是负责自动化运维管理多个容器化程序的集群&#xff0c;是一个功能强大的容器编排工具 分布式和集群化的方式进行容器化管理 版本有1.15 .1.18 .1.20 …

力扣-收集足够苹果的最小花园周长[思维+组合数]

题目链接 题意&#xff1a; 给你一个用无限二维网格表示的花园&#xff0c;每一个 整数坐标处都有一棵苹果树。整数坐标 (i, j) 处的苹果树有 |i| |j| 个苹果。 你将会买下正中心坐标是 (0, 0) 的一块 正方形土地 &#xff0c;且每条边都与两条坐标轴之一平行。 给你一个整…

【flink番外篇】7、flink的State(Keyed State和operator state)介绍及示例 - 完整版

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

dpdk原理概述及核心源码剖析

dpdk原理 1、操作系统、计算机网络诞生已经几十年了&#xff0c;部分功能不再能满足现在的业务需求。如果对操作系统做更改&#xff0c;成本非常高&#xff0c;所以部分问题是在应用层想办法解决的&#xff0c;比如前面介绍的协程、quic等&#xff0c;都是在应用层重新开发的框…

docker 私有仓库

Docker 私有仓库 一、私有仓库搭建 # 1、拉取私有仓库镜像 docker pull registry # 2、启动私有仓库容器 docker run -id --nameregistry -p 5000:5000 registry # 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog&#xff0c;看到{"repositories&quo…

Linux操作系统——进程(三) 进程优先级

进程优先级 首先呢&#xff0c;我们知道一个进程呢&#xff08;或者也可以叫做一个任务&#xff09;&#xff0c;它呢有时候要在CPU的运行队列中排队&#xff0c;要么有时候阻塞的时候呢又要在设备的等待队列中排队&#xff0c;其实我们排队的本质就是&#xff1a;确认优先级。…