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

IOTを使用したAndroidアプリベースのホームオートメーションシステム

コンポーネントと消耗品

>
Arduino Yun
× 1
Arduino Mega 2560
× 1
Arduino UNO
× 1
サーボモーター
× 1
Adafruit標準LCD-16x2白地に青
× 2
テンキー
× 1
ブザー
× 1
DHT11温度および湿度センサー(4ピン)
× 1
LED(汎用)
× 5
ファンモジュール
× 1
SparkFunプッシュボタンスイッチ12mm
× 1
炎センサー
× 1
logitech c270hdウェブカメラ
× 1
リレー(汎用)
× 1
電球
× 1
ブレッドボード(汎用)
× 1
ジャンパー線(汎用)
× 1
SDカード
× 1
HC-05Bluetoothモジュール
× 1
RFIDリーダー(汎用)
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Blynk
Temboo
Arduino IDE
putty
arduinoミートロボットアプリケーション

このプロジェクトについて

ビデオ

先に進む前に、視聴者にプロジェクトのビデオを見てもらい、物事がどのように起こっているのか、そしてこのプロジェクトのすばらしい点を理解してもらうようにお願いします。

プロジェクトのビデオは次のとおりです。

まとめ

過去数年で、スマートホームは非常に賑やかで人気のある言葉になりました。多くの人が独自のバージョンのスマートホームアーキテクチャを提案しようとしましたが、ほとんどの人はスマートホームデバイスの統合に欠けています。また、セキュリティもスマートホームアーキテクチャの主要な関心事です。これらのスマートホームアーキテクチャで使用される通信技術には、Bluetooth、GSM、Zigbeeなどがあります。これらのアーキテクチャにはすべて、独自の長所と短所があります。エンジニアリングの最終年に、シンプルでユーザーフレンドリーなモバイルアプリケーションで監視および制御できる統合スマートホームアーキテクチャを実装しようとしました。また、すべてのシステムが相互接続され、特定の範囲内のデバイスを制御するための音声コマンドが追加されます。これが私のホームオートメーションアーキテクチャのサイレント機能です:

  • テンキーとRFIDを使用した2レベルのセキュリティシステムにより、侵入者が家に侵入するのを防ぎます。
  • 強盗の場合のオンラインでの写真のアップロード、ユーザーが任意のWebブラウザを使用して表示できるローカルサーバーにビデオがアップロードされるリモートビデオ監視。
  • Androidアプリケーションを介して、DHT11、火炎センサー、MQ3、MQ135センサーなどのさまざまなセンサーの読み取り値を使用して家庭環境を監視します。
  • Androidアプリケーションを介して、LED、サーボモーターなどのデバイスを制御します。
  • Androidアプリケーションを介してユーザーが設定した設定に基づいたデバイスの自動スケジューリング。
  • ユーザーが自宅に近づいたときにユーザーが設定した設定に基づいて、デバイス(geysar、コーヒーマシン)を自宅で準備します。
  • 人間の声を使用してデバイスを制御します。

前提条件

  • Cプログラミングに精通している必要があります
  • ArduinoIDEの使用とArduinoボードへのコードのデプロイに精通している必要があります

手順-次の手順に従います

先に進む前に、このプロジェクトの私のビデオをチェックしてください。そうすれば、物事がどのように機能し、どのように接続が確立されているかを知ることができます。

ステップ1-システム全体を配線する

下記の回路図に従って接続してください。作成する接続はたくさんあるので、辛抱強く、すべての接続を慎重に行ってください。ホームオートメーションの本当の感触をつかむことができるように、段ボールを使用していくつかのホームタイプのアーキテクチャを作成することをお勧めします。 PIRモーションセンサーは敏感な変化を起こしやすいので注意してください。誤検知が発生しないようにしっかりと固定してください。そうしないと、ドアが予期せず開くことになります。

RFID接続は次のとおりです:

- MOSI --->ピン51

-味噌 --->ピン50

- SCK --->ピン52

- SS / SDA --->ピン9

- RST --->ピン8

また、メガのピン20をarduino yunのピン2に接続し、arduinomegaのピン21をarduinoyunのピン3に接続してI2C通信を行います。

ステップ2-Tembooアカウントを作成し、DropboxAPIを設定します

このプロジェクトの次のステップは、WebサービスTembooでアカウントを作成して設定することです。これにより、Tembooが提供するさまざまなサービスを使用できるようになります。そのための最初のステップは、TembooのWebサイト(http://temboo.com/)にアクセスすることです。メインページで、登録する電子メールアドレスを入力し、[サインアップ]をクリックするだけです。次に、アカウント名など、アカウントに関する基本情報を入力するように求められます。次に、最初のアプリを作成するように求められます。最初のアプリの名前や与えられるキーなど、アカウントの詳細を必ず保存してください。これらの値を再度取得したり、新しいアプリケーションを作成したりする必要がある場合は、いつでもこのデータにアクセスできます。 Temboo Webサイトの[マイアカウント]セクションで、[アプリケーション]の下の[管理]ボタンをクリックします。

さて、ソフトウェア側では、ArduinoIDEだけではありません。 SSH経由で接続するときに、カメラに必要なソフトウェアをYúnボードに直接インストールしますが、Dropboxに画像をアップロードするにはTemboo PythonSDKが必要です。 SDKはhttps://temboo.com/pythonにあります。それを開梱し、SDカードのルートにも配置します。 SDカードのルートにtembooという名前で表示されていることを確認してください。これにより、作成したPythonファイルから正しくアクセスできるようになります。次に、Dropboxアカウントも必要です。これにより、写真をアップロードできます。 https://www.dropbox.com/homeにアクセスすると、アカウントを簡単に作成できます。アカウントを作成したら、プロジェクトで使用するアプリを作成する必要があります。これは基本的に、この章で構築するプロジェクトを承認して、毎回ログインとパスワードを入力しなくても、Dropboxアカウントに写真を自動的に送信する必要があることを意味します。また、YúnのPythonスクリプトで後で入力する必要なすべての情報(APIキーなど)も提供されます。

1.アプリを作成するには、まずhttps://www.dropbox.com/developers/appsにアクセスします。

2.次に、ウィンドウの右上隅にある[アプリの作成]をクリックします。これで、作成するアプリのタイプを選択できます。この例では、DropboxAPIを直接使用します。

3.次に、アプリに保存する必要のあるデータの種類を選択するように求められます。写真をアップロードしたいので、ファイルとデータストアを選択します。

4.これで、Dropboxアプリの作成プロセスを終了できます。

5.アプリについて説明している確認ページで、アプリキーとアプリシークレットを書き留める必要があります。これらはプロジェクトの残りの部分で必要になります。

6.また、[権限の種類]フィールドが[アプリフォルダー]に設定されていることを確認します。これにより、写真がアプリ専用のフォルダーにアップロードされ、YúnがDropboxフォルダーの残りの部分にアクセスできなくなります。

7.ここで取得する必要があるのは、Dropboxアプリに関連するトークンキーとトークンシークレットです。これにより、後でプロジェクトのソフトウェアに入力できます。それらを取得するには、最初のステップは、Temboo Webサイト(https://temboo.com/library/Library/Dropbox/OAuth/InitializeOAuth/)のInitialiseOAuthChoreoにアクセスすることです。ここでは、アプリキーとアプリシークレットを入力する必要があります。これにより、コールバックIDや一時的なトークンシークレットなどの追加情報が生成されます。また、認証を確認するためにDropboxへのリンクにアクセスするように求められます。

8.最後に、FinalizeOAuthページに移動してプロセスを終了します。 https://temboo.com/library/Library/Dropbox/OAuth/FinalizeOAuth/で、アプリキー、アプリシークレット、コールバックID、一時トークンシークレットを入力するように求められます。この手順の後、最終的なトークンキーとトークンシークレットが提供されます。後で必要になるので、書き留めておきます。

ステップ3:ArduinoYunにドライバーをインストールする

Puttyソフトウェアをインストールして開きます。 arduino yunのIPアドレスを入力し、sshを選択して、[開く]をクリックします。ユーザー名としてrootを入力すると、Yún用に選択したパスワードを入力するように求められます(デフォルトのパスワードはarduinoです)。動作する場合は、次のスクリーンショットが端末に表示されているはずです。これは、Yúnで直接作業していることを示しています。

YúnLinuxマシンからすべての機能にアクセスできます。次に、カメラに必要なソフトウェアをインストールします。これには、次の手順で説明するように、ArduinoYúnが必要なパッケージを取得できるようにインターネットに接続する必要があります。

1.プロセスは、次のようにパッケージマネージャーopkgを更新することから始まります。opkgupdate

2.次のようにUVCドライバーをインストールします。opkginstallkmod-video-uvc

3.次のコマンドに示すように、プロジェクトの後半で使用するpython-opensslパッケージをインストールします。opkginstallpython-openssl

4.最後に、次のコマンドに示すように、写真の撮影に使用するfswebcamソフトウェアをインストールできます。opkginstallfswebcam

ステップ4:ライブビデオ監視

アプリケーションを機能させるには、次の手順に示すように、最初にYúnにいくつかの追加のソフトウェアパッケージをインストールする必要があります。

1.ArduinoYúnの名前とパスワードを使用してSSHを使用してYúnに再度接続し、次のコマンドを入力して、ライブストリーミング用の正しいパッケージを取得します。wgethttp://www.custommobileapps.com.au/downloads/mjpgstreamer.ipk

2.リンクが無効になり、ファイルが見つからない場合は、この章のコード内でもこのパッケージを利用できることに注意してください。これで、次のコマンドでインストールできます:opkg install mjpg-streamer.ipk

3.これで、次のコマンドを使用して、ArduinoYúnでライブストリーミングソフトウェアを開始できます。

mjpg_streamer -i "input_uvc.so -d / dev / video0 -r 640x480 -f 25" -o "output_http.so -p 8080 -w / www / webcam"&

ここで、–hの後のパラメーターは解像度であり、–iの後のパラメーターはストリームが使用可能なポートです。また、–Iコマンドを使用して1秒あたりのフレーム数を指定しました。他のオプションはそれほど重要ではなく、それらについて心配する必要はありません。次に、WebブラウザでArduinoYúnのアドレスに移動し、続いて8080に移動して正しいポートを指定することにより、ストリームにアクセスできます。たとえば、リンクは次のようになりますhttp://yourarduinoyunipaddress.local:8080 / stream.html。上記のリンクのyourarduinoyunipaddressをarduinoyunのIPアドレスに置き換えます。

ステップ5:テキストメッセージ用にTwilioアカウントを設定する

https://www.twilio.com/にサインアップします。アカウントのsidと認証トークンを書き留めます。 twilioで無料の番号を購入し、確認済みの発信者IDセクションでテキストメッセージの送信先の番号を確認します。番号が確認されると、その番号にメッセージを送信する準備が整います。次に、temboo.comにログインします。このリンクhttps://temboo.com/library/Library/Twilio/SMSMessages/SendSMS/にアクセスし、twilioから取得した資格情報を提供します。 [今すぐ実行]をクリックする前に、追加情報を書き留めてください。 [今すぐ実行]をクリックして、必要な追加情報を入力し、プロファイルを名前を付けて保存します。このプロファイル名は、arduinoyunコードで使用されます。 arduino yunコードの208行目に移動し、your_profile_nameをプロファイル名に置き換えます。 tembooで[今すぐ実行]ボタンをクリックしても、エラーが発生しないことを確認してください。エラーが発生しない場合は、クレデンシャルに問題があり、トラブルシューティングを行う必要があります。

ステップ6:blynkアカウントの設定とblynkアプリの構成

このリンクhttps://play.google.com/store/apps/details?id=cc.blynkを使用して、Playストアからblynkアプリをダウンロードします。

Blynkアプリをダウンロードしたら、新しいBlynkアカウントを作成する必要があります。アカウントに正常にログインしたら、新しいプロジェクトを作成することから始めます。ハードウェアモデルをArduinoyunとして選択します。 Auth Tokenは、ハードウェアをスマートフォンに接続するために必要な一意の識別子です。作成するすべての新しいプロジェクトには、独自の認証トークンがあります。プロジェクトの作成後、メールで認証トークンが自動的に取得されます。手動でコピーすることもできます。デバイスセクションをクリックします。次に、」を押します 作成 ボタン。次の手順に従ってウィジェットを追加します。

ホーム、空調、監視、制御として4つのタブを作成します

ホーム

[ホーム]タブで、LCD、値の表示、レベルH、通知の4つのウィジェットを選択します。

LCDの入力をV1として構成します。

値の表示に火災センサーという名前を付け、火災センサーの入力をV11として構成し、範囲0〜1023にマップして、読み取り速度を1秒にします。

レベルhに火災レベルという名前を付け、入力をV12として構成し、範囲0〜1023にマップして、読み取り速度をプッシュにします。

通常どおり、優先度を使用して通知を構成します。

HVAC

[HVAC]タブで、[LCD]、[スライダー]、[値の表示(2)]、[履歴グラフ]を選択します。

lcdの入力をV3として構成します。

スライダーの名前をファンに変更し、出力をD9に構成して、0から255にマップします。

2つの値の表示の名前をroom1tempとroom2tempに変更します。 1つの入力をV2として構成し、他の入力をV6として構成し、読み取り速度を1秒として両方を0から50にマッピングします。

履歴グラフの入力をV9およびV8として構成します。 V9に対応するroom1tempとV8に対応するroom2tempという名前を付けます。

監視

[監視]タブで、ラベルの付いた値(2)、グラフ(2)、履歴グラフを選択します。

2つのラベル付き値ウィジェットの名前をroom1湿度とroom2湿度に変更し、入力をV5とV7に設定し、読み取り速度1秒で0から100にマッピングします。

2つのグラフの名前を「部屋1の湿度」と「部屋2の湿度」に変更します。入力ピンはV10とV9で、範囲は0〜100、読み取り速度は1秒です。

履歴グラフの入力をV10およびV7として構成します。部屋1はV10に対応し、部屋2は湿度がV7に対応します。

制御

[コントロール]タブで、[lcd]、[値の表示(2)]、[ラベルの付いた値]、[スライダー]、[時間入力]、[GPSトラック]を選択します。

lcdの入力をV4として構成します。

値表示の入力をV19およびV20として構成し、範囲は0〜1023、読み取り速度は1秒です。

ラベル付けされた値の入力をV21として構成し、範囲は0〜1023で、読み取り速度は1秒です。

スライダー設定の名前をメインルームライトに変更し、書き込み間隔100msで0から255に出力します。

時間入力V31を構成し、開始/停止入力の許可をyesとして構成し、曜日の選択をyesとして許可し、タイムゾーンの選択をyesとして許可します。

gpsトラック入力をv29として構成し、入力時にトリガーします。これにより、ユーザーがマップ内に到着したときに、システムがv29ピンをオンにトリガーできるようになります(たとえば、geysarに接続されている場合があります)。都合に合わせて地図の半径を変更できます。

実行ボタンをクリックします。

おめでとうございます!これで、Androidスマートフォンから家庭環境を制御および監視できます。

デバイスの音声制御操作

このリンクからAMR_VOICEアプリをダウンロードし、HC05でBluetoothを構成します。 arduinounoの音声制御として名前が付けられた以下のコードをarduinounoにデプロイします。アプリでロボットの接続をクリックします。スマートフォンのBluetoothがhc05とペアリングされていることを確認してください。音声アイコンを押し、コードに記載されている文字列を話すと、デバイスの電源がオン/オフになります。

このプロジェクトの作成中に問題が発生した場合はお知らせください。ユーザーがarduino、c、および基本的なLinuxプログラミングの基本に精通している可能性があるという事実を考慮して、一部の手順は詳細に示されていません。どこか、またはどのステップでも行き詰まった場合は、コメントセクションで気軽に質問してください。

注:すべてのドキュメントとコードをパブリックgitリポジトリに移行しました。リンクhttps://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOTにアクセスして、ソースコード、回路図ファイル、およびアーキテクチャリファレンスをダウンロードしてください。また、このプロジェクトに貢献したり、新しい機能を追加したりする場合は、私のgithubリポジトリにプルリクエストを作成してください。コードまたはセットアップ環境に問題がある場合は、githubリポジトリで問題を提起してください。

乾杯!

コード

このプロジェクトのコードベース
このプロジェクトのコードを私のgitリポジトリからダウンロードします。このプロジェクトにさらに機能を追加する場合は、リポジトリでプルリクエストを発行してください。https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT
>

回路図

プロジェクトの回路図
githubリポジトリから回路図面をダウンロードします。 https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT

製造プロセス

  1. Arduino、1Sheeld、Androidを使用したユニバーサルリモコン
  2. IoTを使用した心拍数モニター
  3. IoTを使用してロボットアームをリモート制御する
  4. ラズベリーモーターシールドを使用したAndroid制御玩具
  5. 1Sheeldを使用したスマートホームオートメーションおよびセキュリティシステム
  6. BoltとArduinoを使用したLEDの明るさの制御
  7. Arduino、Yaler、IFTTTを使用したIoTゲージ
  8. 観葉植物の散水システム
  9. AWSIoTを使用したプラント監視システム
  10. Alexaによってアクティブ化されたArduinoホームコントローラー
  11. Arduinoベースのセキュリティシステム