基于ESP32做低功耗墨水屏时钟
基于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做低功耗墨水屏时钟相关推荐
- 【毕业设计】基于ESP32的在线墨水屏桌面摆件 -物联网 单片机 嵌入式
0 前言
- 2‘13寸墨水屏时钟diy教程
最近在闲鱼发售了立创eda的开源项目,有很多人想要买,但也不乏新手为此写下这篇教程! 先说一下难度:硬件上使用了一个0•5mm的排线座,因此需要一定的焊接基础.当然这个排线座也可以让代焊之后发货!!! ...
- 【N32G457】基于RT-Thread和N32G457的墨水屏日历
本文是RT-Thread用户@xusiwei1236 原创发布,是用于参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛,原文:https://club.rt-thre ...
- 【项目分享】基于AB32和RT-Thread的墨水屏智能日历
基于AB32VG1的墨水屏智能日历 项目背景 本项目是[RT-Thread x RISC-V 应用创新大赛]参赛项目之一,大赛活动页面: RT-Thread X RISC-V 创新应用设计大赛 (el ...
- 启明云端分享|基于ESP32的1.54智能屏应用于无叶风扇、微波炉、空净器等,支持WIFI和蓝牙
提示:近日由启明云端提供的基于ESP32的1.54智能屏(1.54寸彩屏,分辨率240*240)已被批量应用于无叶风扇.空气净化器.咖啡机.油烟机.按摩椅等家电.家居产品上. 基于ESP32的1.54 ...
- 【嵌入式项目开源】基于ESP32的墨水屏桌面小屏幕
首先简要介绍一下这个项目: 这个项目的开源主要包括硬件,固件和软件两部分,外壳后面如果做了也会开源出来.该项目主要是参考了以下教学视频. 链接:桌面小屏幕实战教学 其中硬件部分改动不大,主要是把USB ...
- 基于Lua框架下的合宙ESP32C3+1.5‘’Eink墨水屏天气时钟+OLED开源项目分享
基于Lua框架下的合宙ESP32C3+1.5''Eink墨水屏天气时钟+OLED项目分享
- 基于Lua框架下的合宙ESP32C3+1.54‘’Eink墨水屏天气时钟项目
基于Lua框架下的合宙ESP32C3+1.5''Eink墨水屏天气时钟项目 效果展示
- 基于涂鸦智能开发的墨水屏座位管理器——2.嵌入式功能实现篇
随着互联网连接技术的日益普及,以及大众环保意识增强,电子纸显示市场不断发展,墨水屏的应用场景也越来越多.墨水屏座位管理器方案具体功耗低,多节点管控,信息实时同步等特点,可应用于智慧办公,智慧零售,智慧 ...
最新文章
- java 线程交互_java 线程交互之wait/notify
- dns被自动修改_怎么加速iTunes下载速度 设置DNS方法【介绍】
- TK:绘制BoundaryEdges边界边用法实战
- java sheet 打印区域设定,如何使用Java设置电子表格的打印区域。(How to set the print area of a spreadsheet using Java.)...
- 国科大prml--SVM
- 1亿人点赞的晚会,如何做技术沉淀?
- PHP 处理execl的数据
- IDEA: 遇到问题Error during artifact deployment. See server log for details解决方法
- Web Worker——js的多线程,实现统计博客园总阅读量
- c语言兔子序列答案,C语言经典题目——兔子生兔子(示例代码)
- 设计模式 (五) 原型模式
- 关于CC2541蓝牙开发板的学习笔记-3
- 《畅玩NAS》第3章 ESXI安装OpenMediaVault
- 【FineReport】常用快捷键
- 计算机接口接触不良,如何处理电脑耳机插口接触不良
- 大一C语言 课设(餐厅管理系统)
- APP开发为什么选择云服务器?
- [vuex] expects string as the type, but found object.
- Python3处理HTTP请求
- 如何让大中药丸子便于下咽, 2021年3月11日 更新 同样适用于中药粉
热门文章
- 多锐运动下载 V1.2.4 官方版
- 在Windows7 系统上部署DNS服务器
- qcow2文件的snapshot管理
- un-app部署h5项目到普通云服务器--域名解析--OOS对象存储
- 小提琴统计图_快速绘制分组小提琴图工具
- 微信小程序 - 实现手机号登录--授权并获取手机号保存至本地
- [UE4]射击产生弹孔:Spawn Decal At Location、Spawn Decal Attached
- 软件工程毕业,在北京工作两年后再来理解《人月神话》
- VC MFC按钮(CButton)控件
- 蓝桥 卷“兔”来袭编程竞赛专场-09凯撒加密 题解