本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 ESP32 和 TFT 屏幕的蓝牙系统监视器

发布时间:2021-10-06
分享到:

基于 ESP32 和 TFT 屏幕的蓝牙系统监视器

发布时间:2021-10-06
分享到:

系统信息监视器很受欢迎。一眼就能看到有关计算机的所有重要信息。CPU 温度、风扇速度、内存使用量等。如果我告诉您,您可能已经拥有自己制作所需的一切,该怎么办?甚至让它通过蓝牙发送数据,这样你就不需要长长的电缆连接到你的电脑上。或者将它与您的笔记本电脑一起使用,但不必随身携带。

在这个项目中,您将学习如何将 ILI9488 屏幕连接到 ESP32。上传代码,并在您的计算机上运行主机脚本以发送数据。最后,您的办公桌上将有一个方便的小型系统信息监视器。

补给品

  • 38针ESP32-WROOM-32开发板
  • 一块 ILI9488 TFT 屏幕 XPT2046 触摸控制器
  • 一个可选的ESP32 + TFT合PCB

工具:

  • 烙铁和焊锡
  • 剥线钳
  • 冲洗刀具

第 1 步:观看视频

第 2 步:获取您需要的零件

准备 ESP32 和 ILI9488 TFT + 触摸屏

第 3 步:硬件:将 TFT 屏幕连接到 ESP32

接线起初可能看起来有点令人生畏。但不要让所有的电线吓到你。这是非常直接的。当您将 TFT + 触摸屏连接到 ESP32 时,上图将对您有所帮助。

这也是决策时间。将两者连接在一起时几乎没有选择。您可以使用面包板,也可以使用原型板,也可以专门订购 PCB 来将 ILI9488 + touch 连接到 38 针 ESP32 DevKitC。我想指出的是,面包板选项只是用于测试连接和屏幕的选项。放在办公桌上不太实用,连接松动可能会导致问题。

重要的是要知道这些屏幕在 3.3V 下运行。将它们连接到 5V 会造成损坏!

这些是您需要从 ESP32 -> ILI9488 进行的连接:

  • 3.3V -> VCC
  • 地 -> 地
  • GPIO15 -> CS
  • GPIO4 -> 复位
  • GPIO2 - > DC/RS
  • GPIO23 -> SDI(MOSI) 和 T_DIN
  • GPIO18 -> SCK 和 T_CLK
  • GPIO32 -> LED
  • GPIO21 -> T_CS
  • GPIO19 -> T_DO
  • GPIO27 -> T_IRQ

SDO(MISO) 不用于 TFT 屏幕,因此在 TFT 模块上留下一个未连接的引脚。没关系!

如果您想订购一个 PCB 设计,以便于将 ESP32 连接到 TFT 屏幕

 Gerber 文件:点击下载

第 4 步:软件:安装 Arduino IDE 库

安装 Arduino IDE ESP32 内核。

转到Arduino -> 首选项,然后单击其他板管理器 URL 输入字段后面的图标。接下来,将以下链接(不带引号)复制并粘贴到弹出框中:“https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json”

单击确定和确定。接下来,转到Tools -> Board: -> Board Manager并搜索“ESP32”。安装最新版本并单击“关闭”。

安装必要的库。
这个项目使用了一些库。可以通过库管理器安装其中两个库。

转到 Sketch -> Include Library -> Manage Libraries并搜索并安装以下库:

  • Adafruit-GFX-库
  • TFT_eSPI

如果您使用的是 ESP32 TouchDown ( esp32touchdown.com ),那么您还需要电容式触摸库:

转到“ https://github.com/DustinWatts/FT6236 ”,点击“代码”和“下载.ZIP”。

在 Arduino IDE 中,转到Sketch -> Include Library -> Add .ZIP library

第 5 步:TFT 屏幕配置

在编译和上传 Bluetooth-System-Monitor.ino 草图之前,您必须编辑 TFT_eSPI 库中包含的User_Setup.h文件。

这可以在“库”下的 Arduino 素描本文件夹中找到。如果您尚未重命名 TFT_eSPI 库文件夹,则可以在 TFT_eSPI-master 中找到文件User_Setup.h。

在这里,您必须取消注释适用于您的硬件配置的行。为方便起见,您可以在“user_setup.h 示例”文件夹中下载的存储库中找到此项目所需的 user_setup.h 文件。将文件“ESP32_Dev_Kit_V1_ILI9488_Resistive.h”复制到“/TFT_eSPI-master/”。将已经存在的“User_Setup.h”重命名为“User_Setup.old”(这样可以保留原始文件以防出现问题)。现在将“ESP32_Dev_Kit_V1_ILI9488_Resistive.h”重命名为“User_Setup.h”。(<- 区分大小写!)保存并关闭文件。

如果您使用的是 ESP32 TouchDown,同样的配置适用!

第 6 步:下载 Arduino Sketch 并上传到 ESP32

ESP Sketch 数据上传工具
该项目使用 SPIFFS(ESP32 闪存)来存储用作背景的图像。在将草图上传到 ESP32 之前,您需要将这些上传到 ESP32。为此,您需要 ESP32 Sketch 数据上传工具。

您可以从 Github 下载:“https://github.com/me-no-dev/arduino-esp32fs-plugin”。按照 Github 上的说明安装该工具:

从发布页面下载工具档案。
在您的 Arduino 素描本目录中,如果工具目录尚不存在,请创建该目录。
将工具解压到工具目录中(路径类似于 /Arduino/tools/ESP32FS/tool/esp32fs.jar)。
重启 Arduino IDE。
(在 MacOS 上,在 ~/Documents/Arduino/ 中创建工具目录并在那里解压文件)。

上传数据文件夹
在将数据文件夹上传到 ESP32 之前,您首先必须选择正确的分区方案。

转到Tools -> Board并选择 ESP32 Dev Module。
仍然在工具下,选择分区方案。-> “默认 4MB,带有 spiffs”。
插入 ESP32。
单击工具并选择“ESP Sketch 数据上传”。
提示!:如果数据上传失败,可能是您打开了串行监视器。如果发生这种情况,请关闭串行监视器并重试。

蓝牙-系统-Monitor.ino
在 Github 上,您可以找到该项目的完整源代码。转到 Bluetooth-System-Monitor Github 存储库,然后单击“代码”和“下载 .ZIP”:https://github.com/DustinWatts/Bluetooth-System-M...

提取提取的文件夹并将其重命名为"Bluetooth-System-Monitor"。这样 Arduino IDE 就不会抱怨文件夹和草图的名称不同。如果发生这种情况,您将收到一个弹出窗口,询问您是否应该移动草图。这里的危险在于,它只会移动草图而不是数据文件夹。这会导致上传时出错!

在 Arduino IDE 中打开Bluetooth-System-Monitor.ino草图。

草图中的一些设置

首先,根据您使用的电路板(电阻式触摸、电容式触摸或无触摸),您必须取消对正确的注释。例如,如果您使用 ESP32 TouchDown 取消注释:"#define ENABLE_CAP_TOUCH"。如果您使用带有单独 TFT 的 DevKitC,请取消注释"#define ENABLE_RES_TOUCH"。

在草图中,您可以设置一些警告级别。这将使图标下的文本变为红色。向下滚动,直到看到“// 定义警告级别,随意更改”。在这里您可以设置一些警告级别。

您还可以设置图形 y 轴的比例。这是在"// The scale of the Y-axis per graph" 下完成的。如果这些太大或太小,数据将无法正确显示在图表上。您可能需要尝试这些。

将草图上传到 ESP32

继续将Bluetooth-System-Monitor.ino草图上传到 ESP32。除分区方案外,工具下的设置可以保留为默认值(见图)。转到“草图”并选择“上传”。这可能需要一段时间,因为它是一个大草图。

现在完成了,让我们让我们的计算机将数据发送到我们的系统监视器!

第 7 步:首次连接

在我们可以在我们的计算机上使用蓝牙系统监视器之前,我们必须让它知道我们有一个串行蓝牙连接。确保 ESP32 已通电。

在 Windows 上:

右键单击开始菜单,单击设置,然后单击设备。点击“添加蓝牙或其他设备”。选择“蓝牙”。等待它找到“ESP32”或“MyDisplay”。点击它。现在应该已连接。在此之后,您可以单击完成。

打开设备管理器(右键单击开始菜单)并单击端口旁边的箭头。现在应该有一个名为“Standard Serial over Bluetooth link”的设备。这是您在下一步中必须使用的 COM 端口。

注意:在我的设置中,出现了两个新设备。我用了两个中的第一个。但是您可能必须对此进行试验。

在 MacOS 上:

打开首选项并单击“蓝牙”。它应该已经显示“ESP32”或“MyDisplay”,但您可能需要等到它完成搜索。选择“ESP32”或“MyDisplay”,然后点击“连接”。要查看实际设备名称是什么,您可以打开终端并输入:“ls /dev/tty.*”这将为您列出所有串行端口。

第 8 步:将数据发送到系统监视器的 Python 脚本

我提供了两个 python 脚本,它们会将数据发送到您的系统监视器。一种用于 Windows,一种用于 MacOS。两者都要求您安装最新版本的 Python。如果您还没有,可以从这里下载并安装:https : //www.python.org/downloads/

视窗
为了使脚本正确运行,您需要安装一些 Python 模块。这些模块是`psutil`、`pyserial` 和`pythonnet`。您可以使用 PIP 来安装这些。以管理员身份打开命令提示符,通过单击开始菜单并键入“cmd”,然后右键单击命令提示符并选择“以管理员身份运行”。导航到文件夹“Bluetooth-System-Monitor/host_python”,即您下载 Sketch 的文件夹。在这里安装所需的 Python 模块:

`pip安装pyserial`
`pip安装psutil`
`pip安装pythonnet`
正确安装模块后,在您喜欢的代码编辑器中打开“windows_host.py”。我正在使用 VSCode,但 SublimeText 或其他也可以使用。在这里,您必须至少编辑一行代码。表示`connection = serial.Serial('COM16')` 的行。上面的图片会给你一个线索。这是脚本将向其发送数据的 COM 端口。确保它在引号之间并使用大写字母。您可以将驱动器号更改为另一个驱动器以报告其可用空间。但这是可选的。保存更改,您就完成了!

确保无论您从何处运行此脚本,所包含的 .dll 文件都位于同一文件夹中。要运行此脚本,您需要以管理员身份运行它!

苹果系统
MacOs 比 Windows 更容易一些。这主要是因为您不需要更改 COM 端口,因为所有 Mac 的名称都相同。因此无需编辑脚本,但如果您愿意,您可以更改报告可用空间的硬盘,并且您可以编辑轮询时间。另一件事是,在 Windows 上,您需要一个 .dll 来从您的计算机读取一些信息,但在 MacOS 上,这一切都可以用纯 Python 完成。在这种情况下,您唯一需要做的就是安装两个模块。打开终端并导航到 Python 脚本所在的文件夹。在那里,安装:

`pip安装pyserial`
`pip安装psutil`
在 MacO 上,您还需要以管理员身份运行此脚本。所以使用`sudo python macos_host.py` 来运行。

第 9 步:制作案例

这个项目与我制作的另一个项目 FreeTouchDeck 使用相同的屏幕。您也可以将此案例用于该系统监视器。

此设计适用于带或不带组合器 PCB 的屏幕和 ESP32。表壳设计为压入式。但是,您可以添加一点 CA 胶(疯狂胶)以将顶部牢固地连接到底部。你可以在 Thingiverse 上找到这个案例:https ://www.thingiverse.com/thing:4661069我用 PLA 打印,层高为 0.2 毫米。如果正面朝下打印,顶部不需要支撑。如果您在开口朝下打印,底部需要一些最小的支撑。如果您想根据自己的喜好修改案例,可以在 Github 上找到 Fusion 360 文件:https ://www.thingiverse.com/thing: 4661069

到目前为止,Thingiverse 上有很多我的原始设计的混音。在这里查看它们:

https://www.thingiverse.com/search?q=FreeTouchDeck

对于 ESP32 TouchDown,您可以在此处找到案例:

https://github.com/DustinWatts/esp32-touchdown/tre...

第 10 步:完成!

如果一切顺利,您现在的办公桌上就有了一个方便的小系统监视器!随意挖掘所有代码,并在您认为合适的地方进行改进。

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论