
PulseTabLite:ESP32多NAS物联网信息监测设备
简介
借助ESP32强大的网络能力开发出一款交互式物联网设备,解决了NAS设备网络连通性和硬件健康监测问题,实现了NAS设备安全管理;外设传感器支持环境温湿度调整,使NAS设备持续运行在健康环境、健康状态中
简介:借助ESP32强大的网络能力开发出一款交互式物联网设备,解决了NAS设备网络连通性和硬件健康监测问题,实现了NAS设备安全管理;外设传感器支持环境温湿度调整,使NAS设备持续运行在健康环境、健康状态中开源协议
:GPL 3.0
描述

本项目参加了由乐鑫科技和立创开源广场举办的基于ESP32物联网征集令活动
作品获得一等奖
项目介绍
NAS是一种专用于数据存储的服务器。它通过网络连接,以数据为中心将存储设备与服务器分离,从而实现数据集中管理。NAS设备需要稳定的网络连通性、持续的硬件健康监测,以实现重要数据的备份与安全管理。本项目借助ESP32强大的网络能力开发出一款交互式物联网设备,实现了NAS网络状态监控、设备硬件及系统健康监测;同时配有必要的传感器外设以支持进行环境温湿度调整,使NAS设备持续运行在健康环境、健康状态中。
2024年10月26日更新说明:
- 【新手向】立创ESP32开发板PulseTabLite电脑监视屏 项目已经完成并开源,待审核通过后有兴趣的水友可以自行访问,硬件设计和源代码均开源。

(兄弟俩合影)
前言
完成本项目,你将获得:
- 熟练使用乐鑫ESP32进行嵌入式开发:
- 熟练掌握在Ardiuno环境下开发ESP32产品的能力;
- 熟练掌握按钮、触摸、温湿度传感器、光敏传感器的驱动编写;
- 学会使用esp32的GPIO/PWM/ADC等引脚功能;
- 了解ESP32-S3的GPIO引脚限制情况,学会使用其进行电路设计。
- 学会嵌入式系统使用及GUI前端开发:
- 学会使用TFT_espi以及LVGL驱动LCD屏幕;
- 熟练使用Figma配合LVGL进行GUI设计;
- 学会进行LVGL代码编辑以实现功能交互;
- 能够上手freeRTOS系统的基本使用方法。
- 初步掌握网络通讯技术并实现应用:
- 能够使用HTTP/UDP等通讯协议,实现联网获取API等各类功能;
- 了解到SNMP进行设备通讯的基本原理。
- 学会项目开发基本流程:
- 经历一个项目从想法到产品实现的全过程;
- 形成品牌意识,了解项目命名及品牌包装的内涵;
- 了解品牌开发历程。
一、项目简介
1.1 需求分析
本人是DIY NAS的深度爱好者。通过几次DIY产品迭代,目前家中使用IstoreOS系统的主路由、OpenWRT系统旁路由,以及一机双系统NAS,包含底层Unraid系统和Unraid虚拟机安装的DSM系统。各系统功能及关注点如下:
-
IstoreOS主路由:
- 放置在弱电箱内,需要关注夏季电箱温度及散热问题;
- 入户网络枢纽,DHCP服务及流量监控。
-
OpenWRT旁路由:
- 放在书房中当做旁路由,魔法上网使用,需要不时进行有关网站的链接测试;
- 使用红米AX6一带路由神机刷级,相比软路由硬件配置差,需要关注系统占用情况。
-
Unraid NAS:
- NAS底层系统,使用Docker和虚拟机跑一些服务,需要关注系统占用和网络占用情况;
- 底层系统直接读取设备资源,需要关注系统温度、硬盘占用和风扇情况。
-
DSM 群辉NAS:
- 用于重要数据的存储及备份,因此需要重点关注硬盘和储存空间的健康状态、系统运行状态;
- 系统网络监测。
因为NAS设备(包括轻NAS系统的软路由设备)在日常运行时无前端系统检测,需要登陆特定IP网页才可了解设备运行状态,带来一定的不便。
1.2 功能构想
通过上述需求分析,设想出本项目需要实现的功能:
- 一个监控屏幕,一机即可查看多个NAS设备的运行状态;
- 针对特定NAS系统的关注点,进行特定信息监测;
- UI界面贴合原系统设计,数据直观可读;
- 操作简便,没有繁琐的系统和操作;
- 兼顾诸如时钟、天气功能。
1.3 品牌开发
项目的品牌开发是指通过一系列策略和活动,在目标市场中建立和提升品牌形象,进而促进项目的成功和可持续发展。虽然DIY爱好者是以学习和DIY乐趣为主要的,但是一个成功的项目产品必然会通过对品牌的开发来提升产品形象,并通过结合营销策略在市场中进行推广。
因品牌开发更多涉及到市场营销有关领域,故本篇文章中有关对品牌开发的论述以简要形式为主。同时,本项目通过借助百度人工智能文心一言进行了一定程度的品牌开发,故该部分论述会使用文心一言的有关论述。
1.3.1 品牌及内涵(with文心一言)
品牌的命名及内涵简明扼要地揭示出项目最具核心的价值体现。本项目的核心价值为:轻量化、准确性、直观度。
- 品牌名称:NAS Pulse Tab Lite - NAS脉络轻绘
- 品牌内涵:
- NAS
网络附属存储(NAS)作为现代数据中心的基石,承载着企业与个人关键数据的存储与共享。NASPulseTabLite正是针对这一核心领域,提供精确、高效的性能监测与优化服务。
- Pulse:
如同人体的脉搏,NAS PulseTabLite能够实时“感知”NAS系统的“心跳”——其运行状态与性能波动。这种对性能的实时监测与动态感知,确保用户能够及时了解NAS系统的健康状况,并快速响应潜在问题。
- Tab
在NAS PulseTabLite的界面中,用户可以通过简单的“Tab”切换,轻松浏览不同功能模块和监测指标。无论是I/0性能、网络带宽还是磁盘占用,一切尽在掌握。这种直观的设计使用户能够迅速定位问题,提高运维效率。
- Lite
在追求功能全面性的同时,NAS PulseTabLite更注重轻盈与简洁。其简洁的界面设计和便捷的操作流程,使用户无需繁琐的设置和复杂的步骤,即可轻松上手并快速掌握产品使用方法。这种轻量化的设计理念,为用户带来更为流畅、高效的使用体验。
- NAS脉络轻绘
这个名称既体现了产品的核心技术特点(即对NAS系统性能的全面监测和深入理解),又传达了一种简洁直观、易用的产品体验,同时还带有一种诗意的美感。
脉络 ——在中文中,““脉络”通常用来形容事物内部的联系和条理,就像人体的血脉一样,连接着身体的各个部分。在这里,“脉络”被用来比喻NAS系统内部的数据流、性能变化以及各个组件之间的联系。它暗示着这款产品能够深入洞察NAS系统的“血脉”,为用户提供清晰、准确的性能监测和状态展示。
轻绘——这个词则表达了产品的界面设计和操作体验。“轻”代表简洁、轻便,而“绘”则暗示着用户可以在这个界面上轻松地进行各种操作,就像绘画一样自由、流畅。因此,“轻绘”传达了一种简洁、直观、易用的产品体验,使用户能够轻松地掌控NAS系统的性能和状态。
1.3.2 品牌包装
主形象LOGO设计如下:


二、硬件实现
本项目硬件实现其实并不复杂,主要包含屏幕和触摸电路、外围传感电路,除此之外附属了供电电路、串口通信电路和esp32外围电路。
该硬件除支持本项目之外,还可借助esp32芯片的巨大通信功能,通过不同的软件开发实现不同物联网功能,包括但不限于智能家居控制、信息播报、网络通信支持。
2.1 原理图说明
2.1.1 显示屏及触摸电路
采用EYA 4寸LCD电容触摸屏,自带40pinFPC 显示接口,支持SPI和并口通讯协议;8pin触摸接口支持I2C通讯协议。


- 显示屏电路要点解读
- 依据屏幕开发手册,板载8个LED灯珠且背光电源总电流不应大于120mA,因此在LED_A接口串联10欧限流电阻;
- 背光控制电路应使用三极管并将G极接入带有PWN功能的引脚;
- 显示屏接口根据通信协议选择M0-M2的高低压电平。

- 电容触摸电路要点解读
- 本人选择的
C2856797编号的8pin FPC座子接口与屏幕接口线序是相反的,注意上电前进行正反接检查;- RST可以与LCD的RST引脚相连。
2.1.2 ESP32相关电路
本项目为考虑扩展性,采用ESP32-S3 WROOM N16 R8 模组。芯片电路的设计应注意以下要求(总结自芯片设计手册):
-
注意设计手册对WROOM封装的最小电路要求

-
带有SPIRAM时IO35/IO36/IO37不可使用;

-
部分支持ADC功能的GPIO在持续WIFI联网的情况下无法使用(下图黄色部分);

-
串口自动烧录电路接入GPIO0-BOOT和GPIO2-EN引脚,使用2个三极管实现

-
SPI设计应避开SPI0/SPI1,同时应尽量使用SPI默认引脚

其他电路不再赘述,均为基本的电源、烧录、按键及传感器电路。
2.2 Layout说明
2.2.1 屏幕FPC座子
-
注意LCD使用说明中的FPC排线方向,在Layout以及上电前都要注意是否反接,防止烧坏电路。


-
FPC区域不应有元器件布局;同时适当在板内开孔穿线。

2.2.2 AHT20 温湿度传感器
因本项目屏幕尺寸较大,屏幕及芯片发热会使AHT20温度超出正常值,因此在设计时要注意指导手册的布局要求。尽可能远离发热区,减少热传导,增加散热通风。



2.2.3 环境光传感器
该传感设置在机器正面,是唯一布局在PCB反面的原件。焊接时注意将其余回流焊后最后手动焊接。

三、软件实现
本项目硬件设计在保证功能的前提下留有拓展空间;而软件实现是项目开发的重点。它借助ESP32实现了多种网络通讯服务,并通过任务调度设计和前端GUI开发实现信息获取和交互功能。
3.1 功能框图

本项目软件层面使用FreeRTOS系统进行后端任务管理,使用LVGL处理前端任务。功能实现方面主要包含网络连接、传感器驱动和界面交互。
- 后端任务分为:启动程序、设备驱动程序、电容触摸启动及界面启动程序、日期天气服务程序、NAS信息服务程序;
- 前端任务分为:天气UI更新、时钟日期UI更新、NAS信息面板UI更新。
3.2 电容触摸及LVGL配置
使用Ardiuno的TFT_espi和LVGL库实现显示屏驱动,使用bb_captouch库实现触摸驱动。
TFT_espi配置要点
- 配置LCD引脚及时钟频率;
- 实现LCD屏幕
ST7796驱动、配置屏幕尺寸。
LVGL配置要点(该部分尚需进一步优化)
- 配置色彩模式为16位RGB565;
- 使用自定义内存,配置屏幕刷新频率,配置时钟频率;
- 配置屏幕缓冲区
buffer_size = screenWidth * screenHeight / 30。
bb_captouch配置要点
- 配置触摸驱动为
GT911通讯方式为I2C;- 配置触摸驱动引脚;
- 配置触摸参数,该驱动最大可支持5点触控。
3.3 外设驱动配置
外设主要由各类传感器、按钮构成。
- AHT20温湿度传感器配置要点
- 该传感器使用I2C通讯协议。查阅设备开发手册,因电容触摸已使用I2C配置,故此处使用
Wire库中TwoWire Wire1 = TwoWire(1);参数进行配置Wire1.begin(aht20_sda, aht20_scl); // Join I2C bus。
- 环境光传感器配置要点
- 该传感器需要使用esp32的数模转换ADC功能。查阅开发手册,因本项目需要持续的无线连接,故硬件设计层面有部分ADC引脚限制,此处再次强调。
- 配置引脚模式为
pinMode(LIGHTPIN, INPUT);,读取数据使用analogRead(LIGHTPIN)。
按钮配置较为简单,此处不再赘述。
3.4 时间天气功能实现
- 时间功能要点
- 使用阿里云NTP服务器授时,服务器设置为3个,如
ntp1.aliyun.com;- 时区偏移量,北京是GMT+8,按秒计为
gmtOffset_sec = 8 * 3600;;夏令时不使用,配置为0;- 因时钟配置到获取并更新时间存在5s至10几秒不等的延时,经过排查调用库函数发现
getLocalTime(&timeinfo)函数中存在配置时间延迟等待的语句,这造成了开机时获取时间滞后的问题,暂时未进行优化(有大佬可以指导指导)。
- 天气功能要点
- 经测试多个服务提供商,最终选取了
"http://t.weather.sojson.com/api/weather/city/101190801"的服务提供商。该网站稳定、免费、无需注册、获取数据周期短。具体参考https://www.lanol.cn/post/33.html;- 数据解析使用
ArduinoJson库。
3.5 NAS信息通讯
NAS通讯基于SNMP服务。选取该通讯协议的原因为IstoreOS、OpenWRT、Unraid和DSM系统均基于Linux系统,使用SNMP协议进行通讯具有通用性。
- SNMP协议通讯要点说明:
- 多数基于Linux系统的OID和MIB树都是通用的,可以方便获取系统、网络和硬盘等的占用信息;
- 请注意在使用SNMP功能时应该在基于Linux系统的NAS设备中安装服务端
snmpd;- DSM系统在官网上进行了SNMP的MIB二次开发,有关DSM的SNMP使用可以查阅网络有关教程。DSM的SNMP使用手册见https://global.synologydownload.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/chs/Synology_DiskStation_MIB_Guide_chs.pdf 。
- SNMP通讯缺点说明:
- 因SNMP是基于DUP协议的通讯,故此处通讯是异步的。在进行大量OID尤其是使用WALK进行设备轮询时,单次通讯周期长;同时Linux的
snmpd协议有些数据是5秒更新一次, 因此基于SNMP服务的NAS信息通讯做不到每秒更新,对于需要高度同步的信息监控具有局限性。
3.6 GUI前端开发
GUI前端开发使用Figma进行UI设计,然后将有关素材文件导入到SquareLineStudio环境中进行LVGLGUI开发。
- Figma是个向量图形编辑软件,具有突出的轻量化、易上手特点,在网页端即可完成用户界面(UI)和用户体验(UX)设计。

- SquareLine Studio 是一款专为嵌入式和桌面应用程序设计的创新可视化拖放式UI编辑器,最初是LVGL开发的平台,因此对LVGL具有极好的适配性。这款软件极大程度降低了LVGL开发语句的上手难度,通过图形化界面设计,可进行实时交互预览,设计完成即可导出程序文件。
- 软件试用30天,试用期可以完成界面设计(现在试用期到期了,无法截图预览)。
四、展望
- 功能完善方面
- 本项目参加了ESP32物联网项目,因此开发周期较为紧张、LVGL设计软件需要收费,本着学习和个人应用的角度进行的项目开发具有一定的普适局限性,如未能进行设备配网GUI设计。下一步计划针对设备配网及NAS UI显示界面进行优化。
- 本项目前期将Win系统的设备监控同样纳入考虑范围,因此留有Win系统的信息监控有关函数接口,计划下一步进行功能完善。
- 产品优化方面
- 该项目使用SNMP协议通讯,项目开发让我学习到了该通讯协议的原理和应用。但是SNMP协议存在延时高等缺点。下一步计划使用市场主流的
AIDA软件进行优化开发,提升实时性。- 因项目开发周期紧张,内存调试和优化占用了约50%时间,因此项目的3D外壳使用嘉立创EDA进行设计,个性化和操控性有待提升。
- 本项目将NAS设备接入物联网,实现了个人电子设备的信息接入,展现了AI+ALL in one 的物联网理念。下一步计划在此基础上继续下一步开发,借助乐鑫公司的
ESP RainMaker方案和ESP HomeKit SDK等框架进行物联网设备的接入,从而实现手机终端监控、网络自主优化、环境自动调温调光等功能,帮助NAS设备实时处于最佳的运行环境。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


















