初めに
このチュートリアルは私が所属している課外活動ではLoRaモジュール(ES920LR)を使用しています。後輩に指導するときの資料としてこの記事を書きます。
作るものとしては、超音波距離センサを使って距離を測り、LoRaを使って送信して、30cm以下になったれLEDが点灯するシステムを作ります。
準備するもの
ES920LR × 2
Arduino UNO × 2
LED × 1
超音波距離センサ(SR04) × 1
ArudinoとES920LRを接続する
ArduinoとES920LRを以下のように配線します。
Arduino | ES920LR |
---|---|
3.3V | VCC |
3.3V | VCCRF |
GND | GND |
TX | TX |
RX | RX |
Arduinoに空のプログラムを書き込みます。
void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }
ES920LRは中にマイコンが入っており、そいつがLoRaのチップ(sx1276)とやり取りをしてくれます。
そのため、ArduinoからES920LRを操作するときはシリアル通信で行います。
プログラムをArduinoに書き込むときは、TXとRXのジャンパー線を外しておきます。
プログラムを書き込んだら、シリアルモニターを開き改行をCRおよびLF
、ボーレートを115200
に設定します。
3.3Vのジャンパー線を抜き差して、シリアルモニターに以下のような文字列が表示されればOKです。
Select Mode [1.terminal or 2.processor]
1
を入力してterminalモードに入ります。そうするとコマンドの一覧が出てくるので、それを見ながら以下のように設定します。
注意点としては、ボーレートを9600に変えた後はシリアルモニターにボーレートも9600に変更してください。
コマンドの詳細に関しては コマンドシート を見てください。
configuration setting is below. ------------------------------------- Node : EndDevice Band Width : 125kHz Spreading Factor : 12 Effective Bitrate : 293bps Channel : 1 PAN ID : 0001 Own Node ID : 0001 Destination ID : 0000 Acknowledge : ON Retry count : 3 Transfer Mode : Frame Receive Node ID information : ON RSSI information : OFF Config/Operation : Configuration UART baudrate : 9600 Sleep Mode : No Sleep Sleep Time : 50 Output Power : 13dBm Format : ASCII Send Time : 0 Send Data :
設定を保存するには、w
を入力します。
もう一つのES920LRも同様に設定します。ただし、Own Node IDは違うものにしてください。
2つとも設定が完了したら、もう一度ターミナルモードに入りz
でオペレーションモードに入ります。
PCが一台にしかない場合は、TeraTarmを使ってもう一台接続してください。
00010002test
を入力して送信すると、メッセージを送信することができます。
受信側のシリアルモニターはこんな感じになります。
--> receive data info[panid = 0001, srcid = 0001, dstid = 0002, length = 04] PAN ID(0001):Src ID(0001):Receive Data(test)
メッセージが送信できない場合は、アンテナを付けてもう一度行ってみてください。