はじめに
以下の続きです。
AWSサンプルのソースではセンサーデータがダミー値だったので、実際のセンサーデータを送信できるかを試してみた記事です。
できたもの
Claudeに作成してもらい、作ったソースは以下に格納しておきました。
iphoneのネイティブアプリの作成経験がないため、今回はWEBアプリで作成してみました。
AWS IoT Coreに接続後、センサーへのアクセスを許可すると、センサーデータが送信されるようになっています。
MQTTテストクライアントで確認すると、センサーデータが送信されていることが確認できました。
何点かAWSサンプルのソースとの相違点を挙げておきます。
認証方式
AWSサンプルのnode-javascriptは証明書を使った認証ですが、今回のWEBで動作するので、CognitoのIDプールを使った認証としています。
今回は認証処理を作り込んでないので、未認証ロールに必要なポリシーを追加しています。
センサー情報へのアクセス
躓きポイントだったのですが、WEBからiphoneのセンサーデータに接続するためには、HTTPS接続が必要みたいです。
なので、動作確認時は適当なサーバー証明書を作成した上で、接続する必要がありました。
なお、センサーにアクセスする前には確認ダイアログが出るみたいです。(ブラウザ側の設定に依存していると思います。)
接続プロトコル
AWSサンプルのnode-javascriptにおける、AWS IoT Coreの接続プロトコルはMQTTS (MQTT over TLS)
でしたが、WEBの場合は利用できないため MQTT over WebSocket (WSS)
で接続しています。
ただ実装的にはhttps://unpkg.com/mqtt@5.3.1/dist/mqtt.min.js
を使うことでシンプルに利用できる感じでした。
まとめ
簡単な検証でしたが、実際のセンサーを送る簡単な動作確認ができ、少しだけIoTに入門できた気がしました!