Arduino——GY39大气压、温湿度、光照模块

2023-05-16

GY39模块

文章目录

  • GY39模块
  • 前言
  • 一、模块介绍
  • 二、arduino代码


前言

前几天买东西的时候买了一个GY39,这个模块集成了温湿度,大气压,海拔,光照一体,使用起来很方面。
在这里插入图片描述

一、模块介绍

它有两种工作模式
在这里插入图片描述
使用串口模式时需要搭配转接板,我选择了IIC模式,看一下通信协议吧,就是关于高八位和低八位的数据。
在这里插入图片描述
看一下接线
在这里插入图片描述

二、arduino代码

#include <Wire.h>
//#include <i2cmaster.h>
/
/*
GY-39-----mini
VCC----VCC
SCL----A5
SDA----A4
GND--GND
*/


//
#define uint16_t unsigned int
#define iic_add  0x5b
typedef struct
{
    uint32_t P;
    uint16_t Temp;
    uint16_t Hum;
    uint16_t Alt;
} bme;

bme Bme;
  uint32_t Lux;

void i2c_speed(uint16_t scl_speed)
{
  /* initialize TWI clock: 40 kHz clock, TWPS = 0 => prescaler = 1 */
  
  TWSR = 0;                         /* no prescaler */
  TWBR = ((F_CPU/scl_speed)-16)/2;  /* must be > 10 for stable operation */

}
void setup() {
       Serial.begin(115200);
       Wire.begin();
       i2c_speed(40000);
       delay(1); 
}
void loop() {

    get_bme();
    Serial.print("Temp: ");
    Serial.print( (float)Bme.Temp/100);
    Serial.print(" DegC  PRESS : ");
    Serial.print( ((float)Bme.P)/100);
    Serial.print(" Pa  HUM : ");
    Serial.print( (float)Bme.Hum/100);
    Serial.print(" % ALT:");
    Serial.print( Bme.Alt/1000);
    Serial.println("m");
    get_lux();
    Serial.print( "Lux: ");
    Serial.print( ((float)Lux)/100);
    Serial.println(" lux");
    delay(200); 
}
void get_bme(void)
{
    uint16_t data_16[2]={0};
    uint8_t data[10]={0};
   iic_read(0x04,data,10);
    //iic_read2(0x04,data,10);
   Bme.Temp=(data[0]<<8)|data[1];
   data_16[0]=(data[2]<<8)|data[3];
   data_16[1]=(data[4]<<8)|data[5];
   Bme.P=(((uint32_t)data_16[0])<<16)|data_16[1];
   Bme.Hum=(data[6]<<8)|data[7];
   Bme.Alt=(data[8]<<8)|data[9];
}
void get_lux(void)
{     
    uint16_t data_16[2]={0};
    uint8_t data[10]={0};
    //iic_read2(0x00,data,4);
    iic_read(0x00,data,4);
    data_16[0]=(data[0]<<8)|data[1];
    data_16[1]=(data[2]<<8)|data[3];
    Lux=(((uint32_t)data_16[0])<<16)|data_16[1];

}
void iic_read(unsigned char reg,unsigned char *data,uint8_t len )//#include <Wire.h>
{
   Wire.beginTransmission(iic_add);  
   Wire.write(reg); 
   Wire.endTransmission(false);
   delayMicroseconds(10);
   if(len>4)
     Wire.requestFrom(iic_add,10);     
   else
     Wire.requestFrom(iic_add,4);
   for (uint8_t i = 0; i < len; i++)
    {  
       data[i] = Wire.read(); 
   }
  
}
//void iic_read2(unsigned char add,unsigned char *data,unsigned char len)//#include <i2cmaster.h>
//{
//  i2c_start_wait(0xb6);
//   i2c_write(add);
//   i2c_start_wait(0xb6+1);
//   while(len-1)
//   {
//    *data++=i2c_readAck();
//    len--;
//    }
//    *data=i2c_readNak();
//    i2c_stop();
//}

这个模块也有它配套的上位机
在这里插入图片描述
我是自己做了APP的界面用来显示的
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino——GY39大气压、温湿度、光照模块 的相关文章

  • 【嵌入式面试题】常见的面试题梳理一

    注 xff1a 看面试题时 xff0c 主要应该以学习为主 xff0c 面试题有些基本上是我们编程时会遇上的问题 xff0c 通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题 xff0c 看完这篇面试题后 xff0c 希
  • 使用Python+openpyxl实现导出自定义样式的Excel文件

    之前项目中的导出Excel文件操作都是在前端完成的 xff0c 项目是由vue 43 vite构建的 xff0c 效果还不错的 xff0c 所需依赖包如下所示 npm i xlsx 64 0 18 5 npm i xlsx style vi
  • 【嵌入式面试题】常见面试题梳理二

    注 xff1a 看面试题时 xff0c 主要应该以学习为主 xff0c 面试题有些基本上是我们编程时会遇上的问题 xff0c 通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题 xff0c 看完这篇面试题后 xff0c 希
  • 【嵌入式面试题】常见面试题梳理三

    注 xff1a 看面试题时 xff0c 主要应该以学习为主 xff0c 面试题有些基本上是我们编程时会遇上的问题 xff0c 通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题 xff0c 看完这篇面试题后 xff0c 希
  • 【嵌入式面试题】常见面试题梳理四

    注 xff1a 看面试题时 xff0c 主要应该以学习为主 xff0c 面试题有些基本上是我们编程时会遇上的问题 xff0c 通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题 xff0c 看完这篇面试题后 xff0c 希
  • 【嵌入式面试题】常见面试题梳理五

    注 xff1a 看面试题时 xff0c 主要应该以学习为主 xff0c 面试题有些基本上是我们编程时会遇上的问题 xff0c 通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题 xff0c 看完这篇面试题后 xff0c 希
  • 【嵌入式面试题】常见面试题梳理六

    注 xff1a 看面试题时 xff0c 主要应该以学习为主 xff0c 面试题有些基本上是我们编程时会遇上的问题 xff0c 通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题 xff0c 看完这篇面试题后 xff0c 希
  • 我的创作一周年纪念日--收获与成长与展望

    机缘 2022年10月11日 xff0c 是我创作的一周年纪念日 xff0c 1年前 xff0c 刚到大三的我开启了我的创作之旅 xff0c 那个时候 xff0c 我选择重新学习C语言和数据结构 xff0c 将我的基础在进行巩固 在那个时候
  • 【Linux】特别篇--SMBus 协议

    Linux 特别篇 SMBus 协议 一 SMBus 简介二 SMBus 与 I2C 区别三 SMBus协议分析3 1 符号含义3 2 SMBus Quick Command3 3 SMBus Receive Byte3 4 SMBus S
  • 【Linux】特别篇--GNU C编译器扩展语法

    前言 xff1a 本章是我参考 嵌入式C语言自我修养 的GUN C编译器扩展语法这一章 xff0c 对其中的内容进行了摘录 总结与归纳 xff0c 并写了一些关于自己的理解 xff0c 这边还是推荐大家去购买原作的 xff0c 因为里面用通
  • 【ROS】机械人开发一--树莓派安装ubuntu18.04

    前言 xff1a 安装了一天的树莓派系统 xff0c 遇到了很多坑 xff0c 这里将教程详细分享一下 xff0c 方便大家快速的安装系统 目录 一 操作环境硬件软件 二 资源下载链接三 具体步骤烧入修改镜像文件问题修改重启时间PC端使用x
  • 【ROS】机械人开发二--ROS环境安装

    机械人开发二 ROS环境安装 一 运行环境二 ROS melodic安装2 1 设置软件源2 2 设置密钥2 3 安装ROS2 4 环境设置2 5 安装ROS的依赖环境2 6 初始化rosdep 三 建立工作空间测试 一 运行环境 树莓派4
  • Android应用程序开发期末大作业(1)

    一 简答题 每小题5分 xff0c 4小题 xff0c 共20分 1 1 android大众常用的五种布局 xff08 5分 xff09 答 xff1a FrameLayout 框架布局 xff0c LinearLayout 线性布局 xf
  • 【ROS】机械人开发三--ROS工作空间与功能包

    机械人开发三 ROS工作空间与功能包 一 ROS工作空间1 1 概念1 2 创建工作空间1 3 编译工作空间1 4 设置环境变量1 5 添加环境变量 二 功能包2 1 概念2 2 功能包的内容2 3 创建功能包 三 CMakeLists t
  • 【ROS】机械人开发四--ROS常用概念与Launch文件

    机械人开发四 ROS常用概念与Launch文件 一 ROS常用概念1 1 ROS 的结构1 2 ROS 话题通信1 3 海龟仿真器 仿真 例程 二 Launch文件2 1 功能2 2 文件语法2 3 参数服务器2 4 节点分组与重命名标签
  • 【ROS】机械人开发五--ROS基本概念的程序实现

    机械人开发五 ROS基本概念的程序实现 一 开发工具二 RoboWare Studio的基本使用2 1 软件启动2 2 修改界面语言2 3 使用2 4 编译文件2 5 卸载 三 话题通信四 话题的代码编写4 1 发布端4 2 接收端4 3
  • 【STM32】标准库与HAL库对照学习教程十四--CAN总线

    STM32 标准库与HAL库对照学习教程十四 CAN总线 一 前言二 准备工作三 CAN协议3 1 简介3 2 CAN物理层3 2 1 闭环总线网络3 2 2 开环总线网络 3 3 差分信号3 3 1 简介3 3 2 CAN总线上的差分信号
  • 【CANopen】CANopen总线讲解

    CANopen总线 一 前言二 CANopen概述2 1 CANopen网络模型2 2 CANopen常见规范 三 CANopen对象字典四 CANopen通讯标识符五 CANopen协议概述5 1 CANOpen协议报文分类5 2 CAN
  • 51单片机中断的调用寄存器组(PSW)的作用,以及汇编堆栈的作用,堆栈指针的SP的使用方法,RAM的运行和ROM在单片机具体运行和C语言的优势和中断,定时器基础知识(上)

    一 xff0c 堆栈在汇编的作用 xff0c 以及PUSH ACC 和 PUSH PSW 通过最简单的8051单片机RAM的分配可知 xff0c 单片机从烧程序到达到一定的工作过程 首先明白为什么要引如 烧 写的过程 我们知道一般我说存储器
  • 小端序与大端序

    今天在写逆向题目时遇到的一个知识点 字节顺序 xff08 维基百科 xff09 字节顺序 xff0c 又称端序或尾序 xff08 英语 xff1a Endianness xff09 xff0c 在计算机科学领域中 xff0c 指电脑内存中或

随机推荐

  • 超声波测距模块(HC-SR04模块)特点及使用介绍

    超声波测距模块 xff08 HC SR04模块 xff09 特点及使用介绍 前言一 超声波测距模块 xff08 HC SR04模块 xff09 外观二 原理图三 相关参数讲解1 参数2 测量范围3 计算公式4 优点5 产品特性 xff08
  • Qt基础简单知识 信号与槽与三大基类

    Qt基础简单知识 信号与槽与三大基类 学习Qt记录一下 xff0c 大致以下内容 xff1a 1 Qt Creator窗口基类 2 信号与槽 1 Qt Creator窗口基类 Creator默认三种基类 xff1a 1 xff09 QMai
  • Android应用程序开发期末大作业(2)

    xff08 3 xff09 用imageView和imagebutton及activity在界面上实现图片浏览 新建android项目如 AI03 xff0c 在项目的 AI03 src com example ai03 MainActiv
  • ROS中使用A星算法进行路径规划

    ROS中使用A星算法进行路径规划 前言python编写A星算法描述具体实现 ROS结合A星算法描述具体实现 实现结果 前言 由于本人这学期修了一门 智能工程 的课程 xff0c 课程的大作业要求大家自主编写机器人导航程序 xff0c 包括
  • 攻防世界 web练习区

    目录 view source robots backup cookie disabled button weak auth simple php get post xff referer webshell command execution
  • 网络安全编程基础--使用结构体数组完成信息录入

    实验1 xff1a C语言基础实验 目录 实验1 xff1a C语言基础实验 实验步骤分析 xff1a 1 定义结构体 xff1a 2 信息录入 3 信息修改 4 信息展示 5 主函数编写 结果展示 xff1a 源代码 xff1a 实验设备
  • 服务端和客户端通信-TCP(含完整源代码)

    简单TCP通信实验 目录 简单TCP通信实验 分析 1 套接字类型 2 socket编程步骤 3 socket编程实现具体思路 实验结果截图 程序代码 实验设备 xff1a 目标系统 xff1a windows 软件工具 xff1a vs2
  • 汇编语言--实验四

    实验名称 xff1a BX 和loop的使用 一 xff1a 实验目的 学会使用 bx 和loop 使用debug练习一些简单的编程 练习使用debug调试汇编程序的方法 二 xff1a 实验内容及步骤 内容 xff1a xff08 1 x
  • 汇编语言--实验七

    实验名称 xff1a 寻址方式在结构化数据访问中的应用 一 xff1a 实验目的 学会寻址方式在结构化数据访问中的应用 xff1b 利用前面所学知识熟悉编程技巧 二 xff1a 实验内容及步骤 内容 xff1a xff08 1 xff09
  • 汇编语言--实验九

    实验名称 xff1a 根据材料编程 目录 实验名称 xff1a 根据材料编程 一 xff1a 实验目的 二 xff1a 实验内容及步骤 内容 xff08 1 xff09 步骤 xff08 1 xff09 结果 xff08 1 xff09 三
  • Visual Studio 2022 C++开发 (Win)配置教程

    前言 本文将讲解如何在Window系统下配置Visual Studio 2022版本的C 43 43 开发环境 步骤 下载并且安装Visual Studio Tools xff08 1 xff09 下载 Visual Studio Tool
  • template < class T> ,map和vector用法——恶补c++

    部分目录 template lt class T gt 是什么找到各素数因子map数组下用法map遍历map元素的默认值 vector 用法 template lt class T gt 是什么 template lt class T gt
  • 停车场寻车系统(识别车牌,手机app查询相关信息)

    停车场寻车系统 文章目录 停车场寻车系统前言一 手机app二 车牌识别三 数据查询总结 停车场寻车系统 前言 上个星期用了一周左右做了一个停车场寻车系统的项目 xff0c 可以识别车牌 xff0c 通过手机app查询车辆信息 一 手机app
  • K210+MLX90614红外测温

    红外测温 文章目录 红外测温前言一 MLX90614二 使用步骤总结 前言 K210随便找一个都行 一 MLX90614 这个模块之前的博客有介绍 xff0c 他是用IIC通信的 模块就不过多介绍了 xff0c 之间看代码吧 import
  • PHP mysql_connect()连接-已淘汰

    1 首先在mysql命令控制台新建数据库 mysql gt create database test Query OK 1 row affected 0 04 sec mysql gt use test Database changed m
  • STM32使用红外测温

    红外测温 文章目录 红外测温前言一 原理二 STM32代码1 MLX90614 c2 MLX90614 h 总结 前言 一 原理 红外测温的原理可以直接去看卖家的手册 xff0c 手册多余的话太多了 xff0c 知道他是IIC通信的就行了
  • Arduino——PAJ7620手势识别模块

    手势识别模块 文章目录 手势识别模块前言一 安装PAJ7620库二 代码 前言 在用arduino驱动这些模块得时候 xff0c 方法很简单 xff0c 先去管理库中找这个库 xff0c 如果有这个库 xff0c 然后下载这个库 xff0c
  • Arduino——正点原子sim800c模块

    sim800c 文章目录 sim800c前言一 arduino代码 前言 最近要做一个项目需要用到sim800c xff0c 就用arduino驱动一下吧 xff0c 用的是正点原子的sim800c 使用的时候最好使用12v1A供电 xff
  • Arduino——野火GPS模块

    GPS模块 文章目录 GPS模块前言一 Arduino代码 前言 手上还有一个GPS xff0c 用arduino做模块很方便 xff0c 打算和短信模块结合 xff0c 短信模块上次已经使用完成了 xff0c 这次学习一下GPS模块 看模
  • Arduino——GY39大气压、温湿度、光照模块

    GY39模块 文章目录 GY39模块前言一 模块介绍二 arduino代码 前言 前几天买东西的时候买了一个GY39 xff0c 这个模块集成了温湿度 xff0c 大气压 xff0c 海拔 xff0c 光照一体 xff0c 使用起来很方面