ESP-HMI

【Designed by SoTWild】

ESP-HMI 是 Link 设备链中的一个,是整个项目最开发的部分,主要提供远程直接开关设备、数据汇总(设备监控)的功能。

我还开发了一些针对不同人群的功能:文本阅读、编辑、图片查看、播放MJPEG视频、运行小程序等。如果你是开发者,你也可以使用引出的I/O对它进行二次开发。(普通人可以把它看做一个功能极其简单的小电脑)

为了高效率运行程序,我移植了 FreeRTOS 操作系统,使得主控芯片可以 “同时” 运行多个程序。


主要硬件组成:

· ESP32-WROVER

ESP32-WROVER 系列模组基于 ESP32-D0WD 双核芯片设计,其强大的双核性能适用于对内存需求大的应用场景,例如多样的 AIoT 应用和网关应用。

ESP32-WROVER 模组

· 3.5 寸 TFT_LCD

驱动芯片:ILI9488

通讯接口:SPI

触摸芯片:XPT2046

屏幕模块

· 存储卡

最大 32G,推荐 4 或 8G。

32G TF卡

· SHT30:

SHT30能够提供极高的可靠性和出色的长期稳定性,具有功耗低、反应快、抗干扰能力强等优点。

轻松实现城市环境监控、智能楼宇、工业自动化、智能家居等物联网应用场景的温湿度传感。

  • 主芯片(传感器):Sensirion SHT30
  • 供电电压(VCC):3.3V ~ 5.5V
  • 通信接口:Gravity Analog (PH2.0-3P,模拟电压输出0.3-2.7V)
  • 工作电流:< 0.5 mA
  • 产品尺寸:30×22 mm
  • 重量:3 g

温度测量性能:

  • 量程:-40 ~ 125 ℃
  • 分辨率:0.01 ℃,14bit
  • 精度:±0.2℃@10~55℃(典型值),±1.5℃@-40 ~ 125 ℃(典型值)
  • 响应速度:> 2s

湿度测量性能:

  • 量程:0~100 %RH
  • 分辨率:0.006 %,14bit
  • 精度:±3 %RH@10~90 %RH(典型值),±8 %RH@0~100 %RH(典型值)
  • 响应速度:> 8s

SHT30

· PCF8563

PCF8563 是 PHILIPS 公司推出的一款工业级内含I2C 总线接口功能的具有极低功耗的多功能时钟/日历芯片。是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。

PCF8563 模块

· MPU6050:

MPU-60X0 是全球首例 ⑨ 轴运动处理传感器。它集成了3 轴MEMS陀螺仪,3 轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP,可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C 或 SPI 接口输出一个⑨轴的信号(SPI 接口仅在MPU-6000 可用)。

MPU-60X0 对陀螺仪和加速度计分别用了三个16位的ADC(0~65535),将其测量的模拟量转化为可输出的数字量。传感器的测量范围都是用户可控的,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g

芯片尺寸4×4×0.9mm,采用QFN封装,可承受最大10000g的冲击,并有可编程的低通滤波器

MPU6050模块

· CH340C:

USB转串口芯片,支持通讯波特率50bps~2Mbps。

此型号内置时钟,无需外部晶振。

搭载了CH340C的串口下载模块

· PW2053:

PW2053是一款高效单片同步降压调节器。

点我下载DataSheet

没找到实物图……

· TP4056:

TP4056 是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器

著名的充电模块

· WT8302:

WT8302系列是一款超低EM.3.0W,单声道,D类音频功率放大器。在5V电源下,能够向4Ω负载提供3.0W的输出功率,并具有高达90%的效率。

没找到实物图……

PCB:

验证板:只有最基础硬件(包括SHT30),注意 GPIO2 在烧录程序时需断开,如果你要频繁烧录程序,最好 PCB上飞线一个开关,或者拔下开发板(如果你愿意的话)。

Gerber_PCB_ESP32开发直插板.zip

验证板

最终板:硬件齐全,自动烧录,配备电池。

还没设计完……

元件解读:

还没设计完……


软件:

本人一切嵌入式皆为自学,原谅我写成屎山或执行效率不高

Media_Player.h 这里有主要函数:

这是进行 Mjpeg 视频播放,源代码由Play Video With ESP32修改而来,详情见MjpegClass.h

 

这是绘制 .jpg 格式图片,源代码由Bodmer/JPEGDecoder修改而来。

 

这是进行 .mp3 格式音频的播放,源代码由ESP8266Audio修改而来。

 

这是进行 .pcm 格式音频的播放,源代码由Play Video With ESP32修改而来。

 

读取 .txt 文本的某一行,源代码来自peng-zhihui/HoloCubic

 

蓝牙音频接收,来自ESP32-A2DP

 

创建滚动文字,修改自TFT_eSPI

 

从SHT30获得温湿度数据,修改自SHT3x: Arduino library for Sensorion SHT3x

 

获取网络时间,修改自NTPClient

 

初始化网络,可选STA/AP模式。

 

无线文件传输功能,修改自(我找不到原视频了悲)

 

Main.h 这是应用:

Album 相册

Game 小游戏

Sounder 音乐播放器

Vision 视频播放器

Ebook 电子书阅读器

Settings 设置

Calculator计算器、函数绘图器

Thermometer温湿度计

文件上传

网络

 

main.cpp 开机时执行的程序,包括:

1)加载串口

2)屏幕初始化

3)触摸初始化

4)挂载SD卡

5)连接 Wi-Fi

6)读取设置文件

7)运行 MainPage(); 主页程序