3766| 0
|
基于 ESP32 制造系统监控屏,支持与 PC 蓝牙连接 |
本帖最后由 RRoy 于 2022-9-22 15:10 编辑 本期要介绍的项目,是使用蓝牙来连接计算机并传输需要监控的数据(例如 CPU 温度、风扇速度、内存使用量等这些数据),方便在没有网络的情况下使用。 它的原理很简单,外观小巧,只需要将 ILI9488 屏幕连接到 ESP32,上传代码后,你所监控的设备将运行主机脚本数据发送至这个显示器后,你就可以随时查看数据信息了。因为它是蓝牙连接,不需要数据线,所以你把它放在办公桌上即可查看系统数据信息,是不是很方便呢! ▼ 视频 组件清单
将这两个部分连接在一起,通过以下三种方式:1、使用面包板;2、使用原型板;3、使用专门定制的 PCB 板将 ILI9488 与 ESP32 DevKitC 相连。 使用面包板可以用来测试连接和屏幕比较方便。但要注意在测试时,桌面要保持水平以及接口要牢固;屏幕需要在 3.3V 下运行,5V 会造成损坏! ESP32 -> ILI9488 进行以下连接:
注意屏幕的 SDO(MISO) 没有用到,因此在 TFT 模块上留出一个未连接的引脚。 定制的 PCB 板的文件也可以在文末下载。 安装 Arduino IDE 库下载安装 Arduino IDE ESP32 内核 1、从 Arduino IDE 软件中,进入File – Preferences 2、点击 Additional Board Managers URLs:后面的文本框,将网址修改为:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json 然后单击确定。 3、依次点击 Tools – Board: – Board Manager 并在搜索框中输入 ESP32。安装最新版本并单击关闭。 安装其他库 依次从 Sketch – Include Library – Manage Libraries 并搜索并安装以下库:Adafruit-GFX-Library 和 TFT_eSPI。 此外,如果你使用的是 ESP32 TouchDown,你还需要安装电容式触摸库:打开 https://github.com/DustinWatts/FT6236,点击“代码”并下载 “Download .ZIP”。在 Arduino IDE 中,依次从 Sketch – Include Library – Add .ZIP library,下载完成。 配置 TFT 屏幕 1、在编译和上传 Bluetooth-System-Monitor.ino 代码文件之前,先编辑 TFT_eSPI 库中包含 User_Setup.h 的文件。它可以在“Library”下的 Arduino sketchbook 文件夹中找到。 2、如果你还没有重命名 TFT_eSPI 库文件夹,则可以在 TFT_eSPI-master 中找到文件 User_Setup.h。 3、你需要取消注释适用于你的硬件配置的代码。你可以在user_setup.h Examples文件夹中下载的存储库中找到此项目所需的 user_setup.h 文件。 4、将文件 ESP32_Dev_Kit_V1_ILI9488_Resistive.h 复制到 /TFT_eSPI-master/。将已经存在的User_Setup.h 重命名为 User_Setup.old(这样可以保留原始文件以防出现问题)。 5、将 ESP32_Dev_Kit_V1_ILI9488_Resistive.h 重命名为 User_Setup.h(区分好大小写)保存并关闭文件。 如果你使用的是 ESP32 TouchDown,用同样的配置方法即可。 下载 Arduino Sketch 并上传到 ESP32 使用 ESP 代码数据上传工具。本项目使用 SPIFFS(ESP32 闪存)来存储用作背景的图像。在将代码上传到 ESP32 之前,你需要将这些上传到 ESP32。因此,你需要 ESP32 代码数据上传工具。 你可在 GitHub 下载:https://github.com/me-no-dev/arduino-esp32fs-plugin访问GitHub不方便的同学,也可在文末打包下载。 按照 GitHub 上的说明安装该工具:下载工具文件夹,链接为:https://github.com/me-no-dev/arduino-esp32fs-plugin/releases/tag/1.0如果该库不存在,在 Arduino sketchbook 库中创建该库。将工具解压到工具库中(路径为 /Arduino/tools/ESP32FS/tool/esp32fs.jar)。之后重启 Arduino IDE。 如果是 MacOS ,请在 ~/Documents/Arduino/ 中创建工具库并在那里解压文件。 上传数据目录 在将数据文件夹上传到 ESP32 之前,必须选择正确的分区方案。 在将数据目录上传到 ESP32 之前,必须选择正确的分区方案。 菜单 Tools – Board 选择 ESP32 Dev Module。在 Tools 中选择分区方案 Default 4MB with spiffs。 插入 ESP32。 单击 Tools 并选择 ESP Sketch Data Upload。 如果数据上传失败,可能是你已经打开了串行监视器。如果发生这种情况,请关闭串行监视器后再重试。 Bluetooth-System-Monitor.ino 在 Github 上,你可以找到完整的源代码:https://github.com/DustinWatts/Bluetooth-System-Monitor访问GitHub有困难的同学,也可在文末下载。 从 Bluetooth-System-Monitor GitHub 库,然后单击 Code 和 Download.ZIP解压的文件夹并将其重命名为 Bluetooth-System-Monitor。这样 Arduino IDE 的文件夹和代码的名称就会不同。 如果发生这种情况,当弹出一个窗口,询问是否应该移动代码。这样就会造成只会移动代码而不是数据文件夹,就会导致上传出错! 在 Arduino IDE 中打开 Bluetooth-System-Monitor.ino 代码。 配置代码 根据你使用的电路板(电阻式触摸、电容式触摸或无触摸),你必须取消正确的注释。例如,如果你使用 ESP32 TouchDown 取消注释:#define ENABLE_CAP_TOUCH。如果你使用带有单独 TFT 的 DevKitC,请取消注释#define ENABLE_RES_TOUCH。 在代码中,你可以设置一些警告级别。这可使图标下的文本变为红色。向下滚动,直到看到 Define warning levels, change this as you like。 你还可以设置图形 y 轴的比例。这是在 The scale of the Y-axis per graph 下完成的。如果这些太大或太小,数据将无法正确显示在图表上。你可能需要做一些尝试。 将代码上传到 ESP32 继续将 Bluetooth-System-Monitor.ino 代码上传到 ESP32。除分区方案外, tools 下的设置可以保留为默认值(见图)。 等待一段时间后,就可以安排所需监控的设备将数据发送到系统监视器上了。 蓝牙连接 在将蓝牙信息监视器连接到计算机前,必须先进行蓝牙连接并确保 ESP32 已通电。 在 Windows 上: 右键单击开始菜单,单击设置,然后单击设备。点击 Add Bluetooth or other device,选择 Bluetooth,等待它找到 ESP32 或 MyDisplay,点击连接。此后,你可以单击完成。 打开设备管理器(右键单击开始菜单)并单击端口旁边的箭头。现在应该有一个名为 Standard Serial over Bluetooth link的设备。这是下一步中使用到的 “COM” 端口。 注意:在上图的设置中,出现了两个新设备。选用了第一个,但你需要再次验证。 在 MacOS 上: 打开首选项并单击 Bluetooth。它会可以显示 ESP32 或 MyDisplay,等待搜索完成,选择 ESP32 或 MyDisplay,然后点击 “Connect”。 如果要查看实际设备名称是什么,你可以打开终端并输入:ls /dev/tty.*,它将为你列出所有串行端口。 将数据发送到监视器的 Python 脚本 作者将提供了两个 Python 脚本,它们会将数据发送到信息系统监视器。一种用于 Windows,一种用于 MacOS。两者都要求你安装最新版本的 Python。可点击下载并安装:https://www.python.org/downloads/ Windows 为了使脚本正确运行,你需要安装一些 Python 模块。这些模块是 psutil、pyserial 和 pythonnet。你可以使用 PIP 来安装这些,以管理员身份打开命令提示符,通过单击开始菜单并输入 cmd,然后右键单击命令提示符并选择Run as Administrator。 导航到文件夹 Bluetooth-System-Monitor/host_python,即是你下载 Sketch 的文件夹,在这里安装所需的 Python 模块: pip install pyserial pip install psutil pip install pythonnet 正确安装模块后,在你喜欢的代码编辑器中打开 windows_host.py。可以用 VSCode 或者 SublimeText 或其它也可以。 在这里,你必须至少编辑一行代码。 connection = serial.Serial('COM16') 如图所示,这是脚本将向其发送数据的 COM 端口。确保它在引号之间并使用大写字母。你可以将驱动器号更改为另一个驱动器以报告其可用空间。但这一步是可选的。保存更改,你就完成了! 确保无论你从何处运行此脚本,所包含的 .dll 文件都位于同一文件夹中。你需要以管理员身份运行此脚本。 MacOS MacOs 比 Windows 更容易一些。你不需要更改 COM 端口,因为所有 Mac 的名称都相同,因此无需编辑脚本。如果你想,你可以更改硬盘报告可用空间,并且编辑轮询时间。 在 Windows 上,需要一个 .dll 来读取信息,但在 MacOS 上,可以用 Python 完成。你只需要安装两个模块即可。打开终端并导航到 Python 脚本所在的文件夹。安装以下两个模块: pip install pyserial pip install psutil 在 MacOS 上,使用: sudo python macos_host.py 来运行,同时需要以管理员身份运行此脚本。 3D 打印外壳 这款外壳设计为压入式。最后使用强力胶将顶部牢固地连接到底部即可。 3D 打印外壳文件链接为:https://www.thingiverse.com/thing:4661069也可以在文末打包下载。 项目中的外壳采用 PLA 打印,层高为 0.2mm。如果正面朝下打印,顶部不需要支撑。如果你是开口朝下打印,底部则需要一些很小的支撑。当然你可以根据自己的喜好设计外壳。 关于 ESP32 TouchDown,你还可参考以下链接:https://github.com/DustinWatts/esp32-touchdown/tree/main/Case 最后,组装完成就可以使用啦! 项目来源: instructables.com/Bluetooth-System-Monitor-ESP32-TFT-Screen/ |
6.12 MB, 下载次数: 870
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed