新たなSigfox Operatorがロシアに加わりました。Energoという会社です。この会社のホームページを見る限りでは、ラトビアやリトアニアでサービスをしている0G Balticsという会社と関係がありそうです。
それはさておき、ロシアが加わったことにより、今までRC1~RC6の無線コンフィグレーションであったところに、RC7が加わりました。
RC7とは
Sigfox Buildサイトに各リージョンのRC定義が載っています。RC7は、欧州(RC1)の規格とほぼ同じで、上り周波数が欧州の868.130MHzに対して、868.8MHzと少しずれているだけです。
ですので、送信周波数を変更することができるATコマンドが通るRC1向け開発ボードがあれば、RC7環境をエミュレートすることができます。
Sigfox Network Emulator (SNE)とは
Sigfox社が提供しているゲートウェイエミュレータです。USBドングルタイプのSDRで、送受の周波数も設定で変更できるため、各国RC向けのデバイステストにも使えるものとなっています。こちらに使用方法を載せています。
RC7をSNEで試してみる
準備
下記のものを準備してください。
- Sigfox SDR Dongle: 上記SNE用のUSBドングルです。
- Sigfox Shield for Arduino (UnaShield): RC3用ですが、出力がほぼ同じ(アンプが要らない)のでRC7にも対応可能です(おそらくLBT機能は残ると思いますが)
- Arduino Uno
RC7の確認にあたっては、日本国内で電波を発信することは違法になるので、電波が外に漏れないように注意してください。
Sigfox Network Emulatorの設定
RADIO設定
RC7はSigfox Network Emulatorのデフォルト設定にはないので、Radio ConfigurationでOther
を選択した後、Uplink center frequency (Hz)を868800000
、Downlink center frequency (Hz)を869100000
、Uplink bit rateを100
bpsに設定してください。
DEVICES設定
メッセージを受信するデバイスのDevice IDをIdentifierに入力してください。Nameはお好きな名前を入れていただければ結構です。
CALLBACKS設定
もし、ご自身で立ち上げているアプリケーションサーバにメッセージを送りたければ、CALLBACK設定をしてください。(ここでは割愛します)
UnaShieldからRC7でメッセージを送信する
そのまま動くサンプルスケッチはこちらからダウンロードして使ってください。
UnaShieldに搭載するSigfoxモジュールのRX/TXピンに対して、SoftwareSerialでATコマンドを送り、周波数変更をしています。
使われているATコマンドは下記のとおりです。
AT$IF=868800000
— RC7上り中心周波数
AT$DR=869100000
— RC7下り中心周波数
ATS410=1
— Public keyモードにする
ATS302=15
— 送信出力設定
AT$WR
— 設定保存
あとは、AT$SF
コマンドでメッセージを送るだけです。念のため、ポイントとなるコード部分だけピックアップしておきます。
# include <SoftwareSerial.h>
# define rxPin 5
# define txPin 4
// set up a new serial port
SoftwareSerial Sigfox = SoftwareSerial(rxPin, txPin);
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
if(DEBUG){
Serial.begin(9600);
}
// open Wisol communication
// define pin modes for tx, rx:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
Sigfox.begin(9600);
delay(100);
sendCommand("AT$IF=868800000", "UL Frequency set: ");
sendCommand("AT$DR=869100000", "DL Frequency set: ");
sendCommand("ATS410=1" ,"Public key: ");
sendCommand("ATS302=15" ,"Set output power to max: ");
sendCommand("AT$WR", "Save config: ");
}