Arduino上的气象站,从A到Z。第1部分

目录:



气象站。 Arduino,ESP8266,nRF24L01,DHT22


“因此,让我们立即同意:您不会为好莱坞拍电影。 即使在《仙境》中,也不会超过5%的方案获得批准,然后只有百分之一投入生产……因此,您要创建自己的好莱坞,而不是所有这些。”
Ed Gaskell“制作数字电影或在家看好莱坞”


前言


什么,Arduino上的另一个气象站?! 是的,还有一件事情,有些事情告诉我,而不是物联网上的最后一件事情。


就像每个程序员都必须编写“ Hello World!”程序一样,因此每个arduino必须具有建立简单或不太气象站的经验。
描述了互联网上许多已经创建的气象站项目,读者可以选择其中的任何一个进行实施。 我不会隐藏,我仔细研究了大约十二个这样的项目以及一堆相关的项目。 因此,不能说我从头开始创造了一切,当然我“站在巨人的肩膀上”。


我必须立即说,我的计划不包括使用第三方服务来存储和显示数据。 我想亲自感受并理解所有这些从头到尾,从A到Z的工作原理。


因此,对于那些想要快速铆钉一无所获的人来说,本系列文章很可能不合适。 去购买带有组装说明的现成设计师更容易。 微电子专业人士在这里根本无事可做,也许在旅途的开始就一直在eigh念自己。
但是对于那些真的想弄清楚的人,我认为他们会喜欢的。 也许这些材料可用作培训工具。


作者将引导您穿越物联网现代技术的错综复杂的迷宫。 而且,由于他本人也是初学者的眼睛。


该项目于2016年实施,但我希望它仍然有意义。


技术集


我们将学习和处理简单和复杂的事情:


  • DHT22,DHT11型温度和湿度传感器
  • 气压传感器BMP180
  • WiFi模块ESP8266
  • 2.4 GHz nRF24无线电模块
  • Arduino Pro Mini系列,Arduino Mega
  • 太阳能电池及电池
  • C / C ++编程语言
  • PHP编程语言
  • MySQL数据库管理系统
  • Java编程语言和Android框架(创建用于Adnroid的应用程序以在智能手机上显示天气数据)。

列出的某些主题和鸡蛋不值得,有些可以研究多年。 因此,我们将仅在与该项目直接相关的部分中涉及复杂的事物,以便您了解其工作原理。


但是我们将从头开始 。 即,从对“纸上”未来设备的描述和设计中,最终使每块砖都放置在其位置上。


原型制作


维基百科正确地告诉我们, 原型制作是对工作系统的快速粗略实现。 是的,它不会完全低效地工作并且有一些错误,但是它将给出是否应将其开发为工业设计的想法。 原型过程不必很长。 在原型制作阶段之后,将对该系统进行分析并对其进行完善。


但这是一个全职工作的行业。


每个晚上晚上将宠物项目的工艺品铆钉成“物联网”的人都应该意识到,他创造了一个原型,即半成品。 他离正常的工业产品水平还很远。 因此, 我们不应将任何负责任的生活支持地托付给业余手工艺品,并希望它们不会令我们失望。


工业产品建立在工业元素的基础上,然后经过许多阶段,包括调试,测试和维护,然后才成为畅销书。


因此,我们将创建自己的玩具,而不是简单的玩具,而不是所有这些引力。 具有技术创造力的要素,是许多其他相关事物的编程和知识(在创建过程中)的开始。


当然,电子工程师在编程阶段会很艰难,程序员将不得不耗费电路,但是作者将尝试尽可能解释一切,并清楚说明为什么使用某些解决方案。


要求条件


通常,此步骤被跳过。 决定立即做类似的事情,然后发现一些小细节,使整个项目陷入僵局,甚至使它难以忍受。 我们的所有愿望清单都需要记录,为此我使用了Google磁盘,可以从PC和移动设备上获得。


因此,我们的气象站应:


  • 测量外面的温度和湿度
  • 测量房屋的温度和湿度
  • 测量气压
  • 在显示屏上显示指示的值
  • 将数据传输到Internet上的服务器,其中数据将存储在数据库中并显示在网页上,或在移动应用程序中使用。

使用的传感器最简单,最便宜。 例如,展望未来,我会说DHT22可以非常精确地测量温度,但是对于湿度来说,它有点不准确。 但是,我再说一遍,这没关系,因为我们有一个原型,湿度5%的扩散不会影响我们生活中任何重要的事情。


系统架构,硬件和软件应提供进一步的系统可扩展性,以添加新的传感器和新功能。


铁 元件选择


这是最关键的部分,而不是焊接或编程。 在确定了系统要求之后,有必要在将要实施的确切内容的帮助下做出决定。


这是有细微差别的地方。 要选择需要充分了解其功能的组件,您需要了解技术本身。 也就是说,它要求与初学者电子工程师和程序员相距甚远。 那么,现在花几年时间研究可能的设备的整个范围呢?


恶性循环? 但是,存在破坏它们的恶性循环。


有一个出路。 您可以只接受并重复别人的项目。 我研究了气象站的现有项目,并希望向前迈出了一步。


这样啊 气象站的架构基于Arduino。 因为Arduino的入门门槛很小,所以我已经处理过了。 选择更容易。


立刻清楚的是,气象站将包括一个远程的空中传感器和一个中央模块。


中央主机将位于室内。 重要的是,在初始阶段就应从操作温度范围和功率“跳舞”等重要特征中确定这一点。


远程传感器(一个或多个)将没有“大脑”,其任务是定期测量并将数据传输到中央家用设备。 中央单元从所有传感器接收数据,将其显示在屏幕上,然后将其发送到Internet上的数据库。 嗯,在那里已经很容易了,一旦数据存储在数据库中,您就可以使用它进行任何操作,甚至绘制图形。


为了与外界建立联系,WiFi模块ESP8266绝对选择了Internet,几乎没有其他选择(也许现在已经出现了这种选择)。 可以使用Arduino以太网扩展卡,但我根本不想连接电缆。


ESP8266


一个有趣的问题是如何在安装在窗户上的传感器(或多个传感器,还记得系统可扩展性的要求?)和中心之间提供连接。 433 MHz信标绝对不适合(它们根本不适合任何东西)。


再次利用ESP8266吗?


该决定的缺点:


  • 在家外需要可持续的WiFi


  • 通讯范围不会很长


  • 可靠性会受到影响,如果Internet断开,我们将看不到远程传感器


  • 更大的功耗。


  • 功耗ESP8266:


  • 传输120-170 mA时


  • 当采用50-56 mA时


  • 在深度睡眠模式下为10μA(μA)


  • 关5 µA(µA)。



最后,选择了nRF24L01 +芯片,该芯片在一个瓶子中具有2.4 GHz发射器和接收器,并带有一个额外的外部天线,以将远程传感器与主机单元连接起来,因此它肯定会“冲破”墙壁。


nRF24L01 +


功耗nRF24L01 + 2.4 GHz:


  • 接收11 mA时
  • 以2Mbps传输时-13 mA
  • 在待机I模式下-26μA(μA)
  • 关状态900 nA(nA)。

对于ESP8266,对于nRF24L01 +,其适用的温度范围是:-40℃至+ 80℃。


您可以以大约1美元的价格购买nRF24L01 +,或者立即以3美元的价格购买带有外部天线的产品。 您可以以约4美元的价格购买ESP8266-01。 仔细阅读产品说明! 否则,请购买一根天线。


该系统的核心迫在眉睫。 我们转向传感器本身。


如您所知,在街上,温度可能会达到负值,因此DHT11传感器不合适,但DHT22恰到好处。


DHT22


DHT22 / AM2302的功能:


  • 电源从3.3 V到5 V,建议5 V
  • 测量和数据传输时最大功耗2.5mA
  • 湿度测量范围0-100%,精度为2-5%
  • 温度测量范围为-40至+ 125°C,精度为±0.5°C
  • 测量要求不超过0.5 Hz-每2秒一次。

我希望在房间内不会出现负温度,因此您可以使用DHT11,尤其是因为我已经有了它。


DHT11功能:


  • 电源电压从3.3 V到5 V
  • 测量和数据传输时最大功耗2.5 mA
  • 湿度测量范围20-80%,精度为5%
  • 温度测量范围为0至+ 50°C,精度为±2°C
  • 测量要求不超过1 Hz-每秒一次。

您可以以大约$ 3的价格购买DHT22。 DHT11更便宜-1美元,但准确性较低。


现在回到Arduino。 选择哪个板?


我在Arduino UNO上测试了系统的各个部分。 即 我将ESP模块连接到Uno并进行了研究,断开了连接,然后连接了nRF24等。 为了最终实现海外传感器,他选择了Arduino Pro Mini作为微型传感器中最接近Uno的传感器。


Arduino Pro迷你版


在功耗方面,Arduino Pro Mini看起来也不错:


  • 没有USB-TTL转换器本身会“吃掉”很多东西,
  • LED通过一个10k电阻连接。

为了实现先进的节能,已计划:


  • 卸下LED-Arduino Pro Mini上的电源指示灯(我很遗憾,没有破坏电路板)
  • 可以使用Atmel ATmega328微处理器上的裸组件(未使用)
  • 使用低功耗库JeeLib

我从库中选择了低功耗库,它很简单,仅包含您需要的内容。


对于中央单元,由于计划将大量外围设备连接至中央单元,因此选择了Arduino Mega板。 此外,它与UNO完全兼容,并具有更多的内存。 展望未来,我会说这种选择是完全合理的。


您可以以约$ 8的价格购买Arduino Mega。


功率和功耗


现在有关功耗和功耗。


Arduino Pro Mini有两种形式:


  • 5V电源和16MHz频率
  • 3.3V电源电压和8MHz频率。

由于nRF24L01 +无线电模块需要3.3 V的电源,并且性能在这里并不重要,因此请以8MHz和3.3V的价格购买Arduino Pro Mini。


同时,Arduino Pro Mini的电压范围是:


  • 适用于3.3 V型号的3​​.35-12 V
  • 5-12 V为5V。

我已经有一个5V的Arduino Pro Mini,这就是为什么我使用它。 您可以以约4美元的价格购买Arduino Pro Mini。


中央单元将通过一个小型电源单元由220 V网络供电,该小型电源单元提供12V,450mA,5W输出。 像这样5美元。 在5V时仍然有一个单独的输出。


电源模块交流/直流


如果这还不够,那么它可能会更强大。 换句话说,为中央单元节省功率没有多大意义。 但是对于远程无线传感器而言,节能是最重要的部分。 但是我也不想失去功能。


因此,Arduino Pro Mini和nRF24无线电模块将由一堆4节镍氢电池供电。


请记住, 现代电池最大容量约为2500-2700mAh,更重要的是行销技巧(Ansmann 2850)或作弊(UltraFire 3500)。


由于某些原因,我不使用锂离子电池:


  • 很贵
  • 当环境温度降至0°C以下时,锂离子电池的电量将降低至40-50%
  • 便宜的产品是未经保护且不安全的(在短路或放电期间,它们可能爆炸和燃烧,请在YouTube上观看大量视频)
  • 即使不使用它们,它们也会变老(尽管可以说所有化学元素都可以),但是两年后,锂离子电池的电量损失了大约20%。

对于原型,完全有可能使用高质量的镍氢AA或AAA电池。 而且,我们不需要大电流。 镍氢电池唯一的缺点是可以长时间充电。


气象站的总体方案


总结一下。 这是一切工作原理的概述。


气象站。一般方案。


待续。

Source: https://habr.com/ru/post/zh-CN425901/


All Articles