站内搜索
发作品签到
低功耗墨水屏桌面摆件
专业版

低功耗墨水屏桌面摆件

简介

简约设计,低功耗墨水屏摆件,显示图片、温湿度、大气压,直连蓝牙与小程序进行交互,待机3月以上

简介:简约设计,低功耗墨水屏摆件,显示图片、温湿度、大气压,直连蓝牙与小程序进行交互,待机3月以上
复刻成本:25

开源协议

CC BY-NC 3.0

(未经作者授权,禁止转载)
创建时间:2024-07-24 17:16:31更新时间:2026-04-09 13:53:50

描述

项目简介

2024年末不知道缘起什么,想做一个与小米蓝牙温湿度计功能类似的项目,但支持充电电池

想法主要基于b站的一个今天是星期五吗的项目和立创甘草酸不酸做的墨水屏,加上自己想学蓝牙协议栈,选型WCH582F为主控,外围使用BMP280、AHT20、TP4066实现参数采集、电池充电功能

实测满电时可以使用至少3个月

代码:https://gitee.com/F_DT/bluetooth-ink-screen-ch582
立创工程:https://oshwhub.com/mk_wanghui/ch592f

更新日志

2025-12-3

  1. 更新原理图
  2. 添加项目元器件文档

2026-3-20

  1. 修复bug--某些情况写入图片会导致刷新异常
  2. 小程序优化界面,添加ota功能,能搜索到当前设备版本号

2026-3-31

  1. 原理图添加版本V3.4--更改为tp4057作为充电ic
  2. 小程序优化界面,添加提示,提示当前值调整产生的效果
  3. 修复设备bug,修复某些情况debug会导致溢出

项目功能

1.1 墨水屏显示

使用一块1.54寸墨水屏,黑白双色,分辨率200*200,实现局刷全刷

墨水屏丝印EINK-E0154A07

左上角向下依次为电量、蓝牙状态、低功耗状态

数据界面
1.jpg

图片界面
2.jpg

小程序发送图片
wxxcximg.jpg

1.2 环境参数测量

使用BMP280采集气压,AHT20采集温度、湿度

没有设计库仑计,所以电量参数为简单的采集电池电压值换算,仅供参考

1.3 离线记录

本地运行RTC时钟,可以通过多次校准时间,自动修正误差

每间隔一定时间,使用16字节存储一条记录到flash,包含时间、温度、湿度、气压、电量

1.4 低功耗

使用沁恒WCH582F的HAL_SLEEP低功耗模式,实测休眠状态下整板电流约为22ua@3.7v,ldo耗电4ua、墨水屏耗电10ua,剩余8ua为mcu和TP4057以及外部器件,tp4057手册1ua,ch582f手册2.4ua

唤醒状态平均工作电流在3.3ma左右
唤醒状态刷新间隔5s.png

450mAh/3.3ma/24 = 5.6天
如果一直连着蓝牙耗电更大,因为刷新频率自动来到1~2s

主界面休眠平均工作电流247ua(休眠刷新间隔20s,休眠广播间隔2s)
休眠广播2s,休眠刷新间隔20s,主界面.png

450mAh/0.247ma/24 = 75天 = 2.5个月

图片界面休眠平均工作电流160ua(休眠刷新间隔20s,休眠广播间隔2s)
休眠广播2s,休眠刷新间隔20s,图片界面.png

450mAh/0.16ma/24 = 117天 = 3.9个月

通过TP4057实现电池充电,选用450mah电池,出于电池保护角度考虑,使用约C/3的充电速率充电,峰值电流约为196ma

唤醒待机一段时间后自动进入低功耗模式,可以通过插入usb充电唤醒,也可通过按钮唤醒

1.5 小程序/OTA

!!!仅支持android,ios不支持

  1. 校时
    连接上小程序后,自动发送校时

  2. 实时参数
    小程序每秒都会读取一次环境参数

  3. 参数设置
    支持设置各种条件下的屏幕刷新频率,数据记录存储频率,低功耗状态下广播时间
    可以设定记录存储周期
    低功耗状态屏幕刷新周期
    唤醒状态屏幕刷新周期

  4. 图片上传
    小程序可以读取相册图片,进行图像抖动或纯二值化处理,并发送到设备,设备支持存储最多4张图像

  5. 记录查看
    小程序支持读取本地记录,查看历史变化趋势

  6. OTA升级
    可以使用本项目小程序升级,不支持升级BLE库

    1. 小程序需要先进入ota模式,才能升级
    2. 确保升级日志处有相关说明已连接并且能读到芯片类型为ch583

硬件部分

主要是需要对低功耗进行设计优化,使用mos开关电池采样通道,可以减少分压电阻消耗,由于充电时间占比较少,没做供电切换电路

使用低功耗的LDO稳压到3.3v,XC6026后续可用TPS70933DBVR,带使能,压差0.1v到0.2v。沁恒mcu是支持低电压供电的,手册写最低2v左右,所以锂电池电压最低可以使用到3v甚至更低,但是mcu供电最高只到3.6v,所以无法直接接上mcu。如果有一个线性降低电压的低功耗方案可以使用mcu内部通道检测电量,并且省去这个ldo

尝试过使用mos开关传感器和屏幕电源,效果不是很理想,需要在读取传感器数据时,先打开mos等待一段时间,再读取,相比于我目前使用的刷新频率(30s)我认为这个减小的功耗没有mcu每次少运行30ms的时间减小的功耗来的小。屏幕也是同理,每次都需要重新初始化,意味着需要全刷,否则无法局刷

板载天线只是使用了官方的封装,没有进行阻抗匹配,但是信号还可以,空旷15m左右能保持连接

为了便于焊接,阻容类器件都使用0603,再小就不好焊了

板厚打1.6,因为板薄的话c口可能会干涉到电池的空间,而且天线部分的封装是官方1.6板厚的。注意这里需要和你的沉板TYPE-C型号对应上,做沉金板会比较漂亮

背板图片元素可以自行修改,金色长短部分为摩斯电码

电池 https://e.tb.cn/h.SAhsdtsAiYxTQqw?tk=PXSmfKQx5VK 403035规格

螺丝、螺母 https://e.tb.cn/h.SzKDyOfoApajIYt?tk=Q77ufK9cRCr 螺丝 m1.6 * 10

墨水屏插接器可以用立创里的 FPC-05FB-24PH20 类似的都行,大的小的都可以,不确定可以拿封装去pcb里比

墨水屏找小黄鱼 https://m.tb.cn/h.SAS4O1h?tk=WReNfK9hzri 确定一下丝印是不是hink-E0154A07

其余元器件可以通过原理图直接导出,也可以通过附件里的BOM.xlsx查看。

!!!注意背板上的器件是不需要焊接的

软件

主要使用了BLElib的库,实现了BLE协议栈并且使用其TMOS系统开发主要功能

添加了CDC功能,主要用于前期调试,使用了esayflash、multi_button库实现系统参数保存和按键功能

墨水屏驱动来自佳显,我自己改了一些,iic驱动为软件,后期可以优化

  1. 按键逻辑
    左边按键,usbisp时按下;长按进入小程序二维码界面,图片界面短按切换图片

    右边按键,休眠时长按唤醒;长按切换图片界面和主界面

  2. 图片保存flash机制
    小程序上传图片仅支持184*184,占用4232字节,4k大小数据存储在codeflash中,剩余数据与图片背景色、id、flash地址等信息存在ef库里

  3. 记录保存flash机制
    codeflash是4K擦除,所以以4K为一页,每条记录占用16字节,每页存储256条记录,这里的机制就是按id存储,跨页擦除;而小程序擦除记录时,只是把起始页位置移到当前使用页的下一页,并将记录数置零,避免总是擦同一页;当前分配的记录区为27个,共6912条;当发生溢出时,只是起始页id+1,记录id减小256个

  4. 调试日志
    可通过usb cdc、预留串口或者蓝牙通知特征输出

  5. 关于电量校准
    首次烧录时电压采集转换使用默认电阻配比直接计算,可能存在误差
    在确保本机无校准信息(首次工作,电池还未充满电,或者通过小程序清除校准信息),并且电池电量在80%以下时。将开关置于靠下位置关机,插上usb进行充电,等到充满即完成校准,原理是通过确定的满电电压进行单点校准,准确度会比直接计算好一些

  6. 别名
    在 输入自定义指令中输入 N:名字 ,即可设置设备名字,这个名字只是在小程序中提醒区分用,不影响广播参数

组装

  1. 先将屏幕插进插接件,后烧录看看屏幕是否能正常刷新
  2. 焊接电池,确定滑动开关置于靠上位置,能够正常供电并刷新
  3. 没问题以后检查按键、传感器参数、电池电压读取是否正常
  4. 连接蓝牙查看是否能正常授时、发送图片
  5. 将四颗10mm长的螺丝插入四个孔内,把主板屏幕面紧贴在桌面,
    再把电池上部贴上那种双面无痕胶,或者双面胶固定,贴在主板上,
    这里可能会有干涉,有的电池比较大,可以尝试整型一下,或者买小一号。
    扣上背板,拧上螺母
    把屏幕用双面无痕胶贴在正面,这里用无痕胶是因为它有一定的厚度,螺丝本身有一定厚度,太薄屏幕沾不上
    4.jpg

烧录

1. 准备

  1. 下载WCHISPStudio,在右侧选中MCU型号为低功耗蓝牙系列

  2. 选中芯片型号为WCH582其他默认

  3. 下载文件处打开JumpIAP\obj\JumpIAP.hex、obj\DT_APP.hex、IAP\obj\IAP.hex、SRC\LIB\Ch58xBLE_ROMx.hex四个hex文件并勾选

    首次烧录需要全烧,后续烧录只需要烧录JumpIAP、DT_APP,否则会把codeflash内存储的图片或记录擦除

    首次烧录完成后需要重新上下电,并且需要通过小程序将校准信息清除,由于在电池未接入的时候会计入错误的校准信息,否则有概率测量出来的电压信息错误

2. 烧录

  1. 滑动开关置于靠下位置
  2. 按住左边按键,插上USB就可以看到设备已连接
    5.jpg

版本说明

硬件V3.4版本相对于V3.3版本,主要修改了充电ic,修改了天线绘制

已知问题

  1. 有时候会莫名重启,导致显示异常
  2. 处于首页和图片界面的时候,耗电量不同,这是由于局刷时的面积不一样导致的

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
2.mp4
8
2
1.mp4
9
3
BOM_V3.3.xlsx
3
4
BOM_V3.4.xlsx
2
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航