• モノづくりとアイデアで暮らしを豊かに。『STAGEA』

    Amazon Web Servicesと連携させて、インターフェイスにこだわったオリジナルのダッシュボードを作ったり、LambdaやEC2に実装した制御ロジックを使って、スマートフォン連携できるシステムを作ることができます。
    ソフトウェアに強い方におすすめです。

    これがなければ始まらない
    AWSアカウントの作成

    (1)検索エンジンなどで、AWS を検索します。

    (2)AWSトップページが表示されたら、【コンソールにサインイン】をクリックします。

    まだアカウントは持っていないはずですが、サインイン画面にアカウント作成のリンクがあります。

    (3)【新しいAWSアカウントの作成】をクリックします。

    普段ショッピングなどでご利用いただいているamazonアカウントとは異なりますのでご注意ください。

    (4)アカウント作成の画面にメールアドレスとパスワード、アカウント名を入力します。

    (5)【続行】を押すと、セキュリティチェック画面(絵で表示された読みづらい文字を読んだ通りに入力する画面)が表示された後、住所などを入力するフォームが表示されます。
    画面に従って入力します。

    (6)【アカウントを作成して続行】をクリックすると、(5)の時とは別のセキュリティチェック画面が表示されます。
    SMSの受信が可能な携帯電話などの電話番号を入力します。
    (黒電話などはお使いいただけませんので、ご注意ください。)

    (7)携帯電話に届いたSMSメッセージを確認し、表示された番号を入力します。

    (8)AWSの有償サポートの利用確認画面が表示されます。
    相当程度の構築・オペレーションスキルを持った方を対象としているため、ここでは無料プランを選択します。

    ※AWS自体が無料で使用できることを示すものではありません。
    無料でできることは非常に多いものの、使用するサーバーやネットワーク機器のランク(インスタンス)を選び間違えた時や、加えて何らかの原因でアクセスが集中した場合など、高額請求につながる恐れがあります。
    まだ構築が済んでおらず、データが全く流れていないにもかかわらずその状態で半日放置しただけで一万円を超えることも珍しくありません。
    作業終了前は、Billingで請求情報をこまめに確認することを強くお勧めします。
    (弊社でも一度経験しております。)

    (9)この画面がでたら登録完了です。
    【コンソールにサインイン】をクリックすると、ログインできます。


    AWS IoTのセットアップ

    (1)サインインします。

    (2)サインインすると、AWSマネジメントコンソールが表示されます。
    開発現場ではAWSは省略され、「コンソール」「マネコン」と呼ばれることがあります。

    (3)画面上端にある検索ボックスに、「IoT」と入力します。

    文字を入力すると、自動的に候補となるサービスがリストアップされます。
    その中から「IoT Core」を選択します。

    (4)IoT Coreのトップページが表示されます。

    (5)左カラムで【安全性】→【ポリシー】の順にクリックすると、右カラムに以下のような画面が表示されます。

    【ポリシーの作成】をクリックすます。

    (6)ポリシーに名前を付けます。名前は何でもかまいません。

    名前を付けたら、【アドバンストモード】をクリックします。

    (7)ポリシーを定義します。以下のように入力し、【作成】をクリックします。

    (8)画面上部に「成功 – ポリシーが正常に作成されました。」と表示されればポリシーは作成されています。

    (9)続いて、モノを作成します。
    左カラムから【管理】->【モノ】をクリックします。

    (10)右カラムから【モノの登録】をクリックします。

    (11)下図のような画面が表示されたら、【単一のモノを作成する】をクリックします。

    (12)デバイスの追加画面が表示されます。
    【名前】に、デバイス名を入力します。半角英数であれば自由に入力できます。
    他は触らず、【次へ】をクリックします。

    (13)次に、証明書を発行する画面が表示されます。
    証明書とは、外部のデバイスからAWS IoTにアクセスする際に使用する鍵のようなものです。

    【証明書を作成】をクリックします。

    (14)証明書が作成されます。


    (15)モノの証明書、パブリックキー、プライベートキーの3つが作成されますので、3つともダウンロードします。

    (16)ルートCAもダウンロードします。

    (17)【ダウンロード】をクリックすると、別のページに画面が切り替わります。

    (18)2種類ありますので、両方とも右クリックで保存します。

    (19)以下の6種類のファイルがダウンロードされたことを確認します。

    (20)元のページに戻り、【有効化】を押すと、ダウンロードした証明書が有効になります。

    (21)次に、ポリシーをアタッチします。

    (22)(6)で作成したポリシーと紐付けをします。

    (23)(6)で作成したポリシーの左側のチェックボックスにチェックを入れて、【モノの登録】をクリックします。

    (24)成功 – モノが正常に作成されましたと表示されれば成功です。


    H10のセットアップ

    (1)Arduinoを起動します。

    この画面は、最後に実行したプログラムです。
    一度も使用したことがない場合は空白画面が表示されます。

    (2)当社製品とAWS IoTは、MQTTと呼ばれる通信方式(プロトコル)でデータ交換を行います。
    MQTTを利用するために必要なライブラリをダウンロードします。
    ライブラリをダウンロードしないと、正しくプログラムが書けていたとしても、パソコン側が(コンパイラ)が認識できないため、エラーになってしまいます。

    メニューバー[スケッチ]->[ライブラリを管理]をクリックします。

    (3)ライブラリマネージャが表示されます。

    (4)ライブラリマネージャの上部にあるテキストボックスに、PubSubClient と入力します。

    (5)入力したキーワードに関連したライブラリがリストアップされるので、Nick O’Leary氏開発のライブラリを選んで【インストール】をクリックします。

    (6)ダウンロードしたライブラリは、AWS専用に作られているわけではないため、一部修正が必要です。
    AWSの準備をする時にダウンロードした証明書やキーが非常に大きく、このライブラリで想定されているバッファの容量では不足するため、書き換えます。

    ライブラリをインストールしたフォルダを開いて、PubSubClient.hを開きます。
    フォルダの場所がわからなければ、この図に記載されているパスを参考に探すか、「PubSubCl*」で全てのドライブ(ディスク装置)を検索します。

    (7)MQTT_MAX_PACKET_SIZE 256 の256の部分を2048に修正します。


    256の直前の半角スペースを全角スペースに誤って書き換えたり、256の後に全角スペースなどを付けると動かなくなるので注意してください。

    (8)こちらのプログラムをダウンロードしてArduino画面に貼り付けます。
    ※制作中のプログラムがある場合は必ず保存してから上書きしてください。

    (9)プログラムの中に、awsEndpointと書かれた部分があるはずです。
    (8)の図のモザイクがかかっている部分です。
    この部分は、一人一人アドレスが異なるため、AWSマネジメントコンソールを開いて内容を確認します。

    1.AWSマネジメントコンソールを開きます。

    2.【最近アクセスしたサービス】から【IoT Core】をクリックします。
    ※AWSのセットアップを行なったパソコンと別のパソコンを使用してアクセスすると、Cockieが引き継がれないため、【最近アクセスしたサービス】にIoT Coreが表示されない場合があります。
    この場合、画面上部にあるテキストボックスにIoTと入力すると、関連サービスがリストアップされるので、そこからIoT Coreを選択してください。

    3.AWS IoTの画面が表示されたら、左カラムの[管理]->[モノ]をクリックします。

    4.右カラムに前に作った「モノ」が表示されますので、クリックします。
    ※一度ログアウトしたり、設定を行なったパソコンと異なるパソコンを使用した場合、以前作ったはずの「モノ」が表示されない(モノがありませんと表示される)場合があります。
    この場合、リージョン(どの国のサーバーを使用するかの設定)が違っていることが原因です。画面右上を確認して、設定した時と同じ国であることを確認してください。
    (当社で作成しているリージョンは東京です。)

    5.予め作成したモノの詳細が表示されます。【相互作用】をクリックするとHTTPSの部分にURLが表示されるので、コピーします。

    (10)コピーしたURLをArduino画面のプログラムのawsEndpointの部分に貼り付けます。
    awsEndpointのすぐ上にあるssidとpasswdも同じようにお手持ちのWiFiアクセスポイントと設定をあわせて接続できるようにします。

    (11)次に、AWS IoTをセットアップする時にダウンロードした証明書やキーをプログラムにインストールします。
    インストールは、ダウンロードした証明書やキーをテキストエディタで開いてプログラムの中にコピーする方法で行います。

    (12)まず、ルート証明書をインストールします。
    ルート証明書はプログラムの以下の部分です。

    ここに、AWS IoTセットアップの際にダウンロードした AmazonRootCA1.pem をテキストエディタで開いたものをコピーします。

    この時、改行は\nに置き換えなければいけません。
    そして、\nも含めて” “(ダブルクォーテーション記号)で囲い、
    最後に行の末尾にさらに\を書く必要があります。

    こちらが書き方の例です。

    一つのディスク装置やクラウドをWindowsとMacで共用している場合、バックスラッシュ記号が「¥」記号として表示されることがあります。
    この場合、多くの開発ツールでは自動的にエンコーディングしますが、Arduinoは自動エンコーディグは行わずエラーとなります。
    この場合、バックスラッシュ記号「\」に書き直してください。
    スラッシュ記号「/」とは異なりますのでご注意ください。

    バックスラッシュが¥記号として表示される例

    (14)次に、モノの証明書をインストールします。
    AWS IoTのセットアップで、「このモノの証明書」としてダウンロードしたファイルを、(13)と同じ要領で貼り付けます。

    (15)続いて、プライベートキーをインストールします。
    AWS IoTのセットアップで、「プライベートキー」としてダウンロードしたファイルを(13)(14)と同じ要領で貼り付けます。

    (16)最後に、MQTTトピック名をプログラム内で定義します。
    半角英数であれば自由に決めることができます。

    これで完成です。



    H10への転送

    (1)H10を一度もパソコンに接続したことがない場合は、こちらのページを参考にセットアップをします。

    (2)ジャンパピンを書き込みモードに変更します。

    通常、副MCUは主MCUと接続されています。
    この操作を行うことで、副MCUの接続先をUSBに変更して、ソフトウェアの書き込みができる状態にします。
    この操作を忘れると、プログラムの書き込みができないのでご注意ください。

    (3)H10とパソコンをUSBケーブルで接続します。

    ※必要に応じてArduinoの設定の中にあるCOMポートの設定を行います。
    COMポートの番号を間違えると転送エラーになります。
    H10を買い替えたり、パソコンを買い替えたり初期化したりすると番号が変わることが多いため注意が必要です。

    パソコンから認識されない場合、以下の内容をご確認ください。
    ・ジャンパピンを書き込みモードにセットします。
     →この操作をすることで、副MCUの通信先を主MCUからUSBコントローラ(パソコン)に切り替えて、パソコンから送られてくるプログラムを受信できる状態にします。
    ・DCジャックにACアダプタを接続します。
     →乾電池駆動(停電モードでの動作)では、2分に一度、20秒間しか副MCUの電源が入らないため、プログラムを書き込むことができません。

    (4)H10のDCジャックからプラグを抜き、数秒待ってから挿し直し、5~10秒程度待ってから、Arduinoの【マイコンボードに書き込む】ボタンをクリックします。

    H10は、DCジャックから電源供給を開始して5秒後に副MCUに通電を開始します。
    通電が開始されたら、主MCUから30秒以内に正しいデータフォーマットで返信が行われないと、フリーズしたと判断して副MCUを自動的に再起動します。
    副MCUが再起動している間は、プログラムの転送はできません。
    従って、DCジャックを挿し直したら、5~25秒の間にArduinoの【マイコンボードに書き込む】ボタンをクリックしてプログラムを転送します。

    下半分の黒い部分に次のようなメッセージが表示されたら書き込み完了です。

    もしここで、上記のような画面ではなくエラーメッセージが表示される場合、以下の点を確認してください。

    ・サンプルのコードをコピーアンドペーストする時、
      – 間違えて余計な文字などを書き込んでいませんか?
      – ショートカットキー([Ctrl] or [command] + V)を連打して二重貼り付けしていませんか?
      – ショートカットキーを押し損ねてソースコードの末尾にVなどが入っていませんか?
      – Arduinoインストール直後に最初から入っているプログラム雛形の続きに貼り付けていませんか?
      – チャンネルキーやライトキーを書き換える際、誤ってダブルクォーテーション記号を消していませんか?
      – プログラムの中の空白部分(スペース)を誤って消した時、全角スペースを入れていませんか?
    ・ジャンパーピンのポジションを通常モードからプログラム書き込みモードに変更しましたか?
    ・DCジャックにACアダプタ等を接続していますか?
     →バックアップ乾電池での動作では書き込みできません。
    ・DCジャックにACアダプタ等を差し込んでから5~25秒の間にプログラム書き込み操作をしていますか?

    10分程度考えて原因にたどり着かなかった場合、ダウンロードしたプログラムコードを使って貼り付けるところからやり直した方が早いです。
    その際、Arduinoの編集画面に書かれているプログラムコードはスペース記号1つ残らず完全に削除してから貼り付けます。
    1行編集するごとに【マイコンボードに書き込む】を押しながら進めることで、エラーを特定しやすくする方法もあります。


    動作確認

    正しくプログラムが書き込めたら、動作確認をします。
    プログラム書き込み直後のH10は、基板上のジャンパピンがプログラム書き込みモードの位置になっているはずですので、ノーマルの位置に戻します。
    H10からUSBコードを抜いて、DCジャックに接続されているACアダプタのコードを挿しなおします。

    (1)H10のDCジャックにACアダプタを差し込みます。

    (2)AWSマネジメントコンソールにログインし、AWS IoTのダッシュボードを開きます。

    (3)[ACT]->[テスト]をクリックします。

    (4)【トピックを発行】の左側にあるテキストボックスに(16)で決めたトピック名を入力して【トピックの発行】をクリックします。

    (5)サンプルプログラムは、約1分毎にAWS IoTに対して送信しています。
    設定やプログラムのカスタマイズが成功していれば、概ね1分以内に以下のようにデータが届きます。