站内搜索
发作品签到
HinarUI / OLED UI DESIGN
专业版

HinarUI / OLED UI DESIGN

简介

基于嵌入式平台的原创 OLED UI 设计,包含软硬件与外壳方案,支持不同MCU的板级切换适配

简介:基于嵌入式平台的原创 OLED UI 设计,包含软硬件与外壳方案,支持不同MCU的板级切换适配
智能硬件挑战赛
复刻成本:50

开源协议

GPL 3.0

创建时间:2025-12-02 12:35:10更新时间:2025-12-07 20:27:10

描述

HinarUI v4

Original OLED UI Design based on Embedded Platform, with complete software, hardware and shell design.
基于嵌入式平台的原创 OLED UI 设计,包含软硬件与外壳方案

Github: https://github.com/890mn/HinarUI
Bilibili: https://www.bilibili.com/video/BV1kB2eB7Eua/

软件部分 / Project Structure

HinarUI
├─ example/              # PlatformIO demo (esp-wrover-kit by default)
│  ├─ include/
│  ├─ lib/HinarUI/       # Linked library for the demo
│  └─ src/
├─ include/              
│  ├─ boards/            # Board-level pin/I2C config
│  │  └─ esp_wrover_kit.h
│  ├─ fonts/             # Built-in fonts + optional.md for custom fonts
│  ├─ HinarUI/           # Core headers
│  └─ modules/
└─ src/                  # Library sources (core + modules)
   ├─ boards/
   ├─ core/
   └─ modules/

架构与性能

  • 引入帧缓管理:新增 FrameBufferManager,在 ESP32 上使用队列与双缓冲(PSRAM 可选)分离渲染与推屏,支持目标帧率限速
  • 显示管线优化:HinarUIDisplay 支持 PSRAM 双缓冲、区域刷新,I2C 速率提升,推屏效率提升

低功耗与静态页

  • OFF 键行为重定义:仅在 Module 状态进入静态睡眠页(显示电量/充电状态/SHT30 温湿度、波浪电量条)
  • 睡眠页定期刷新,充电检测 ADC 阈值,CHARGING 状态圆点实时反映

性能监控与帧率

  • perf 模块分离为后台任务,FPS/覆盖率显示在开发者模式顶栏
  • 计时基于显示推屏帧,避免主循环阻塞影响统计

配置与模块

  • Menu 配置/动画:flow speed、stepCount 解耦
  • 模块调优:新增充电检测阈值、SHT30 滤波接口 Sht30Status,电池接口 BatteryStatus
  • 新增板级引脚定义 CHARGE_SENSE_PIN,用于 USB 供电检测

UI 与视觉

  • 静态睡眠页电量条改为单段高亮波浪效果,状态/温湿度行布局优化
  • 顶栏/页面文案调整

Usage

HinarUI_Cover.jpg

About how to adapt this project on your board, here gives some tips:

  • Quick start as a library:

    #include 
    #include "HinarUI_Core.h"
    
    void setup() {
        menu.create();
    }
    
    void loop() {
        menu.loop();
    }
    
  • Board / pin adaptation:

    • Edit include/boards/esp_wrover_kit.h for pins and I2C addresses:
    static constexpr int I2C_SDA = 21;
    static constexpr int I2C_SCL = 22;
    static constexpr uint8_t OLED_ADDR = 0x3C;
    static constexpr int KEY_ENTER = 32;
    static constexpr int KEY_BACK  = 35;
    // ... KEY_OFF/KEY_CYCLE/VBAT/CHARGE_SENSE etc.
    // SHT30_ADDR, OLED_ADDR 可按需要改为 0x3D/0x45
    
    • 其他传感器/模块可参考现有模块的实现
    • 若作为库引入其他工程,只需 #include "HinarUI_Core.h" 并确保上述 pins 地址匹配

硬件部分 / 说明

PCB使用4层板+2层板彩色丝印完成设计,分为主控板以及OLED显示板,连接通过2.54mm的4P排针链接
硬件复刻除嘉立创器件标准化部分还可自行购买软包锂电池完成总体设计,支持尺寸小于等于403040

外壳部分 / 说明

外壳使用 Fusion360 设计,此处提供拓竹BambuLab链接以及源文件:
https://makerworld.com.cn/zh/models/1583584-hinarui-shell-v1
https://pan.quark.cn/s/91a389f79341

成品外壳打印采用嘉立创光固化8001半透明材料,非常推荐!

设计图

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

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
HinarUI.stl
17

附件

序号文件名称下载次数
1
HinarUI-main-#15.zip
11
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

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

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

底部导航