ESP-HMI【Designed by SoTWild】主要硬件组成:· ESP32-WROVER· 3.5 寸 TFT_LCD· 存储卡· SHT30:· PCF8563· MPU6050:· CH340C:· PW2053:· TP4056:· WT8302:PCB:元件解读:软件:
ESP-HMI 是 Link 设备链中的一个,是整个项目最难开发的部分,主要提供远程直接开关设备、数据汇总(设备监控)的功能。
我还开发了一些针对不同人群的功能:文本阅读、编辑、图片查看、播放MJPEG视频、运行小程序等。如果你是开发者,你也可以使用引出的I/O对它进行二次开发。(普通人可以把它看做一个功能极其简单的小电脑)
为了高效率运行程序,我移植了 FreeRTOS 操作系统,使得主控芯片可以 “同时” 运行多个程序。
ESP32-WROVER 系列模组基于 ESP32-D0WD 双核芯片设计,其强大的双核性能适用于对内存需求大的应用场景,例如多样的 AIoT 应用和网关应用。
驱动芯片:ILI9488
通讯接口:SPI
触摸芯片:XPT2046
最大 32G,推荐 4 或 8G。
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
PCF8563 是 PHILIPS 公司推出的一款工业级内含I2C 总线接口功能的具有极低功耗的多功能时钟/日历芯片。是一款性价比极高的时钟芯片,它已被广泛用于电表、水表、气表、电话、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。
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的冲击,并有可编程的低通滤波器。
USB转串口芯片,支持通讯波特率50bps~2Mbps。
此型号内置时钟,无需外部晶振。
PW2053是一款高效单片同步降压调节器。
TP4056 是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。
WT8302系列是一款超低EM.3.0W,单声道,D类音频功率放大器。在5V电源下,能够向4Ω负载提供3.0W的输出功率,并具有高达90%的效率。
验证板:只有最基础硬件(包括SHT30),注意 GPIO2 在烧录程序时需断开,如果你要频繁烧录程序,最好 PCB上飞线一个开关,或者拔下开发板(如果你愿意的话)。
最终板:硬件齐全,自动烧录,配备电池。
本人一切嵌入式皆为自学,原谅我写成屎山或执行效率不高
Media_Player.h 这里有主要函数:
1void Mjpeg_start(const char *MJPEG_FILENAME, const char *AUDIO_FILENAME);
这是进行 Mjpeg 视频播放,源代码由Play Video With ESP32修改而来,详情见MjpegClass.h。
xxxxxxxxxx
11void drawSdJpeg(const char *filename, int xpos, int ypos);
这是绘制 .jpg 格式图片,源代码由Bodmer/JPEGDecoder修改而来。
xxxxxxxxxx
11void MP3_start(const char *filename);
这是进行 .mp3 格式音频的播放,源代码由ESP8266Audio修改而来。
xxxxxxxxxx
11void PCM_start(const char *AUDIOFILENAME);
这是进行 .pcm 格式音频的播放,源代码由Play Video With ESP32修改而来。
xxxxxxxxxx
11String readFileLine(const char* path, int num);
读取 .txt 文本的某一行,源代码来自peng-zhihui/HoloCubic。
xxxxxxxxxx
11void BleAudio();
蓝牙音频接收,来自ESP32-A2DP。
xxxxxxxxxx
11void CreatCrollWords(int IWIDTH, int IHEIGHT, int WAIT, int X, int Y,int size,int font, uint16_t TextColor, String msg);
创建滚动文字,修改自TFT_eSPI。
xxxxxxxxxx
11void GetfromMometer();
从SHT30获得温湿度数据,修改自SHT3x: Arduino library for Sensorion SHT3x。
xxxxxxxxxx
11void getNetTime();
获取网络时间,修改自NTPClient。
xxxxxxxxxx
11void WiFiInit(String Mode);
初始化网络,可选STA/AP模式。
xxxxxxxxxx
11void File_transfer_init();
无线文件传输功能,修改自(我找不到原视频了悲)
Main.h 这是应用:
Album 相册
Game 小游戏
Sounder 音乐播放器
Vision 视频播放器
Ebook 电子书阅读器
Settings 设置
Calculator计算器、函数绘图器
Thermometer温湿度计
文件上传
网络
main.cpp 开机时执行的程序,包括:
1)加载串口
2)屏幕初始化
3)触摸初始化
4)挂载SD卡
5)连接 Wi-Fi
6)读取设置文件
7)运行 MainPage(); 主页程序