基于ESP32做低功耗墨水屏时钟
创始人
2025-06-01 12:42:55

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

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

电子墨水屏

在这里插入图片描述

概述

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

ESP32

在这里插入图片描述
实验中选用ESP32可省掉项目中需要的时间来源并且准确可靠,与可控制低功耗。

实验

低功耗电子时钟功能描述

在这里插入图片描述
实验中ESP32休眠后,唤醒型号的来源是ESP32本身自带的触摸功能引脚TOUCH3,即IO15。

接线

ESP32墨水屏
3V3VCC
GNDGND
IO17DC
IO23SDI
IO18CS
IO5CLK
IO22BUSY
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引脚 ,刷新打印日期、星期、时间后,进入睡眠,不刷新时基本不耗电,实现超低功耗的时钟。下面是实际演示。

相关内容

热门资讯

分享实测“新甘孜斗牛有没有透视... 您好:新甘孜斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【4194432】,很多玩家在新甘孜斗...
最新消息“八闽掌上麻将有开挂辅... 您好:八闽掌上麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【6670747】很多玩家在这款...
揭秘科普“情怀麻将挂开挂下载”... 您好:情怀麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【99063053】很多玩家在这款游...
最新消息“开心麻将有透视辅助软... 您好:开心麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【3636476】很多玩家在这款游戏...
今日重大通报“凡乐湖北麻将到底... 您好:凡乐湖北麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【69174242】,很多玩家在凡乐...