基于ESP32做低功耗墨水屏时钟

  • 电子墨水屏
    • 概述
  • ESP32
  • 实验
    • 低功耗电子时钟功能描述
    • 接线
    • 开发
    • 实验结果

电子墨水屏

概述

电子墨水是一种革新信息显示的新方法和技术。和传统纸差异是电子墨水在通电时改变颜色,并且可以显示变化的图象,像计算器或手机那样的显示。电子墨水屏表面附着很多体积很小的“微胶囊”,封装了带有颜色的颗粒,通过改变电荷使不同颜色的颗粒有序排列,从而呈现出字体、画面。电子墨水屏仅在刷新时间内需要电源,显示内容可以在没有任何电源的情况下,在显示器中显示180天以上。显示的内容与写在纸上的内容相同。适用于无法供电、显示内容更改不频繁的场景,比如货架标签、广告牌。
本文将会以用ESP32和电子墨水屏来制作一个低功耗的时钟展开

ESP32


实验中选用ESP32可省掉项目中需要的时间来源并且准确可靠,与可控制低功耗。

实验

低功耗电子时钟功能描述


实验中ESP32休眠后,唤醒型号的来源是ESP32本身自带的触摸功能引脚TOUCH3,即IO15。

接线

ESP32 墨水屏
3V3 VCC
GND GND
IO17 DC
IO23 SDI
IO18 CS
IO5 CLK
IO22 BUSY
IO15(TOUCH3唤醒信号)

可通过更改以下语句里参数更改因引脚定义

QYEG0213RWS800_BWR   display( 16 , 17 , 18 , 22 , 5 , 23 , 19 , 6000000 );//rst,dc,cs,busy,sck,mosi,miso,frequency

开发

ESP32连接wifi用到了Ardino IDE里的WIFI库,通过判断WiFi.status()的返回值来确定是否连上WIFI。

while ( WiFi.status() != WL_CONNECTED ) {delay ( 500 );Serial.print ( "." );}

通过NTPClient库实现网络授时,无需外接时钟模块且更加准确,实验中授时用到的是腾讯的NTP服务器

NTPClient timeClient(ntpUDP, "time1.cloud.tencent.com");

通过编写getT()函数,获取具体的月、日、时、分、秒,然后强制转换成适合墨水屏打印输出的字符串类型

void getT()
{timeClient.update();//获取纪元年
//  unsigned long epochTime = timeClient.getEpochTime();
//  Serial.print("epochTime: ");
//  Serial.println(epochTime);//获取周int weekDay = timeClient.getDay();String WEEK=getWeek(weekDay);Serial.println("");Serial.print("Week Day: ");Serial.println(WEEK);           //获取日期struct tm *ptm = gmtime ((time_t *)&epochTime);int monthDay = ptm->tm_mday;Serial.print("Month day: ");Serial.println(monthDay);String MonthDay=String(monthDay);//获取月份int currentMonth = ptm->tm_mon + 1;Serial.print("Month: ");Serial.println(currentMonth);delay(1000);String MonTh=String(currentMonth);//获取时间Serial.println(timeClient.getFormattedTime());
}

睡眠与唤醒
设置触发阈值为40

#define Threshold 40

当触摸TOUCH3引脚后TOUCH3的读数会小于40,触发中断,唤醒ESP32

  //设置中断TOUCH3为触发源touchAttachInterrupt(T3, callback, Threshold);//设置唤醒源为触摸唤醒esp_sleep_enable_touchpad_wakeup();//睡眠提醒Serial.println("Going to sleep now");//进入深度睡眠esp_deep_sleep_start();

电子墨水屏打印部分代码

  display.clear();    //清除本地像素缓冲区display.setTextAlignment(TEXT_ALIGN_LEFT);    //设置文本左对齐display.setFont(ArialMT_Plain_24);    //字体设置display.drawString(0, 10, "DATE:");display.drawString(0, 35, "TIME:");display.drawString(0, 60, "WEEK:");display.update(BLACK_BUFFER);display.clear();display.setFont(ArialMT_Plain_24);display.drawString(100, 10, MonTh);display.drawString(125, 10, "/");display.drawString(140, 10, MonthDay);display.drawString(100, 35, timeClient.getFormattedTime());display.drawString(100, 60, WEEK);display.update(COLOR_BUFFER);display.display();

实验结果

先上功耗
电子墨水屏刷新时功耗:

休眠后功耗:

进入深度睡眠后,测得电流为0,应该是这个usb测试仪测试精度不够了。

需要查看时间的时候,触摸一下IO15引脚 ,刷新打印日期、星期、时间后,进入睡眠,不刷新时基本不耗电,实现超低功耗的时钟。下面是实际演示。

基于ESP32做低功耗墨水屏时钟相关推荐

  1. 【毕业设计】基于ESP32的在线墨水屏桌面摆件 -物联网 单片机 嵌入式

    0 前言

  2. 2‘13寸墨水屏时钟diy教程

    最近在闲鱼发售了立创eda的开源项目,有很多人想要买,但也不乏新手为此写下这篇教程! 先说一下难度:硬件上使用了一个0•5mm的排线座,因此需要一定的焊接基础.当然这个排线座也可以让代焊之后发货!!! ...

  3. 【N32G457】基于RT-Thread和N32G457的墨水屏日历

    本文是RT-Thread用户@xusiwei1236 原创发布,是用于参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛,原文:https://club.rt-thre ...

  4. 【项目分享】基于AB32和RT-Thread的墨水屏智能日历

    基于AB32VG1的墨水屏智能日历 项目背景 本项目是[RT-Thread x RISC-V 应用创新大赛]参赛项目之一,大赛活动页面: RT-Thread X RISC-V 创新应用设计大赛 (el ...

  5. 启明云端分享|基于ESP32的1.54智能屏应用于无叶风扇、微波炉、空净器等,支持WIFI和蓝牙

    提示:近日由启明云端提供的基于ESP32的1.54智能屏(1.54寸彩屏,分辨率240*240)已被批量应用于无叶风扇.空气净化器.咖啡机.油烟机.按摩椅等家电.家居产品上. 基于ESP32的1.54 ...

  6. 【嵌入式项目开源】基于ESP32的墨水屏桌面小屏幕

    首先简要介绍一下这个项目: 这个项目的开源主要包括硬件,固件和软件两部分,外壳后面如果做了也会开源出来.该项目主要是参考了以下教学视频. 链接:桌面小屏幕实战教学 其中硬件部分改动不大,主要是把USB ...

  7. 基于Lua框架下的合宙ESP32C3+1.5‘’Eink墨水屏天气时钟+OLED开源项目分享

    基于Lua框架下的合宙ESP32C3+1.5''Eink墨水屏天气时钟+OLED项目分享

  8. 基于Lua框架下的合宙ESP32C3+1.54‘’Eink墨水屏天气时钟项目

    基于Lua框架下的合宙ESP32C3+1.5''Eink墨水屏天气时钟项目 效果展示

  9. 基于涂鸦智能开发的墨水屏座位管理器——2.嵌入式功能实现篇

    随着互联网连接技术的日益普及,以及大众环保意识增强,电子纸显示市场不断发展,墨水屏的应用场景也越来越多.墨水屏座位管理器方案具体功耗低,多节点管控,信息实时同步等特点,可应用于智慧办公,智慧零售,智慧 ...

最新文章

  1. java 线程交互_java 线程交互之wait/notify
  2. dns被自动修改_怎么加速iTunes下载速度 设置DNS方法【介绍】
  3. TK:绘制BoundaryEdges边界边用法实战
  4. java sheet 打印区域设定,如何使用Java设置电子表格的打印区域。(How to set the print area of a spreadsheet using Java.)...
  5. 国科大prml--SVM
  6. 1亿人点赞的晚会,如何做技术沉淀?
  7. PHP 处理execl的数据
  8. IDEA: 遇到问题Error during artifact deployment. See server log for details解决方法
  9. Web Worker——js的多线程,实现统计博客园总阅读量
  10. c语言兔子序列答案,C语言经典题目——兔子生兔子(示例代码)
  11. 设计模式 (五) 原型模式
  12. 关于CC2541蓝牙开发板的学习笔记-3
  13. 《畅玩NAS》第3章 ESXI安装OpenMediaVault
  14. 【FineReport】常用快捷键
  15. 计算机接口接触不良,如何处理电脑耳机插口接触不良
  16. 大一C语言 课设(餐厅管理系统)
  17. APP开发为什么选择云服务器?
  18. [vuex] expects string as the type, but found object.
  19. Python3处理HTTP请求
  20. 如何让大中药丸子便于下咽, 2021年3月11日 更新 同样适用于中药粉

热门文章

  1. 多锐运动下载 V1.2.4 官方版
  2. 在Windows7 系统上部署DNS服务器
  3. qcow2文件的snapshot管理
  4. un-app部署h5项目到普通云服务器--域名解析--OOS对象存储
  5. 小提琴统计图_快速绘制分组小提琴图工具
  6. 微信小程序 - 实现手机号登录--授权并获取手机号保存至本地
  7. [UE4]射击产生弹孔:Spawn Decal At Location、Spawn Decal Attached
  8. 软件工程毕业,在北京工作两年后再来理解《人月神话》
  9. VC MFC按钮(CButton)控件
  10. 蓝桥 卷“兔”来袭编程竞赛专场-09凯撒加密 题解