工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

主要コンポーネント

部品数量仕様・備考
Raspberry Pi 2 Model B1コントローラ本体
HSRel5 - I²C 5リレーボード1PCF8574ベース、5リレー+3GPIO、DINレールマウント可
HSRel8(+8) - I²C 8リレーボード1MAX7311ベース、8リレー+8GPIO
I2C-Port 16 HS - 16GPIO拡張ボード1MAX7311ベース、入力用
DR-60-12 12V/54W DINレール電源1リレー駆動用12V供給
DR-30-5 5V/3A DINレール電源1ロジック系5V供給
Raspberry Pi用プロトタイピングシールド1ステータスLED、割り込み入力保護、ネジ端子台搭載
I2Cバッファ HS (P82B96)1レベルシフト+バス延長用、プルアップ内蔵
Arduino Nano R31DHT22センサブリッジ+433MHz送信用
433MHz 送受信モジュール1組ワイヤレスリレー対応用

開発環境

プロジェクト概要

自宅リノベーションに合わせて3年間かけて開発したホームオートメーションシステムです。Windows 10 IoT Coreを搭載したRaspberry Pi 2を中核とし、I²Cバスで配電盤内のリレーボード・入力ボードを制御します。Webアプリ(AngularJS+Bootstrap)で全デバイスを操作・監視可能。Azure Event Hubs連携でログ収集・Power BI可視化も実現しています。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

対応入力デバイス

対応出力デバイス

主な特長

ハードウェアアーキテクチャ

コンセプト:配電盤集中制御

全ての照明・コンセント・シャッター等を配電盤内のリレーで制御します。各スイッチ・センサ・負荷は専用ケーブルで配電盤まで引き回すため、KNX/EIB等の専用バスは不要です。※日本国内では電気工事士法に基づき、有資格者による施工が必要です。

新設配電盤

2階建て住宅全体をカバーする新設配電盤に、全I²Cボードを収納。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

長距離I²Cバスの設計ノウハウ

I²Cは本来短距離用ですが、以下の工夫で数十メートルまで延長可能です:

リレーボード(出力)

独CCTools製ボードを採用。HSRel5はPCF8574(8bit拡張、アドレス8種)で5リレー+3GPIO。リレー駆動にはULN2803とインバータを介在(電源投入時の誤動作防止)。HSRel8はMAX7311(16bit拡張)で8リレー+8GPIO、インバータ不要。アドレス制限対策としてPCF8574A(別アドレス8種)併用で最大16枚接続可能。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

ポートエキスパンダボード(入力)

I2C-Port16 HS(MAX7311ベース)にプルアップ抵抗(5V/10kΩ)とセラミックコンデンサ(100nF、グリッチフィルタ)を全ポートに実装。ボタン・人感センサ・リードスイッチは各々専用ケーブル(CAT7、シールドをPE接地)で配電盤まで引き込み。全ボード共通の割り込み線をPiのGPIOに接続し、状態変化時のみI²Cポーリングする割り込み駆動設計。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

Raspberry Pi 2マウント

専用ケースで配電盤に固定。プロトタイピングシールドにステータスLED、割り込み入力(プルアップ10kΩ+保護1kΩ+100nFフィルタ)、I²C用ネジ端子台を実装。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

温湿度センサネットワーク(DHT22 × 10)

DHT22は独自プロトコルでアドレッシング非対応のため、Arduino NanoをI²Cスレーブとして配置し、全センサを2.5秒周期で読み取りキャッシュ。PiからはポートID指定で値を取得(レジスタ読み出し風インターフェース)。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

Webアプリでは温度・湿度を別ビューで表示。湿度アイコンの色でカビリスクを表示(60%未満緑、70%未満黄、70%以上赤)。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

ハードウェア構成図

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

433MHzワイヤレスリレー統合

DHT22ブリッジ兼用のArduino NanoにFS1000A送信モジュールを搭載、12V駆動で到達距離確保。受信側は専用リレー。元のリモコン操作で状態がズレる問題は、ソフトウェア側で5秒ごとに強制同期することで解決。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

ユニークな応用例:デジタル猫トイレ換気

窓のない収納室の猫トイレを未使用煙突ダクトに接続、ファンをリレー制御。人感センサで猫検知→数分間ファン稼働。Webアプリから手動操作も可能。ログ解析で使用頻度を把握し、掃除タイミング最適化に活用。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

ソフトウェアアーキテクチャ

移行の経緯

元はGHI Electronics G120(.NET Micro Framework 4.3)で稼働していましたが、性能限界(120MHz/16MB/インタプリタ)で未実装機能が多かったため、Windows 10 IoT Coreバックグラウンドタスクへ移植し、Azure連携等を追加しました。

ソリューション構成(Visual Studio 2015)

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

主要コンポーネント

CK.HomeAutomation.TraceViewer

UDPブロードキャストで飛んでくるトレースメッセージをコンソール表示。ファイアウォールでポート(例:19227)開放必要。デバッグ・誤配線特定に必須。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

CK.HomeAutomation.Networking

独自HTTPサーバ実装。Webアプリ配信、JSONステータス提供、制御コマンド受信。Webアプリ本体はSMB経由でPiのローカルフォルダへ手動配置。

CK.HomeAutomation.Controller.*

各プロジェクトがIoTバックグラウンドタスクとして実装。実運用中の「Cellar」(庭・駐車場照明担当)以外のコントローラプロジェクトを同梱。空のテンプレート「CK.HomeAutomation.Controller.Empty」も用意。

事前準備:

セットアップ用PowerShellスクリプト(SetupRaspberryPi.ps1)同梱。IPアドレス等は環境に合わせて修正必須。

CK.HomeAutomation.Actuators

最高レベルの抽象化層。家・部屋・アクチュエータ(ボタン、ライト、コンセント等)を実装。フルーエントAPIで部屋構成を記述可能。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

アクチュエータタイプ

オートメーション機能

「ホームオートメーション ≠ ホームコントロール」。自動化ルールが核心です。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

バーチャル気象ステーション

OpenWeatherMap APIを60秒ごとにポーリングし、天気・日の出入・外気温湿度を提供。IWeatherStationインターフェースで実装されており、将来的に実機気象ステーションへ置換可能。

テレメトリ・分析基盤

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

Webアプリ

AngularJS/jQuery/Bootstrap製。ルーム構成をコントローラから取得し動的生成。Configuration.jsでIPアドレス・翻訳・アイコンカスタマイズ設定。ローカルファイルとしても、Webサーバ(筆者はBanana Pi + nginx)経由でも動作。iOSホーム画面追加はWebサーバホスト必須。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

常設ターミナル

リビングに初代iPad 3を壁掛け設置、Webアプリをフルスクリーン表示で常時操作可能。

Raspberry Pi 2とWindows 10 IoT Coreで構築するホームオートメーション完全ガイド

今後の展開予定

ハードウェア、ソフトウェア、ドキュメント等あらゆる貢献を歓迎します。ご連絡ください。

リポジトリ

完全なソリューション(SDK、Webアプリ、個人設定含む)はGitHubで公開中:

https://github.com/chkr1011/CK.HomeAutomation.git

回路図(Fritzing)

製造プロセス

  1. 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
  2. Raspberry Pi 3とPubNubでリモート気象監視
  3. TI SensorTagをNode-RED経由でBlynkと統合 – Raspberry Pi Zero編
  4. Raspberry PiでPIRモーションセンサーとLEDを制御
  5. Raspberry Piダッシュボードで家庭の温度を監視する
  6. Windows 10 IoT Core on Raspberry Piで心拍パルスを読み取る - ステップバイステップガイド
  7. Raspberry Piで構築するホームオートメーションシステム:リモート制御対応
  8. Raspberry Pi 2からAzure Event HubsへAdafruit 10DOF IMUデータを送信(Windows 10 IoT Core)
  9. Windows 10 IoT CoreとSHT15センサーで高精度な温湿度モニタリング
  10. Raspberry Pi 3 Model B+へのWindows 10 IoT Coreインストール:ステップバイステップガイド
  11. Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合