# iCupBox **Repository Path**: sklink/iCupBox ## Basic Information - **Project Name**: iCupBox - **Description**: 这是一款智能杯垫产品,基于GTD时间管理理念设计,目的是提醒上班族们专心工作和及时喝水休息,提高工作效率。 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2026-07-22 - **Last Updated**: 2026-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # iCupBox - csdn博客(tao.jiang): https://blog.csdn.net/weixin_42887343 - csdn博客(dan.yin): https://blog.csdn.net/weixin_38880029 ## 项目介绍 - 这是一款智能杯垫产品,基于GTD时间管理理念设计,目的是提醒人们专心工作和及时喝水休息,提高工作效率。 项目分为客户端APP和杯垫固件系统: - 客户端APP,使用QML开发,集成GTD时间管理方法,与杯垫固件系统通讯,控制杯垫固件系统的显示内容; - 杯垫固件系统,使用的esp8266作为主控,集成WIFI、蓝牙、红外对管、0.96寸oled、dht11温湿度模块、ds1302时钟模块锂电池、锂电池充电模块。 各部分作用: - WIFI,用于PC客户端APP的数据通讯; - _ 蓝牙,用于手机客户端APP的数据通讯;_ - 红外对管,用于杯子就位检测; - oled:用于信息显示及提示喝水休息; - dht11:检测环境温湿度; - ds1302:用于系统时钟管理(保存和输出准确时间) ## 设计原理: 使用番茄工作法,选择一个待完成的任务,将番茄时间设为25分钟,专注工作,中途不允许做任何与该任务无关的事,直到番茄时钟响起, 然后进行短暂休息一下(5分钟就行),然后再开始下一个番茄。每4个番茄时段多休息一会儿。 番茄工作法会极大地提高了工作的效率,还会有意想不到的成就感。 ## 总体功能介绍 - 1、喝水提醒; - 2、日程提醒; - 3、时间显示; - 4、温度监测; - 5、湿度监测; - 6、诗词播报; - 7、天气播报; ## 详细功能说明 - 1、规划当日计划,根据SMART原则,制作月计划、日计划,并同步到杯垫固件系统; - 2、提醒喝水休息,目前时间定为25分钟提醒一次,超过后,每15分钟时提醒一次; - 3、自动图片显示,每次提醒都有对应的系列图片显示; - 4、当处于提醒状态,除了图片显示外,屏幕还会闪烁,类似led闪烁效果用于提醒 - 5、提醒状态一共分为5个等级,分别为15min、25min、55min,后续这些时间可通过上位机设置。 - 6、时间、温湿度显示功能,交叉显示一些基本信息,如当前时间,环境中的温度、湿度。在提示状态下,该节目也会带有闪烁提示效果。 - 7、自动对时,内置时钟模块,虽然设置好后比较准确,但是还是可以通过连接WiFi自动校准时间,该功能后续考虑是否需要。 - 8、诗词显示,在等待喝水的过程中,可以随机显示一些界面或信息,其中诗词就是一个方面。 ## 项目文件说明 ``` iCupBox/ ├── mcuCode/cupHold/ # 下位机 — ESP8266 杯垫固件(Arduino 框架) │ ├── cupHold.ino # 主程序入口 / setup / loop │ ├── status.h # 状态机(杯子检测、计时、状态迁移) │ ├── sreen.h # OLED 屏幕驱动与 UI 渲染 │ ├── setting.h # 参数配置管理(JSON + LittleFS 持久化) │ ├── img.h # 图片/字库位图数据(PROGMEM) │ ├── img/ # 位图源文件(BMP/PNG) │ │ ├── logo.bmp / name.bmp # 品牌 Logo、产品名称 │ │ ├── myLog.bmp / webull.* # 自定义图标素材 │ │ ├── outTime*.bmp # 超时等级图片 │ │ ├── 文字图片/ # 中文字符位图(文字1~13.bmp) │ │ └── ... # 表情/提示图片 │ ├── PCtoLCD2002/ # 位图取模工具(Windows) │ │ ├── PCtoLCD2002.exe # 点阵取模工具 │ │ ├── Gb2312.PTL / ASC.PTL # 中英文点阵字库 │ │ └── readme2002.txt # 工具说明文档 │ ├── img/ # 位图源文件 │ └── README.md # 详细文档(硬件引脚、协议、状态机等) │ ├── settingAppCode/iCupBoxApp/ # 上位机 — Qt 配置工具(C++11 / Qt 5) │ ├── iCupBoxApp.pro # qmake 项目文件 │ ├── main.cpp # 程序入口 │ ├── mainwindow.cpp / .h / .ui # 主窗口(UI + 业务逻辑) │ ├── serial.cpp / .h # 串口通讯模块(单例,QSerialPort) │ ├── protocol.cpp / .h # 通讯协议(ASCII 文本命令构建) │ ├── comdebugwidget.cpp / .h / .ui # 串口调试窗口(Tx/Rx 实时监控) │ ├── imgset.cpp / .h / .ui # 图片设置窗口(预留未实现) │ └── README.md # 详细文档(功能、协议、编译等) │ ├── 3DModel/ # 杯垫外壳 3D 打印文件(STL 格式) │ ├── 杯垫-V1.STL # 杯垫主体 V1 │ ├── 杯垫V1.5.STL # 杯垫主体 V1.5 │ ├── 杯垫V2.1.STL # 杯垫主体 V2.1 │ ├── 杯垫防滑.STL # 防滑垫 │ ├── 后盖.STL / 后盖V2.STL # 后盖板 │ └── ... # 其他结构件 │ ├── doc/ # 项目文档 │ ├── 产品原型 # 产品原型设计 │ └── 产品需求 # 产品需求文档 │ ├── tools/ # 开发工具 │ └── PCtoLCD2002.zip # 点阵取模工具安装包 │ ├── showIMG/ # 产品效果图 / 实物照片 │ ├── README.md # 项目总述(本文件) └── LICENSE # 开源许可证(MIT) ``` ## 硬件电路 - 电路图* ## 开发历程 - tao.jiang:项目截至目前-2022-4-3,陆陆续续搞了一个月,其中最喜欢做的就是硬件设计和焊接了,重回老本行。。。。。。最不喜欢的就是这个小屏幕的UI设计,比pc端软件的ui麻烦太多了,像素少也就算了,还不支持灰度(只有二值化)。 - dan.yin:2022年7月2日正式加入本项目,主要负责本产品规则和上位机实施,作为一开源项目爱好者,将不遗余力的贡献一份力量。 ![输入图片说明](showIMG/readme/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230604125622.jpg) ![输入图片说明](showIMG/readme/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230604125743.jpg) ![输入图片说明](showIMG/readme/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20230604125007.jpg)