LoginSignup
1
0

More than 1 year has passed since last update.

SigfoxをESP32で使ってみる①(準備~ATコマンドまで)

Last updated at Posted at 2022-12-12

はじめに

ラズパイ・ArduinoでIoT的なことをしたい場合wifiを使うことが多いと思います。しかし、屋外などで通信を行いたい場合の選択肢としてLTEがあると思いますが、モジュールが高価でハードルが高いのではないでしょうか?今回はLPWAの一種であるsigfoxを使って接続およびAWSとの連携までやってみたいと思います。

LPWA及びsigfoxとは?

一言でいうとLTE・4Gの逆の存在である通信規格です。大容量・高速がメインのLTEに対してLPWAは低容量・省エネのイメージです。
sigfoxはLPWAの一種で他の規格と比較しても、低消費電力・低価格が特徴です。

詳しくは→Sigfoxとは

Sigfoxモジュールについて

今回はSigfoxブレークアウトボード BRKWS01というモジュールを使用します

下記サイトにもある通り、sigfoxクラウドにてデバイス登録をしなければなりません。

sigfoxクラウドへのデバイス登録は上記の説明通りでできますが、注意点として下記画像内の赤線部分にはデバイスIDを入力してください

image.png

ESP32との接続方法

配線は簡単です。モジュールにピンがたくさんありますが、基本的に使うのはTX/RXです。

ESP32 BRKWS01
3.3V vcc
GND GND
TX IO16
RX IO17

image.png

ATコマンドよりアップリンクしてみる

配線及びsigfoxクラウドへの登録が済んだら、ATコマンドで通信してみましょう。

//ESP32+BRKWS01 ATコマンドコード
//ESP32 16→TX,17→RX

void setup() {
  // Open serial communications and wait for port to open:
    Serial.begin(115200);
    Serial2.begin(9600); 
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  // set the data rate for the SoftwareSerial port
  Serial2.begin(9600);
  Serial.println("Connect to the Sigfox Breakout board...");
  Serial.println("AT$I=10 : get Device ID");
  Serial.println("AT$I=11 : get PAC");
  Serial.println("AT$T? : get Temperature");
  Serial.println("AT$V? : get Voltages");
  Serial.println("AT$P=unit : set Power mode (unit = 0:software reset 1:sleep 2:deep_sleep)");
  Serial.println("AT$TR=unit : set Transmit repeat (unit = 0..2)");
  Serial.println("AT$WR : save config");
  Serial.println("AT$SF=[payload] : SEND SIGFOX MESSAGE");
  Serial.print("Device ID : ");
  Serial2.print("AT$I=10\r");
}

void loop() { // run over and over
  if (Serial2.available()) {
    Serial.write(Serial2.read());
  }
  if (Serial.available()) {
    Serial2.write(Serial.read());
  }
}

ATコマンドの使用例

シリアルにて
AT$I=10を入力するとデバイスID返ってきます。
sigfoxクラウドにメッセージを送信する場合は
AT$SF=0000を送信し、通信が完了するとOKが返ってきますので、さらにsigfoxクラウド(Device→MESSAGE)を確認すると下記のように確認できます。

image.png

送信したメッセージと大まかな位置がわかると思います。この時点では緯度経度の情報は見ることができません。Callbackの設定をすることでwebhookやAWSなどのエンドポイントを用意することで詳細の情報を受信することができます。

それらの方法はまた次回で。

1
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
1
0