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

Windows 10 IoT Core、Raspberry Pi、Arduinoで家庭用コンセントを自動化

必要な部品と用品

Raspberry Pi 2 Model B ×1
XBeeモジュール ×2
Arduino UNO ×1
FTDIケーブル ×2
4チャネル リレーシールド(Arduino用) ×1
SparkFun XBeeシールド ×1

使用するアプリとオンラインサービス

プロジェクト概要

はじめに

このプロジェクトでは、Windows 10 IoT Coreを搭載したRaspberry Pi、XBee、Arduinoを使用して、家庭用コンセントをローカルおよびクラウドから制御する方法を紹介します。すべてのコードサンプルはGitHubで公開しています。

なぜコンセントを自動化するのか?

クラウドから個別デバイスを制御する代わりに、コンセント自体を自動化すれば、あらゆる機器を接続して制御可能になります。本プロジェクトでは、扇風機と照明の制御を例としています。

XBeeのセットアップ(ATモード)

XBeeを使って無線信号を伝送します。1つのXBee(Coordinator:親機)をRaspberry Piに、もう1つ(Router:子機)をコンセント側に接続します。Coordinatorがユーザー入力に基づき信号を送信し、Routerがコンセントを制御します。

  1. XCTUをダウンロード・インストール
  2. XBeeファームウェアの更新:Adafruit FTDIアダプタを使用
  3. ATモードでXBeeを設定:設定チュートリアル動画を参照

2つのXBeeが互いに通信できることを確認してから次へ進んでください。

受信側(Router側)の構築

必要なもの:Zigbee Router、Arduino UNO R3、XBeeシールド、リレーシールド

Arduinoスケッチ

Coordinatorからのデータに応じてリレーを制御:

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n") digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n") digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

コンセントへの接続(高電圧注意!)

Windows 10 IoT Core、Raspberry Pi、Arduinoで家庭用コンセントを自動化
リレーとコンセントの接続

リレーは電子スイッチとして動作し、Arduino等のマイコンでON/OFFを制御できます。入力側にはAC 100-240Vが流れます。

警告: 高電圧を扱います。感電・火災の危険があるため、十分な知識と注意を持って作業してください。自己責任でお願いします。

延長コードを使用し、片方の線をカットしてリレーのCOM(コモン)とNO(ノーマルオープン)に接続します。

Windows 10 IoT Core、Raspberry Pi、Arduinoで家庭用コンセントを自動化
延長コードをリレーに接続

Arduinoにリレーシールドを装着し、その上にXBeeシールドをスタック。Router設定済みのXBeeを挿入します。

Windows 10 IoT Core、Raspberry Pi、Arduinoで家庭用コンセントを自動化
受信側の完成

外部電源でArduinoを駆動すれば受信側は完成です。

サーバー側(Coordinator側)の構築

必要なもの:Windows 10 IoT Core搭載Raspberry Pi 2、Coordinator設定済みXBee

  1. XBeeをFTDIアダプタ経由でRaspberry PiのUSBポートに接続
  2. UWPアプリとしてWebサーバーを構築
  3. ユーザー入力を受け取り、シリアルポート(FTDIケーブル)経由でXBeeにコマンド送信
  4. XBeeが無線でRouter側へ伝送

FTDIドライバの詳細はこちらを参照。

Windows 10 IoT Core、Raspberry Pi、Arduinoで家庭用コンセントを自動化
Raspberry PiとXBeeの接続

サーバー構築の詳細:Webサーバー構築動画

Azureクラウド連携

世界中から制御できるよう、Azureサービスを連携させます。

  1. Webサイトを作成しAzureにホスティング
  2. Azure SQL Databaseでユーザー認証/認可
  3. Azure Cloud Storage(Table)でコマンドをキューイング
  4. Raspberry Piアプリがコマンドを処理し、家電を制御

ストレージテーブル作成:公式ドキュメント
SQLテーブル作成:公式ドキュメント

詳細:Azure連携チュートリアル動画

デモ

2通りの制御方法を実演:

  1. ローカルネットワーク内のRaspberry Pi WebサーバーURLにアクセス
  2. AzureにホストしたASP.NET 5 Webアプリ経由で制御

結論

  1. 照度・人感センサーを追加すれば、省エネのための自動制御やデータ提供が可能
  2. 高齢者がリモコンでコンセント操作可能(RFIDデバイス追加で実現)
  3. スケジュール機能で照明の自動ON/OFF、省エネ
  4. 侵入検知時に全灯点灯
  5. 外出時はワンクリックで全機器遮断
  6. 必要な時だけ空調運転で省エネ

コード

リレー制御スケッチ (C/C++)

#define RELAY1 7
#define RELAY2 5
String state = "OFF";

void setup() {
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    state = Serial.readString();
    Serial.println(state);
  }
  if (state == "ON1\r\n") digitalWrite(RELAY1, HIGH);
  else if (state == "ON2\r\n") digitalWrite(RELAY2, HIGH);
  else if (state == "OFF1\r\n") digitalWrite(RELAY1, LOW);
  else if (state == "OFF2\r\n") digitalWrite(RELAY2, LOW);
  else {
    digitalWrite(RELAY1, LOW);
    digitalWrite(RELAY2, LOW);
  }
}

サンプルコード

GitHubリポジトリ

回路図

電源コードとリレーの接続図

製造プロセス

  1. 家庭用の低コストワイヤレスセンサーネットワークを構築
  2. Windows IoTとRaspberry Piで作るセキュアな顔認証ドアロック
  3. Windows 10 IoT CoreとSHT15センサーで高精度な温湿度モニタリング
  4. Raspberry Pi 3 Model B+へのWindows 10 IoT Coreインストール:ステップバイステップガイド
  5. Windows 10 IoT Coreで音声制御ロボットを構築 - Raspberry Pi 2編
  6. GoPiGo v2をWindows 10 IoT Coreで拡張 - Raspberry Pi 3対応
  7. ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
  8. Arduinoプロジェクトのための最適化電源ソリューション
  9. Azure IoT対応スマートプール制御システム:水温・気温監視と遠隔ポンプ制御
  10. PLCnextクラウドデータからPower BIダッシュボードを作成
  11. IoTでデジタルトランスフォーメーションを加速:「今の力」をビジネス価値に変える