使用 Squareline Studio 和 LVGL 开发的 ESP32 电子气压计
扫描二维码
随时随地手机看文章
气压计是一种用于测量大气压力的科学仪器。气压上升通常预示着天气好转,气压下降则通常意味着即将有风和降雨。气压稳定则表示天气状况平稳。在这个项目中,我将介绍一种非常简单的制作气动式气压计模拟器的方法。实际上,现代数字电子技术被运用其中,借助这些技术,经典机械气压计的功能实现了 100%的模拟。气动式气压计包含两个箭头:一个黑色的测量箭头和一个黄色的参考箭头。
预测天气的方法如下:我们需要将黑色测量箭头与黄色箭头对齐。几个小时后,如果黑色测量箭头向左移动到黄色箭头的左侧,那么将会出现不稳定天气;而如果它向右移动,则天气将会好转并趋于稳定。如果这两个箭头保持对齐状态,那么预计天气状况不会有变化。在原始仪器中,参考箭头是通过仪器中间的按钮来移动的,在这种情况下,该功能是由旋转编码器来实现的。
这款设备极其简单,这得益于其 CROWPANEL 圆形显示屏,该显示屏内置了 ESP32S3 微控制器和旋转编码器。因此,只需将 BME280 模块连接到该显示屏模块对应的 I2C 端口即可。
这是我首次使用 LVGL 库和 Squareline Studio 进行的项目开发,它能让你以相对简单的方式创建出极具视觉效果且功能强大的项目。
这次我就不详细阐述在 Squareline Studio 中开发和创建代码及用户界面的方法了,因为这些内容在之前的许多教程中都有详细介绍。不过,我会简要描述一下成功重现该项目的步骤。
该项目由 PCBWay 公司赞助。从概念设计到实际生产,PCBWay 为全球创新者提供前沿的电子设计解决方案,涵盖硬件设计、软件开发、机械设计、产品测试及认证等方面。PCBWay 工程团队由在电子、嵌入式系统和产品开发领域经验丰富的工程师组成。他们成功完成了涵盖医疗设备、工业自动化、消费电子、智能家居和物联网等多个行业的数百个项目。
以下是使用所给库进行设备安装的详细说明。
首先,您需要使用版本为 1.8.15 及以上的 Arduino IDE。然后,请根据 Elecrow GitHub 页面上的说明安装 ESP32 核心版本 2.0.14 或 2.0.15。现在,在“工具-板-ESP32 Arduino”中,我们需要选择 ESP32S3 开发模块。
在本板中,我们需要对一些属性进行修改:闪存大小 16MB、分区方案 - 大型应用程序,以及 PSRAM - OPI PSRAM。接下来,我们需要安装 LVGL 库,具体版本为 8.3.11。您还需要安装 Arduino_GFX_Library 以及 Adafruit_BME280 库。所有这些库和必要的文件都在文末给出。接下来是另一个重要的操作,即在“库”文件夹的根目录(通常该文件夹位于用户/文档/Arduino 目录下)中,您需要复制 LVGL 库的配置文件,名为“lv_conf.h”。现在我们完成了支持部分,接下来需要编译并上传给定的代码。
为此,我们解压名为“Code Final.zip”的文件,但不更改内部文件夹的名称。我们进入该文件夹,并启动“.ino”文件。这样,代码就与之前使用 Squareline Studio 创建的必要用户界面文件一同被打开。现在我们可以编译并上传代码,而不会出现错误。
至于代码的编写方式,其设计使得我们能够轻松更改几个参数,从而实现气压计的正常和精确运行:
•我们所在的高度被输入到了如下这一行中:static const float ALTITUDE_M =
•从传感器读取数值的频率在以下这行代码中进行了定义:static const uint32_t READ_PERIOD_MS
•气压计的“校准”操作是在以下代码行中进行的:static const float NEEDLE_OFFSET_DEG,这里我们设定了一个角度值,以便箭头能够准确显示显示在串行监视器中的实际气压值。
•而黄色箭头移动时所具有的精确程度,即变化步长,是在以下这行代码中设定的: float diff = (encoderValue - lastEncoderValue) * 1.0f;
现在让我们来看看该设备在实际环境中的运行情况:在开启设备后,屏幕上会立即出现一幅复古型气压计的详细图像,黑色箭头会短暂停留在当前的相对大气压力值上。通常情况下,如果压力高于 1013 百帕,就表明天气状况稳定;如果低于 1013 百帕,则表明天气不稳定。对我们而言,一段时间内(至少 3 次)大气压力的变化数据非常重要。
为此,我们将参考的黄色箭头精确地设置在黑色箭头的正上方。如果经过一定时间后,黑色箭头相对于黄色箭头向左移动了,那么天气就会变得不稳定;反之,如果它向右移动,天气就会趋于稳定。如果这两个箭头保持重叠状态,那么天气就不会发生变化。通过用手指在传感器上方按压(人为增加压力),我们可以看到箭头缓慢地向右移动,然后在短时间内又回到初始状态。由此可见,这个气压计完全模拟了机械式安诺里德气压计。唯一的区别在于,对于机械气压计而言,为了准确读取当前值,你必须多次轻触玻璃表面,而在这种情况下总是准确的,这无疑是一个巨大的优势。更不用说其精度了,现在已经达到了小数点位数的精度。
最后,简单总结一下:该项目展示了现代电子技术如何能够完全取代并改进传统的机械仪器,以数字化的精确度呈现出现代化的复古外观。有了这款气压计,您不仅能获得一个实用的天气预报设备,还能为您的家增添一道视觉上的精彩装饰。
本文编译自hackster.io





