您可以在线找到优秀的花粉热预报员,这些预报员基于温度、风和降水等因素。然而,这些花粉雷达并没有考虑到植物物种,而过敏往往发生在特定物种中。我们构建了一个花粉警报器,它只会对来自您选择的植物的一定数量的花粉发出警告。
购物清单
例如在 Martoparts.nl
1 个 NodeMCU 模块(10 欧元)
例如在 Conrad.nl
1 个应力消除 M10 (€ 1,-)
1 块 PCB 80 × 50 毫米(3.30 欧元)
1 塑料外壳 85 × 56 × 39 毫米(4.25 欧元)
1 个 2 极螺钉端子 (€0.20)
1 个电源适配器 5 V,1 A(6 欧元,-)
1 个红色 LED (€ 0.10)
1 个绿色 LED (€ 0.10)
2 个电阻器 100 欧姆 (€ 0.10)
其他用品:烙铁和焊锡、侧切刀、螺丝刀、钻头、锉刀、强力胶、单极线(30 厘米)、万用表(可选)。
总费用:约 24.75 欧元
在过去的“冬天”,许多花粉症患者已经有了抱怨。今年年初,任何对桤木或榛树花粉过敏的人都经历过前所未有的情况,看来我们将不得不习惯一年四季开花的植物、树木和草。幸运的是,大多数花粉过敏患者仅在特定菌株开花期间轮流进行。因此,只有考虑到这一点,花粉警报才有意义。
当然,它始于从花粉检测中获得的可靠数据。我们的来源是莱顿大学医学中心,其肺病系每周都会分析空气样本。这是传统工艺:空气样本由七条胶带(每个工作日一条)组成,在显微镜下进行检查!每周计数的结果发布在 LUMC 网站上。
当然,这个计数是特定于位置的,莱顿检测到的花粉粒数量可能与林堡的花粉数量大不相同,仅举几例。尽管如此,它给出了一个很好的指示,通过对数量进行试验,数据也可以用于其他地方。我们使用表中的数字来确定工厂是否超过某个标准。如果是这样,红色 LED 会亮起,并通过电子邮件发送警告。如果该值再次低于标准值,红色 LED 将熄灭,随后会发送一封电子邮件,其中包含警告已撤消的消息。
硬件
在硬件和外壳方面,该项目以简单性着称。它需要一个电源适配器、一个紧凑的外壳和一个应变消除装置、一个 NodeMCU 模块、两个 LED、两个电阻器和一个电路板来焊接整个东西。因此,对于刚开始焊接的人来说,这是一个非常合适的电路。
绿色 LED 表示系统正在运行并且能够从源检索数据;当超过为所选植物设定的花粉标准时,红色 LED 亮起。该电路由一个简单的 5 伏电源适配器供电,至少 1 安培。这也可以是带有 USB 连接的,在这种情况下,您仍然需要一根合适的 USB 电缆。整体装在一个紧凑的塑料外壳中,您当然也可以自己制作或重复使用某些东西。最后,应变消除装置可防止电源线在意外受力时被拉出。
安装开发环境
ESP 模块最容易使用 Arduino 开发环境 (IDE) 进行编程。你可以在这里下载。由于此 IDE 并非主要用于此模块,因此您需要安装一些额外的必要组件。点击 文件/首选项 并在选项卡上输入 机构 蜜蜂 其他董事会管理 URL 网址 //arduino.esp8266.com/stable/package_esp8266com_index.json 在。现在选择 工具/板:/板管理... 并输入 特别是.现在注意:由于库不兼容,请安装2.4.2版本的程序邮件版 发送邮件.h 与较新的版本。对于没有邮件的版本,请选择最新版本。
通过选择模块 工具 / 开发板 / NodeMCU 1.0(ESP-12E 模块).通过 USB 线连接 ESP 模块并在 Arduino IDE 中选择正确的端口(工具/端口, 选择编号最高的 com 端口)。如果一切顺利,您的设置现在可以开始编程了。
更改代码
您可以在这里下载现成的程序。甚至还有两种变体:对于那些对警告 LED 感到满意并且认为没有必要接收电子邮件的人,可以使用精简版。这可以避免您在邮件提供商处创建帐户的麻烦。下载文件 花粉.zip 并将其解压缩到任何文件夹。打开文件 花粉 对于没有邮件的版本,或 花粉邮件 对于具有邮件功能的版本(通过双击文件,它会在 Arduino IDE 中自动打开,另请参见“安装开发环境”框)。下面的解释基于邮件变体,因为从逻辑上讲,这是最有说服力的版本。
充值 ssid 和 密码 分别输入您的无线网络名称和密码。在浏览器中打开 //sec.lumc.nl/pollenwebextern 并确定要监控的植物的行号。列名的第一行不算数,因此 Hazel 是第 1 行,Alder 是第 2 行,依此类推。示例代码列出了最臭名昭著的植物的值。将它们替换为您要关注的物种会更方便。填写代码 植物群[] 输入表格对应的行号,用逗号和at分隔 临界点[] 每株植物的价值。确定这是一个实验问题:在 0 时,特定植物的每个花粉粒都会导致警报,在 100 时有一个重要的阈值。如果您对桤木花粉高度过敏,对桦树花粉过敏程度较低, 植物群[] 价值 {2, 8} 与 临界点[] 例如值 {0, 20}.确保两行中的数字数量相同。
从 pcmweb.nl 下载两个现成的程序之一设置邮件帐户
您需要一个邮件服务器来发送邮件。您可以将它安装在模块上,但几乎肯定会遇到问题。垃圾邮件过滤器不信任来自未知来源的邮件,并且直接从模块发送的消息不会到达大多数收件人。可以通过使用(免费)提供程序(例如 Mailjet)来规避此问题。
转到 www.mailjet.com 并通过单击创建一个新帐户 免费注册.为了使用您的新帐户,您必须通过单击确认电子邮件中的按钮或链接来确认您的电子邮件地址。
登录 Mailjet 并点击顶部的 交易/SMTP.以下 证书 你看 用户名 和 密码,在您的程序中两者都需要。将用户下的字符串复制到 服务器登录 代替 用户名 (在双引号之间)。下面的字符串 密码 连线 服务器密码 代替 密码. smtp 服务器(in-v3.mailjet.com) 和端口号 (587) 已经填写。填写位置 发件人@DOMAIN.NL 输入您用于 Mailjet 帐户的电子邮件地址。
您还可以通过 Gmail 发送邮件。为了使用 smtp 服务器,您需要降低帐户安全性。单击您的帐户图标,然后 管理您的 Google 帐户/安全 并切换 由不太安全的应用程序访问 在。在程序中您使用自己的发件人地址和相应的密码, smtp.gmail.com 蜜蜂 服务器主机 和门 465 蜜蜂 服务器端口.
说明码
代码首先嵌入两个库: ESP8266WiFi.h 和 发送邮件.h。 第一个处理与无线网络的连接并处理网络流量。多亏了这个程序,模块可以用几行代码连接到网络并用作网络客户端。第二个库控制与邮件服务器的连接,允许程序发送消息。
我们声明了一些常量和变量,其中最重要的已经在上面的段落中讨论过了。在处理数据时,LED 熄灭,模块连接到 WiFi。如果成功,绿色 LED 将亮起。
处理数据
功能 获取信息() 是程序的核心。这是检索和分析包含表格的网页的地方。变量 花粉报警 获取值 错误的 和 一世 获取值 0.只要花粉报警是假的,就会逐行读取网页,一次检查字符串 花粉总量 发生在其中。这是表格的最后一列,列出了过去一周计算过的植物的所有花粉粒。多变的 一世 增加一,现在有值 1.此循环遍历表的行。多变的 j 被声明并获得价值 0.这是从第二个循环中提取所有元素的一部分 植物群[] 和 临界点[] 结束。
现在来自行的元素 植物群[] 一一对比 一世 以确定涉及哪些植物。此外, 植物群[0] 对于行中的第一个元素,所以如果有 1 (表中的淡褐色)在此示例中满足所有条件。然后读取下一行,其中包含数字。功能 toInt() 用于过滤掉空格和其他垃圾,只留下一个整数分配给花粉变量。如果该数字大于行中的相应值 临界点[] (在这种情况下,该行中的第一个值),花粉警报变为真,功能停止。如果没有,那么 j 增加一,出以下元素 植物群[] 和 临界点[] 和....相比 一世 直到没有更多的元素。然后 . 变成 一世 增加 1,然后从表中读取以下行。处理完整个表后,其中的变量数据将收到状态 true 并且绿色 LED 将亮起。
警觉与否?
特点 警报() 和 无警报() 仅用于发送邮件,第一个使用新警报执行此操作。功能 电子邮件.发送() 给出一个值 真的 如果发送成功则返回一个值 错误的 如果出现问题。构造为此使用了测试并返回变量 警报已发送 状态 真的.当警报解除时,该功能 无警报() 以同样的方式进行。如果运行成功, 发出警报 状态 错误的.因此,仅当状态发生变化时才会发送电子邮件,而不管此功能的运行频率如何。
每小时看一次
运行后 获取信息() 这个函数查看变量 花粉警报, 数据输入 和 警报已发送.如果前两个为真,则有警报。红色 LED 将亮起,如果尚未完成,将发送警报邮件。接下来是一小时的休息时间。已 数据输入 价值 真的 和花粉报警值 错误的,则没有警报,红色 LED 熄灭。已 警报已发送 价值 真的 (已发送警报电子邮件),然后将收到一封有关取消警报的电子邮件,您将收到 警报已发送 状态 错误的.还有一小时的休息时间。已 数据输入 状态 错误的,然后在检索数据时出现问题。绿色 LED 熄灭表示系统(暂时)不工作,暂停一小时,之后 走() 重新开始。
上传和测试软件
如果文件 花粉邮件.ino 在Arduino开发环境中定制并连接NodeMCU模块,即可开始上传。要测试它是否有效,您可以暂时在表中添加一棵植物(或树),该植物(或树)此时肯定有花粉。使用 Ctrl+Shift+M 打开串行监视器并使用 Ctrl+U 上传程序。
上传完成后,您应该会看到模块如何先连接到无线网络,然后再连接到 Web 服务器。然后是第一个工厂、适用的阈值和测量值。然后是以下植物的值。如果其中一个测量值超过为该工厂设置的阈值,则会出现消息 . 花粉警报!, 其次是 已发送带有花粉警报的邮件.如果所有值都低于设定的阈值,您将只会看到 无花粉报警.到目前为止一切正常吗?然后就可以断开模块了。
为了测试你可以临时添加一个花粉在表中的植物准备
首先,在外壳上钻三个孔:两个 5 毫米用于 LED,一个 10 毫米用于应变消除。更小也是可能的,您可以使用锉刀按尺寸制作孔。安装应变消除装置并检查 LED 是否适合。用强力胶将它们粘在外壳上。还将电线焊接到 LED 上,以便稍后将它们焊接到印刷电路板上。
构建电路
如前所述,该项目的硬件是有限的。 NodeMCU 模块、两个电阻器和螺钉端子位于 PCB 上。首先在电路板的角上钻 5 毫米的孔,使它们适合外壳的螺丝孔。
通过巧妙地放置元件,它们可以通过焊料互连。请记住(取决于电路板上的通道)模块可以交叉安装在外壳中并且几乎没有余量!因此,在继续之前,首先将模块放在电路板上,看看它是否适合外壳。然后通过在底部稍微向外弯曲每个角上的销钉来固定模块,例如使用螺丝刀的平端。然后将电阻放在引脚附近 D5 和 D6 最后是模块另一侧的螺丝端子。在示例中,它有四个连接,但只需要两个。如果您稍微弯曲腿,电阻器和螺钉端子也能最好地保持原位。现在用剪线钳将所有支腿(包括模块的支腿)切割成大约两毫米的长度,然后焊接要连接在一起的零件和引脚。还要焊接模块的四个角引脚,其中只有一个是顺便连接到螺丝端子的。有关焊接的提示,请参阅此综合指南。
连接
现在整理比以往任何时候都容易,因为有了现成的外壳,一切都已经就位。剩下的就是连接电源适配器和 LED。首先,从电缆上剪下圆形插头。如果您使用的是 USB 电源适配器,请从 USB 电缆上切断微型 USB 连接器。将各条电线剥去约半厘米的长度,并在末端镀锡。如果您有万用表,您可以检查连接的极性(正负)。如果您没有,您可以查看(其中一根)电线上是否有印记。另一种可能性是在其中一条腿上连接一个带有 220 欧姆电阻的 LED。将一根适配器电线连接到电阻器,将另一根电线连接到 LED 的自由脚。连接到 LED 长腿的电线是加号。标记此线程。将镀锡端从外部穿过应变消除装置,并将它们固定在 PCB 上的螺钉端子中,正极线在 鳍 来了,思维板 地线.
最后,用电线连接 LED,电线的末端是你着色的。将两个 LED 的阴极(短腿)连接到 地线,将绿色 LED 的阳极(长腿)连接到引脚处的电阻器 D5 电阻器上红色 LED 的阳极位于 D6.
调试
电路和程序已经过测试,所以适配器可以插入墙上的插座。现在没有串行监视器,因此您最初看不到任何事情发生。绿色 LED 应在几秒钟内亮起。如果一分钟后仍未恢复,则 Wi-Fi 可能存在问题,您需要将电路移至更靠近接入点的位置。
如果超过代码中指定的花粉标准,红色 LED 也会亮起,您将收到警告电子邮件。尽管该程序每小时检索一次数据,但很高兴认识到目前这些数据仅由 LUMC 每周(在周二下午)刷新一次。其他日子的状态保持不变,不幸的是,这也不例外。仅此原因,当然建议不要将阈值设置得太高,以便及时收到警告。
让我们希望通过很少的电子邮件度过一个没有花粉的一年!