实验介绍
本章主要介绍温湿度计的实现,本产品板载了温湿度传感器SI7006。该传感器不但能测量温度,还能测量相对湿度。本章我们将向大家介绍如何使用haas1000来读取SI7006数字温湿度传感器,从而得到环境温度和相对湿度等信息,并把从温湿度值显示在OLED模块上。
开始学习之前我们先看一下显示效果,如下图所示:
涉及知识点
- I2C通信原理
- SI7006光照与接近传感器原理
- OLED绘图
开发环境准备
硬件
- 1
- 2
- 3
软件
AliOS Things开发环境搭建
- 1
HaaS EDU K1 DEMO 代码下载
- 1
- 2
- 3
代码编译、烧录
- 1
- 2
I2C通信原理
IIC总线是一种最早由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。
I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
波形如下图:
SI7006传感器简介
SI7006 是Silicon Lab公司推出的一款相对湿度及温度传感器,其结合了工厂校准湿度和温度传感器元件、模拟-数字转换器,信号处理和一个I2C主机接口。使用业界标准低K电介质聚合物提供了出色的精度和长期稳定性,同时具有低漂移和低滞后。同时其创新的CMOS设计还使其具备很低的功耗。
特征:
- 相对湿度传感器:
- ±5%RH(最大)@ 0-80%RH的
- 温度传感器:
- ±1.0℃的精确度(最大)@ -10至+ 85°C
- 0至100%RH的工作范围内
- 可达-40至+125°C的工作范围
- 工作电压范围宽(1.9〜3.6V)
- 低功耗:2.2μW平均功率为3.3V和每秒1个样本
- I2C主机接口
- 片上集成加热器
- 采用3mm x 3mm QFN封装
- 卓越的长期稳定性
- 支持工厂校准
- 在回流和运行寿命的保护
- 防止污染的灰尘,污垢,日用化工和其它液体
应用:
- 资产和货物跟踪
- 汽车气候控制和去雾
- 婴儿监视器
- 持续气道正压通气(CPAP)机
- 洪水和水检测
- 煤气,火灾和烟雾探测器
- 手机/智能手机
- 工业HVAC / R
- 笔记本电脑/平板电脑
- 激光打印机
- 微环境/数据中心
- PLC和IO模块
- 远程遥测装置
- 平板电脑
- 测试和测量
- 恒温/恒湿
- 通风和空调系统
- 气象站
- 风力发电逆变器
- 挡风玻璃和后视镜系统
- 无线基站
- 无线传感器网络
OLED绘图
软硬件环境准备
硬件
1、开发用电脑一台
2、HaaS EDU K1开发板一个 (开发板内置SI7006传感器)
3、USB Type-C 数据线一根
硬件设计
在本实验中,SI7006贴片在主板上,中间I2C与MCU通信,原理图如下所示:
EDU SI7006部分原理图
软件设计
应用代码部分
文件路径如下:
solutions/eduk1_demo/k1_apps/humiture/humiture.c
solutions/eduk1_demo/k1_apps/humiture/humiture.h
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
驱动部分
文件路径如下:
components/peripherals/sensor/drv/drv_temp_humi_si_si7006.c
驱动代码整体主要分为三部分:
- 获取产品ID
- 获取温度值
- 获取湿度值
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
开发者支持
HaaS官方:https://haas.iot.aliyun.com/
HaaS技术社区:https://blog.csdn.net/HaaSTech
开发者钉钉群和公众号见下图,开发者钉钉群每天都有技术支持同学值班。
<link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css" rel="stylesheet">
<link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-49037e4d27.css" rel="stylesheet">
</div>