
昨年、Aquastorozhからの漏れが検出されたときに、クレーンの緊急遮断用の機器を購入しました。 長い間、私はそれを置くことができませんでした。 Z-Waveネットワークに統合してgidrolockアナログを入手するというアイデアがありましたが、バッテリーで動作します。 最後に、手が届きました...
Aquastorozhは、プラグインタップと漏れセンサーを備えたベースです。 この複合体は、アダプターを介した220 Vネットワークとバッテリーの両方で機能します。 開発者は、「スマートホーム」のシステムに接続する機能を提供しています。 イーサネットアウトレットの1組の接点を閉じることにより、タップを開き、もう1組を閉じることができます。 漏れが検出されると、リレー接点が1秒間閉じます。 ボードにははんだ付けされていないUARTコネクタがありますが、この記事では、文書化された機能の実装について説明します。
開発タスク
- リモートオン/オフタップ。
- 漏れ情報。
- 2つの水道メーター。
- 「Aquastorozh」の作業を妨げないでください。
ZUNoシールドに基づいて行うことにしました。 圧力シール付きの密閉された筐体に納品され、ボード上に端子台があり、バッテリーと追加の電子部品を取り付けるための空きスペースがあります。 Arduinoも同様です。
イーサネットコネクタ

閉鎖可能なワイヤの1つは、「アクアウォッチマン」の「アース」です。 ZUNoとAqua-Watchの土地を組み合わせて、GPIO ZUNoから直接クレーンを制御できます。 だから私はやった。 しかし、ZUNo障害(たとえば、バッテリーが切れた)の場合、「Aquastorozh」制御ラインに「ゼロ」が供給され、周期的に再起動し始めます。 このような接続オプションはシステム全体の信頼性に大きく影響するため、回路が少し複雑になったため、2つのリードリレーに切り替えて、Aquastorozhからガルバニック絶縁を提供しました。 リレーはオンのときに約7 mAを消費します。 クレーンを切り替えるには、1つのリレーを1秒間オンにする必要がありますが、これはまったく問題ありません。 バッテリーの充電は数千回の切り替えに十分でした。 (今、私の手に電磁パルスシングルコイルリレーがあります。それらを切り替えるには、エネルギー効率がはるかに高い1 msパルスを適用する必要があります。しかし、リレーには4つのトランジスタと2つの入力/出力レッグが必要です)。
Z波で眠る
Z-Waveデバイスがどのようにスリープするかと、結果として生じる問題について少しお話します。
Z-waveデバイスは休止状態になるか、頻繁に目覚めます。 睡眠装置は最もエネルギー効率が良いですが、コマンドを送信することはできません(私の場合、クレーンを切り替えます)。 2番目のタイプは私に合っています。 FLiRSデバイス-頻繁にリスニングするルーティングスレーブ。 この動作モード用に構成されたデバイスは毎秒起動し、短時間コントローラーから完全に起動する信号を受信しないと、スリープ状態になります。 例:クレーンを開くコマンドを送信します。 コントローラーは、デバイスが頻繁にリッスンしていることを理解し、1秒以内に特別な短いパケット(ウェイクアップビーム)を送信して、ネットワーク上のすべてのFLIRSデバイスがウェイクアップするようにします。 デバイスがこのパケットを受け入れるとすぐに、デバイスはウェイクアップし、コマンドを受け入れる準備ができているというレポートを送信します。 タップを閉じるコマンドを取得します。 再び眠りに落ちる。 そのため、デバイスが制御されるたびに。 欠点は、デバイスがコントローラーによるブロードキャストの終了時と開始時の両方でウェイクアップビームを受信できることです。 コントローラーは約1秒間送信します。 最悪の場合、デバイスはこのニュースレターの最初に起動し、コマンドが到着するまでほぼ1秒待機します。 しかし、タップを開閉する必要がないことが多いため、これは重大な欠点ではありません。
実装
ZUNo Shieldには小さなブレッドボードがあり、その上に必要なコンポーネントを配置できます。

回路には、制御用の2つのリレーと2つのトランジスタが含まれています。 簡単な小さなスケッチ。

エネルギー消費について一言。
ZUNoシールドには、RS-485プロトコル用のドライバーチップと、One Wireプロトコル用の下部ブロックのピン「11」用のプルアップ抵抗が含まれています。 これらのコンポーネントを削除した後、主な消費者はZUNoのままです。

スリープモードでの消費量は約5〜10μAで、アクティブモードでは最大60 mA(リレーがアクティブで、ZUNaが送信中)です。
異なる動作モードでの消費電流のオシログラム
現在の軸の方向は上から下です。
デバイスはコマンドを待っています:

ほぼ毎秒、デバイスが起動し、ウェイクアップビームが到着したかどうかを確認する短いピークが表示されます。
デバイスはコマンドを受信しました:

最初に、デバイスは目覚め、ウェイクアップビームを受信し、コマンドを待機し(0から1秒まで)、クレーンを制御するコマンドが1秒間対応するリレーをオンにします(この段階では、脚を現在の状態に保ちながらコントローラーをスリープ状態にする必要がありますが、私は怖くて怠zyでした)、残りの時間はチップの内部動作に費やされ、その後ZUNoは眠りに落ちます。 タップによる開閉の1回の操作につき合計で約3.5秒。 ひどく長いですが、そのような操作が非常にまれに実行されるという事実のために、最適化は無視できます。 はい、Arduino ideのスケッチはこの小さなマイクロコントローラで「投げる」ことのほんの一部であり、メーカーが好奇心から確実に隠しているものであるため、ほとんど意味がありません。
Aquastorozhの接続図

おわりに
Aquastorozhを既存のZ-Waveネットワークにかなり正確に追加することが判明しました。 主な欠点は、Aquastorozhからのフィードバックがないことです。 この段階では、ZUNoライブラリの新しいバージョンを待っています。このバージョンでは、ZUNoが正常にスリープできないバグが修正されるため、Aquastorozhがインストールおよび接続された写真の代わりに、デバッグプロセスの写真があります。

ご清聴ありがとうございました!