0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino无线气象站和Web服务器的制作

454398 ? 来源:网络整理 ? 作者:网络整理 ? 2019-11-13 17:16 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:解码无线信号

这是最大的障碍,我必须将这一阶段的全部功劳交给JeeLabs的Dominique Pierre,我使用了该代码(在Dominique的支持下)对我的所有传感器进行了解码。测试硬件很简单(并在JeeLabs网站上进行了说明)。这里要注意的一点是,最初我使用的是Arduino UNO,但是(如后所述)我转到了MEGA。出于测试和解码目的,任何一个都可以使用,我强烈建议您执行此步骤,然后再进行其他操作,以便您可以识别和验证接收到的信号是否来自传感器,并可以对其进行解释。我使用了一个简单的Excel电子表格来手动验证解码的信号并在开始任何气象站编码之前计算出校验和。

步骤2:硬件

除了RF无线电接收器外,我还使用了RTC –您可以使用以太网屏蔽和NTP,但是我觉得重点在于应该是日志记录而不是Internet/服务器端,如果使用RTC时网络中断,则可以“离线”完成。我也为一个传感器有限的朋友构建了该项目的变体,因此包括一个“车载”压力和温度传感器。您所使用的取决于您自己,稍后我会提供所有元素的示例代码。该示意图提供了已使用硬件的概述。我在Fritzing中构建,还创建了一个“ mini Shield”,该插槽插入MEGA的“端”,以太网屏蔽即在该端完成(如图中的白色所示)。该“防护罩”包括可选件的脚印和一些将来可选件的突围针。已尝试/测试的组合包括:

?用于Oregon Scientific传感器的RF接收器和RTC

?用于Cresta传感器,RTC和BMP085气压/温度传感器的RF接收器

?外部LM35温度传感器(防水和测量以及我们花园中溪流的温度)和外部溪流深度监控器(此处未详细说明,但使用安装在桥上的I2C超声波测距仪来评估溪流的高度–有趣的是,大雨时深度可能在30cm到150cm之间变化! )。但是,任何组合都可以使用,并且可以将代码修改为适当的日志/Web服务。

如上所示,示意图显示了屏蔽上的组件,不需要全部使用,但是可以使用选项如果想要的话。以太网屏蔽层也未显示,只需插入MEGA。

您需要的组件:

1。 Arduino MEGA 2560

2。以太网屏蔽(带有micro SD卡)

3。 RF 433MHz接收器(已使用Aurel RX-4M50RR30SF,从这里开始运行良好)

4。空中结果5。 DS3234 RTC中断模块

6。 LM35温度传感器(最多2个,可选)

7。 BMP085压力传感器(可选)

为了将Arduino和“盾牌”安装到标准Arduino外壳中,我不得不卸下了两个定位销,但是这些定位销很容易折断,并且不会影响到固定的安装位置。硬件。请注意,在PCB上,接收器模块位于PCB的下侧(有足够的空间),因此仍可以弹出存储卡而不会受到干扰。

我用433MHz的鞭状天线使设备看起来更整洁(未连接照片,但显示为安装在第二张照片的包装盒中)–不确定其响应是否比我的测试天线更好-一根电线;但是看起来更整洁并且更专业!

第3步:记录数据的代码

这是一个扩展步骤1的步骤,获取接收到的信号并解释这些信号以获得“真实”值。这些数据存储在全局变量中,因为数据在多个地方使用(即日志记录阶段和网页服务页面,第4步)。我通常使用整数来尽可能地节省内存并加快处理速度,在将值记录或“提供”到网络时,除以10可以得到小数点后一位。我还包括了最大值和最小值的触发器(如果在一年中的某个时刻断电,它们会在午夜存储在EEPROM中)。对于某些参数,还有触发器发送电子邮件(第5步)。我为那些需要验证的元素添加了校验和,因为偶尔会处理错误的数据并歪曲最大/最小数据。 Oregon Scientific信号的解码基于互联网上的信息以及此处的Cresta设备的信息。请注意,每个Oregon Scientific和Cresta设备的RF解码代码都不相同。这两个示例都包含在示例草图文件中。

第4步:Web服务代码

有这有两个关键要素。一种是直接从Arduino提供固定格式的页面,本质上是传感器读数,电池状态,Arduino状态等的列表。这对于“调试”这两个软件很有用,但也可以验证硬件是否按预期工作–例如,如果传感器由于超出范围或受到干扰而未被解码,则可以在“最新更新”详细信息上对其进行监视。第二个要素是提供更复杂的页面。编码的解决方案非常强大(我认为),因为它将从SD卡的根目录加载模板文件(以文本形式),并在该文件中找到“变量”(以打开和关闭~~表示),在投放到网页之前,将其替换为值。这意味着可以创建非常复杂的网页,而无需重新编码Arduino,也无需占用内存/资源,包括对外部文件的引用,例如.css文件,图像等,这些文件可以存储在您自己的网站上,而不是在网站上提供最初,该代码旨在在UNO上工作,但我需要为趋势图存储大数据数组(48个值x 13组) (请参见示例网页),尽管编译大小低于32k,但Arduino因内存“过载”而失败。..转到MEGA还允许添加附加功能(例如电子邮件,日出等),而不会出现问题。 。随意优化代码并将其压缩到UNO上。

示例文件(graphs.htm)在下面创建网页,并利用Google Charts api通过简单的超链接调用呈现图表。请注意,该代码仅适用于8.3命名文件(由于使用了SDFat),因此使用了.htm命名文件。要查看处理后的页面,只需键入Arduino IP代码:端口,然后输入/graphs.htm。

该代码还包括用于计算某些派生参数(例如云底高度和风寒)的数学方法。除正常页面交付外的URL:

?YourIP:Port/EEPROM –强制将当前的最大和最小(和下雨次数)记录到EEPROM中。在出于任何原因断电以确保维护年度数据之前执行此操作很有用。注意:每天午夜只对EEPROM写入一次。这可以延长Arduino EEPROM的寿命,并且由于我打算每天无限期供电,因此我认为每天就足够了。

?YourIP:Port/TIME&year&year&mo&day&hr&mi –尽管已使用RTC,但它似乎会浪费一段时间。此功能允许用户(通过Web)将RTC重置为“正确的时间”并更新夏令时的更改。

基本日志记录和服务器代码均基于此处的教程,并进行了修改以满足我的需要和更改为Arduino 1.0编译器。

库参考

?TimeLord库

?EEPROMWriteAnything库

?RTCLib库

?SDFat库(和以太网/SD卡教程)

步骤5:电子邮件代码

使用一个简单的网页客户端,我将一个URL称为php位于我网页上的脚本,用于通过电子邮件发送设置的电子邮件分发列表。同样,由于它是由Arduino托管的,因此我可以随时更改电子邮件的分发和内容。

气象台警报电子邮件php脚本:

《?php

//以下几行阅读了URL中的参数

$ TO =‘电子邮件地址1’;

$ TO。=‘,电子邮件地址2’;

$ FROM =‘您的电子邮件地址’;

$ SUBJECT =‘天气站点更新”;

$ TIME = $ _REQUEST [“ TIME”];

$ TEMPNOW = $ _REQUEST [“ TEMPNOW”];

$ WSNOW = $ _REQUEST [“ WSNOW”];

$ WDNOW = $ _REQUEST [“ WDNOW”];

$ RAIN = $ _REQUEST [“ RAIN”];

$ TEMPMAX = $ _REQUEST [“ TEMPMAX”];

$ TEMPMIN = $ _REQUEST [“ TEMPMIN” ];

$ WSMAX = $ _REQUEST [“ WSMAX”];

$ TRIGGER = $ _REQUEST [“ TRIGGER”];

$ MESSAGE =’来自气象站的消息

时间为‘。$ TIME 。 ’

-现在的温度是‘。$ TEMPNOW。 ’C

-现在的风速为‘。$ WSNOW。 “每小时deg

-今天下雨”。$ RAIN。 ’mm

-今天的最高温度是‘。$ TEMPMAX。 ’C

-今天的最低温度是‘。$ TEMPMIN。 ’C

-今天的最大风速为‘。$ WSMAX。 ’mph

由于‘。$ TRIGGER发送了电子邮件。 ’;

//这将发送消息

mail($ TO,$ SUBJECT,$ MESSAGE,“发件人:”。$ FROM);

?》

如果有,还会发出一封电子邮件

步骤6:已知限制和需要改进的地方

1。我遇到的最大问题是,在检查任何网页请求时,Arduino缺少对RF信号的解码。更改为Arduino 1.0会使情况变得更糟(似乎需要花费很多时间才能检查任何服务器请求)。为了克服这个问题,我只会在收到并解码了RF信号时检查互联网活动(这对我来说很有效,因为我有很多传感器,每隔几秒钟就会收到一个信号),或者每5秒通过关于mills()的检查。这在实践中可行(用户接收网页的最大延迟约为5秒钟,并且没有明显的阅读损失),但是我敢肯定有更好的方法可以做到这一点,例如软件中断? 》 2。有些编码很差(我可以更好地利用函数/过程,甚至可能更好地利用某些库工作(这超出了我的能力)),而且我敢肯定,有更有效的方法可以达到相同的目的。该代码可以正常工作,并且可以可靠地完成我的工作(运行几个月没有问题),但是欢迎任何改进/建议。

责任编辑:wv

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

    关注

    0

    文章

    139

    浏览量

    24936
  • Arduino
    +关注

    关注

    190

    文章

    6501

    浏览量

    193076
  • 气象站
    +关注

    关注

    1

    文章

    789

    浏览量

    16324
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    给孩子一堂自然课:气象站如何让科学触手可及?

    气象站
    奕帆科技
    发布于 :2025年05月06日 14:57:01

    解密交通气象站:数据驱动的交通气象服务革新

    在当今数字化时代,数据成为了推动各行业变革的核心动力,交通气象领域也不例外。交通气象站作为交通气象服务的关键设施,正借助数据的力量实现着革新,为交通出行与顺畅提供着更强大的支持。 交通
    的头像 发表于 03-27 15:36 ?284次阅读
    解密交通<b class='flag-5'>气象站</b>:数据驱动的交通<b class='flag-5'>气象</b><b class='flag-5'>服务</b>革新

    智慧校园:气象站引领气象知识科普

    在科技飞速发展的当下,智慧校园建设不断深入,各类创新元素融入校园生活,为师生带来全新体验。其中,气象站作为智慧校园的存在,正悄然引领着气象科普的新风尚。 校园气象站不再是传统意义上简单的气象
    的头像 发表于 02-08 15:29 ?351次阅读

    智慧气象站新成员:激光雪深测量技术的革新应用

    随着科技的不断发展,智慧气象站气象监测与预测中的重要性日益凸显。而激光雪深测量技术作为智慧气象站的新成员,正以其高精度、实时监测和自动化程度高等特点,为气象监测、交通运输、农业生产等
    的头像 发表于 01-06 09:51 ?404次阅读

    自动气象站的工作原理与应用

    自动气象站是现代气象观测网络的重要组成部分,它通过集成传感、数据采集与处理系统、通讯设备等技术手段,实现了对大气环境参数的实时监测和高效数据传输。以下是对自动气象站的工作原理与应用的
    的头像 发表于 12-18 13:56 ?878次阅读

    城市交通气象站:本地化气象服务保障都市交通

    在繁华喧嚣的都市中,交通如同一座城市的血脉,日夜不停地流淌,维持着城市的生机与活力。而城市交通气象站,则犹如敏锐的神经末梢,感知着气象的细微变化,为都市交通提供着精准且本地化的气象服务
    的头像 发表于 12-11 17:20 ?594次阅读

    绿色校园,智慧气象:走进我们的气象站

    在蔚蓝天空与葱郁绿意的交相辉映下,我们的校园不仅是一片知识的沃土,更是绿色生.态与智慧科技融合的典范。在这片充满活力的土地上,一座现代化的气象站悄然矗立,它不仅是我们探索自然奥秘的窗口,更是绿色校园
    的头像 发表于 12-10 11:58 ?471次阅读

    自动超声波气象站:智慧气象的重要组成部分

    自动超声波气象站是一款高度集成、低功耗、可快速安装、便于野外监测使用的高精度自动气象观测设备。以下是对自动超声波气象站的详细介绍: 一、概述 超声波气象站(Ultrasonic wea
    的头像 发表于 12-06 11:51 ?701次阅读

    校园气象站:科学观测,服务师生

    校园气象站配备了气象观测仪器,如温度计、湿度计、气压计、风速仪、雨量计等,能够精准地对校园内的气温、空气湿度、气压、风速风向、降雨量等气象要素进行实时监测与数据采集,为校园及周边局部小气候的研究提供
    的头像 发表于 12-02 16:25 ?400次阅读

    校园内环境监测气象站

    校园气象站常用于校园气象环境监测及科普活动中,对校园开展的各项气象科普活动给予支持,提高青少年科学思维能力,也可以通过校园气象站监测的信息和要素为学生的室外活动,穿衣等提供建议。此外,
    的头像 发表于 11-13 16:55 ?470次阅读

    交通气象站:实时监测道路气象环境

    在现代交通体系中,安全与效率始终是人们关注的焦点。而交通气象站,如同一位无声的守护者,实时监测着道路气象环境,为交通的顺畅运行和出行者的安全提供着至关重要的保障。 交通气象站通常分布在高速公路、城市
    的头像 发表于 10-23 18:28 ?659次阅读

    负氧离子气象站

    气象站
    pingao141378
    发布于 :2024年10月19日 08:52:28

    车载小型气象站:实时、准确地监测气象

    车载小型气象站是一种高度集成化的气象监测设备,专为移动环境设计,如车辆、船只或移动观测站等,能够实时、准确地监测多种关键气象要素。 集成度高:车载小型气象站通过紧凑的结构设计,集成了多
    的头像 发表于 09-13 17:24 ?512次阅读

    气象站铝钛合金风杆的技术参数介绍

    气象站铝钛合金风杆的技术参数
    发表于 09-09 10:39 ?0次下载

    自动气象站组成和功能特点

    自动气象站能够长期、连续地收集气象数据,为气象科学研究提供了丰富的资料。科学家们可以利用这些数据研究气候变化、大气环流、气象灾害等问题,推动气象
    的头像 发表于 08-21 16:48 ?888次阅读
    自动<b class='flag-5'>气象站</b>组成和功能特点