简易气象站DIY

电子说

1.2w人已加入

描述

步骤1:所需的零件和工具

气象站

气象站

气象站

气象站

气象站

气象站

气象站

所需部件:

NodeMCU Board V0。 9或1.0

DHT-11的温度和湿度

BMP-280的气压

雨量传感器(可选)

LDO S111733PI

18650AA可充电锂离子电池x1

TP4056充电板

太阳能电池板(5.5至6v/100-120ma)

10kohm Resistor x1

其他材料和工具:

穿孔板(PCB)x1

AWG电线

螺钉端子x2

母头针

MDF板

烙铁

管道胶带

热胶枪

微型USB电缆

用于测试(可选):

面包板

跳线电线

第2步:测量天气数据

气象站

气象站

气象站

气象站

NodeMCU Board:

气象站

NodeMcu板实际上是一个Arduino带wifi屏蔽。这个wifi盾被称为esp8266。屏蔽可以作为单独的控制器购买和使用,众所周知的版本是esp8266 V1,它只有2个数字引脚。后来的版本确实有更多的数字引脚。

所以我们使用这个wifi屏蔽使用 Thingspeak API将我们的传感器数据传输到我们的网络应用程序。

DHT-11

DHT-11有一个名为DHT-22的后继产品,它更准确,耗电更少。您可以根据颜色区分DHT-11/DHT-22。市场上的大多数DHT-11传感器都是蓝色的,其中DHT-22是白色的。

气象站

DHT-11有4个引脚从左边开始:

Vin (左起第一个)

数据

的 NULL

的 GND

BMP-280

BMP-280传感器用于测量气压。 BME280是博世的下一代传感器,是BMP085/BMP180/BMP183的升级产品 - 具有0.25米的低海拔噪声和相同的快速转换时间。

气象站

该传感器的优点是它可以使用I2C或SPI与微控制器进行通信。为了简单方便接线,我使用了I2C版本板。

雨量传感器(可选)

气象站

雨水传感器检测水,完成传感器板印刷导线上的电路。传感器板充当可变电阻器,在潮湿时从100k欧姆变为干燥时的2M欧姆。

我在测试阶段使用了Rain传感器,但在最终项目中已将其删除,因为它在该项目中的使用效果不是很好。如果您的项目中需要雨量传感器,您可以使用它(我也为雨量传感器编写了相应的代码。)

步骤3:连接传感器

气象站

气象站

气象站

气象站

气象站

我建议你一个接一个地连接传感器,开始使用DHT11/DHT22传感器。一旦传感器正常工作,您可以继续添加下一个传感器。

成功连接后,转到编码阶段。

数据连接:

DHT-11

数据------- D4

Vin ---------- 3.36v

Gnd --------- Gnd

在Data和Vin之间加一个10k欧姆的电阻

BMP-280

SCL ------- D1

SDA ------- D2

Vin --- ------ 3.36v

Gnd -------- Gnd

雨量传感器

数据 - ----- A0

Vin -------- 5v/3.36v

Gnd ------- Gnd

第4步:编码

气象站

气象站

首先,我尝试了互联网上的几个草图。我发现大多数草图都是用LUA语言编写的,因此对我来说没用(因为我认为使用Arduino IDE)。

然后我开始编写自己的代码并获得成功。

在执行代码之前,请下载微控制器和传感器所需的必要库。

在下面的代码中:

气象站

输入您的Wifi SSID名称和密码。

Thingspeak API

我们要推送数据对于Thingspeak,我们必须开帐户。 Thingspeak是一项云服务。接下来,Thingspeak提供了几种与您的数据交互的选项,例如Thingtweet,Thinghttp等。

只需访问thingspeak.com并创建一个帐户即可。至少填写设置中的第一个和第二个字段。如果连接温度和湿度传感器(如下一步所述),请填写字段1中的“温度”,字段2中的“压力”(请参见上图)。如果你想连接其他传感器,如雨量传感器,只需对其余的字段做同样的事情。

现在转到API的部分

气象站

复制API密钥并将其粘贴到代码中。

链接:

第5步:电源

气象站

气象站

气象站

气象站

气象站

我的计划是无线部署气象站。要连续运行,必须有连续的电源。为电路提供连续电源的最佳方法是使用电池。但是几天之后电池就会耗尽,去那里充电是非常困难的。因此,使用太阳能充电电路来利用来自太阳的自由能量来为电池充电并为NodeMCU板供电。我使用的是18650锂离子电池。

为电池充电没有任何复杂情况(过度充电/过度放电 ),我有使用TP4056充电板,完美适用于3.7v/1Amp。它具有内置保护电路,如果电池在充电或放电时达到最大值,则会切断与电池的连接。

除了保护之外,它还为我们提供了使用微电池为电池充电的选项。 USB电缆以及太阳能电池板(通过终端)。因此,我们有多种充电选项。

深度睡眠模式(可选):

通过上述设置,我们可以使用太阳能电池板运行气象站(100mA)每天约10小时。之后,我们需要使用充电器为电池充电,以便在第二天使用。如果您可以在不需要时将其关闭或者在家中使用气象站,这不是什么大问题。

但如果您希望它连续运行并将其放置在您居住的偏远地区为了降低ESP8266 WiFi芯片的功耗,我们将采用深度睡眠模式,这是ESP芯片最省电的选择。无法频繁关闭它,这就成了一个问题。

为了降低ESP8266 WiFi芯片的功耗,我们将使用深度睡眠模式。它允许ESP8266进入休眠状态并节省电池电量。您可以定期唤醒它进行测量并发布它们。

NodeMCU(最大功耗)--------------------- 170 mA

NodeMCU(深度睡眠)------------------------------------ 0.02 mA

此项目的平均消耗量(基于所使用的传感器)-------------------------- 120 mA

如果我们需要5分钟的周期(深度睡眠时间为4.5分钟,传输时间为0.5分钟)

4.5分钟x 0.02毫安--------------- - 0.09 mA-mins

0.5 min x 120 mA ----------------- 60 mA-mins

_______________________________________

5分钟----------------------------- 60.09 mA-mins

因此整个气象站需要12.018 mA才能运行。

要运行一天,需要12.018 x 24 = 288.432 mA

如果我们平均需要3小时的阳光每天。我们可以从额定每天5v/100mA的太阳能电池板上获得100mA x 3 = 300mA 。

因此,它足以运行气象站而无需外部充电。

在使用深度睡眠功能之前,必须将NodeMCU D0引脚连接到RST引脚。

LDO S111733PI

气象站

这是一款低压差稳压器,可提供任何输入电压的恒定输出为3.3v。电池的输出不会是恒定值,因为完全充电的电池可以输出4.2v来炸送NodeMCU板。 NodeMCU板具有(5v及以上)Vin插槽以及(3至3.36v)输入电压插槽。项目中使用的所有传感器都需要3.36-3.6v,任何上述电压都会损坏它们或显示不准确的数据。

因此,使用LDO必须长时间运行气象站。

步骤6:组装PCB

气象站

气象站

气象站

气象站

成功测试后,将组件焊接到PCB上的时间。为此,你需要一个像样的焊铁,焊锡,钳子。

首先,我切断了NodeMCU板,BMP-280,DHT-11,雨量传感器和LDO的直母插头引脚。最好根据高度焊接组件。首先焊接较小高度的元件。

在组装插头引脚和螺钉端子后,是时候将电路板插入各自的接头中。

我已将TP4056电路板连接到使用双面胶带的PCB。

最后,我将18650电池插入电池座。

注意:我很抱歉我的焊接技巧,这是我的第一次焊接,我仍在练习:)

第7步:一体机中的一切

气象站

气象站

是时候为我们的PCB构建一个机箱了。我用了3mm厚的MDF板来制作一个盒子。太阳能电池板完美地安装在它的顶部。

我在盒子的两边分别为充电端口和NodeMCU编码端口做了两个孔。我不会在恶劣的条件下使用气象站,所以我没有使用任何防漏外壳。但如果您打算在外面有效地使用气象站,那么您可以使用一些塑料或金属外壳。

步骤8:可视化数据

气象站

气象站

气象站

气象站

气象站

Thingspeak服务为您提供各种图形和图表,以显示传感器数据。此外,您甚至可以使用Thingspeak Read API来创建自己的网络应用程序并将数据传输到它。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分