WindowsIOT-電源コンセントを自動化する
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
| × | 2 | ||||
![]() |
| × | 1 | |||
| × | 2 | ||||
| × | 1 | ||||
![]() |
| × | 1 |
アプリとオンラインサービス
| ||||
| ||||
![]() |
| |||
![]() |
| |||
![]() |
|
このプロジェクトについて
はじめに
このプロジェクトでは、Windows 10 iot、xbee、およびarduinoで実行されているラズベリーパイを使用して、自宅の電源コンセントをネイティブおよびクラウドで制御する方法を説明します。すべてのコードサンプルはgithubで入手できます。
電源コンセントを自動化する理由
クラウドからデバイスを制御する代わりに、電源コンセントを自動化できれば、任意のデバイスを電源コンセントに接続して制御できます。このプロジェクトでは、ファンとライトを制御するための例を取り上げました。
ミツバチを始めましょう
私はXbeeを使って無線信号を転送しました。コーディネーターと呼ばれる1つのXbeeはラズベリーパイに接続され、もう1つは電源コンセントに接続されたルーターと呼ばれます。コーディネーターは、入力に基づいて信号をルーターに送信し、電源コンセントを制御します。
ATモードでXbeesを構成する
XCTUをダウンロードしてインストールします。
Zigbee(Xbee)ファームウェアを更新するために、adafruitFTDIアダプターを使用しました
XbeeをATモードで構成する方法については、このチュートリアルをご覧ください。
ミツバチの設定
次のステップに進む前に、これら2つのXbeeが互いに通信していることを確認する必要があります。
レシーバーのセットアップ
Zigbeeルーター、Arduino UNO R3、Arduino用のXbeeシールド、およびArduinoリレーシールドが必要です。
Arduinoスケッチ
CoOrdinator ZigbeeからのデータがON1の場合、relay1をオンにします。データがON2の場合、relay2をオンにします。同様に、OFF1とOFF2のリレーをオフにします
これをarduinoideでコンパイルし、arduino unoに書き込む必要があります:
#define RELAY1 7#define RELAY2 5String state ="OFF"; void setup(){Serial.begin(9600); pinMode(RELAY1、OUTPUT);} void loop(){//シリアルかどうかを確認データはavailbleif(Serial.available()> 0){state =Serial.readString(); Serial.println(state);} //テキストがON1の場合。リレーをオンにします1if(state =="ON1 \ r \ n")digitalWrite(RELAY1,1); //テキストがON2の場合。 Relay2elseをオンにしますif(state =="ON2 \ r \ n")digitalWrite(RELAY2,1); //テキストがOFF1の場合。リレーをオフにします1elseif(state =="OFF1 \ r \ n")digitalWrite(RELAY1,0); //テキストがOFF2の場合。 reply2elseをオフにしますif(state =="OFF2 \ r \ n")digitalWrite(RELAY2,0); // Do Nothingelse {digitalWrite(RELAY1,0); digitalWrite(RELAY2,0);}}
電源コンセントを構成します(高電圧で遊んでいる場合の注意)
<図>
リレーは、エレクトロニクスの分野では古くからある技術です。スイッチとして機能します。リレーへの入力はAC電圧(110〜240 V)にすることができます。 arduinoなどのマイクロコントローラーを使用して、リレーのオン/オフを切り替えることができます
リレーには高電圧を接続しますので、AC電流を尊重し、リレーに配線する際は細心の注意を払ってください。これは危険すぎます。自己責任で進めてください
リレーを電源コンセントに直接設定する代わりに、延長コードを使用しました。コンセプトは同じです。
延長コードでは、一方のワイヤをそのままにして、もう一方のワイヤをクリップします。ワイヤーの端をコモン(C)に接続し、もう一方をNO(ノーマルオープン)に接続します
<図>



リレーシールドをArduinoに接続し、Xbeeシールドを上またはリレーシールドに積み重ねます。 Xbeeシールドでルーターとして構成されたZigbeeを接続します







Xbeeシールドを使用してXbeeをarduinoに接続しました。シールドの設定がXbeeに設定されていることを確認してください。このシールドとarduinoは、スイッチをusbに設定したときにファームウェア設定を書き込むためにも使用できます。 arduinoの組み込みFTDIチップを使用してデータをXbeeに書き込みます。
コードを接続し、外部バッテリーソースを使用してarduinoの電源を入れます。受信機は完了です。
サーバーの構成
サーバーをセットアップするには、Windows 10IOTで実行されているRaspberryPi2とコーディネーターとしてセットアップされたZigbeeが必要です。
ZigbeeをFTDIアダプターに接続し、6ピンFTDI RS 232USBケーブルをラズベリーパイusbポートに接続します。 UWPを使用してラズベリーパイにWebサーバーをセットアップします。サーバーはユーザー入力を待機し、選択に基づいて、FTDI RS 232ケーブルが接続されているUSBポートにシリアルデータを書き込み、Zigbeeはこのメッセージを電波として送信します。コーディネーターのZigbeeでルーターのDHとDLをすでに設定しているので、メッセージは正しいZigbeeルーターに送信されます。
ラズベリーパイ用のFTDIドライバーの詳細については、https://github.com/jark/ftdisample
をご覧ください。 <図>


このビデオに従って、RaspberryPiでサーバーをセットアップしてください。
すべてのコードサンプルはgithubで入手できます。
Azureを有効にする
世界中のどこからでも家を管理するために、アプリケーションへのクラウドサービスを有効にしています。
Webサイトを作成し、紺碧でホストする必要があります。 Azure SQL DBを作成して、サイトのユーザーを認証/承認します。コマンドを実行するAzureクラウドストレージサービスを作成します。 Raspberry PI Blinkyアプリからこれらのコマンドを処理し、家を管理します。
ストレージテーブルを作成するには、この記事を参照する必要があります:
https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-tables/
SQLテーブルを作成するには、次の記事を参照してください:
https://azure.microsoft.com/en-us/documentation/articles/sql-database-get-started/
プロジェクトでAzureを使用する方法についてのビデオチュートリアルをご覧ください:
Azureを有効にするデモ
2つの方法で電源コンセントを制御する方法を示してみました
- ネットワーク内のラズベリーWebサーバーのURLにアクセスする
- Azureでホストされているaspnet5Webアプリケーションを介して
結論
- この種の自動化は、多くの現実世界の問題を解決します。光や人感センサーなどのセンサーを追加することで、光のオン/オフを切り替えたり、少なくともユーザーにデータを提供してエネルギーを節約したりできます。
- 高齢者はリモコンを使用して電源コンセントを制御できます。この場合、追加のRFIDデバイスが必要です。
- 電力を節約できるように、ライトをオン/オフするスケジュールを作成できます。
- 侵入者がいる場合は、すべてのライトをオンにすることができます。
- 休暇中は心配する必要はありません。ボタンをクリックするだけで家の電源を切ることができます。
- 常に室温を維持する必要はありません。適切と思われるときに行ってください。エネルギーを節約します。
コード
- リレー
リレー C / C ++
リレーを制御するには#define RELAY1 7 #define RELAY2 5String state ="OFF"; void setup(){Serial.begin(9600); pinMode(RELAY1、OUTPUT); } void loop(){//シリアルデータが利用可能かどうかを確認if(Serial.available()> 0){state =Serial.readString(); Serial.println(state); } //テキストがON1の場合。リレー1をオンにしますif(state =="ON1 \ r \ n")digitalWrite(RELAY1,1); //テキストがON2の場合。リレー2をオンにしますelseif(state =="ON2 \ r \ n")digitalWrite(RELAY2,1); //テキストがOFF1の場合。リレー1をオフにしますelseif(state =="OFF1 \ r \ n")digitalWrite(RELAY1,0); //テキストがOFF2の場合。リレー2をオフにしますelseif(state =="OFF2 \ r \ n")digitalWrite(RELAY2,0); //他に何もしません{digitalWrite(RELAY1,0); digitalWrite(RELAY2,0); }}
サンプル
サンプルコードhttps://github.com/syediddi/hacksterio 回路図
電源コードを配線してリレーします 
製造プロセス