开源项目:ESP32 气象站
作者:GiovanniAggiustatutto
原文链接:
气象站测量温度、湿度、气压、风速和风向以及降雨量。所有数据均由 ESP32收集,并通过 wifi 发送到移动应用程序。在应用程序或网页上,我们可以看到来自气象站和图表的实时数据,例如温度,每天的最小值和最大值,以及压力图,我们可以用它来进行粗略的天气预报。如果这听起来很困难,请不要担心,在本指南中您可以找到所有信息。
要建造 weahter 站,我们需要:
带外部 wifi 天线的 ESP32 开发板
微型 USB 数据线
电子元件塑料盒
DHT22 温湿度传感器
BMP180 压力传感器
各种电线电缆
3D打印机白丝
5V 至 3.3V 电平转换器
6 霍尔效应传感器
Perfboard 冲浪板
M4 和 M5 螺纹杆
M4 和 M5 螺栓和螺母
温度设备塔
为了测量温度和湿度,我将使用 DHT22 传感器。我将传感器焊接到一个穿孔板上,在 3,3v 和信号引脚之间有一个连接器和一个上拉电阻器。我将传感器放入史蒂文森筛网中。史蒂文森滤网可保护传感器免受阳光直射和雨水的直射,同时允许空气通过。通过避免阳光加热传感器,它可以获得更准确的温度读数。为了构建它,我 3D 打印了所有部件,并用两根螺纹杆将它们固定在一起。我将穿孔板与传感器粘在史蒂文森屏幕内,然后在下面放置了将支撑传感器的支架。
风向标
然后我们有风向标,它检测风来自哪个方向。同样对于这个,我不得不用 3D 打印机制作一些零件。风向标的后面有这个箭头状的块,前面有个尖端,里面有一个螺栓作为重物来平衡它。旗帜能用在底面装进去的滚珠轴承自由旋转。为了检测风的 4 个基本点(北、东、南、西),我将使用 4 个霍尔效应传感器,这些传感器是在磁铁接近时激活的磁性传感器。
我的想法是放置霍尔传感器,如第二张照片所示,磁铁旋转并激活国旗转向的基点的传感器。对于中间点,例如东北,两个相应的传感器(北和东)将被激活。我将磁传感器放在风向标的底座上,升高约 1 厘米,以使它们远离可能吸引磁铁的金属螺栓。在可以自由旋转的上部,我用胶水粘住了磁铁。这件还具有保护传感器免受雨淋的功能。我将实际的风向标插入螺纹杆上,并用自锁螺母固定。每个霍尔传感器都有 3 根电线,这些电线通过小 LED 连接到其原始电路板,这对于查看传感器是否正常工作很有用。我将这四块板焊接到穿孔板上。从那里,我使用一根旧的网线将 gnd 和 5v 连接到传感器,并将四个信号引脚连接到主板,我们稍后会看到。我将四个传感器的板子放在这个 3D 打印的盒子里,上面放一块亚克力。
风速计
现在是风速计。我已经在去年的一个视频中谈到了这一点,你可以在这里找到。我还用 3D 打印机制作了风速计,您可以在下面找到 STL 文件。风速计由底座和旋转部分组成。对于旋转部分,杯子和中心件分开打印,并用 3 个螺钉组装。在风速计内部,底座上有一个磁性霍尔传感器,旋转部分上有一个磁铁。传感器在每次旋转时发出一个脉冲。根据每分钟的转数,我们可以计算出风速,但目前我不知道我必须用什么数字将每分钟的转数乘以得到公里/小时。如果有人知道如何计算,请在下面的评论中写下这些计算。根据我在网上找到的,一个粗略的(可能是错误的)估计是将 rpm 乘以 0,18。
在这里插入图片描述
雨量计
最后,是雨量计。我在之前的 Instructable 中演示了这一点,因此您可以在那里找到所有详细信息,包括 3D 可打印文件。但是,这也使用了磁性传感器,传感器状态的每次变化都意味着有一定量的水通过。降雨量以毫米高为单位。
框架
为了更容易地将气象站安装在最终配置中,我将各种传感器放在一个结构上。为了制作它,我使用了矩形铝型材。我在中间固定了雨量计,在两侧放置了风速计和风向标。为了支撑所有东西,我又切了两块铝型材。在它们的一侧,我做了一个漂亮的大孔,这样我就可以固定它们,而不会让螺栓在下面伸出。在将所有东西都栓上后,这就是结果。此步骤是可选的,因为如果您愿意,您可以将单个传感器安装在已有的结构上,例如屋顶的侧面。
电子元件和压力传感器
但现在我们有了所有的电子设备,它们将在这个接线盒中。为了方便连接,我买了这个在端子上带有 ESP32 引脚的板子。我不知道为什么,但我的 ESP32 不适合这个板子。所以我不得不用穿孔板制作适配器来移动引脚。我将 ESP32 拧入包装盒中,并在底部放置了用于 WiFi 连接的天线。
我几乎忘记了大气压力传感器,即 BMP180。我把它放在盒子里,为了让空气通过,我在底部做了这个网格。该传感器通过 i2c 通信,因此它需要两根线才能连接到 ESP32,而不是 3,3v 和 GND。
现在,我们让所有其他传感器都通过它们的电线进入这里。温度传感器只有一根信号线,直接连接到 ESP32 的引脚。问题在于风速计、雨量计和风向标的霍尔传感器在 5v 下工作,而 ESP32 在 3.3v 下工作。因此,要将信号从 5v 转换为 3.3v,我将使用一些电平转换器,例如这些。为了让一切更整洁,我将它们焊接到穿孔板上。为了在开发板和 ESP32 之间建立连接,我使用了 JST 连接器,它比传统的跳线更坚固。最后,我将 gnd、5v 和 3.3v 的电线连接在一起,并用扎带整理电线。
家庭助理
气象站将连接到 Home Assistant,这是一种本地服务器,用于控制我们家中的各种家庭自动化设备。Home Assistant 可以在 Raspberry Pi 或虚拟机上的计算机上运行,就像我一样。为了将气象站连接到 Home Assistant,我将使用 ESPhome,它允许您将 ESP32 连接到 Home Assistant。设置完所有内容后,我可以通过网页或应用程序实时查看气象站数据。此外,数据被记录下来,我还可以看到长期趋势的图表。