水位警报系统
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
| ||||
|
关于这个项目
简介
如果您在班加罗尔生活了几年,那么您对洪水并不陌生。每年在季风期间,我公寓的地下停车场都会积满水,以至于我的自行车发动机都无法启动。更糟糕的是,当水变干时,由于水损坏,我不得不将自行车带到技工处进行维修。今年我不会接受任何。所以我决定建立一个水位监测系统,如果停车场被淹,它会提醒我。
以下是启动和运行相同系统的方法。
安装所需的库
单击此处和此处下载 BoltIoT 的 BoltIoT-Arduino-Helper 库和 Erick Simoes 的 Ultrasonic 库。
要安装这些库,请转到 Arduino IDE,在“草图”下拉菜单中选择包括库> 添加.ZIP 库..
然后导航到下载库的文件夹,并选择它们。
上传Arduino代码
1. 打开Arduino IDE。
2.复制博文末尾的Arduino Code,将sketch里面的代码全部替换成复制的代码。
图>3.在widows和ubuntu上按'ctrl + s'保存Arduino草图,在Mac上按'cmd + s'。
4. 保存代码后,进入工具菜单,在板子部分下选择Arduino/Genuino Uno。
5. 使用 USB 数据线将 Arduino 或 Boltduino 连接到您的 PC。
6.在工具菜单下,在端口子菜单中选择末尾有Arduino/Genuino uno的端口。
7. 点击上传。
代码将上传到您的 Arduino 或 Boltduino。
硬件设置
按照下面的弗里茨图进行连接。
注意: 单击“>”以查看使用 Boltduino 而不是 Arduino 的 Fritzing 图。
图>如果您使用的是 Boltduino 而不是 Arduino,您将需要少做一些连接,因为 Bolt WiFi 模块直接安装在 Boltduino 上。
安装系统,使传感器面朝下,水会随着时间的流逝而停滞。
图>请记住,检测阈值将始终小于传感器高度。
使用 9v 或 12v 直流适配器为系统供电。
注意: 如果您还没有设置您还没有设置您的 Bolt,请按照此处给出的步骤操作:设置您的 Bolt .
设置 Integromat 场景以发送电子邮件警报
如果您还没有这样做,请在 Integromat 上创建一个帐户,单击此处转到其注册页面。如果您已有 Integormat 帐户,请登录 Integromat。
使用以下步骤克隆我创建的“水位检测”场景。
1、下载本项目代码部分附带的水位检测场景蓝图。请记住使用文件名“WaterLevelDetection.json”保存文件。
2. 创建一个场景,点击右上角的蓝色“创建一个新场景”按钮,然后点击继续。
图>3. 点击屏幕底部的“更多”按钮。
4. 选择“导入蓝图”并点击“选择文件”。
图>5. 导航到您将“WaterLevelDetection.json”文件下载到的文件夹,选择该文件并单击“打开”。完成后点击保存。将加载水位检测场景。
图> 图>6. 点击场景名称,将其更改为“水位检测”。
使用以下步骤配置水位检测场景。
1. 单击此处获取您的 Bolt Cloud API 密钥。下图显示了如何启用和复制 API 密钥。
2. 回到Integromat场景,点击第一个BoltIoT气泡,然后点击“添加”按钮。
3. 粘贴您之前复制的 API 密钥,然后单击“继续”按钮。
3. 添加您设备的设备名称。您可以通过单击此处找到 Bolt WiFi 模块的设备名称。然后点击确定。
4. 对于第二个和第三个 BoltIoT 气泡,您可以单击下拉菜单并选择“我的 Bolt 连接”。请记住为每个设备添加正确的设备名称。
图>5. 单击数学气泡,将值 100 更改为您保持传感器的高度,以 cms 为单位。然后点击确定。
6.点击数学和gmail气泡之间的红点,将60替换为你想要提醒的水位高度,然后点击确定。
图>6. 点击 gmail 气泡,然后点击编辑按钮。
图>7. 添加您的电子邮件 ID,然后单击确定。
8. 单击“添加”按钮,然后单击“继续”按钮并允许 Integromat 访问您的 Gmail 帐户。
图>9. 您可以通过单击“添加收件人”按钮添加更多收件人,然后单击“确定”。
10. 确保您的电路已通电,并且传感器前面没有障碍物,然后单击“运行”按钮。该场景将在过滤器之前运行并等待,由思想泡泡中的“1”指示。如果您将手放在传感器前并运行该场景,则该场景将一直运行到 gmail 气泡,您将收到一封电子邮件。
图> 图> 图>11. 单击文本“关闭”旁边的按钮以打开场景。该场景现在将每 15 分钟自动运行一次。如果水位高于您设置的警报高度,您将收到并发出警报。
图>
安装系统
完成此操作后,您所要做的就是安装系统,使传感器指向地板,启动系统并确保 Bolt 可以通过您的 WiFi 持续访问互联网。
应用程序
该系统可用于以下应用。
- 检测到您的停车场被淹。
- 在水箱满或空时收到警报。
- 如果您在海边有房子,可以检测涨潮。
更多基于 Bolt 的项目
想用 Bolt 构建另一个项目吗?以下是一些建议:
1. Bolt入门:温度监控系统
2. 家庭自动化
代码
- 使用超声波 HC-SR04 的水位检测系统
- 水位检测
使用超声波HC-SR04的水位检测系统C/C++
#include#include #define ULTRASONIC_TRIG_PIN 12#define ULTRASONIC_ECHO_PIN 13超声波超声波(ULTRASONIC_TRIG_PIN,ULTRASONIC_ECHO_PIN);int distance=0;String getDistance(String *ar) =超声波.read(); String returnString=""+String(distance); return returnString;}void setup() { boltiot.begin(Serial); // 把你的设置代码放在这里,运行一次: boltiot.setCommandString("RD\r",getDistance); boltiot.setCommandString("GetDistance",getDistance);}void loop() { boltiot.handleCommand(); // 把你的主要代码放在这里,重复运行:}
WaterLevelDetectionJSON
这是一个包含 Integromat 场景蓝图的 json 文件。{ "name":"Water Level Detection", "flow":[ { "id":15, "module":"app#bolt-iot:executeCommand", "version":1, "parameters":{ "__IMTCONN__":445281 }, "mapper":{ "command":"serialBegin", "parameters":{ "baud":"9600", "deviceName" :"" } }, "metadata":{ "designer":{ "x":8, "y":-3 }, "restore":{ "command":{ "label":"初始化串行通信" } , "__IMTCONN__":{ "label":"My Bolt connection" } }, "parameters":[ { "name":"__IMTCONN__", "type":"account", "label":"Connection", "required ":true } ], "expect":[ { "name":"command", "type":"select", "label":"Command", "required":true, "validate":{ "enum" :[ "digitalWrite", "digitalRead", "analogRead", "analogWrite", "serialBegin", "serialWrite", "serialRead", "version", "restart", "isAlive" ] } }, { "name":"参数", "spec":[ { "name":"deviceName", "type":"text", "label":"设备名称", "required":true }, { "name":"baud" , “类型”: ” number", "label":"Baud", "required":true } ], "type":"collection", "label":"Parameters" } ] } }, { "id":1, "module":"app#bolt-iot:executeCommand", "version":1, "parameters":{ "__IMTCONN__":445281 }, "mapper":{ "command":"serialWrite", "parameters":{ "data":"GetDistance", "deviceName":"" } }, "metadata":{ "designer":{ "x":300, "y":0 }, "restore":{ "command":{ "label":"发送串行数据输出" }, "__IMTCONN__":{ "label":"My Bolt connection" } }, "parameters":[ { "name":"__IMTCONN__", "type":"account", "label" :"Connection", "required":true } ], "expect":[ { "name":"command", "type":"select", "label":"Command", "required":true, "验证”:{“枚举”:[“digitalWrite”,“digitalRead”,“analogRead”,“analogWrite”,“serialBegin”,“serialWrite”,“serialRead”,“version”,“restart”,“isAlive”]} }, { "name":"parameters", "spec":[ { "name":"deviceName", "type":"text", "label":"设备名称", "required":true }, { “名称”:“数据”,“类型”:“文本”,“标签”:“数据”, "required":true } ], "type":"collection", "label":"Parameters" } ] } }, { "id":14, "module":"app#bolt-iot:executeCommand", " version":1, "parameters":{ "__IMTCONN__":445281 }, "mapper":{ "command":"serialRead", "parameters":{ "till":"10", "deviceName":"" } }, "metadata":{ "designer":{ "x":600, "y":0 }, "restore":{ "command":{ "label":"读取传入的串行数据" }, "__IMTCONN__" :{ "label":"My Bolt connection" } }, "parameters":[ { "name":"__IMTCONN__", "type":"account", "label":"Connection", "required":true } ], "expect":[ { "name":"command", "type":"select", "label":"Command", "required":true, "validate":{ "enum":[ "digitalWrite ", "digitalRead", "analogRead", "analogWrite", "serialBegin", "serialWrite", "serialRead", "version", "restart", "isAlive" ] } }, { "name":"parameters", "spec":[ { "name":"deviceName", "type":"text", "label":"Device name", "required":true }, { "name":"till", "type" :"number", "label":"Till", "required":true, "validate":{ "max":127, "min":0 } } ], "type":"collection", "label":"Parameters" } ] } }, { "id":18, "module":"math:EvaluateExpression", "version":1, "parameters":{}, "mapper":{ "expression":"100-{{parseNumber(14.value)}}" }, "metadata":{ "designer":{ "x":869, "y":-2 }, "expect":[ { "name":"expression", "type":"text", "label":"Expression", "required":true } ] } }, { "id":13, "module":"google-email:ActionSendEmail", "version":1, "parameters":{ "account":445282 }, "filter":{ "name" :"检查水位是否高", "conditions":[ [ { "a":"{{18.result}}", "b":"60", "o":"number:greater" } ] ] }, "mapper":{ "cc":[], "to":[ ], "bcc":[], "html":"水位已达到{{18.result}}cms.", "主题":"警告!水位太高!!", "attachments":[] }, "metadata":{ "designer":{ "x":1145, "y":-3 }, "restore":{ "cc":{ "mode":"choose", "items":[] }, "to":{ "mode":"choose", "items":[ "undefined" ] }, "bcc":{ "mode":“选择”,“项目”:[]},“帐户”:{“标签”:“”},“附件”:{“模式”:“选择”,“项目”:[]}},“参数” :[ { "name":"account", "type":"account", "label":"Connection", "required":true } ], "expect":[ { "name":"to", " spec":{ "name":" ", "type":"email", "label":"Email address", "required":true }, "type":"array", "label":"To" , "labels":{ "add":"添加收件人", "edit":"编辑收件人" }, "required":true }, { "name":"subject", "type":"text" , "label":"Subject" }, { "name":"html", "type":"text", "label":"Content" }, { "name":"attachments", "spec":[ { "name":"fileName", "type":"filename", "label":"文件名", "required":true, "semantic":"file:name" }, { "name":"data ", "type":"buffer", "label":"Data", "required":true, "semantic" :"file:data" }, { "name":"cid", "type":"text", "label":"Content-ID" } ], "type":"array", "label":"附件", "标签":{ "add":"添加附件", "edit":"编辑附件" } }, { "name":"cc", "spec":{ "type":"email ", "label":"电子邮件地址" }, "type":"array", "label":"复制收件人", "labels":{ "add":"添加复制收件人", "edit":"编辑副本收件人" } }, { "name":"bcc", "spec":{ "type":"email", "label":"Email address" }, "type":"array", "label ":"密件复制收件人", "labels":{ "add":"添加密件收件人", "edit":"编辑密件收件人" } } ] } } ], "metadata":{ "version ":1, "scenario":{ "roundtrips":1, "maxErrors":3, "autoCommit":false, "sequential":false, "confidential":false, "dataloss":false, "dlq":false }, "designer":{ "orphans":[] }, "zone":"eu1.integromat.com" }}
示意图
制造工艺