当前位置: 首页 > article >正文

IOT项目——DIY 气象站

开源项目:ESP32 气象站
作者:GiovanniAggiustatutto
原文链接:原文

开源项目:太阳能 WiFi 气象站 V4.0
作者:opengreenenergy
原文链接:原文
在这里插入图片描述

在这里插入图片描述

DIY 气象站

  • 简介
    • 1-制版
    • 2-物料
  • 温度设备塔
  • 风向标
  • 风速计
  • 雨量计
  • 框架
  • 电子元件和压力传感器
  • 家庭助理
  • 配置及应用


气象站测量温度、湿度、气压、风速和风向以及降雨量。
所有数据均由 ESP32收集,并通过 wifi 发送到移动应用程序。
在应用程序或网页上,我们可以看到来自气象站和图表的实时数据,
例如温度,每天的最小值和最大值,以及压力图,我们可以用它来进行粗略的天气预报。
如果这听起来很困难,请不要担心,在本指南中您可以找到所有信息。


简介

从开源的网站上看到了一个很有意思的气象站项目,想进行复刻。本文章用户复刻过程中的记录和分享,使用文章内容请引用原作者的文章链接。项目源于印度开源网站,有兴趣详细了解的上面提供了原文章链接,可以自行跳转学习(建议翻墙)。

目前只是引用了作者的文章内容,这些程序需要进行验证,比较软件和环境一直在更新,不能确保现在或者以后还能正常运行程序。

1-制版

2-物料

温度设备塔

为了测量温度和湿度,我将使用 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。设置完所有内容后,我可以通过网页或应用程序实时查看气象站数据。此外,数据被记录下来,我还可以看到长期趋势的图表。

配置及应用

相关文章:

IOT项目——DIY 气象站

开源项目:ESP32 气象站 作者:GiovanniAggiustatutto 原文链接:原文 开源项目:太阳能 WiFi 气象站 V4.0 作者:opengreenenergy 原文链接:原文 DIY 气象站 简介1-制版2-物料 温度设备塔风向标风速计雨量计框…...

MODSIM选型指南:汽车与航空航天企业如何选择仿真平台

1. 引言 在竞争激烈的汽车与航空航天领域,仿真技术已成为产品研发不可或缺的环节。通过在设计阶段验证概念并优化性能,仿真平台能有效缩短开发周期并降低物理样机制作成本。 MODSIM(建模与仿真)作为达索系统3DEXPERIENCE平台的核…...

【JavaEE】springMVC返回Http响应

目录 一、返回页面二、Controller和ResponseBody与RestController区别三、返回HTML代码⽚段四、返回JSON五、HttpServletResponse设置状态码六、设置Header6.1 HttpServletResponse设置6.2 RequestMapping设置 一、返回页面 步骤如下: 我们先要在static目录下创建…...

计算机网络八股文--day4 --传输层TCP与UDP

这是面试中最常考到的一层:端到端(也就是进程之间)的透明数据传输服务,差错控制和流量控制 该层呈上启下,像上面的资源子网提高服务,并使用下面通信子网的服务 端口,用于唯一标识主机上进程的&…...

个人开发免费好用

聊一聊 现在输入法非常多,有时候都不知道哪个更好用。 其实,只有多尝试,才能找到适合自己的。 今天给大家分享一款输入法,用起来比较顺手,大家可以试试。 软件介绍 BL输入法 这是一款绿色纯净,安全放心…...

[随笔] 升级uniapp旧项目的vue、pinia、vite、dcloudio依赖包等

汇总 # 升级uniapp项目dcloudio整体依赖,建议执行多次 # 会顺带自动更新/升级vue的版本 npx dcloudio/uvmlatest alpha# 检查 pinia 的最新版本 npm view pinia version# 更新项目 pinia 到最新版本 npm update pinia# 更新项目 pinia 到特定的版本 # 首先&#xf…...

第十六届蓝桥杯 2025 C/C++组 密密摆放

目录 题目: 题目描述: 题目链接: 思路: 思路详解: 发个牢骚: 代码: 代码详解: 题目: 题目描述: 题目链接: P12337 [蓝桥杯 2025 省 AB/Python B 第二…...

【QT】QT中的网络编程(TCP 和 UDP通信)

QT中的网络编程(TCP 和 UDP通信) 1.tcp1.1 tcp通信1.1.1 相比linux中tcp通信:1.1.2 QT中的tcp通信: 1.2 tcp通信流程1.2.1 服务器流程:1.2.1.1 示例代码1.2.1.2 现象 1.2.2 客户端流程:1.2.2.1 示例代码1.2.2.2 现象: …...

Spring MVC @RequestBody 注解怎么用?接收什么格式的数据?

RequestBody 注解的作用 RequestBody 将方法上的参数绑定到 HTTP 请求的 Body(请求体)的内容上。 当客户端发送一个包含数据的请求体(通常在 POST, PUT, PATCH 请求中)时,RequestBody 告诉 Spring MVC 读取这个请求体…...

第38课 常用快捷操作——双击“鼠标左键”进入Properties Panel

概述 在设计过程中,我们经常需要更改某个图元的属性,例如更该焊盘的大小、更改网络的名称等等。 在AD 20中,更改属性一般都是在Properties Panel上完成的。 当我们要更改某个图元的属性时,我们用鼠标左键双击它,就可…...

【git】获取特定分支和所有分支

1 特定分支 1.1 克隆指定分支&#xff08;默认只下载该分支&#xff09; git clone -b <分支名> --single-branch <仓库URL> 示例&#xff08;克隆 某一个 分支&#xff09;&#xff1a; git clone -b xxxxxx --single-branch xxxxxxx -b &#xff1a;指定分支…...

从零开发一个B站视频数据统计Chrome插件

从零开发一个B站视频数据统计Chrome插件 前言 B站&#xff08;哔哩哔哩&#xff09;作为国内最大的弹幕视频网站之一&#xff0c;视频的播放量、点赞、投币、收藏等数据对于内容创作者和数据分析者来说非常重要。本文将带你一步步实现一个Chrome插件&#xff0c;自动统计并展…...

经典算法 石子合并问题

石子合并问题 问题描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆&#xff0c;并将新的一堆的石子数&#xff0c;记为该次合并的得分。试设计出一个算法,计算出将N堆石子合并成1堆最大得分和最小得分。 输入描述…...

[stm32] 4-1 USART(1)

文章目录 前言4-2 USART与串口通信(1)USART简介什么是USART?USART名字的含义&#xff1f;如何使用USART&#xff1f; USART的工作原理什么是串并转换&#xff1f;为什么要进行串并转换&#xff1f;移位寄存器串并行转换电路 USART寄存器组和完整框图 前言 本笔记内容&#xff…...

智能家居的OneNet云平台

一、声明 该项目只需要创建一个产品&#xff0c;然后这个产品里面包含几个设备&#xff0c;而不是直接创建几个产品 注意&#xff1a;传输数据使用到了不同的power&#xff0c;还有一定要手机先联网才能使用云平台 二、OneNet云平台创建 &#xff08;1&#xff09;Temperatur…...

记录两个免费开源又好用的后台模版vue3

一.element-plus-admin 一套基于vue3、element-plus、typesScript、vite的后台集成方案 1.简介 vue-element-plus-admin 是一个基于 element-plus 免费开源的中后台模版。使用了最新的 Vue3&#xff0c;Vite&#xff0c;Typescript等主流技术开发&#xff0c;开箱即用的中后…...

【AI生产力工具】Windsurf,一款AI编程工具

Windsurf 是 Codeium 公司推出的一款 AI 编程助手,它是一款集成深度上下文感知、多模型协作和实时代码管理的综合开发环境(IDE)。 Windsurf 作为 AI 编程工具的核心价值在于 “上下文感知 + 多模型协作 + 自动化工作流”,其深度集成的智能体系统(如 Flows 和 Cascade)正…...

YOLOv11改进:利用RT-DETR主干网络PPHGNetV2助力轻量化目标检测

这里写自定义目录标题 YOLOv11改进&#xff1a;利用RT-DETR主干网络PPHGNetV2助力轻量化目标检测1. 介绍2. 引言3. 技术背景3.1 YOLOv11概述3.2 RT-DETR与PPHGNetV23.3 相关工作 4. 应用使用场景5. 详细代码实现5.1 环境准备5.2 PPHGNetV2主干网络实现5.3 YOLOv11与PPHGNetV2集…...

Android 端如何监控 ANR、Crash、OOM 等严重问题

在移动互联网时代,Android 应用已经成为我们生活中不可或缺的一部分。从社交聊天到在线购物,从娱乐消遣到办公学习,几乎每个人的手机里都装满了各式各样的应用。然而,作为开发者,咱们得面对一个残酷的现实:用户的耐心是有限的。如果一个应用频繁卡顿、闪退,甚至直接崩掉…...

Mybatisplus:一些常用功能

自动驼峰 mybatis-plus:configuration:# 开启驼峰命名规则&#xff0c;默认true开启map-underscore-to-camel-case: true# 控制台日志打印&#xff0c;便于查看SQLlog-impl: org.apache.ibatis.logging.stdout.StdOutImpl TableName 作用&#xff1a;表名注解&#xff0c;标识…...

oracle 批量查询每张表的数据量

在 Oracle 中批量查询每张表的数据量,可以通过以下两种方法实现。根据数据量大小和实时性要求选择适合的方案: 方法一:通过数据字典快速查询(推荐) 原理: 使用 USER_TABLES(当前用户的表)或 DBA_TABLES(所有表,需DBA权限)中的 NUM_ROWS 字段,该字段记录了表的行数…...

linux netlink实现用户态和内核态数据交互

1&#xff0c;内核态代码 #include <linux/module.h> #include <linux/netlink.h> #include <net/sock.h> #define NETLINK_TEST 31 struct sock *nl_sk NULL; static void nl_recv_msg(struct sk_buff *skb) { struct nlmsghdr *nlh; int pid; …...

java 洛谷题单【算法2-2】常见优化技巧

P1102 A-B 数对 解题思路 输入读取与初始化&#xff1a; 使用 Scanner 读取输入。n 表示数组的长度&#xff0c;c 表示目标差值。使用一个 HashMap 存储数组中每个数字及其出现的次数&#xff0c;方便快速查找。数组 a 用于存储输入的数字。 构建哈希映射&#xff1a; 遍历数…...

WebAPI项目从Newtonsoft.Json迁移到System.Text.Json踩坑备忘

1.控制器层方法返回类型不能为元组 控制器层方法返回类型为元组时&#xff0c;序列化结果为空。 因为元组没有属性只有field&#xff0c;除非使用IncludeFields参数专门指定&#xff0c;否则使用System.Text.Json进行序列化时不会序列化field var options new JsonSerializ…...

batch normalization和layer normalization区别

Normalization无非就是这样一个操作&#xff1a; 其中x是输入数据&#xff0c;维度为&#xff08;B&#xff0c;T&#xff0c;C&#xff09;&#xff0c;其中B是batchsize&#xff0c;T是序列长度&#xff0c;C是embedding维度&#xff1b;括号内是标准化操作&#xff0c;γ和…...

音视频开发成长之路与音视频知识总结

音视频开发曾经是一个富有挑战性和技术深度的领域。我来分享整理音视频开发的成长路径和知识体系&#xff1a; 音视频开发成长路线图 1. 基础阶段&#xff08;1-3个月&#xff09; 计算机基础&#xff1a;C/C、数据结构、操作系统音视频基础概念&#xff1a;采样率、比特率、…...

【多线程】七、POSIX信号量 环形队列的生产者消费者模型

文章目录 Ⅰ. 信号量一、POSIX 信号量的概念二、POSIX 信号量的类型区别三、POSIX 信号量与 SystemV 信号量的区别Ⅱ. 线程信号量基本原理一、为什么要引入信号量❓二、PV 操作三、POSIX 信号量的实现原理四、CAS操作介绍Ⅲ. POSIX未命名信号量接口一、初始化无名信号量二、销毁…...

JVM 一文详解

目录 JVM 简介 JVM 中的内存区域划分 1. 堆&#xff08;一个进程只有一份 ------ 线程共享&#xff09; 2. 栈&#xff08;一个进程可以有 N 份 ------ 线程私有&#xff09; Java 虚拟机栈&#xff1a; 本机方法栈&#xff1a; 3. 程序计数器&#xff08;一个线程可以…...

OCR身份证识别(正反面)_个人证照OCR识别_开放API接口使用指南

一、接口简介 在数字化时代&#xff0c;快速准确地提取身份证信息变得尤为重要。**万维易源提供的“身份证OCR识别”API接口&#xff0c;能够快速提取二代居民身份证正反面的所有字段信息&#xff0c;包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限等。…...

《淘宝 API 数据湖构建:实时商品详情入湖 + Apache Kafka 流式处理指南》

随着电商行业的蓬勃发展&#xff0c;淘宝作为头部电商平台&#xff0c;积累了海量的商品数据。构建淘宝 API 数据湖&#xff0c;将实时商品详情数据纳入其中&#xff0c;并借助 Apache Kafka 进行流式处理&#xff0c;能够为企业提供强大的数据支撑&#xff0c;助力精准营销、市…...