AmazonにOSOYOO(メーカー?)のSemtechのSX1276仕様のモジュールが販売されている。購入品は残念ながら技適は取ってないため、自宅で遊ぶことはできないが、会社の暗室内で少し動かしてみたところ非常に簡単に動作できた。
下記ソースを2つのmbed+モジュールに書き込むと、双方向でuart通信ができる。
#include "mbed.h"
#include "Serial.h"
Serial pc(USBTX,USBRX);
Serial lora(D8,D2);
int main()
{
while(1){
if(pc.readable()){
lora.putc(pc.getc());
}
if(lora.readable()){
pc.putc(lora.getc());
}
}
}
スペアナで観測したところ、868MHzであり、国内周波数に設定変更が必要である。出力強度は20dBmであり、電波法の最大送信電力(24dBm)以内である。設定変更は、M0,M1端子をHighにしたときのSleepモードで行えるようだ。mbedの連続受信にgetcを使うと文字落ちするという現象で少し悩んだが、関係ページで記載のあるリンク先に設定アプリがあり変更できる。もともとのリンク先は、430MHzタイプの記述になっており、920MHz以降に設定する方法がぴんと来なかったが、探してたどり着いた。
- 920MHzタイプ https://www.cdebyte.com/products/E32-900T20S#Specification
- SX1276が使用されているチップ UserManual(添付 E32-900T20S_UserManual_EN_v1.2.pdf)
- 周波数設定は、CHAN=862MHz+1MHz*CHAN 5bit分の設定でデフォルトが06H=868MHzになっている。
設定をダイナミックに変えないのであればアプリで設定するのが楽。USB仮想COMでRX/TXだけ接続し、M0,M1をともにHiにする。ボーレートはともに9600bps、8N1。それで、getparamボタンで送受されるのは、最後にC1+C1+C1が贈られるがその前に、Datasheetに記載のないAT'コマンドの送受信が存在する、デコード結果を添付。
コメントを追加