LoginSignup
0
0

More than 1 year has passed since last update.

sigfoxをESP32で使ってみる②(sigfoxクラウド~AWSIoTCoreとの連携)

Posted at

はじめに

前回はモジュールを接続して、sigfoxクラウドにメッセージ送信まで確認できました。
今回はもう少し踏み込んで、AWSのIoTCoreと連携させDynamodbやTimeStreamなどのDBに情報を書き込むまでをゴールにしたいと思います。

前回その①

AWSIoTCoreの設定

先にエンドポイント側を設定しておく必要があります。
IoTCoreでデバイスを登録してトピック名まで設定してください。

詳細は私の過去記事を参照ください。

MQTTによる通信確認であればルール設定までは不要です。
IoTCoreのMQTTモニタリングで通信確認可能です。

Sigfoxクラウド側での設定

位置情報オプションの確認

DeviceType→information内にあるOptionsを確認します。
Sigfox geolocation serviceNetwork location であることを確認します。

Callbackの設定

DeviceType→CallBacksにでAWS IoTを選択
image.png

設定画面が表示されるので、下記手順の通り設定を行います
ExternalIdをコピーしてLanch StackをクリックしてAWSへ遷移
image.png
②AWSのCloudformationでは特に編集せずにそのまま進める
image.png
ARNRoleが表示されるのでコピーして、sigfoxクラウドへコピーする
Topicにトピック名を入力します。

ワイルドカードを使ってデバイスIDなどを埋め込むことができます。
トピック名の例
AWSIoTCore:ESP32/+/pub
Sigfoxクラウド:ESP32/{device}/pub

Json Bodyに下記Jsonを入力する。(ここはお好みで編集してください)

{
  "device":"{device}",
  "time":{time},
  "data":"{data}",
  "seqNumber":"{seqNumber}",
  "lqi":"{lqi}",
  "fixedLat":"{fixedLat}",
  "fixedLng":"{fixedLng}",
  "operatorName":"{operatorName}",
  "countryCode":"{countryCode}",
  "deviceTypeId":"{deviceTypeId}",
  "computedLocation":{computedLocation}
 }

センサーからのデータを挿入したい場合

Sigfox Payload configuration(Payload display)機能で実装することができます
その際はエッジ側でセンサデータ16進数に変換する必要があります。

詳細は下記をご覧ください。

Callback作成時にエラーがでる場合

下記のようなエラーがでた場合の対処です。
Your entered information doesn''t allow us to retrieve the endpoint from AWS. Please try to configure again your information through the button ''Launch Stack'' or change the method of configuration.

このエラーはCloudformationで作成したロールにIoTCoreの権限がないときにでるエラーです。
IAMロールに各権限(AWSIoTFullAccessなど)をアタッチして再トライすることで解決することができます。
IAM→Roles→作成されたロール

メッセージを送信してCallbackを確認する

ATコマンドよりメッセージを送信してみます。

example
AT$SF=1234567890

再度メッセージを確認するとCallbackがあることが確認できます。内容を確認すると緯度経度情報なども確認できると思います。
AWS側もIoTcoreのMQTTモニタリングやルール設定した各DBへ通信が上手くいっているか確認してみましょう。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0