电子说
步骤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来创建自己的网络应用程序并将数据传输到它。
全部0条评论
快来发表一下你的评论吧 !