0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英飞凌PSoC62 实现超低功耗温湿度计

华仔的编程随笔 2023-06-03 10:13 次阅读

英飞凌PSoC62是一款Cortex-M0+与Cortex-M4的双内核MCU,其有着非常优秀的超低功耗性能。

温度计的器材

  1. 英飞凌PSoC62开发板 这是一款英飞凌与RT-Thread联合制作的一款开发板。
  2. 瑞萨的hs3003温湿度传感器
  3. 电子墨水屏

选型原因

以上三款都具休有超过功耗性能

程序代码

  1. 本次的代码是基于RT-Thread Studio创建的。
  2. 电子墨水屏是移植微雪的标准例程。这里不过多介绍。
  3. hs3003是利用rtt软件包的模块创建。
  4. 低耗实现的代码,MCU利用Cortex-M0+的标准进入深度睡眠模式。然后用RTC的ALARM中断来唤醒。设置的唤醒程序如下:
void set_rtc_alarm_date_time(void)
{
    cy_rslt_t result;

    /* Print the RTC alarm time by UART */
    //LOG_D("RTC alarm will be generated after 10 seconds
");
    /* Set the RTC alarm for the specified number of seconds in the future by editing the macro(USE_SECONDS_FOR_ALARM) */
    result = cyhal_rtc_set_alarm_by_seconds(&rtc_obj, USE_SECONDS_FOR_ALARM);
    if (result != CY_RSLT_SUCCESS)
    {
        rt_kprintf("RTC alarm err 
");
    }
}

5、主程序代码:

int main(void)
{
    cy_rslt_t result;
    float temp, humi;
    uint8_t show_str[20] = {0};
    EPD_GPIO_Init();       //EPD GPIO  initialization
    //Cy_SysDisableCM4();
    __enable_irq();
    rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
  //  rt_thread_mdelay(500);
    Paint_NewImage(BlackImage, 128, 296, 270, WHITE); //Set screen size and display orientation
    Paint_SelectImage(BlackImage);//Set the virtual canvas data storage location

    Paint_NewImage(BlackImage, EPD_WIDTH, EPD_HEIGHT, 270, WHITE); //Set screen size and display orientation
    Paint_SelectImage(BlackImage);//Set the virtual canvas data storage location
    EPD_DeepSleep();


    /* Initialize RTC */

    cyhal_rtc_enable_event(&rtc_obj, CYHAL_RTC_ALARM, RTC_INTERRUPT_PRIORITY, true);
    set_rtc_alarm_date_time();
    for (;;)
    {


      //  cyhal_system_delay_ms(LONG_GLITCH_DELAY_MS);
        /* Set MYPIN_0_NUM to Analog HI-Z for low power using HAL APIs. */


//        /* Go to deep sleep */

        cyhal_syspm_deepsleep();

        set_rtc_alarm_date_time();
 //       rt_kprintf("Wack from sleep!
");
        hs300x_read_data(&temp_humi_dev, &humi, &temp);
        EPD_HW_Init(); //Electronic paper initialization
        EPD_HW_Init_GUI(); //EPD init GUI
        Paint_Clear(WHITE);
        sprintf(show_str,"温度%02d.%02d℃",(int)temp, (int)(temp*100)%100);
        Paint_DrawString_CN(40,0,show_str, &Font24CN, WHITE, BLACK);
        sprintf(show_str,"湿度%02d.%02d%%",(int)humi, (int)(humi*100)%100);
        Paint_DrawString_CN(40,40,show_str, &Font24CN, WHITE, BLACK);
        EPD_Display(BlackImage); //display image
        EPD_DeepSleep();//EPD_DeepSleep,Sleep instruction is necessary, please do not delete!!!



    }
}

实验的效果

显示.jpg

经调试休眠模式下,整体的待机电流低到450uA:

休眠电流.jpg

工作电流为19mA:

工作电流.jpg

总结

目前待机电流基本上达到电池供电的效果,后期再加上NB-IoT的数据传输模式。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英飞凌
    +关注

    关注

    65

    文章

    1903

    浏览量

    136907
  • 温湿度传感器

    关注

    5

    文章

    549

    浏览量

    35239
  • 温湿度计
    +关注

    关注

    1

    文章

    23

    浏览量

    8007
  • RT-Thread
    +关注

    关注

    31

    文章

    1148

    浏览量

    38868
  • NB-IoT
    +关注

    关注

    411

    文章

    1433

    浏览量

    183529
收藏 人收藏

    评论

    相关推荐

    PsoC62最大内存能设到多少,如何设置?

    memory: 5276 msh > 最大内存只能设到 32K,PsoC62 最大内存能设到多少, 如何设置??
    发表于 02-21 08:03

    PSoC62如何获取系统时钟?

    time_get()获取当前时间用来返回当前的内部系统时钟。每个定时节拍使内部系统时钟加1, PSoC62 如何获取系统时钟?
    发表于 02-21 06:38

    基于51单片机和AHT10温湿度传感器的温湿度计源码

    一款基于51单片机和AHT10温湿度传感器的温湿度计源码。
    发表于 10-09 08:39

    高低温试验箱温湿度计的测量原理

    的表示方法有湿度、相对湿度、露点、湿气与干气的比值(重量或体积)等等。 湿度测量方法温湿度计湿度测量从原理上划分有二、三十种之多。但
    的头像 发表于 08-15 18:33 328次阅读

    使用RT-Thread和PSOC6实现一个温湿度报警系统

    设计思路:项目使用RT-Thread系统和PSOC6开发板,实现一个温湿度报警系统。该系统通过wifi连接将数据上传至OneNET云,后经过前端开发,可以使数据清晰的展示。并且在温湿度
    的头像 发表于 07-31 16:01 759次阅读
    使用RT-Thread和<b class='flag-5'>PSOC</b>6<b class='flag-5'>实现</b>一个<b class='flag-5'>温湿度</b>报警系统

    基于PSoC62开发板的智能室内环境监测系统

    基于psoc6的智能室内环境监测系统以PSoC62 with CAPSENSE evaluation kit为控制核心,通过AHT10温湿度传感器检测模块采集室内环境数据,并将数据通过无线网络传送到主控模块
    的头像 发表于 07-31 15:47 782次阅读

    基于PSOC62 CAPSENSE evaluation kit板的环境盒子设计实现

    本项目主要实现了一个基于PSOC62 CAPSENSE evaluation kit开发板的环境盒子,
    的头像 发表于 07-22 14:51 833次阅读
    基于<b class='flag-5'>PSOC62</b> CAPSENSE evaluation kit板的环境盒子设计<b class='flag-5'>实现</b>

    怎么去设计一种基于PSoC62的多传感器连云系统?

    英飞凌&RT-Thread 创客大赛是一个激动人心的比赛,旨在鼓励创客们展示他们的技术才能和创新创意。本文将介绍一款基于英飞凌PSoC62 芯片开发板的多传感器连云网关Demo,并从功能简介、硬件介绍和软件
    发表于 07-19 15:54 309次阅读
    怎么去设计一种基于<b class='flag-5'>PSoC62</b>的多传感器连云系统?

    基于PSOC62 CAPSENSE evaluation kit的远程空调遥控器设计

    该项目基于PSOC62 CAPSENSE evaluation kit和ESP-01s wifi模块的远程空调遥控器。它不仅能够远程控制空调的开关、模式、风速和温度设置,还配备了温湿度传感器,实时测量环境的温度和湿度信息,并通过
    的头像 发表于 07-19 15:08 530次阅读
    基于<b class='flag-5'>PSOC62</b> CAPSENSE evaluation kit的远程空调遥控器设计

    国产超低功耗温湿度传感器芯片替代SHTC3

    英尚微介绍的是一款为消费电子应用领域设计的温湿度传感器芯片。它在封装体积、功耗、供电电压范围和性价比方面完全满足消费电子领域需求。       特点     •超低功耗     •宽工作电压范围
    的头像 发表于 06-30 17:26 547次阅读

    基于CW32L083设计的超低功耗温湿度计

    基于CW32L083设计的超低功耗温湿度计,可以用电池供电,实现数年超长工作时间。
    的头像 发表于 06-25 12:08 2.6w次阅读
    基于CW32L083设计的<b class='flag-5'>超低功耗</b><b class='flag-5'>温湿度计</b>

    英飞凌PSoc62超低功耗温湿#超低功耗 #温湿度计

    英飞凌温湿度计
    华仔stm32
    发布于 :2023年06月03日 21:42:59

    英飞凌PSoC62 实现超低功耗温湿度计

    英飞凌PSoC62是一款Cortex-M0+与Cortex-M4的双内核MCU,其有着非常优秀的超低功耗性能。 温度的器材 英飞凌
    发表于 06-03 10:14

    英飞凌PSC62低功耗温湿度数据采集

    驱动hs3003温湿度传感器,采集完数据后进入深度睡眠模式,以达到节能的目的。
    的头像 发表于 05-30 09:05 41.5w次阅读
    <b class='flag-5'>英飞凌</b>PSC<b class='flag-5'>62</b><b class='flag-5'>低功耗</b><b class='flag-5'>温湿度</b>数据采集

    CW32饭盒派开发板 日历温湿度计

    CW32创建日历+温湿度计
    的头像 发表于 05-27 14:07 4184次阅读
    CW32饭盒派开发板 日历<b class='flag-5'>温湿度计</b>