×

PCB设计的太阳能WiFi气象站V2.0

消耗积分:2 | 格式:zip | 大小:0.21 MB | 2022-08-18

ejlwj

分享资料个

电路板图如下:
pYYBAGL7AH6ANFQ_AAC_qeKfRZw128.jpg

描述

太阳能 WiFi 气象站 V2.0

 

这个项目是我早期 气象站 项目的延续。它在网络上非常流行,全球各地的人们都通过关注它并提供有价值的反馈来改进它。考虑到我早期项目的评论和问答部分,我决定制作这个新版本的气象站。我还为这个项目制作了一个定制的 PCB,所以任何对电子电路知之甚少的人都可以制作这个项目。我的 V-2.0 PCB 也可用于 Arduino 平台中的许多应用。以下是新气象站的显着特点。

 

特征:

1.连接Wi-Fi,将数据上传到网络(Blynk App和Thingspeak)

2.监测天气参数,如温度、压力、湿度、海拔和紫外线水平等。

3. 额外端口以添加更多传感器

4. 远程电池状态监测

5. 使用强大的锂离子电池(3400 mAh)和太阳能电池板(1W)

6. 独立于外部电源

7.可安装在偏远地点或地理上具有挑战性的环境中

8.太阳能供电,是一种环保设备。

 

购买电路板:

您可以从PCBWay购买单个套件中的 PCB 和所有组件 

注意:套件中不包含电池和 3D 打印外壳

 

使用的组件:

 

1. Wemos D1 Mini Pro(Banggood  / 亚马逊 )

2. TP 4056 充电板( 亚马逊 )

3. BME 280 传感器( 亚马逊 /  Bangood  )

4. BMP280( 邦古德 / 亚马逊 )

5. DS18B20 传感器( 亚马逊 )

6.开关(亚马逊

7.螺丝端子(  Banggood

8. PCB 支架( 亚马逊 )

9. 18650电池( 亚马逊

10.18650 电池座(  Banggood  / 亚马逊

11.太阳能电池板( 邦古德 )

12. 直头针( 亚马逊 )

13. 22 AWG 线( 亚马逊 )

14.超级胶水( 亚马逊 )

15. 3D打印灯丝-PLA(  GearBest  )

 

 电源

pYYBAGL7AICAZfobAABD71AlAKU913.jpg

 

 

我的计划是将气象站部署在偏远的地方(我的农舍)。要连续运行气象站,必须有持续的电源,否则系统将无法工作。为电路提供持续供电的最佳方式是使用电池。但是几天后电池电量就会耗尽,去那里充电是一项非常困难的工作。因此,提出了一种太阳能充电电路,让用户可以从太阳中释放能量来为电池充电并为 Wemos 板供电。我使用的是 18650 锂离子电池。

电池通过 TP4056 充电模块从太阳能电池板充电。TP4056模块自带电池保护芯片或不带保护芯片。我建议购买一个包含电池保护芯片的模块。

 

通过 BMP/E280 监测温度和湿度

pYYBAGL7AIOAQYriAACdq3chyho027.jpg

 

 

在早期,环境温度、湿度和气压等天气参数是使用单独的模拟仪器测量的:温度计、湿度计和气压计。但今天市场上充斥着廉价而高效的数字传感器,可用于测量各种环境参数。最好的例子是 DHT11、DHT 22、BMP180、BMP/E280 等传感器。

在这个项目中,我们将使用 BMP280 / BME280 传感器。

 

BMP 280:

BMP280 是一款精密传感器,可以非常准确地测量气压和温度,并具有合理的精度。BME280 是博世的下一代传感器,是 BMP085/BMP180/BMP183 的升级产品 - 具有 0.25m 的低海拔噪声和相同的快速转换时间。该传感器的优势在于它可以使用 I2C 或 SPI 与微控制器通信。为了简单方便的接线,我建议购买I2C版板。

 

BME280:

新型 BME280 传感器,一种具有温度、气压和湿度的环境传感器。BME280 是博世的下一代传感器,是 BMP280 的升级版。博世的这款精密传感器是最佳的低成本传感解决方案,用于测量精度为 ±3% 的湿度、绝对精度为 ±1 hPa 的气压以及精度为 ±1.0°C 的温度。它可用于 I2C 和 SPI。

 

注意:  BME280 可以测量湿度,但 BMP280 不能。在市场上,BMP280 也有 BME280 的名称。所以要确定是BMP280还是BME280。

 

用于更多传感器的附加端口

pYYBAGL7AIaABN8lAACGm5P61no234.jpgpoYBAGL7AImAOveIAACLvf-NMcY687.jpg

poYBAGL7AIuAUVj1AABdq10xTIk469.jpg

 

气象站 V2.0 板有 5 个额外的端口来连接更多的气象传感器。以下附加传感器可以轻松连接:

 

1. GY-1145传感器: 用于测量紫外线指数

 

SI1145 是一款带有校准的紫外线传感元件的传感器,可以计算紫外线指数。它可以通过 I2C 通信(地址 0x60)进行通信。您可以将此传感器连接到板上的 I2C 端口,该端口位于电源开关的一侧。

您可以阅读 本文 以了解有关此传感器的更多信息。

 

2. HDC1080: 用于测量温度和湿度

 

HDC1080 是一款带有集成温度传感器的数字湿度传感器,可在极低功耗下提供出色的测量精度。它还可以通过 I2C 通信进行通信。

您可以阅读 本文 以了解有关此传感器的更多信息。

 

3. DS18B20: 用于测量温度

它可以用最少的硬件和接线来测量温度。这些传感器使用数字协议将准确的温度读数直接发送到您的开发板,无需模数转换器或其他额外硬件。它使用单线协议与微控制器通信。它可以连接到位于 Wemos 板右侧的板上的端口 P2 中。

 

您可以阅读 本文 以了解有关此传感器的更多信息。

 

使用外部天线 ( 3dBi )

 

pYYBAGL7AJOAM9g3AACvJHSDhRs413.jpg

 

pYYBAGL7AJeAAWuVAABqrdLypCE684.jpg

 

 

 

Wemos D1 mini Pro 板具有内置陶瓷天线以及连接外部天线以提高范围的规定。在使用外接天线之前,您必须将天线信号从内置陶瓷天线重新路由到外接插座。这可以通过旋转小型表面贴装 (0603) 零欧姆电阻器(有时称为链接)来完成。

你可以看到上面的图片,我是怎么做到的。

 

您还可以观看 Alex Eamesto 制作的视频 ,以旋转零欧姆电阻。然后将天线 SMA 连接器卡入 Wemos Pro 迷你天线插槽。

 

监控电池电压

 

气象站由 18650 锂离子电池供电,因此监测其状态非常重要。Wemos 板的最大输入电压约为 3.2~3.3V,但充满电的 18650 电池电压为 4.2V。所以要测量这个电压,我们必须通过使用分压器网络来降低电压。

 

Wemos D1 mini 已经有一个内部分压器,将 A0 引脚连接到 ESP8266 芯片的 ADC。分压器由220k(R1)和100k(R2)组成。因此,我们必须添加一个带有内置 220k 电阻的外部电阻来读取电池电压。通过使用 100k 电阻,我们可以测量电池的最大电压,但要留出一些余量,选择 220k 电阻。它在 PCB 板上被命名为 R1,位于电池座的正上方。

要选择分压器电阻值,您可以使用此在线 计算器

您还可以阅读 这篇 关于电池电压监控的文章。

 

 实现深度睡眠模式

 

poYBAGL7AJuAG-uZAABvcPQPviw839.jpg

 

 

我们气象站中使用的 Wemos 板的核心是 ESP8266 SOC,它是一个耗电的芯片。我们的目标是使用 18650 电池运行设备,但对电力的需求通常使电池操作不切实际。

另一个问题是,由于设备会持续运行,很明显设备会发热,因此测得的温度会高于环境温度。

 

从上面可以看出,我们必须降低 ESP8266 WiFi 芯片的功耗。为此,我们将使用 深度睡眠模式 ,这是 ESP 芯片最省电的选项。它允许将 ESP8266 置于休眠状态并节省电池。您可以定期唤醒它以进行测量并发布它们。

 

组件操作模式-----睡眠模式

1. ESP8266 170 mA -------- 10 uA

2. CH340 12 mA --------- 50 uA

3. 内置 LED 3 mA ----------- 0 uA

4. 电压监控 0.006 mA ----- 6 uA

----------------------------------

总计185 mA  ----  66 uA

 

如果睡眠-唤醒周期为 10 分钟,唤醒时间为 30 秒,则能耗预算如下所示:

唤醒时间 185 mA 0.5 分钟 = 92.5 mA 分钟

睡眠时间 0.066 mA 9.5 分钟 = 0.627 mA 分钟

10 分钟总计 = 93.13 mA 分钟

因此,平均电流消耗为 9.3 mA。

 

选择太阳能电池板

 

pYYBAGL7AJ2AeGD4AABVmOLB3Rs316.jpg

 

pYYBAGL7AJ-ALpxlAACwA0JcKBk745.jpg

 

 

从上一步得出,平均电流消耗为 9.3 mA

运行设备一整天所需的电量 = 9.3 mA x 24 小时 = 223.2 mAh

WeMos 中使用的线性稳压器没有电流增益,因此在 3.3V 下使用的任何电流都会在 3.7V 或任何电池电压下产生相同的电流。

 

日照量根据您所在的地球的哪个部分而有所不同。要了解您所在地区的日照量,您可以使用 Global Solar Atlas考虑到最少 1 小时的充足阳光,我们将选择太阳能电池板。

 

因此,我们的目标是在 1 小时内产生 223.2 mAh。

要为 3.7V 锂离子电池充电,电压为 5 至 6V 的太阳能电池板就足够了。

所需的太阳能电池板额定值 = 223.2 mA,电压约为 5 至 6 伏。

太阳能电池板额定值 = 223.2mA x 5V = 1.1W

太阳能电池板选择:1W / 5V 至 6V

 

在这个项目中,我使用了 5V、200mA 太阳能电池板(99 x 69 毫米)

因此,即使在高纬度地区的冬季,一个 1W 的面板也足以运行该项目。

 

注意: 如果您的位置接收到充足的阳光,那么我在早期版本中使用的 0.66W 太阳能电池板也可以使用。

 

PCB设计

 

pYYBAGL7AKWAU05vAAEJKlC0-fc036.jpg

 

poYBAGL7AKeAVYvSAADyJKqziv0255.jpg

 

pYYBAGL7AKmADt_hAABsWXFrpqQ223.jpg

 

 

 切换到PCB布局后,我使用 EasyEDA在线软件绘制了原理图。

您在原理图中添加的所有组件都应该在那里,彼此堆叠,准备好放置和布线。通过抓住其焊盘来拖动组件。然后将其放在矩形边界线内。

 

以使电路板占用最小空间的方式排列所有组件。电路板尺寸越小,PCB制造成本就越便宜。如果此板上有一些安装孔以便可以将其安装在外壳中,那将很有用。

现在你必须路由。路由是整个过程中最有趣的部分。这就像解决一个难题!使用跟踪工具,我们需要连接所有组件。您可以同时使用顶层和底层以避免两个不同轨道之间的重叠并使轨道更短。

 

您可以使用 Silk 层将文本添加到板上。此外,我们可以插入图像文件,因此我在我的网站徽标上添加了一个图像以打印在板上。最后使用铜区域工具,我们需要创建 PCB 的接地区域。

现在 PCB 已准备好进行制造。

 

PCB制造

 

pYYBAGL7AKyASTKWAAC8dN2RXkM168.jpg

 

完成 PCB 设计后,我们只需单击“Gerber 输出”按钮,保存项目,我们就可以下载用于制造 PCB 的 Gerber 文件。

 

组装印刷电路板

 

poYBAGL7AK6ALkzbAAB9YcB7rzs939.jpg

 

pYYBAGL7ALOAEn68AAD7kWzORUM497.jpg

 

 

从 PCB 工厂收到电路板后,您必须焊接组件。

对于焊接,您将需要一个像样的烙铁,焊锡,钳子。

首先,我切割了 Wemos Board、TP4056、BMP/E 280 和所有端口的直公母头针。

 

以下是有关标头的详细信息:

1. Wemos 板 - 2 x 8pins 母头

2. BMP280 - 1 x 6pins 母头

3. I2C 端口 - 1 x 4pins

4. 端口 P1 - 1 x 4pins

5. 端口 P2- 1 x 3pins

6. 端口 P3- 1 x 4pins

7. 端口 P4- 1 x 3 针

 

根据元件的高度焊接元件是一种很好的做法。首先焊接高度较低的组件。

我已经开始焊接电阻器、开关,然后转向更大的组件,如插头销、螺丝端子和电池座。

 

添加模块和电池

 

poYBAGL7ALaAR1LHAACX4so-T6E157.jpg

 

 

组装好插头引脚、开关和螺丝端子后,就可以将电路板插入各自的插头了。接头在 PCB 上清晰标记,因此不会混淆。

首先,我放置 TP4056 板并焊接所有焊盘。

然后我添加了 Wemos 板和 BME280 传感器。

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

 

 安装支架

 

pYYBAGL7ALiAPjH1AABFoscIDx8176.jpg

 

poYBAGL7ALuALOvCAAB2ptRYzZk852.jpg

 

 

添加所有部件后,将支架安装在 4 个角上。我使用了 M3 黄铜六角支架。

使用支架将为焊点和电线提供足够的离地间隙。

 

3D打印外壳

 

poYBAGL7AMGARs1TAABe49zOKM8666.jpg

 

pYYBAGL7AMOAEGM8AABdwTP8Vns470.jpg

 

 

为了给商业产品一个漂亮的外观,我为这个项目设计了一个外壳。我使用 Autodesk Fusion 360 来设计外壳。

外壳有两部分:

一、主体

2. 盖子

 

主体基本设计为适合气象站 V2.0 PCB (85mm* 83mm)。

罩盖用于盖住主体开口。

我使用我的 Creality  CR-10 打印机和 1.75 毫米绿色 PLA 灯丝来打印零件。我花了大约 11 个小时来打印主体,大约 3 个小时来打印顶盖。

 

我的设置是:

打印速度:60 毫米/秒

层高:0.2mm(0.3也可以)

填充密度:25%

挤出机温度:200℃

床温:60摄氏度

 

从Thingiverse下载 STL 文件 

 

您还可以查看由 3KU_Delta设计的外壳。

 

从Thingiverse下载他设计的 STL 文件 

 

将 PCB 放入外壳内

 

poYBAGL7AMaAOzPlAABnudNrWuc739.jpg

 

pYYBAGL7AMiAE6PPAABYdDiBaR8704.jpg

 

 

首先,将 MF 六角支座插入外壳的四个安装槽中。

然后通过对齐角落处的四个螺丝孔将 PCB 板固定在支架上。

插入四个支架后,由于小错位,我很难固定 PCB。所以我正在考虑修改安装支架以直接固定 3M 螺钉而不是六角支架。

 

安装组件

 

poYBAGL7AMqAbnQjAABh_dC_A9Q809.jpg

 

pYYBAGL7AM6ABRN2AACdvJ9cgBQ398.jpg

 

 

安装 PCB 后,您必须安装 BME280 模块和 Wemos 板。

然后插入跳线 JP2。

将 SMA 连接器插入外壳中提供的孔中。然后连同垫圈一起拧紧螺母。现在通过与 SMA 连接器正确对齐来安装天线。

最后将18650电池放入电池座内。确保您必须以正确的极性插入。极性标记在电池座、PCB 以及电池上。

 

3D 打印史蒂文森屏幕

pYYBAGL7ANKAdwmLAAEWg4yyXvo110.jpg

 

 

pYYBAGL7ANWAeF9cAABZ11oHG9o827.jpg

 

poYBAGL7ANeAFGi5AAByEnrar9A059.jpg

 

 

 

我的外壳设计是一个看起来不错的外壳,但它不适合气象站。放置天气传感器的理想外壳是史蒂文森屏幕。史蒂文森屏幕是天气传感器的  外壳,可防止雨水和来自外部的直接热辐射,同时仍允许空气在它们周围自由循环。

太阳能气象站 V2 的史蒂文森屏幕是由我的朋友 格伦设计的。这有一个简单的壁挂架和一个两部分的盖子,用于隔离太阳能电池板的热传递。我真的很欣赏他的工作。

 

您可以从Thingiverse下载 .STL 文件 

 

您可以观看上述 3D 打印史蒂文森屏幕组装视频。

视频来源: digiblurDIY

 

提示: 用喷漆剂喷涂完全组装好的 PCB  以保护电路板和组件,但您确实需要在 BME280 温度传感器孔上贴一点胶带以免堵塞它

 

与 Blynk 应用程序的接口

poYBAGL7AN2ANIjjAAB2WY6gj5M686.jpg

 

pYYBAGL7AN-AWbj1AABTODU1ClQ489.jpgpYYBAGL7AOGAbkSJAADMWj4ljek118.jpg

 

 

第 1 步:下载 Blynk 应用程序

1. 安卓版

2. 对于 iPhone

 

步骤 2:获取 Auth Token

为了连接 Blynk App 和您的硬件,您需要一个 Auth Token。

1. 在 Blynk App 中创建一个新帐户。

2. 按顶部菜单栏上的 QR 图标。通过扫描上面显示的二维码创建该项目的克隆。一旦成功检测到,整个项目将立即在您的手机上。

我制作了 Sol 气象站应用程序。欢迎您试用!

要开始使用它: 1. 下载 Blynk 应用程序:http://j.mp/blynk_Android 或 http://j.mp/blynk_iOS 2. 触摸二维码图标并将相机对准下面的代码 3. 享受我的应用程序!

3. 项目创建后,我们将通过电子邮件向您发送 Auth Token。

4. 检查您的电子邮件收件箱并找到 Auth Token。

 

第 3 步:为 Wemos 板准备 Arduino IDE

要将 Arduino 代码上传到 Wemos 板,您必须遵循这个 Instructables

 

第 4 步:Arduino 草图

安装上述库后,粘贴下面给出的 Arduino 代码。

输入步骤 1 中的验证码、ssid 和路由器的密码。

然后上传代码。

 

将传感器数据上传到 ThingSpeak

 

poYBAGL7AOSAA6j3AAB1hu5xLo4672.jpgpoYBAGL7AOiAP5_RAABbstRlZlk874.jpg

 

 

首先,在 ThingSpeak上创建一个帐户。

 

然后在您的 ThingSpeak 帐户上创建一个新频道。

了解如何创建新通道填充字段 1 作为压力,字段 2 作为温度,字段 3 湿度,字段 4 作为海拔高度,字段 5 作为电池电压。

 

在您的 ThingSpeak 帐户中选择“频道”,然后选择“我的频道”。

点击您的频道名称。

单击“API Keys”选项卡并复制“Write API Key”

打开 Solar_Weather_Station_ThingSpeak 代码。

将“WRITE API”替换为复制的“Write API Key”。

 

你可以看到我的 直播

软件和库

 

pYYBAGL7AOqAdNhaAAC8zKqHy1Q287.jpg

 

 

要将 Wemos D1 与 Arduino 库一起使用,您必须使用支持 ESP8266 板的 Arduino IDE。如果您还没有这样做,您可以按照 Sparkfun 的本 教程轻松将 ESP8266 Board 支持安装到您的 Arduino IDE  。

以下设置更可取:

PU频率:  80MHz 160MHz

闪存大小:  4M (3M SPIFFS) – 3M 文件系统大小 4M (1M SPIFFS) – 1M 文件系统大小

上传速度:  921600 bps

 

图书馆

在上传代码之前安装以下库:

1.ESP8266  _

2.  BMP280

3. 眨眼

 

您可以阅读 Sparkfun 的本 教程 来安装 Arduino 库。

在我的早期版本中,Blynk 和 Thinspeak 有两个单独的代码,但在这个版本中,我们只编写了一段代码。用户只需为 Blynk 或 Thingspeak 注释掉一行代码。例如,如果您将其用于 Blynk App,则代码应如下所示:

  App =  ; 

 

致谢: 我想非常 感谢 Keith Hungerford,他指导我让这个项目变得更加强大。BMP280的软件库也是他写的。您可以阅读他  关于 BMP280 省电模式的Instructable 。

注意: 在使用深度睡眠功能之前,Wemos D0 引脚必须连接到 RST 引脚。这可以通过短接跳线 JP2 来实现。

 

更新 : 15.05.2019

您还可以 在他的GitHub 页面上看到3KUdelta 所做的出色工作在他的 V2.3 代码中,他包含了著名的 Zambretti 预测器。我非常感谢他为改进项目所做的辛勤工作。

该软件使用著名的 Zambretti 预测模型以文字形式(4-6 小时)提供短期预测:

  • 用文字预测 4-6 小时
  • 用词趋势
  • 温度
  • 露点
  • 热度指数
  • 湿度
  • 绝对压力
  • 相对压力
  • 电池电压 (V)

 

添加风传感器

 

poYBAGL7AO2AJqzTAACDfFbBYIw853.jpg

 

pYYBAGL7AO-AAxgrAACN1ZuY8A0562.jpg

 

 

2020 年 4 月 5 日更新

对于气象站来说,监测风速和风向非常重要。风速由风速计测量,风向由风向标测量。您可以从 Sparkfun 或 亚马逊购买传感器。

我来自捷克共和国的朋友 honzek 连接了气象站 PCB V2.0 中的风传感器来监测风速和风向。他还使用 3D 打印的史蒂文森屏幕来保留 PCB 和其他传感器。他的项目成果非常好,可以看上图。

我正在分享他的作品,因为它将成为更多人的灵感。我要特别感谢 honzek 分享图片和 Arduino 代码。

您还可以查看他的项目的 Arduino 代码,附在下面。

 

Arduino代码:

  1. GitHub:https ://github.com/3KUdelta/Solar_WiFi_Weather_Station

 

 

 

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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