技术丨DIY小型室外气象站,实时监测气象情况
今天给大家分享一个智能气象站的设计。通过这个项目,可以锻炼项目实战能力,以及学会各种传感器的用法,无线通信等多方面技术,小白或新手可以一试。
█ 项目概述及组成
智能气象站可以测量温度、湿度、气压、风速和风向,以及降雨量。所有数据都由 ESP32收集,并通过WIFI发送到移动应用程序。在应用程序或网页上,我们可以看到来自气象站的实时数据和图表,例如温度,每天的最小值和最大值,以及压力图,我们可以用来制作粗略的天气预报。
要建造这个气象站,需要下面这些主要元器件:ESP32板,带外置无线天线micro USB 数据线DHT22温湿度传感器BMP180 压力传感器各种电线电缆5V 至 3.3V 电平转换器6 个霍尔效应传感器
此外,要将项目连接到应用程序,需要在树莓派或计算机上运行家庭助理。如果没有家庭助理,可以将气象站连接到Blynk,但需要为其编写代码。
█ 设置温度传感器
为了测量温度和湿度,将使用DHT22传感器。将传感器焊接到洞洞板上,在 3.3V 和信号引脚之间有一个连接器和一个上拉电阻。把传感器放在Stevenson屏幕里。Stevenson屏幕保护传感器免受阳光直射和雨水的影响,同时允许空气通过,因此可以获得更准确的温度读数。
为了构建它,用3D打印了所有零件,并用两根螺纹杆将它们连接起来。把洞洞板板和传感器粘在Stevenson屏幕内,然后在下面放了一个支架,将传感器固定起来。
█ 制作风向标
风向标可以检测风来自哪个方向。同样对于这个风向标,不得不用3D打印机制作一些零件。风向标的背面有这个箭头形的部件,前面的尖端有一个螺栓平衡它的重量。旗帜可以用放在底座上的滚珠轴承自由旋转。为了检测风的 4 个基点(北、东、南、西),将使用 4 个霍尔效应传感器,它们是磁传感器,当磁铁接近时会激活。
我的想法是放置霍尔传感器,下面这张照片所示,磁铁旋转并激活旗帜转向的基点的传感器。对于中间点,例如东北,两个相应的传感器(北和东)将被激活。我将磁性传感器放置在风向标的底部,升高约1厘米,以使它们远离可以吸引磁铁的金属螺栓。在上部,粘上了磁铁,可以自由旋转。这件作品还具有保护传感器免受雨淋的功能。我将实际的风向标插入螺纹杆上,并用自锁螺母固定。
每个霍尔传感器都有 3 根电线,设计几个小的 LED,通过LED可以查看传感器是否正常工作。然后将四块板焊接到洞洞板上。
然后通过一根网线将GND和5V连接到传感器,将四个信号引脚连接到主板,最后把四个传感器的板放在这个3D打印的盒子里。
█ 制作风速监测仪
下一步是风速计的制作。风速计由底座和旋转部分组成。对于旋转部分,杯子和中心件分别印刷并用 3 个螺钉组装。在风速计内部,底座上有一个磁性霍尔传感器,旋转部分有一个磁铁。传感器在每转一圈时都会发出一个脉冲。根据每分钟的转数,可以计算出风速,但目前我不知道我必须用什么数字将每分钟的转数乘以 km/h。如果有人知道如何计算它,请在下面的评论中写下这来。根据在网上发现的,一个粗略(可能是错误的)估计是将每分钟转速乘以0.18。
█ 制作雨量计
最后是雨量计。这也使用磁传感器,并且传感器状态的每次变化都意味着一定量的水已经通过,雨量以毫米为单位。
█ 铝制框架制作
为了更容易地将气象站安装在其最终搭配中,将各种传感器放在一个结构上。为了做到这一点,使用了矩形铝型材。在中间,固定了雨量计,在两侧放了风速计和风向标。为了支撑所有东西,又切了两块铝型材。在它们的一侧,做了一个漂亮的大孔,这可以固定它们而不会让螺栓伸出下面。在螺栓连接所有开关后,这就是结果。此步骤是可选的,如果需要,可以将单个传感器安装在已有的结构上,例如屋顶的侧面。
█ 电路部分设计及压力传感器
电路连接如下所示:
现在我们有了所有的电子设备,并将它们放置在接线盒中。
差点忘记了还有大气压力传感器,即BMP180。把它放在盒子里,为了让空气通过,在下面做了这个网格。该传感器通过I2C进行通信,因此它需要两根电线才能连接到 ESP32。
温度传感器只有一根信号线,直接连接到 ESP32 的引脚。问题在于风速计、雨量计和风向标的霍尔传感器,它们的工作电压为 5V,而 ESP32 的工作电压为 3.3V。因此,要将信号从5V转换为3.3V,可以使用一些电平转换器。为了使一切更整洁,我将它们焊接到洞洞板上。在开发板和 ESP32 之间建立连接,使用了 JST 连接器,它比经典跳线更坚固。最后,将GND,5V和3.3V的电线连接在一起,并用电缆扎带整理电线。
█ 连接到家庭助理
气象站将连接到家庭助理,家庭助理是一种本地服务器,用于控制我们家中的各种家庭自动化设备。家庭助理可以在Raspberry Pi或虚拟机上的计算机上运行。为了将气象站连接到家庭助理,将使用 ESPhome,它允许将 ESP32 连接到家庭助理。设置完所有内容后,可以从网页或应用程序中实时查看气象站数据。此外,数据被记录下来,还可以看到长期趋势的图表。
█ 操作步骤:
1)在树莓派或带有虚拟机的计算机上安装家庭助理(在线有许多针对不同系统的教程)
2)从官方附加组件商店,安装 ESPhome
3)在 ESPhome 中添加新设备,选择 ESP32
4)在 ESPhome 代码的空间中,将以下代码粘贴在 ESPhome 提供的代码之后,并在需要的地方插入 wifi ssid 和密码
▶代码内容(上下滑动查看)
i2c:
sda: 21
scl: 22
scan: true
id: bus_a
sensor:
- platform: dht
pin:4
temperature:
name: "Temperatura esterna"
humidity:
name: "Umidità esterna"
update_interval: 10s
- platform: pulse_counter
pin: 23
count_mode:
rising_edge: INCREMENT
falling_edge: INCREMENT
unit_of_measurement: "mm"
name: "Pioggia istantanea"
filters:
- multiply: 0.173
total:
unit_of_measurement: "mm"
name: "Pioggia"
accuracy_decimals: 3
filters:
- multiply: 0.173
update_interval: 5s
- platform: bmp085
temperature:
name: "Temperatura centralina"
pressure:
name: "Pressione esterna"
update_interval: 10s
- platform: pulse_counter
pin: 19
unit_of_measurement: "Km/h"
name: "Velocità del vento"
filters:
- multiply: 0.18
update_interval: 5s
- platform: uptime
name: Uptime
binary_sensor:
- platform: gpio
pin: 33
name: "Vento direzione NORD"
- platform: gpio
pin: 25
name: "Vento direzione OVEST"
- platform: gpio
pin: 26
name: "Vento direzione SUD"
- platform: gpio
pin: 27
name: "Vento direzione EST"
5)单击安装并插入计算机,然后使用微型 USB 电缆将 ESP32 连接到计算机
6)按照屏幕上的说明在 ESP32 上安装代码
关于风向标配置,风向标分别以二进制传感器(开或关)的形式给出四个传感器的状态。要将这四个值转换为更易读的格式(例如北或西南),我们必须在家庭助理中创建自定义传感器。有一些代码,但它非常有道理。
要创建自定义传感器,我们必须编辑 configuration.yaml。为此,我们需要安装文件编辑器插件,将以下代码粘贴到传感器下:
▶代码内容(上下滑动查看)
sensor:
- platform: template
sensors:
direzione_vento:
friendly_name: Wind direction
value_template: >-
{% if states("binary_sensor.vento_direzione_ovest")== "off"andstates("binary_sensor.vento_direzione_nord") == "off" %}
NORTH-WEST
{% elif states("binary_sensor.vento_direzione_est")== "off"
and states("binary_sensor.vento_direzione_nord") == "off" %}
NORTH-EAST
{% elif states("binary_sensor.vento_direzione_ovest")== "off"and states("binary_sensor.vento_direzione_sud") == "off" %}
SOUTH-WEST
{% elif states("binary_sensor.vento_direzione_est")== "off"and states("binary_sensor.vento_direzione_sud") == "off" %}
SOUTH-EAST
{% elif states("binary_sensor.vento_direzione_nord")== "off"%}
NORTH
{% elif states("binary_sensor.vento_direzione_est") == "off" %}
EAST
{% elif states("binary_sensor.vento_direzione_sud") == "off"%}
SOUTH
{% elif states("binary_sensor.vento_direzione_ovest") == "off"%}
WEST
{% endif %}
然后,检查配置以及它是否有效重新启动家庭助理。
关于雨量计配置:雨量计通过ESPhome发送总降雨量,每一步都会增加。如果 ESP32 重新启动,此值将变为零。因此,要获得一个只能增加的值并在经过一定时间后重置,我们可以使用由家庭助理提供的电表。有了它,我们可以在仪表板中显示总降雨量,当天的降雨量等等。
█ 仪表板
一旦气象站最终上线,我们可以创建自定义仪表板来显示传感器读数和图表。对于图形,建议使用迷你图形卡集成,可以通过家庭助理社区商店安装。如果想获得仪表板的想法,可以在顶部找到我的仪表板的屏幕截图。下面我上传了仪表板的代码文件,如果您想通过文本编辑器对其进行编辑。
要记录数据,可以在家庭助理中配置数据库(记录器集成)。要通过智能手机查看数据,可以下载家庭助理应用程序APP。要从本地网络外部进行连接,我使用的是Nabu Casa云,这是最简单的解决方案,但不是免费的。还有其他解决方案,但它们并不完全安全。
好了,以上就是ESP32气象站的制作全过程,感兴趣的同学快动手自己制作一个吧~
如果你想靠自己花开花落岁月催人老,二十几岁的小青年,如果你不是国家事业编制,俗称吃皇粮的,你若一直都是打工阶层,总有一天会被老板嫌弃!三十五岁会不约而来,四十岁也不会放过你的!想要假装看不见实况
赵本山御用老伴,曾月薪3千,后被看中,戴名表开豪车有一年,47岁的赵本山在办公室,对23岁的关婷娜说小关,跟你商量个事,以后作我的御用老伴吧!关婷娜有点害羞这样合适吗?听了赵本山的解释,终于放下了包袱。要知道,赵本山是中国的喜剧之
刀当年是因为什么离开乐坛,真的是因为那英吗?还记得刀吗?曾经火遍全中国的刀,在没有宣传的情况下,刀郎的正版唱片销量高达270多万张,盗版的就不知道有多少了,要知道在零几年的时候,网络还不发达哦,不像现在电脑普及了,成为中国唱
她是京圈名导宠儿号称大飙蜜,13岁成名却被曝生活混乱吴京曾说他不建议女生进娱乐圈,因为娱乐圈就是个大染缸,表面光鲜亮丽实际这里边很乱。这20年艺人走歪路不忠诚圈养等八卦频出印证了吴京这句话。举个鲜明的例子许晴。许晴这个人太牛了,满分
孙茜晒一家三口沙漠聚餐照,庆祝结婚九周年,力破家暴传闻在甄嬛传中饰演槿汐姑姑的孙茜,自从结婚后就一直很低调,很少在社交平台秀恩爱。9月27日是她和丈夫蔡远航结婚9周年的纪念日,孙茜高调晒出一家三口在沙漠的聚餐照。他们在黄沙里品红酒,看
7年后看琅琊榜才懂,林殊的最后一封信藏着对霓凰最大的讽刺一眨眼,琅琊榜已经播出7年了,7年过去,这部剧依然还是国产剧里的佼佼者,百看不厌。林殊和霓凰的故事,如今想来还是令人感动惋惜,林殊是剧中最有情有义的一个,也是最无情的角色,他对得起
曾经万人斩永劫无间单挑王,却被AI虐的死去活来?做梦都能吓醒竞技游戏中的人机模式,一直以来都是玩家用来熟悉游戏精进技术的最佳手段之一。相对于真人,AI的行为会稍显呆板,只会按照指令来行动。即使强如英雄联盟中的末日人机,也仅仅是在数值和技能类
EVE手游瓜盟复盘绝地源泉游击会战,三方权谋的绝命攻守战会战伊始9月22日,3V和阿斯加德联军普遍感觉挫败后,双方的指挥官及高层痛定思痛,重新制定了作战方案,并且在9月23日得到了新的实践。高层决策和22日一样,3V选择了8点在萨特开始
青蛇白蛇重做确定,团扇花灯特效满分,个性动作免费拿大乔小乔的青蛇白蛇已经优化了一年了,现在终于确定最终的版本了,而优化后的青蛇白蛇在技能特效方面并没有做太多的改动,只是在模型原画和动画等方面改动了。据了解,到时候这两款皮肤在优化后
羊了个羊,火不了太久你玩羊了个羊了吗?羊瘾犯了停不下来怎么办?真有第三关吗?近日,一款名为羊了个羊的微信小游戏火爆全网。无论是餐厅还是地铁上,不时能看到低头玩游戏的人。据统计,该游戏仅在微博平台就有超
力小莱说04力莱如你,它并不完美1力莱如你,并不完美。力莱马上已经14岁了,它精力充沛,积极向上,渴望成长。然而相对未来还有86年的漫漫长路来说,它仍是一个少年。跑得太快,也会摔跤,偶尔粗心大意,也会犯错。同时它