首頁 > 評測 > 輕松實現(xiàn)遠(yuǎn)距離通信——P-NUCLEO-LRWAN1評測

輕松實現(xiàn)遠(yuǎn)距離通信——P-NUCLEO-LRWAN1評測

  • 作者:SATURN
  • 來源:21ic
  • [導(dǎo)讀]
  • LoRa之風(fēng)愈吹愈勁,ST也與SemTech合作推出了P-NUCLEO的LoRa套裝、一個Discovery的LoRa板子以及一個拓展板。這次我們就先來給大家評測一下基礎(chǔ)版的入門P-Nucleo-LRWAN1套裝,一起來看看STM32+LoRa會有什么化學(xué)反應(yīng)產(chǎn)生。

接下來就是代碼了,測試代碼使用的是arduino-lmic代碼庫的raw,這里實現(xiàn)的就是簡單的LoRa通信,第一步設(shè)置硬件的連接方式,SPI連接采用ARDUINO的默認(rèn)值,LORA特定的設(shè)置還包括NSS、RST及DIO的通信,具體設(shè)置如下

// Pin mapping

const lmic_pinmap lmic_pins = {

.nss = 10,

.rxtx = LMIC_UNUSED_PIN,

.rst = 9,

.dio = {2, 6, 7},

};

其它需要設(shè)置的通信參數(shù)還包括

• ISM頻段, 設(shè)置為868MHz

• SF, SpreadFactor,有效值為7-12,這里設(shè)置為SF9

• BW,BANDWIDTH,設(shè)置為125K

• CR,Coding Rate,設(shè)置為4/5

• 發(fā)射功率,由于距離比較近,隨意設(shè)置即可

這些參數(shù)的設(shè)置在結(jié)點與網(wǎng)關(guān)端都必須相同,否則通信會失敗。程序通過LoRa發(fā)送Hello, world!字符串,另外為了和網(wǎng)關(guān)的LINUX系統(tǒng)通信,還需要使用Process,這里為了測試,只實現(xiàn)了簡單的數(shù)據(jù)顯示,通過Process調(diào)用LINUX端的Python程序的代碼如下

void send_message(String msg) {

Process p;

//delay(1000);

p.begin("python");

p.addParameter("/root/process.py");

p.addParameter(msg);

p.run();

while(p.running());

while(p.available()) {

char c = p.read();

Console.print(c);

}

Console.flush();

//send_func(&sendjob);

}

這一段代碼調(diào)用LINUX系統(tǒng)上的process.py腳本,實現(xiàn)簡單的數(shù)據(jù)顯示,process.py的內(nèi)容如下

root@dragino-168b7c:~# cat process.py

import sys

import socket

import subprocess

import struct

import random

import base64

from struct import *

argvs = sys.argv

argc = len(argvs)

#print "*****Message from GateWay*****"

print argvs[1]

#print "*****Message from Gateway ends. *****"

這里只是簡單的將傳遞過來的數(shù)據(jù)打印出來,以測試LINUX端是否接收到了數(shù)據(jù),只要數(shù)據(jù)能從ARDUINO端傳遞到LINUX端,接下來就是如何將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)的問題。

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論

  • 聯(lián)系人:巧克力娃娃
  • 郵箱:board@21ic.com
  • 我要投稿
  • 歡迎入駐,開放投稿

熱門標(biāo)簽
項目外包 more+