找人注册公司多少钱,无锡网站制作优化,建设网站企业哪家好,佛山顺德网站建设公司哪家好基于ESP32做低功耗墨水屏时钟电子墨水屏概述ESP32实验低功耗电子时钟功能描述接线开发实验结果电子墨水屏 概述
电子墨水是一种革新信息显示的新方法和技术。和传统纸差异是电子墨水在通电时改变颜色#xff0c;并且可以显示变化的图象#xff0c;像计算器或手机那样的显示。…
基于ESP32做低功耗墨水屏时钟电子墨水屏概述ESP32实验低功耗电子时钟功能描述接线开发实验结果电子墨水屏 概述
电子墨水是一种革新信息显示的新方法和技术。和传统纸差异是电子墨水在通电时改变颜色并且可以显示变化的图象像计算器或手机那样的显示。电子墨水屏表面附着很多体积很小的“微胶囊”封装了带有颜色的颗粒通过改变电荷使不同颜色的颗粒有序排列从而呈现出字体、画面。电子墨水屏仅在刷新时间内需要电源显示内容可以在没有任何电源的情况下在显示器中显示180天以上。显示的内容与写在纸上的内容相同。适用于无法供电、显示内容更改不频繁的场景比如货架标签、广告牌。 本文将会以用ESP32和电子墨水屏来制作一个低功耗的时钟展开
ESP32 实验中选用ESP32可省掉项目中需要的时间来源并且准确可靠与可控制低功耗。
实验
低功耗电子时钟功能描述 实验中ESP32休眠后唤醒型号的来源是ESP32本身自带的触摸功能引脚TOUCH3即IO15。
接线
ESP32墨水屏3V3VCCGNDGNDIO17DCIO23SDIIO18CSIO5CLKIO22BUSYIO15(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 WEEKgetWeek(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 MonthDayString(monthDay);//获取月份int currentMonth ptm-tm_mon 1;Serial.print(Month: );Serial.println(currentMonth);delay(1000);String MonThString(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引脚 刷新打印日期、星期、时间后进入睡眠不刷新时基本不耗电实现超低功耗的时钟。下面是实际演示。