完全にarduinoベースのホームオートメーションプロジェクトのためのハードウェアネットワークインフラストラクチャ

で既に述べたように別の質問、私は私の新しい家のためのホームオートメーションシステムを計画している時間のたくさんのを費やしています(現在まだ "まだ建物"の段階です)。

「ライト/スイッチ管理プロジェクト」としてのみ開始されたとしても、事態はますます大きくなり始めました。当時は、元の要件に加えて、私は既に既に

  1. A
    • 各部屋でDHT22センサーの位置を計画しました。

In addition to the above, I'm currently evaluating the oppまたはtunity to add a single RGB led to have visual-feedback fまたは each push-button (something like: GREEN=>LIGHT/OFF; RED=>LIGHT/ON). Mまたはe specifically, I'm evaluating the oppまたはtunity to replace common/simple pushbuttons with these:

enter image description here

明らかに、このような変更は次のようにケーブル配線に大きな影響を与える

  • 元のシンプル/プッシュボタンは、プッシュボタンごとに 2本のワイヤーを必要とし、隣接するプッシュボタン間で1本のワイヤを共有する可能性があります( "内部プルアップ" )
  • RGBプッシュボタンは隣接するプッシュボタン(GNDおよびCOMMON)の間で潜在的に共有可能な2本のワイヤのみで、 6本のワイヤ(プッシュボタンのGNDとSIGNAL、R、G、BプラスLEDのCOMMON) 。

これに加えて、2つ、3つ、または4つの押しボタンを収容するウォールボックスを持つことは容易であり、たくさんのケーブルが必要であることを容易に理解できます!

ここでは、ハードウェアの観点から、私が構築しようとしているものの概要を説明します。

enter image description here

見ることができる場所:

  • ROOM 1, with:

    • 2 x reed switch (up to 8 wires);
    • 1 x DHT22 (3 wires);
    • a wall box with two pushbuttons/wLED (up to 12 wires);
    • a wall box with one pushbutton/wLED (up to 6 wires)
  • ROOM 2, with:

    • 1 x reed switch (4 wires);
    • 1 x DHT22 (3 wires)
    • a wall box with two pushbuttons/wLED (up to 12 wires)

また、システム全体を「制御する」ために:

  • 「コントローラー」(MEGA2560)を必要なリレーモジュールと一緒にホストし、RS-485バスを介して相互接続することを当初予定していた部屋の外側にある2つのパワーボックス。

(BTW:実際には、私は3つのパワーボックスを持っていますが、2つだけではありませんが、これはこの質問の精神についての詳細です)。

POWER-BOXES(PB1とPB2)は、最悪の場合のシナリオでは、一部の部屋からかなりの FAR (10/15mまで)に配置されますまた、それぞれの電源ボックスは、各電源ボックスから10/15メートル離れています。

実際の質問の前に、別の重要な点を2つ追加しましょう。

  • ある種の無線システムやワイヤレス・セグメントが私の全体的なアーキテクチャーを単純化することは知っていますが、「有線」システムは「ワイヤレス」システムより信頼性が高いと強く信じています長期的には。そのように、私は十分にたくさんの "パイプ"(すべてのケーブルを家の周りに適切に配布する)を置くことができるほど幸運なので、私は本当に完全に有線のシステムを好む

  • この質問については、システムの「ソフトウェア」側に興味がありません。これは本当に付属品です(もう一度、この非常に疑問があります)。私の really_big_problem は、「ハードウェア」インフラストラクチャと関連しています。だから私はこの質問をここに掲載しています。

すべての後、ここに質問があります:

あなたの経験と知識については:

  1. MEGAだけを相互接続するRS-485マルチドロップバスと、ルームハードウェア(プッシュボタン、リード、DHT22など)からMEGAピンに直接接続する「信号」ケーブルを使用して、元のプランに固執する必要があります。 ..

または

  1. ルームハードウェアから来るすべての信号室ケーブルを終端し、同じハードウェアからMEGAと話すことで、他のいくつかのArduinos(マイクロは本当に良い候補に見える)を追加する必要がありますRS-485バス?

In the first case, I'll have a real simple RS-485 bus with a mess of cables; In the second case I'll have a _longer_and_mまたはe_complex_ RS-485 bus, with a much manageable netwまたはk cabling/infrastructure.

私は正しい?上記の2つのシナリオのPROとCONSは何ですか?私は他ののアプローチを調査する必要がありますか?

適切なソリューションを選ぶのに役立つ資料がありますか?

この本当に難しい決断で私を助けるいくつかの(貴重な)時間を費やすすべての人に、事前に感謝します!


BTW:詳細が必要な場合は、お気軽にお問い合わせください。

1
私はより多くの、そしてより単純なノードを単一のバス上に置くだろう。私はおそらく別の電源線を追加するだろう。長いワイヤのために、私は電圧のために少し高い値を使用し、arduinoのレギュレータを使用して安定した5Vを得る。
追加された 著者 Al.,
@DamianoVerzulli確かに。あなたは、おそらくハーフサイズのブレッドボードに収まるかもしれません。レイヤリングすることでさらに多くのものを追加できます。
追加された 著者 Al.,
各ボタンを中央ユニット(メガ)に配線するIMHOは、ケーブル、ピン、お金の本当の無駄です。その解決策は全く柔軟ではないことは言うまでもなく、ある場所に何かを追加したい場合は、別の電線を引っ張る必要があります。 IMHO理想的なセットアップ(しかし、私はちょうど初心者ですので、私は間違っている可能性があります)ボックスあたり1つのマイクロコントローラを持っている:あなたはarduinoマイクロまたはボックスが本当に小さい場合は単純なattinyを使用することができます。これらのすべてのuCは、フィールドバス(すべての家を通過するRS485と同じものでも、部屋全体のRS485、CAN、I2C、シリアル、デイジーチェーンネットワークなど)でも接続できます。
追加された 著者 Tom Collins,
この方法では、各ボックスとシリアル通信ができ、各ボックスはメインメガと通信できます。最も重要なのは、いくつかのケーブルを渡す必要があるため、ネットワークを拡張するのは簡単です。私はRS485を使いますCANよりはるかに強力ですが(実際には、RS485トランシーバでシリアルプロトコルを使用できます)。グローバルなイーサネット接続を避けるのは、セキュリティとパフォーマンスの両方の理由からです(セキュリティに問題がなければイーサネットに接続できないため、ネットに接続している誰かがすべてのメッセージやパフォーマンスを見ることができるため)
追加された 著者 Tom Collins,
@DamianoVerzulliどのような場合でも、あなたのネットワークを行き来する暗号化されていないメッセージを持ちますが、それはちょっとした問題です。最も重要な点は、各ノードにイーサネットシールドまたはトランシーバ(ENC29J60など)が必要であり、単純なフィールドバス(rs485など)ではトランシーバが必要ですこれは安価で小型です)、コミュニケーションのためのコンピューティングはほとんど必要ありません(通常はシリアルベースなので、周辺機器はそれを独自に処理します)
追加された 著者 Tom Collins,
@ frarugi87:コメントをいただきありがとうございます。 "イーサネットセキュリティ"に関しては、これは大きな問題ではありません。そのようなシナリオでは、 VLAN を参照してください。とにかく、すべての every ボックスにArduinosを持つ完全に分散したネットワークを構想するのは興味深いと思う。私は、使用する予定のフレームワークでいくつのノードを処理できるかをチェックする必要があります。
追加された 著者 The G of GIS,
@fabrosell:コメントありがとう。私は、イーサネットの関与を調査するために、始めてからしばらく時間をかけました。ネットワークは当初、バスのように見えましたが、RS485は安価で信頼性が高く(外付けスイッチを必要としない)、私は現在RS485向けです。当然のことながら、私は自宅の近くでイーサネットを使用しますが、メインの「ゲートウェイ」(MEGAの1つ、おそらく2つ)まで使用されるため、インフラストラクチャ全体をRaspberry/OrangePIに簡単にアクセスできるようにするため、ウェブサーバ/データコレクタ/ etc。とにかく、私はイーサネットオプションを再評価します。ありがとう。
追加された 著者 The G of GIS,
@Gerben: this ウォールボックス?スペースを削減/最適化するためのアドホックPCBの設計/購入を計画し始めるべきか? (あなたのお時間を頂きました)
追加された 著者 The G of GIS,
私はイーサネットのシールドとArduinosを各部屋に置いていました。次に、より強力なArduino(またはラズベリーPi)が必要な場合は、既存のネットワークに接続するだけです。数年が過ぎると維持したり拡張したりする方が簡単です。もちろん、すでにネットワーク回線で部屋を配線している可能性は非常に高いです。
追加された 著者 Nayt Grochowski,

2 答え

  1. 短いワイヤは一般的に長いワイヤよりも優れています。
  2. 私は同意します、あなたの状況に適した有線です。
  3. おそらく、センサ/アクタとコントローラとコントローラ間通信の2つの異なる領域を区別できます。
  4. 多くの場合、センサ/アクタとコントローラの通信は、デバイス(DHT-22、リード、プッシュボタンなど)によって与えられているため、選択できません。したがって、これらの行を短くしてください
  5. RS-485は良いですが必要ですか?各デバイスにドライバを追加します。たぶん、I2Cはそれをやり遂げることができました。ツイストペアケーブルを使用することもできます。
2
追加された
コメントしてくれてありがとう。私が直面した最初の問題は、「どのように」、「どのプロトコルを使って」私のArduinosを相互接続するかを決めることでした。次のように:1)それらの間の距離はかなり大きい(20メートル以上)。 2)私は可能な限り最善の方法で、伝送中に "ノイズ"を処理する必要があります。 3)システム全体が必要とする帯域幅が比較的小さい。私は、マルチドロップ構成(例えば、ここ)でRS-485を使用しました。同様の条件でI2Cをテストできましたか?
追加された 著者 The G of GIS,
"短いワイヤーは一般的に長いワイヤーよりも優れている" "というアプローチは、毎回壁ボックス( this ウォールボックス)。そのようなボックス(1 xナノ3.0、1 x MAX485、最大3つのプッシュボタン、ケーブル接続)にすべてを収めることができるかどうか、あるいはすべてを最適化するために適切なPCBを設計する必要があるかどうかは疑問です。あなたの意見は何ですか?
追加された 著者 The G of GIS,
" sensor/actor <=>コントローラ"と "コントローラ<=>コントローラ"の2種類のネットワークについては、これは絶対に合理的です。私は各MEGAに3つのシリアルを持っていたので、各MEGAから "ローカル"ボックスに向かって "セカンダリネットワークブランチ"を持つことができます。また、私が現在評価/体験しているソフトウェアフレームワークは、 souliss のようなアーキテクチャでうまくいくはずです。
追加された 著者 The G of GIS,

ここに私の追加思考は短いです:

  1. 20mは月までの距離と比べてかなり短いです;-)。 RS-485の最大長は、伝送速度が小さい(google:rs485ケーブル長)キロメートルと報告されています。

  2. ノイズは避けることができます(ハードウェア)か、ソフトウェアで修復できます(フォールトトレラントコード、チェックサムなど)

  3. 短いワイヤーはワイヤーを全く意味しません。短いワイヤは、例えば、 1つの部屋にコントローラがあり、それにセンサーを接続すると結果になります。

  4. Arduino互換チップ(ATTiny84/85)の小さなパッケージもあります。 RS485がなければ、コントローラのスペースを節約することができます...

  5. あなたがビル・ゲイツのものより大きくないなら、I2Cバスの長さは家の中で動くはずです... http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/i2c-bus/frequently-asked-questions/i2c-faq.html

    </>
  6. シリアル通信は使用しません。それは拡張可能ではありません。シリアルはデバッグに問題ありません。

0
追加された