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 到特定的版本 # 首先…...

第十六届蓝桥杯 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 克隆指定分支(默认只下载该分支) git clone -b <分支名> --single-branch <仓库URL> 示例(克隆 某一个 分支): git clone -b xxxxxx --single-branch xxxxxxx -b :指定分支…...

从零开发一个B站视频数据统计Chrome插件
从零开发一个B站视频数据统计Chrome插件 前言 B站(哔哩哔哩)作为国内最大的弹幕视频网站之一,视频的播放量、点赞、投币、收藏等数据对于内容创作者和数据分析者来说非常重要。本文将带你一步步实现一个Chrome插件,自动统计并展…...
经典算法 石子合并问题
石子合并问题 问题描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。试设计出一个算法,计算出将N堆石子合并成1堆最大得分和最小得分。 输入描述…...

[stm32] 4-1 USART(1)
文章目录 前言4-2 USART与串口通信(1)USART简介什么是USART?USART名字的含义?如何使用USART? USART的工作原理什么是串并转换?为什么要进行串并转换?移位寄存器串并行转换电路 USART寄存器组和完整框图 前言 本笔记内容ÿ…...
智能家居的OneNet云平台
一、声明 该项目只需要创建一个产品,然后这个产品里面包含几个设备,而不是直接创建几个产品 注意:传输数据使用到了不同的power,还有一定要手机先联网才能使用云平台 二、OneNet云平台创建 (1)Temperatur…...

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

【AI生产力工具】Windsurf,一款AI编程工具
Windsurf 是 Codeium 公司推出的一款 AI 编程助手,它是一款集成深度上下文感知、多模型协作和实时代码管理的综合开发环境(IDE)。 Windsurf 作为 AI 编程工具的核心价值在于 “上下文感知 + 多模型协作 + 自动化工作流”,其深度集成的智能体系统(如 Flows 和 Cascade)正…...
YOLOv11改进:利用RT-DETR主干网络PPHGNetV2助力轻量化目标检测
这里写自定义目录标题 YOLOv11改进:利用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:# 开启驼峰命名规则,默认true开启map-underscore-to-camel-case: true# 控制台日志打印,便于查看SQLlog-impl: org.apache.ibatis.logging.stdout.StdOutImpl TableName 作用:表名注解,标识…...
oracle 批量查询每张表的数据量
在 Oracle 中批量查询每张表的数据量,可以通过以下两种方法实现。根据数据量大小和实时性要求选择适合的方案: 方法一:通过数据字典快速查询(推荐) 原理: 使用 USER_TABLES(当前用户的表)或 DBA_TABLES(所有表,需DBA权限)中的 NUM_ROWS 字段,该字段记录了表的行数…...
linux netlink实现用户态和内核态数据交互
1,内核态代码 #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 数对 解题思路 输入读取与初始化: 使用 Scanner 读取输入。n 表示数组的长度,c 表示目标差值。使用一个 HashMap 存储数组中每个数字及其出现的次数,方便快速查找。数组 a 用于存储输入的数字。 构建哈希映射: 遍历数…...
WebAPI项目从Newtonsoft.Json迁移到System.Text.Json踩坑备忘
1.控制器层方法返回类型不能为元组 控制器层方法返回类型为元组时,序列化结果为空。 因为元组没有属性只有field,除非使用IncludeFields参数专门指定,否则使用System.Text.Json进行序列化时不会序列化field var options new JsonSerializ…...

batch normalization和layer normalization区别
Normalization无非就是这样一个操作: 其中x是输入数据,维度为(B,T,C),其中B是batchsize,T是序列长度,C是embedding维度;括号内是标准化操作,γ和…...
音视频开发成长之路与音视频知识总结
音视频开发曾经是一个富有挑战性和技术深度的领域。我来分享整理音视频开发的成长路径和知识体系: 音视频开发成长路线图 1. 基础阶段(1-3个月) 计算机基础:C/C、数据结构、操作系统音视频基础概念:采样率、比特率、…...

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

JVM 一文详解
目录 JVM 简介 JVM 中的内存区域划分 1. 堆(一个进程只有一份 ------ 线程共享) 2. 栈(一个进程可以有 N 份 ------ 线程私有) Java 虚拟机栈: 本机方法栈: 3. 程序计数器(一个线程可以…...
OCR身份证识别(正反面)_个人证照OCR识别_开放API接口使用指南
一、接口简介 在数字化时代,快速准确地提取身份证信息变得尤为重要。**万维易源提供的“身份证OCR识别”API接口,能够快速提取二代居民身份证正反面的所有字段信息,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限等。…...
《淘宝 API 数据湖构建:实时商品详情入湖 + Apache Kafka 流式处理指南》
随着电商行业的蓬勃发展,淘宝作为头部电商平台,积累了海量的商品数据。构建淘宝 API 数据湖,将实时商品详情数据纳入其中,并借助 Apache Kafka 进行流式处理,能够为企业提供强大的数据支撑,助力精准营销、市…...