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

物联网Lora模块从入门到精通(五)光照与温湿度传感器

一、前言

        在程序开发中,光照与温湿度的获取是十分常见与重要的,本文我们主要是使用M21温湿度光照三合一传感器,其中温湿度数据通过协议获取,而光照通过ADC获取。

二、代码实现

        本文内容较为简单,且后续文章将在本文基础上完成。从本文开始,后续将会讲解OLED显示屏、串口通信、Lora无线通信、Flash存储与读取都将在本文的基础上完成。

        光照值的获取:

        光照值的获取是常见的AD转换,例程中为我们提供了adc_reader.c文件,可以帮助我们快速配置完成任务要求。

        ADCS_Init()是初始化ADC的函数,进行基础配置。

        AdcScanChannel()被调用时,会获取数据存到本地变量中。

        AdcReadCh0()从存储的数据中,读取通道0的值。

 

        温湿度的获取

        本文使用的是M21温湿度光敏三合一模块,例程中也提供了hal_temHum.c文件来帮助我们与该模块通信获取数据。

        hal_temHumInit()函数是初始化函数,初始化相应配置。

        call_sht11()函数是获取数据的方法,其有两个参数,需要传入两个float类型变量的地址,分别代表温度和湿度。

        示例代码:

        使用库时,记得添加头文件。

#include <string.h>
#include "board.h"
#include "hal_key.h"
#include "tim-board.h"
#include "timer_handles.h"
#include "led_light.h"
#include "adc_reader.h"
#include <math.h>          //library 
#include <stdio.h>
#include "stm32l1xx_hal.h" // controller register definitions 
#include "sht1x.h"         // controller register definitions 
#include "sht3x.h"void Init() {BoardInitMcu();BoardInitPeriph();keys_init();//按键初始化setTimer2Callback(Time2Handler);Tim2McuInit(1);//定时器初始化,设置定时中断1ms中断一次
}float temp=0,hum=0,light=0;
int main( void )
{Init();ADCS_Init();//初始化ADChal_temHumInit();//初始化温湿度模块while( 1 ){HAL_Delay(1000);//延时1000msAdcScanChannel();//更新通道值light=((5.0/2.0)*AdcReadCh0())*100.0;//获取光照并通过公式计算call_sht11(&temp,&hum);//获取温湿度}
}
http://www.lryc.cn/news/92712.html

相关文章:

  • 【网络编程】计算机网络基础知识总结 | 运输层 |TCP协议
  • python关键知识点
  • c# 从零到精通 数组的操作-将两个一维数组合并成一个二维数组
  • Linux目录结构(与window目录结构对比+绝对路径和相对路径)
  • 投票活动小程序开发搭建
  • 代码随想录day18
  • QT+OpenGL高级光照 Blinn-Phong和Gamma校正
  • 【Ubuntu系统内核更新与卸载】
  • RL - 强化学习 马尔可夫奖励过程 (MRP) 的状态价值
  • Mybatis之批处理流式查询
  • Spring架构篇--2.7.3 远程通信基础--Netty原理--bind实现端口的绑定
  • 【改进的多同步挤压变换】基于改进多同步挤压的高分辨率时频分析工具,用于分析非平稳信号(Matlab代码实现)
  • 有关 python 切片的趣事
  • ChatGPT 会带来失业潮吗?
  • 如何对待工作中的失误
  • 微信小程序快速入门【一】
  • TiDB亿级数据亚秒响应查询集群部署
  • 并发——同步访问共享的可变数据
  • Docker网络模型(九)禁用容器网络
  • JavaScript 教程---互联网文档计划
  • 做好功能测试需要的8项基本技能【点工进来】
  • 在弹出框内三个元素做水平显示
  • 纠删码技术在vivo存储系统的演进【上篇】
  • 如何实现APP自动化测试?
  • ​​INNODB和MyISAM区别
  • 普中自动下载软件1.86下载程序失败案例
  • JavaScript HTML DOM
  • solr快速上手:配置IK中文分词器(七)
  • 【软件测试】接口测试工具APIpost
  • 第六章 假言:那么、就、则;才。