AndroidアプリとIoTによるスマートホームオートメーション
必要な部品と材料
| Arduino Yun | ×1 |
| Arduino Mega 2560 | ×1 |
| Arduino UNO | ×1 |
| サーボモータ | ×1 |
| Adafruit LCD 16×2(白/青) | ×2 |
| テンキーパッド | ×1 |
| ブザー | ×1 |
| DHT11 温湿度センサ(4ピン) | ×1 |
| LED(汎用) | ×5 |
| ファンモジュール | ×1 |
| タクトスイッチ 12mm | ×1 |
| 炎センサ | ×1 |
| Logitech C270 HD Webカメラ | ×1 |
| リレー(汎用) | ×1 |
| 電球 | ×1 |
| ブレッドボード(汎用) | ×1 |
| ジャンパワイヤ(汎用) | ×1 |
| SDカード | ×1 |
| HC-05 Bluetoothモジュール | ×1 |
| RFIDリーダー(汎用) | ×1 |
必要な工具
- はんだごて(汎用)
使用するアプリとオンラインサービス
- Blynk(スマホアプリでデバイス制御・監視)
- Temboo(クラウドサービス連携、Dropbox API等)
- Arduino IDE
- PuTTY(Arduino YunへのSSH接続用)
- Arduino Meet Robotアプリ(音声制御用)
プロジェクト概要
動画
まずはプロジェクト動画をご覧ください。どう動くか、どこが面白いかがわかります。
概要
近年、スマートホームは注目されていますが、多くの提案はデバイス間の統合が不十分で、セキュリティも懸念されます。通信技術にはBluetooth、GSM、Zigbeeなどがありますが、それぞれ長短があります。卒業研究として、使いやすいモバイルアプリで監視・制御でき、全システムが相互接続され、音声コマンドでもデバイス制御できる統合型スマートホームアーキテクチャを実装しました。主な特長:
- テンキーパッドとRFIDの二段階セキュリティで不正侵入を防止
- 侵入時の写真をオンラインアップロード、リモートビデオ監視(ローカルサーバ経由でブラウザから視聴可能)
- DHT11、炎センサ、MQ3、MQ135等のセンサ値をAndroidアプリで監視
- LED、サーボモータ等をアプリで制御
- ユーザー設定に基づくデバイスの自動スケジューリング
- ユーザーの帰宅検知に基づき給湯器やコーヒーメーカーを事前準備
- 音声コマンドでデバイス制御
前提知識
- C言語プログラミングに慣れていること
- Arduino IDEの使用とボードへの書き込みに慣れていること
手順
Step 1: システム全体の配線
添付の回路図通りに配線してください。接続が多いので根気よく丁寧に。段ボールで家型モデルを作ると実感が湧きます。PIR人感センサは誤検知しやすいのでしっかり固定してください。
RFID接続(Mega使用):
- MOSI → ピン51
- MISO → ピン50
- SCK → ピン52
- SS/SDA → ピン9
- RST → ピン8
また、Megaのピン20をYunのピン2、Megaのピン21をYunのピン3に接続してI2C通信を行います。
Step 2: Tembooアカウント作成とDropbox API設定
- Tembooでアカウント登録(メールアドレスでサインアップ)
- 最初のアプリを作成し、アカウント名とキーをメモ
- Temboo Python SDKをここから入手し、SDカードのルートに
tembooフォルダとして配置 - Dropboxアカウント作成
- Dropbox開発者コンソールでアプリ作成(Dropbox API、Files and datastores、App folder権限)
- App keyとApp secretをメモ
- Tembooの
InitializeOAuthコレオでApp key/secretを入力し、コールバックIDと一時トークンシークレットを取得。Dropbox認証リンクを訪問して許可 - Tembooの
FinalizeOAuthで最終的なToken key/secretを取得しメモ
Step 3: Arduino Yunへのドライバインストール
- PuTTYでYunにSSH接続(IPアドレス指定、ユーザーroot、デフォルトパスワード
arduino) - パッケージマネージャ更新:
opkg update - UVCドライバインストール:
opkg install kmod-video-uvc - Python SSLインストール:
opkg install python-openssl - fswebcamインストール:
opkg install fswebcam
Step 4: ライブビデオ監視
- SSHで再接続し、mjpg-streamerパッケージ取得:
wget https://www.custommobileapps.com.au/downloads/mjpgstreamer.ipk - インストール:
opkg install mjpgstreamer.ipk - ストリーミング開始:
mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 25" -o "output_http.so -p 8080 -w /www/webcam" & - ブラウザで
https://にアクセス.local:8080/stream.html
Step 5: Twilioアカウント設定(SMS送信用)
- Twilioでサインアップ、Account SIDとAuth Tokenをメモ
- 無料番号を取得、送信先番号をVerified Caller IDsで認証
- Tembooの
SendSMSコレオでTwilio認証情報を入力し、プロファイル名を保存 - Arduino Yunコードの208行目でプロファイル名を置換
Step 6: Blynkアカウント設定とアプリ構成
- Blynkアプリをインストール
- 新規プロジェクト作成、ハードウェア「Arduino Yun」選択、Auth Tokenをメモ(メールにも届く)
- 4つのタブを作成:Home, HVAC, Monitoring, Control
- 各タブにウィジェットを配置・設定(詳細なピン割り当ては原文参照)
- Runボタンで開始
音声制御
AMR_VOICEアプリをダウンロードし、HC-05とBluetoothペアリング。Arduino UNOに音声制御用スケッチを書き込み、アプリで「Connect Robot」→マイクアイコンを押してコマンド発話(コード内の文字列)でデバイスON/OFF。
ご質問はコメント欄へ。全ドキュメントとコードはGitHubリポジトリに移行済み。ソースコード、回路図、アーキテクチャ参照はそこからダウンロード可能。プルリクエストやIssueも歓迎です。Cheers!
コード
コードベースはGitHubリポジトリからダウンロード:
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
製造プロセス
- Arduinoと1Sheeldで作る万能Androidリモコン──IR制御で家電を一括操作
- ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
- IoTで遠隔操作する自作ロボットアーム:Arduino MKR1000とSimulink、ThingSpeak活用
- Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
- 1Sheeldで作るスマートホーム自動化&セキュリティシステム
- Bolt IoTとArduino UNOでLED輝度をシームレス制御
- Arduino、Yaler、IFTTTでWeb対応IoTゲージを構築する
- Arduino Nanoで構築するスマートホーム植物自動水やりシステム
- AWS IoTで実現するスマート植物監視システム
- Alexa対応Arduinoホームコントローラー:音声でスマートホーム自動化
- Arduinoで作るセキュリティシステム:超音波センサーとサーボで広範囲監視・アラート