当前位置: 首页 > news >正文

STM32驱动GY-39监测环境温度,湿度,大气压强,光强度

目录

  • 模块简介
  • 模块测试
    • 接线
    • 代码
    • 测试现象
  • 总结

模块简介

GY-39 是一款低成本,气压,温湿度,光强度传感器模块。工作电压 3-5v,功耗小,安装方便。
其工作原理是,MCU 收集各种传感器数据,统一处理,直接输出计算后的结果,此模块,有两种方式读取数据,即串口 UART(TTL 电平)或者 IIC(2 线)。串口的波特率有 9600bps 与 115200bps,可配置,有连续,询问输出两种方式,可掉电保存设置。可适应不同的工作环境,与单片机及电脑连接。模块另外可以设置单独传感器芯片工作模式,作为简单传感器模块,MCU 不参与数据处理工作。在这里插入图片描述

模块测试

接线

这里使用的是MCU_IIC模式,所以在使用前需要先将S0与GND进行短接(模块默认是UART模式),如图中的蓝色跳线帽短接。
在这里插入图片描述

将模块其他需要的线与开发板连接,接线如下:
GY-39—STM32F103C8T6
SCL—PB6
SDA—PB7
STM32—FT232/USB转TTL
TX(PA9)—RX
RX(PA10)—TX

代码

数据计算方法模块的说明手册中已经有具体提出。
数据计算方法:
①光照强度计算方法(当 Byte2=0x15 时,数据:Byte4~Byte7) :
Lux=(前高8位<<24) | (前低8位<<16) | (后高8位<<8) | 后低8位 单位lux

②温度、气压、湿度、海拔,计算方法(当 Byte2=0x45 时):
温度:Byte4~Byte5
T=(高 8 位<<8)|低 8 位
T=T/100 单位℃

气压:Byte6~Byte9
P=(前高 8 位<<24) | (前低 8 位<<16) | (后高 8 位<<8) | 后低 8 位
P=P/100 单位 pa

湿度:Byte10~Byte11
Hum=(高 8 位<<8)|低 8 位
Hum=Hum/100 百分制

海拔:Byte12~Byte13
H=(高 8 位<<8)|低 8 位 单位 m

这是主函数中用于计算其输出值的部分代码:

if(Single_ReadI2C(0xb6,0x04,raw_data,10)){Bme.Temp=(raw_data[0]<<8)|raw_data[1];data_16[0]=(((uint16_t)raw_data[2])<<8)|raw_data[3];data_16[1]=(((uint16_t)raw_data[4])<<8)|raw_data[5];Bme.P=(((uint32_t)data_16[0])<<16)|data_16[1];Bme.Hum=(raw_data[6]<<8)|raw_data[7];Bme.Alt=(raw_data[8]<<8)|raw_data[9];}if(Single_ReadI2C(0xb6,0x00,raw_data,4))data_16[0]=(((uint16_t)raw_data[0])<<8)|raw_data[1];data_16[1]=(((uint16_t)raw_data[2])<<8)|raw_data[3];Lux=(((uint32_t)data_16[0])<<16)|data_16[1];printf("Temp: %.2f  DegC  ",(float)Bme.Temp/100);printf("  P: %.2f  Pa ",(float)Bme.P/100);printf("  Hum: %.2f   ",(float)Bme.Hum/100);printf("  Alt: %.2f  m\r\n ",(float)Bme.Alt+36);printf("\r\n Lux: %.2f  lux\r\n ",(float)Lux/100);  delay_ms(200);

测试现象

连接好上电烧录程序后,可以看到串口的输出数据里已经有温度,大气压强,湿度,海拔和光照强度的值了。
在这里插入图片描述

总结

有关代码中海拔的计算可以在平地时候,让高度数据加上或者减去偏差值,让海拔数据等于当地平均海拔。同一地点,气压每天,每个季节都会变化的,如果是测绝对高度,是需要经常校准的。

http://www.lryc.cn/news/197179.html

相关文章:

  • 在华为和比亚迪干了5年测试,月薪25K,熬夜总结出来的划水经验.....
  • Mac 使用 scp 上传或下载文件/文件夹
  • Restful 风格
  • LLM 系列 | 21 : Code Llama实战(上篇) : 模型简介与评测
  • 积分球荧光光谱测试光电检测方式有哪些优点?
  • 软考考试时间已出!采用连考形式!
  • 深入理解强化学习——学习(Learning)、规划(Planning)、探索(Exploration)和利用(Exploitation)
  • 大模型LLM相关面试题整理-训练集-训练经验-微调
  • qt 实现pdf阅读器
  • 从培训班出来之后找工作的经历,教会了我五件事.....
  • idea中还原dont ask again
  • Unity之ShaderGraph如何实现光边溶解
  • Go语言和Python语言哪个比较好?
  • MAYA教程之模型的UV拆分与材质介绍
  • vscode调试container(进行rocksdb调试)
  • 从恐怖到商机:2023万圣节跨境电商如何打造鬼魅消费体验?
  • 修炼k8s+flink+hdfs+dlink(五:安装dockers,cri-docker,harbor仓库,k8s)
  • 从实时数据库转战时序数据库,他陪伴 TDengine 从 1.0 走到 3.0
  • 颠覆传统有线通讯,虹科IO-Link wireless解决方案让智能机床的旋转部件实现可靠低延迟无线通信
  • 链表 oj2 (7.31)
  • python案例:六大主流小说平台小说下载
  • 前端已死!转行网络安全,挖漏洞真香!
  • 【AI】了解人工智能、机器学习、神经网络、深度学习
  • 【Axure高保真原型】3D柱状图_中继器版
  • 【word技巧】word页眉,如何禁止他人修改?
  • Python 机器学习入门之逻辑回归
  • 现货白银赚钱有风险吗?
  • Debian衍生桌面项目SpiralLinux12.231001发布
  • 元宇宙在技术大爆炸时代迎来链游新世界
  • 9中间件-Redis、MQ---进阶