鸿蒙嵌入式系统开发原理与实战 课件 第8章 环境数据采集_第1页
鸿蒙嵌入式系统开发原理与实战 课件 第8章 环境数据采集_第2页
鸿蒙嵌入式系统开发原理与实战 课件 第8章 环境数据采集_第3页
鸿蒙嵌入式系统开发原理与实战 课件 第8章 环境数据采集_第4页
鸿蒙嵌入式系统开发原理与实战 课件 第8章 环境数据采集_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章环境数据采集学习完本课程后,您将能够:了解I2C总线接口;掌握LiteOS-m的环境光传感器采集技术;掌握LiteOS-m的热释电红外传感技术;掌握LiteOS-m的温度采集传感技术。

环境数据采集需要使用各种传感器来完成,常用的传感器包括环境光传感器、热释电红外传感器、温湿度传感器等。本章选取OpenHarmony嵌入式开发中较典型的几种传感器进行介绍,这些传感器信号主要通过I2C总线接口或GPIO接口进行传输。GPIO接口已经在第5章作过介绍,这里主要介绍I2C总线接口。I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

I2C总线接口

I2C总线是Philips公司推出的一种串行总线,用于连接嵌入式系统内核及其外设。I2C总线由两根双向信号线组成:数据线SDA和时钟线SCL。与I2C总线相连器件的数据线都连接到SDA,各器件的时钟线都连接到SCL。

I2C总线接口

I2C总线的特点:2线制采用SDA和SCL2线制,器件所需引脚少,连接简单,电路体积小、可靠性高。速率高标准模式传输速率为100kbps,快速模式为400kbps,高速模式可达到3.4Mbps。主/从和多主两种工作模式如果嵌入式内核没有I2C总线接口,可通过IO口模拟I2C协议,则可以工作单主模式,与之连接的扩展器件配置为从模式;如果嵌入式内核集成了I2C总线接口,则可工作在多主模式或单主模式。I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

I2C总线接口相关API

基于LiteOS-m内核的I2C接口文件的相关声明位于路径device/hisilicon/hispark_pegasus/sdk_liteos/include的文件夹中,其中hi_i2c.h就是I2C声明文件。下面对相关的API进行分析。(1)hi_u32hi_i2c_set_baudrate(hi_i2c_idxid,hi_u32baudrate)hi_i2c_set_baudrate函数的作用是设置对应的I2C的波特率,该函数拥有两个参数,第一个参数id为要设置的I2C索引,第二个参数baudrate为要设置的波特率。函数运行成功返回0,运行失败则返回其他代码,详情可看hi_errno.h。I2C总线接口相关API

(2)hi_u32hi_i2c_writeread(hi_i2c_idxid,hi_u16device_addr,consthi_i2c_data*i2c_data)hi_i2c_writeread函数的作用是I2C发送与接收数据,该函数拥有三个参数,第一个参数id为I2C的索引,第二个参数device_addr为传感器的设备地址,第三个参数为发送和接收的数据。函数运行成功返回0,运行失败则返回其他代码。(3)hi_u32hi_i2c_write(hi_i2c_idxid,hi_u16device_addr,consthi_i2c_data*i2c_data)hi_i2c_write函数的作用是I2C发送数据,该函数拥有三个参数,第一个参数id为I2C的索引,第二个参数device_addr为传感器的设备地址,第三个参数i2c_data为要发送的数据。函数运行成功返回0,运行失败则返回其他代码。I2C总线接口相关API

(4)hi_u32hi_i2c_read(hi_i2c_idxid,hi_u16device_addr,consthi_i2c_data*i2c_data)hi_i2c_read函数的作用是I2C接收数据,该函数拥三个参数,第一个参数id为I2C的索引,第二个参数device_addr为传感器的设备地址,第三个参数i2c_data为接收到的数据。函数运行成功返回0,运行失败则返回其他代码。(5)hi_u32hi_i2c_init(hi_i2c_idxid,hi_u32baudrate)hi_i2c_init函数的作用是初始化I2C,该函数有两个参数,第一个参数id为I2C的引索,第二个参数baudrate为波特率。函数运行成功返回0,运行失败则返回其他代码。I2C总线接口相关API

(6)hi_u32hi_i2c_deinit(hi_i2c_idxid)hi_i2c_deinit函数的作用是去I2C的初始化,该函数只有一个参数id,为要去初始化的I2C的索引。函数运行成功返回0,运行失败则返回其他代码。(7)hi_voidhi_i2c_register_reset_bus_func(hi_i2c_idxid,hi_i2c_funcpfn)hi_i2c_register_reset_bus_func函数的作用注册I2C的回调函数,该函数拥有两个参数,第一个参数id为I2C的索引,第二个参数pfn为回调函数。函数运行成功返回0,运行失败则返回其他代码。I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

启用I2C功能

OpenHarmony的I2C功能默认是禁用的,可以修改/device/hisilicon/hispark_Pegasus/sdk_liteos/build/config/usr_config.mk文件开启配置。I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

环境光传感器BH1750

环境光传感器通过实时感知环境光照强度,为各类智能设备提供自适应调节能力。BH1750是一款基于I²C通信的数字式环境光传感器,其内部集成光电二极管、信号放大电路及16位ADC,可直接输出以勒克斯(lx)为单位的数字光照度值,无需外接分压电阻或电压计算流程。该传感器适用于自动背光调节、节能控制、植物生长监测及气象站等场景,通过光学设计逼近人眼视觉响应(Vλ曲线),实现即插即用。引脚名称描述1VCC供给电压3~5V2ADDRI2C地址引脚3GND电源地4SDAI2C总线数据线5DVISDA和SCL的参考电压6SCLI2C总线时钟线环境光传感器BH1750

I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

开发示例——光照强度采集

BH1750原理图开发示例——光照强度采集

智慧农业模块扩展接口开发示例——光照强度采集

主控板扩展接口开发示例——光照强度采集

程序代码开发示例——光照强度采集

I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

热释电红外传感器D203B

热释电红外传感器凭借其非接触式人体/动物移动检测能力,在安防、智能家居、自动控制等领域应用广泛。D203B是一款被动式(PIR)热释电红外传感器,专为检测人体或动物的移动红外辐射设计。其核心采用双元敏感元件,通过感知环境温度突变触发信号,广泛应用于安防报警、自动照明、节能控制等领域。传感器工作时,当人或动物进入探测范围,D203B的OUT端会产生高电平脉冲;通过将Hi3861的GPIO引脚配置为中断模式并直接读取此电平状态,可实时触发边沿中断,从而实现人体或动物靠近的即时判断。引脚名称功能1OUT信号输出2GND电源地3VCC电源(3~15VDC)I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

开发示例——热释电红外传感器感应报警

本示例实现一个热释电红外传感器探测人或动物的报警系统,当人或动物靠近传感器时,通过蜂鸣器发出报警音。开发示例——热释电红外传感器感应报警

电路原理图开发示例——热释电红外传感器感应报警

电路原理图开发示例——热释电红外传感器感应报警

程序代码开发示例——热释电红外传感器感应报警

系统启动后,串口输出初始化信息后,显示“INFRAREDTaskstart”开始等待热释电红外传感器感应中断,当人体靠近热释电红外传感器,蜂鸣器会发出报警声。I2C总线接口介绍I2C总线接口I2C总线接口相关API启用I2C功能环境光传感器环境光传感器BH1750开发示例——光照强度采集热释电红外传感器热释电红外传感器D203B开发示例——热释电红外传感器感应报警温湿度采集传感器温湿度采集传感器SHT30开发示例——获取环境温湿度

温湿度采集传感器SHT30

温湿度采集传感器可以采集环境的温度和湿度,作为环境感知的核心元件,其应用已深度融入城市环境监控、智能楼宇、智慧农业等领域。本节以SHT30温湿度采集传感器为例介绍相关开发技术。SHT30是业内知名的瑞士Sensirion公司推出的新一代温湿度传感器芯片。得益于Sensirion的CMOSens®技术,高集成度电容式测湿元件和能隙式测温元件,SHT30能够提供极高的可靠性和长期稳定性,具有功耗低、反应快、抗干扰能力强等优点。传感器内部经过校准、线性化与放大,能够输出与温湿度呈线性关系的模拟电压,无需额外的驱动库,使用简单方便,兼容常见的Arduino、micro:bit、ESP32等各类3.3V/5V主控系统。温湿度采集传感器SHT30

引脚名称描述1SDAI²C数据线(开漏输出)2SCLI²C时钟线(开漏输出)3ADDR地址选择4ALERT阈值超限中断输出5,6GND电源地7,8VDD电源(2.4~5.5V)温湿度采集传感器SHT30

I2C总线接口介绍I2C总线接口I2C总线接口相关API

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论