【#SwitchBot】小4と中1の子供たちに部屋の電気を声で消せるようしてとお願いしてみました【#IoT】

小4・中1の子どもたちがSwitchBotで部屋の電気を声で消せるようにしてみた この記事の内容 小学4年生と中学1年生の子どもたち2人だけでSwitchBotのセットアップに挑戦 SwitchBot BotとSwitchBot Hubを使って、物理スイッチをスマートホーム化 SwitchBotアプリのインストールからデバイス登録までの手順 Amazon AlexaとSwitchBotを連携させて音声で照明を操作 子どもたちが自力でトラブルシューティングして問題を解決するまでの過程 はじめに 「この部屋の電気をスマホや声で消せるようにしたい」——そんな課題をお父さんから与えられた小4(ハンバーガーさん)と中1(ポテトさん)の兄弟。SwitchBot BotとSwitchBot Hubという2つのデバイスを渡され、お父さんは「手を出さずに見ている」という縛りのもと、2人だけでセットアップに挑戦しました。 なぜこのセットアップが必要だったのかというと、部屋の照明スイッチが手の届きにくい場所にあり、夜寝るときに電気を消すのが大変だったからです。そこで、物理スイッチをロボットが押してくれる仕組みを作ることにしました。 使用したデバイス SwitchBot Bot:壁のスイッチに取り付けて、物理ボタンを自動で押してくれるロボット SwitchBot Hub:SwitchBot BotをWi-Fi経由でインターネットに接続するための中継器。AlexaなどのスマートスピーカーとSwitchBotを連携させる際に必要 セットアップの手順 1. デバイスの開封と充電 まず箱を開けてデバイスを取り出すところからスタートです。SwitchBot Botは充電が必要なため、付属のケーブルで充電します。充電ランプが光り、充電が完了(100%)になるまで待ちました。 2. SwitchBotアプリのインストール スマートフォンにSwitchBotの公式アプリをインストールします。家族の中にすでにアプリを持っている人がいる場合、同じアプリを共有・使用することが可能です。 インストール後、アカウントにサインインしてアプリを起動します。 3. デバイスの追加登録 アプリを開いたら、SwitchBot BotとSwitchBot Hubをそれぞれアプリに登録します。登録時にはデバイスを近くに持ってくることで認識させます。 途中、デバイスのアイコンがどれなのか迷う場面もありましたが、アプリ上に表示されるデバイス名やアイコンを確認しながら進めました。 4. SwitchBot Botを壁スイッチに取り付ける SwitchBot Botを壁のスイッチに貼り付けます。このとき、スイッチの段差に合わせてボットの位置を調整するのが重要なポイントです。 取り付け方のコツとして、板(付属のスペーサー)を間に挟まないと隙間ができてしまい、テープが剥がれやすくなることが判明しました。スペーサーを使って段差を埋めることで、しっかり固定できます。 5. アプリから動作確認 取り付けが完了したら、アプリのボタンからSwitchBot Botを動かして動作を確認します。ボタンを押すとBotが動いてスイッチを押す——この仕組みが確認できました。 Alexaとの連携 スマホ操作だけでなく、Amazon Alexaを使った音声操作も実現しました。 1. SwitchBotとAlexaを連携する SwitchBotアプリの設定からAlexaスキルを有効にします。このとき、「Grab Service(グラブサービス)」をオンにする設定が必要です。この設定がオフのままだと連携がうまくいきません。今回のセットアップで詰まった原因もここにあり、この設定をオンにしたことで問題が解決しました。 2. Alexaアプリでデバイスを登録 AlexaアプリにSwitchBotのデバイスを追加します。メールアドレスとパスワードを入力してSwitchBotアカウントと連携させ、デバイスを認識させます。 3. 音声で操作してみる 設定完了後、実際に音声コマンドで操作してみました。 「 「 ア ア レ レ ク ク サ サ 、 、 電 電 気 気 を を つ 消 け し て て 」 」 コマンドに反応してSwitchBot Botが動作し、照明のオン・オフができるようになりました。「勉強中にして」という応用コマンドにも反応しました。 ...

November 3, 2021 · 1 min · 胡田昌彦

#IoTEdge を透過型ゲートウェイとして構成する #azure

Azure IoT Edge を透過型ゲートウェイとして構成する この記事の内容 IoT Edge を透過型ゲートウェイとして構成し、下位デバイスを IoT Hub に対して透過的に見せる方法を解説します 証明書(ルート CA・デバイス CA)の作成手順と、ゲートウェイデバイスおよびクライアントへの配置方法を紹介します 下位デバイスの接続文字列に GatewayHostName を追加して IoT Edge 経由で接続する設定を説明します .NET サンプルコードを使ったテレメトリ送信と、IoT Hub からのダイレクトメソッド呼び出しの動作確認手順を紹介します オンプレミス環境でデバイスがインターネットに直接出られない場合のユースケースとして有効なパターンです 透過型ゲートウェイとは IoT Edge を透過型ゲートウェイとして構成すると、IoT Edge の下位に接続したデバイスが IoT Hub に対して「普通の IoT デバイス」として透過的に見えるようになります。 通常の構成では、デバイスが直接 IoT Hub に接続しますが、この構成では以下のようなフローになります。 デ バ イ ス → I o T E d g e ( I o T E d g e H u b モ ジ ュ ー ル ) → I o T H u b → A z u r e サ ー ビ ス 群 IoT Hub からのメッセージ(ダイレクトメソッドなど)も IoT Edge を経由してデバイスに届きます。IoT Edge Hub モジュールが IoT Hub と同じような役割を IoT Edge 上で担ってくれます。 ...

May 1, 2021 · 3 min · 胡田昌彦

#Azure #IoTHub 経由でクラウドからデバイスにメッセージを送る/メソッドを実行する

Azure IoT Hub 経由でクラウドからデバイスにメッセージを送る/メソッドを実行する この記事の内容 Azure IoT Hub を使ったクラウド→デバイス(C2D)方向の通信を解説します ダイレクトメソッドを使って、クラウドからデバイス上の関数を呼び出す方法を紹介します Cloud-to-Device メッセージを使って、デバイスにメッセージを送信する方法を紹介します Azure IoT Explorer(v0.14.3)と Raspberry Pi IoT Online Simulator を使って動作を確認します Device Twin によるデバイス状態管理の概要にも触れます はじめに Azure IoT Hub に関しては、以前の動画でデバイスからクラウドへのメッセージ送信(Device-to-Cloud)を扱いました。デバイスが収集したデータを IoT Hub に送り上げ、Azure 側で各種処理を行うというフローです。 しかし、その逆方向——クラウドからデバイスへ指示を出す(Cloud-to-Device) についてはまだ紹介していませんでした。この記事ではその部分を補足します。 使用するツール 今回使用するツールは以下の 2 つです。 Raspberry Pi IoT Online Simulator — デバイス側のシミュレーターとして使用します Azure IoT Explorer(v0.14.3) — IoT Hub に接続してクラウド側の操作を行います 事前準備:IoT Hub への接続とデバイスの作成 まず、Azure IoT Explorer を IoT Hub に接続します。IoT Hub の「IoT Hub Owner」のアクセスキーを使い、プライマリ接続文字列をコピーします。 Azure IoT Explorer で「Add connection」を選択し、コピーした接続文字列を貼り付ければ接続完了です。 ...

April 29, 2021 · 2 min · 胡田昌彦

【チュートリアルをやってみる】チュートリアル - #Azure #IoT #Edge を使用して #Linux 用の C# モジュールを開発する / #Azure

Azure IoT Edge で Linux 向け C# カスタムモジュールを開発する この記事の内容 Azure IoT Edge のカスタムモジュール開発として、Linux デバイス向けに C# でモジュールを実装します Visual Studio Code と Azure IoT Edge 拡張機能を使ったモジュールプロジェクトの作成手順を紹介します 温度データをフィルタリングするロジックを C# で実装し、閾値以上のメッセージのみを上流に転送する仕組みを構築します モジュール名を変更したときにビルドが失敗するトラブルと、その解決策を解説します コンテナレジストリへのプッシュから IoT Edge デバイスへのデプロイまでの流れを確認します 前提条件 本チュートリアルは、Azure IoT Hub と IoT Edge デバイスがすでにセットアップ済みであることを前提としています。Visual Studio Code には Azure IoT Edge 拡張機能がインストールされており、コンテナレジストリ(Azure Container Registry など)へのアクセス情報が手元にある状態で進めます。 モジュールプロジェクトの作成 Visual Studio Code を起動し、コマンドパレットから新しい IoT Edge ソリューションを作成します。 コマンドパレットを開き「Azure IoT Edge: New IoT Edge Solution」を選択します ソリューション名を入力します モジュールのテンプレートとして「C# Module」を選択します モジュール名を入力します(例:SampleModule) コンテナレジストリのイメージリポジトリ URL を入力します プロジェクトが生成されると、ソリューションのフォルダ構造が作成され、modules/ 配下に C# プロジェクトが配置されます。 ...

April 28, 2021 · 3 min · 胡田昌彦

Linuxコンテナーを使用して IoT Edgeモジュールを開発する

Linuxコンテナーを使用してIoT Edgeモジュールを開発する この記事の内容 Azure IoT Edgeモジュール開発のための開発環境セットアップ手順を解説します Docker Desktop for Windows と Visual Studio Code を使った開発フローを紹介します C#でカスタムIoT Edgeモジュールを作成し、Azure Container Registryにプッシュします Linux仮想マシン上にIoT Edgeをインストールし、モジュールをデプロイします テンプレートモジュールとTemperatureSensorモジュール間のメッセージルーティングを確認します 概要 本記事はAzure IoT Edgeのチュートリアルシリーズの一部です。今回は「開発環境をセットアップしてLinuxコンテナーを使用した開発をする」チュートリアルを実施します。 チュートリアルの全体像は以下のとおりです。 開発環境のセットアップ(本記事) カスタムコードモジュールの開発 Azure Functionsをモジュールとしてデプロイ IoT Edgeにおける機械学習の活用 今回のチュートリアルでは、以下の内容を実施します。 開発マシンのセットアップ Visual Studio Code 用のIoT Edge拡張機能を使って新しいプロジェクトを作成 プロジェクトをビルドしてAzure Container Registryに格納 IoT Edgeデバイスにデプロイ 前回のクイックスタートでは既存のコンテナーイメージをそのまま展開しましたが、今回は自分でイメージをビルドし、Azure Container Registryに格納してからデプロイするところまでを行います。 前提条件 本チュートリアルを開始する前に、以下の環境が準備されていることを確認してください。 開発マシン Docker対応OS(Windows/Mac/Linux) Git Visual Studio Code Visual Studio Code 用 C# 拡張機能 .NET Core 2.1 SDK(※3.1では動作しないケースがあるため2.1を推奨) Azureリソース IoT Hub(前回のクイックスタートで作成済みのものを流用可能) IoT Edgeデバイス(前回のチュートリアルで作成済みのLinux仮想マシンを利用可能) ターゲット環境の意識について 開発OS(Windows/Mac/Linuxのいずれでも可)にかかわらず、IoT Edgeモジュールが最終的に動作するターゲット環境はLinuxです。そのため、開発・テスト段階でもLinuxコンテナー上で動作確認することが重要です。本記事ではWindowsで開発を行い、コンテナーのOSはLinuxを指定する構成で進めます。 ...

April 27, 2021 · 3 min · 胡田昌彦

はじめてのIoT EdgeモジュールをLinux仮想デバイスにデプロイする

はじめてのIoT EdgeモジュールをLinux仮想デバイスにデプロイする この記事の内容 Azure IoT Hubを作成し、IoT Edgeデバイスを登録する手順を解説します Linux仮想マシンにIoT Edgeランタイムをインストールして構成します Azure Marketplaceから温度センサーのシミュレーターモジュールをデプロイします デバイスからIoT Hubへのテレメトリ送信を確認します Azure Cloud Shellを使ったコマンド操作を中心に、初心者にも分かりやすく説明します はじめに この記事ではAzure IoT Edgeのクイックスタートとして、はじめてのIoT EdgeモジュールをLinux仮想デバイスにデプロイする手順を解説します。 IoT Edgeを使用すると、クラウドに送信するデータをエッジデバイス上で処理できるため、より多くのワークロードをクラウドへ送信する前にフィルタリングや分析が可能になります。 このクイックスタートでは、IoT EdgeデバイスとしてAzure仮想マシンを使用します。これにより、テスト用マシンを素早く作成し、終了後に削除できます。 全体の流れ IoT Hubを作成する IoT Edgeデバイスをデバイス登録する IoT EdgeランタイムをLinux仮想デバイスにインストールして開始する モジュールをIoT Edgeデバイスにデプロイする 前提条件 アクティブなAzureサブスクリプション(ない場合は無料アカウントを作成してください) Azure Cloud Shell(またはAzure CLIをインストールしてローカルで使用) 操作はAzure Cloud ShellのBash環境を使用するのが簡単です。ローカルでAzure CLIを使用する場合は、インストール後にログインして最新バージョンに更新してください。 リソースグループの作成 まずはAzure Cloud Shellを起動し、リソースグループを作成します。 az group create --name IoTEdgeResources --location japaneast ロケーションは日本リージョンであるjapaneastを指定しています。コマンドが成功すると、リソースグループが作成されます。 IoT Hubの作成 次に、IoT Hubを作成します。既存のIoT Hubがあれば流用することも可能です。新規に作成する場合は以下のコマンドを実行します。 az iot hub create \ --name <ハブ名> \ --resource-group IoTEdgeResources \ --sku F1 無料プラン(F1)のIoT HubがIoTEdgeResourcesリソースグループに作成されます。作成には数分かかる場合があります。 ...

April 26, 2021 · 2 min · 胡田昌彦

【 #初心者 向け】#Azure #IoT #チュートリアル 【 #ハンズオン 】

【初心者向け】Azure IoT チュートリアル — ハンズオンで基礎を学ぼう この記事の内容 ハードウェア不要・すべてソフトウェアとAzureクラウドだけでIoTを体験できます Azure IoT Hubを作成し、Raspberry Pi Webシミュレーターからデータを送信します IoT Explorerを使って受信データをリアルタイムに確認します Stream AnalyticsとStorage Accountを組み合わせてデータをJSONファイルとして保存します Power BIダッシュボードでリアルタイム可視化、Time Series Insightsでデータ分析を行います 全体構成の概要 このチュートリアルのコンセプトは「まず手を動かして動くものを作り、その中で理解していく」ことです。ハードウェアは一切使用せず、すべてソフトウェアとAzureで完結します。 全体の流れは以下のとおりです。 Azure IoT Hub を作成し、デバイスからのデータを受け止める場所を用意する Raspberry Pi Webシミュレーター(気温・湿度センサー付き)からIoT Hubへデータを送信する IoT Explorer でIoT Hubに届いているデータをリアルタイムに確認する Stream Analytics + Storage Account で受信データをBlobストレージに保存する Power BI でリアルタイムダッシュボードを作成してデータを可視化する Time Series Insights でIoT Hubのデータを直接取得して分析・可視化する 1. Azure IoT Hubの作成 まずAzure管理ポータル(portal.azure.com)にアクセスします。 サービス一覧から「IoT Hub」を選択し、新しいIoT Hubを作成します。 設定項目は以下のとおりです。 項目 設定値 サブスクリプション 任意のサブスクリプション リソースグループ 新規作成(例: iot-test) リージョン 東日本 IoT Hub名 世界で唯一の名前(例: iot-hub-自分の名字) ネットワーク すべてのネットワークから接続可能 価格とスケールティア F1(Free) チュートリアルの範囲では無料ティアで十分です。設定を確認したら「作成」をクリックします。 ...

February 14, 2021 · 3 min · 胡田昌彦