目的
驱动hs3003温湿度传感器,采集完数据后进入深度睡眠模式,以达到节能的目的。
实现步聚
1、打开rtthreadsettings, 添加hs300x模块:
2、添加初始化代码:
#define HS300X_I2C_BUS "i2c1"
int rt_hw_hs300x_port(void)
{
struct rt_sensor_config cfg;
cfg.intf.dev_name = HS300X_I2C_BUS;
cfg.intf.user_data = (void *)HS300X_I2C_ADDR;
rt_hw_hs300x_init("hs300x", &cfg);
return RT_EOK;
}
INIT_ENV_EXPORT(rt_hw_hs300x_port);
3、修改主程序代码如下:
#include
#include
#include "sensor_renesas_hs300x.h"
#include "drv_gpio.h"
#define LED_PIN GET_PIN(0, 0)
#define USE_SECONDS_FOR_ALARM 30
#define LONG_GLITCH_DELAY_MS 100u /* in ms */
#define RTC_INTERRUPT_PRIORITY 3u
void set_rtc_alarm_date_time(void);
cyhal_rtc_t rtc_obj;
extern struct hs300x_device temp_humi_dev;
int main(void)
{
cy_rslt_t result;
float temp_f, humi_f;
__enable_irq();
rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
rt_thread_mdelay(500);
/* Initialize RTC */
cyhal_rtc_enable_event(&rtc_obj, CYHAL_RTC_ALARM, RTC_INTERRUPT_PRIORITY, true);
for (;;)
{
rt_kprintf("Go to DeepSleep mode
");
set_rtc_alarm_date_time();
cyhal_system_delay_ms(LONG_GLITCH_DELAY_MS);
// /* Go to deep sleep */
cyhal_syspm_deepsleep();
rt_kprintf("Wakeup from DeepSleep mode
");
hs300x_read_data(&temp_humi_dev, &humi_f, &temp_f);
// /* Set the RTC generate alarm after 10 seconds */
rt_kprintf("Temp:%2d.%df, Humi:%2d%%
",(int)temp_f,(int)(temp_f*10)%10, (int)humi_f);
}
}
实验效果
[I/I2C] I2C bus [i2c1] registered
| /
- RT - Thread Operating System
/ | 4.1.1 build May 28 2023 12:08:51
2006 - 2022 Copyright by RT-Thread team
[D/drv.rtc] rtc init success
[D/drv.rtc] RTC: get rtc_time 946684800
[D/drv.rtc] RTC: get rtc_time 946684800
[D/drv.rtc] RTC: get rtc_time 946684800
[I/sensor] rt_sensor[temp_hs300x] init success
[I/sensor] rt_sensor[humi_hs300x] init success
msh >Go to DeepSleep mode
Wakeup from DeepSleep mode
Temp:29.6f, Humi:77%
Go to DeepSleep mode
用电流表测试深度睡眠相比休眠模式少15MA左右,因为板载的DAP等其他元件在用电,所以还不能测试出来工作电路的电流情况。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
英飞凌
+关注
关注
66文章
2148浏览量
138380 -
传感器
+关注
关注
2548文章
50642浏览量
751718 -
数据采集
+关注
关注
38文章
5898浏览量
113503 -
低功耗
+关注
关注
10文章
2362浏览量
103581 -
电流表
+关注
关注
2文章
229浏览量
26183
发布评论请先 登录
相关推荐
Si7001温湿度传感器在家庭等数据采集系统的应用
越来越大的市场潜力。 本文中,通过Silicon Labs的Si7001温湿度传感器,C8051F985低功耗MCU,CP2403 LCD驱动,和LCD显示器构建一个用于家庭等温度、湿度数据采集
发表于 08-22 08:52
《温湿度检测系统》+折线图显示DHT11温湿度数据
因为手上有一块DHT11温湿度传感器一直没有使用过,今天就做了这个简易的温湿度检测系统。具体实现,不过是将采集的温湿度数据绘制成折线图而已。一、模块简介DHT11是一个集温度、
发表于 06-28 22:25
基于Si7001温湿度传感器的家庭等数据采集系统设计
前言随着生活水平的提高,家具智能化的需求逐步显现,温度、湿度等数据采集的应用也开始显现出越来越大的市场潜力。本文中,通过Silicon Labs的Si7001温湿度传感器,C8051F985低
发表于 07-08 08:31
基于STM32的温湿度采集系统设计
①利用stm32对DHT11模块进行数据采集②将采集到的温湿度数据上云(本次实验并未成功上云)二、实验环境硬件:STM32F407ZGT6、DHT11温湿度传感器、杜邦线等软件:Kei
发表于 08-10 08:17
Si7001温湿度传感器在家庭等数据采集系统的应用
本文中,通过Silicon Labs的Si7001温湿度传感器,C8051F985低功耗MCU,CP2403 LCD驱动,和LCD显示器构建一个用于家庭等温度、湿度数据采集的系统.
发表于 08-18 09:50
•1134次阅读
基于STM32的低功耗温湿度采集器的设计与实现
本文主要介绍了一种基于STM32F103RET6的低功耗温湿度采集器的设计与实现,系统主要有供电模块,USB全速通信模块,STM32芯片,SD卡存储模块,温湿度传感器,串口通信模块,J
发表于 12-23 14:28
•1.6w次阅读
基于单片机的低功耗温湿度数据采集器的研制
在采用中央空调系统的建筑物中’为评价其系统质量’需要对空调房间空气的温(湿度进行长时间的监测)为此’研制开发了以MSP430单片机为核心的低功耗温(湿度数据采集器)介绍了该数据采集器的
发表于 06-24 10:41
•16次下载
蓝牙温湿度数据记录仪
Apresys蓝牙温湿度数据记录仪采用最先进的低功耗蓝牙4.0技术,结合高性能集成电路,实现温湿度记录仪与移动蓝牙设备之间的无线通信。小巧便携的蓝牙温湿度记录仪可实现长达30米的有效无
发表于 03-16 14:59
•0次下载
温湿度数据采集远程监控系统解决方案
随着科技的不断发展,人们对于生活品质的要求也在不断提高。在日常生活和生产活动中,温湿度的控制与监测变得越来越重要,例如在家庭、办公室、实验室、仓库等场所。对此,数之能提供面向工业场景的温湿度数据采集
评论