最近AWSに興味持ち始めてて、丁度BeckhoffのTwinCATやSiemensのC712にもAWSをつながろうかなーと考えてて、勉強始まりました。まだ初心者ですが、よろしくお願いしますね。
AWSアカウント申請
GoogleでAWS Sign UPを検索し、アカウント申請WEBにアクセスします。
メールアドレスやPasswordを設定します。
Full Name・携帯番号などの個人情報を入れます。
個人で使っていますので、Basic SupportでOKです…
なにかあったら自分で頑張って調べます。
料金
お金の話です。以下のLinkで料金表があります↓
https://aws.amazon.com/jp/iot-core/pricing/
料金試算機です。大体いくらかかるのかな?の計算できます↓
https://calculator.aws/#/createCalculator/IoTCore
次は支払いの設定をします。まず下記のLinkをアクセスします。
https://console.aws.amazon.com/iot/home
Billing preferencesをクリックします。
Receive Free Tier Usage AlertsをCheckいれ、メールアドレスを設定します。
一応超えそうなときお知らせメールきますよ!
AWS IOT COREとは?
ConsoleでLearnをクリックしますとたくさんの情報が出てきますので、自分もその中に簡単でまとめてただけです!
AWS IOT COREはCloud Servicesですべてのデバイスを簡単でセキュリティでCloudとつながるサビースになります。
AWS IOT Devices Gateway
下図のように1は制御BoxでRGBの3つのボタンがあり、ボタンをおすによっても2のランプBoxの色が変わります。ここで示すのは制御Box1はButtonの状態をCloudにPublishし、2のランプBoxはそのButtonの状態をCloud上でSubscribeします。
そのようなAWS IOT COREはDevices間は簡単で効率に接続可能になります。
Rules Engine
次はRules Engineです。Rules EngineはAWS IOT COREにPublishしたデータを分析し、Userが設定したルールに沿ってSubscribeしたデイバスにMessageを編集適用し転送します。例えば下図のように、いまBボタン押したのMessageがきたとして、Rules EngineではそれをGに変えてくださいのルールが作りましたので、結果はBボタン押してもランプBoxの色は青ではなく緑になります。
Rules Action
そのRules EngineにはDerivesからきたメッセージを他のEndpointにRoutingすることもできます。(AWS Lambda Functionなど)例えば下図だとRules Engineが制御BoxのコマンドがRだと判断したら、Rules DelivesがこのRのメッセージをCopyし他の3つのEndpointへ転送します。
- SNS
- DynamoDB DataBase
- Lambda Function
Device Shadow
AWS IOT COREにはDevices Registry とDevice shadowsがあり、Cloud上でいまのデバイスを可視化したいものを”Shadow”ーつまりCopyすることが可能です。
例えばいまLampboxが OFFになりました。つまり通信できない状態になってて、その間ControlBoxがBのMessageをPublishしました。
そのときShadowsがあるとLampboxはまた通信再開するときにCloudと接続再開し、Shadowsの状態に合わせるようにコマンドをLampboxに送ります。つまり緑になります。
Build Solution
AWS IOT COREにも簡単で可視化することが可能です。下図のように、携帯は直接にControlBoxとLampboxの状態や操作できます。AWS IOT COREはREST APIが提供していますので。
Things 作成
説明はここまで、これからThingsの作成に入ります。
まずServicesをクリックします。
Popupが出てきて、Iotを検索します。
右の星マークはMy Favoritesできま追加すので必要な方をやってください。
Iot Coreをクリックします。
AWS IOT Consoleがアクセスしたら、Onboard>Get startedします。
Onboard a deviceでGet Startedをクリックします。その方法はAWS IOTのSKDsや証明書など最後まとめてダウンロードできますので初心者に便利です。ー
Get Startedをクリックしたら、次はは3Stepがありますよ!と教えてくれます。
まずDevices登録>Connection kitをダウンロード(SDKs)>Testの流れです。
問題なければ右下にあるGet Startedを押しましょう。
今回自分はPlatformはWindowsで、SDKはPythonにします。
Python インストールしてない方はこちらへ↓
https://www.python.org/downloads/
デイバス登録画面に入りました。
わかりやすい名前を設定しましょう。
画面の上Successの緑Popupが出たらThings登録OKです。
Download connection kit for …のところにWindowsのボタンがあります。
そのボタンをクリックします。
(Connection KitをDownloadしないと次のStep進みませんので)
このようなZIP Filesが出てきます。
先のNext Buttonが押せるようになり、次に進みますと3つのStepがあります。
まずFileをUnzipし、執行権限追加、最後は.psを実行でテスト。
うん。あまりピント来ないですね。
まずCommand Promptを開きます。
最初に同じのコマンドを実行しようとしたらThe Term ‘-Execution Policy’ is not recognizedが出てきます。
以下のLinkみたら、あ!PowerShellも入れればよいのか。
https://stackoverflow.com/questions/48148664/the-term-execution-policy-is-not-recognized
一応実行OKみたいです。
start.ps1を実行したらまたエラー出てきました…なんで?
PowerShellで実行するしかないかもしれませんね。
以下のLinkでPowerShellに関しての質問です:
https://stackoverflow.com/questions/2035193/how-to-run-a-powershell-script
まずPowerShellを起動しましょう。
先と同じコマンドしたらYやAやNをどっちしますか?って聞かれた!
もちろんAをにします。
次はcdで先UNZIPしたDirectoryへアクセスします。
start.ps1を起動しますと…まずはGITがないですと怒られました。
GITのインストール手順:
Downloadしてインストールしましょう。
インストールとき色なOptions出てくると思いますが、DefautでOKです!
PowerShell再起動し git versionでGitちゃんと入れたかどうかを確認します。
もしGit is not recognized as an internal or external commandまた出たら以下のLINKを参考ください:
https://stackoverflow.com/questions/4492979/git-is-not-recognized-as-an-internal-or-external-command
start.ps再起動!今度はPIP is not recognized as an internal or external commandです。
うん?Python入れたはずですが…
Python/Python39/Scriptsにもpipが入っていますね。
とりあえず再インストールします。
そしてWindowsの環境関数の修正します。
User variables for rootのところにNewをクリックします。
先Pipが入ってるDirectoryを入れてください。
PipはOKでした!
PowerShell再起動、また実行してみます。
Python not foundですか…
Python もあるのにー
コマンドラインでPython 実行するといつもMS Storeのアプリケーションが立ち上げてしまうことになってる。以下のLinkで参考できます:
https://stackoverflow.com/questions/58754860/cmd-opens-window-store-when-i-type-python
Manage app execution aliasesを実行します。
App installerにPythonが入ってる2つのOptionをOFFします。
これでOKです!
次はUser variablesでPython Pathも追加します。
下記のLinkで説明があります↓
コマンドラインでPython実行したら、ようやくOKですね。
start.psを実行したらようやく無事でいけました!!
テスト
skd/test/PythonをSubscribeするとちゃんとメッセージが来ましたね!
はーい、お疲れ様です。