Bolt IoTで実現するリアルタイム水位監視・アラートシステム
部品と用品
| 部品 | 数量 | 備考 |
|---|---|---|
| Bolt IoT Bolt WiFiモジュール | 1 | |
| Arduino UNO | 1 | |
| 超音波センサー HC-SR04(汎用) | 1 | |
| USB-A - Micro-USBケーブル | 1 | |
| ジャンパーワイヤー(汎用) | 1 |
アプリとオンラインサービス
- Bolt IoT Bolt Cloud
- Arduino IDE
- Integromat(現Make)
このプロジェクトについて
はじめに
バンガロールで数年暮らしているなら、モンスーンシーズンの浸水被害はご存知でしょう。私のアパートの地下駐車場は毎年のように浸水し、バイクのエンジンがかからないほど水位が上がります。水が引いた後も水害で修理に出す羽目になります。今年は我慢できず、駐車場が浸水したらアラートを出す水位監視システムを自作することにしました。
同じシステムを構築する手順を紹介します。
必要なライブラリのインストール
以下の2つのライブラリをダウンロードしてください。
Arduino IDEの「スケッチ」→「ライブラリをインクルード」→「.ZIP形式のライブラリをインストール」から、ダウンロードしたZIPファイルを選択してインストールします。
Arduinoコードのアップロード
- Arduino IDEを開きます。
- 本記事末尾のArduinoコードをコピーし、スケッチ内のコードを全て置き換えます。
- Ctrl+S(Windows/Ubuntu)またはCmd+S(Mac)で保存します。
- ツールメニューの「ボード」から「Arduino/Genuino Uno」を選択します。
- USBケーブルでArduino(またはBoltduino)をPCに接続します。
- ツールメニューの「シリアルポート」から、末尾に「Arduino/Genuino uno」と表示されるポートを選択します。
- 「マイコンボードに書き込む」ボタンをクリックします。
コードがArduinoまたはBoltduinoに書き込まれます。
ハードウェアのセットアップ
以下のFritzing図に従って配線してください。
注意: 「>」をクリックすると、Arduino 대신 Boltduinoを使用する場合のFritzing図が表示されます。


Boltduinoを使用する場合、Bolt WiFiモジュールが直接Boltduinoに装着できるため、配線が少なくて済みます。
センサーが床面を向くように設置し、時間とともに溜まる水を検知できるようにしてください。


検知閾値は常にセンサーの高さより小さくなることに注意してください。
9Vまたは12VのDCアダプターでシステムに電源を供給します。
注: Boltのセットアップがまだの場合は、こちらの手順に従ってください。
Integromatシナリオの設定でメールアラートを送信
Integromat(現Make)のアカウントを作成し、以下の手順で私が作成した「水位検知」シナリオをクローンしてください。
- 本プロジェクトのコードセクションに添付されているブループリント「Water Level Detection」をダウンロードし、ファイル名を
WaterLevelDetection.jsonとして保存します。 - 右上の「Create a new scenario」ボタンをクリックし、シナリオを新規作成します。
- 画面下部の「more」ボタンをクリックします。
- 「Import Blueprint」を選択し、「Choose file」で先ほど保存したJSONファイルを選択して開き、「Save」をクリックします。シナリオが読み込まれます。
- シナリオ名を「Water Level Detection」に変更します。
シナリオの設定手順
- Bolt CloudのAPIキーを取得します。画像のようにAPIキーを有効化・コピーしてください。
- Integromatシナリオに戻り、最初のBoltIoTバブルをクリックして「Add」ボタンを押します。
- コピーしたAPIキーを貼り付け、「Continue」をクリックします。
- デバイス名を追加します。Bolt WiFiモジュールのデバイス名はこちらで確認できます。「OK」をクリックします。
- 2番目と3番目のBoltIoTバブルでは、ドロップダウンから「My Bolt Connection」を選択し、それぞれに正しいデバイス名を設定します。
- Mathバブルをクリックし、値「100」をセンサーの設置高さ(cm)に変更して「OK」をクリックします。
- MathバブルとGmailバブルの間の赤いドットをクリックし、値「60」をアラートを出したい水位(cm)に変更して「OK」をクリックします。
- Gmailバブルをクリックし、「Edit」ボタンを押します。
- 自分のメールアドレスを入力して「OK」をクリックします。
- 「Add」→「Continue」をクリックし、IntegromatからGmailへのアクセスを許可します。
- 必要に応じて「Add a recipient」で受信者を追加し、「OK」をクリックします。
- 回路に電源が入り、センサー前方に障害物がない状態で「Run」ボタンをクリックします。シナリオが実行され、フィルター前で待機します(吹き出しの「1」で確認)。センサー前に手をかざしてシナリオを実行すると、Gmailバブルまで到達し、メールが届きます。
- 「OFF」の横にあるボタンをクリックしてシナリオを「ON」にします。以後、15分ごとに自動実行され、設定した水位を超えるとアラートメールが届きます。
システムの設置
センサーが床を向くように設置し、システムに電源を供給し、BoltがWiFi経由で常時インターネットに接続できる環境を確保してください。
応用例
- 駐車場の浸水検知
- 水タンクの満水・空検知とアラート
- 海沿いの住宅での高潮検知
Boltを使ったその他のプロジェクト
Boltで他のプロジェクトも作ってみたい方へ:
- Bolt入門:温度監視システム
- ホームオートメーション
コード
超音波センサーHC-SR04を使用した水位検知システム C/C++
#include <Ultrasonic.h>
#include <BoltIoT-Arduino-Helper.h>
#define ULTRASONIC_TRIG_PIN 12
#define ULTRASONIC_ECHO_PIN 13
Ultrasonic ultrasonic(ULTRASONIC_TRIG_PIN, ULTRASONIC_ECHO_PIN);
int distance = 0;
String getDistance(String *arguments) {
distance = ultrasonic.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();
}
WaterLevelDetection JSON
Integromatシナリオのブループリントを含むJSONファイルです。
(内容は長いため省略。プロジェクトファイルからダウンロード可能です。)
回路図
製造プロセス
- Raspberry Pi制御アクアポニックスシステム:構築ガイド & コード
- 産業制御システムをワイヤレスネットワークへ移行する
- 製造現場はIoT導入の準備ができているか? 実践ガイド
- IoT対応農業:食糧アクセス拡大へのスマートな解決策
- 水中IoT:リアルタイム・インサイトで水管理を変革
- AI搭載IoTシステムで森林火災を超早期検知・樹木健康を監視
- IoTが車両追跡システムに革命をもたらす仕組み
- フリート管理の革新:IoTが効率と洞察を促進する仕組み
- IoT対応ミルクレベル監視で酪農管理を革新
- スマートIoT河川監視システムで水管理と洪水予防を強化
- 水資源保護のためのIoT:将来に備えた水管理を強化