首页 > 评测 > 轻松实现远距离通信——P-NUCLEO-LRWAN1评测
轻松实现远距离通信——P-NUCLEO-LRWAN1评测
- [导读]
- LoRa之风愈吹愈劲,ST也与SemTech合作推出了P-NUCLEO的LoRa套装、一个Discovery的LoRa板子以及一个拓展板。这次我们就先来给大家评测一下基础版的入门P-Nucleo-LRWAN1套装,一起来看看STM32+LoRa会有什么化学反应产生。
接下来就是代码了,测试代码使用的是arduino-lmic代码库的raw,这里实现的就是简单的LoRa通信,第一步设置硬件的连接方式,SPI连接采用ARDUINO的默认值,LORA特定的设置还包括NSS、RST及DIO的通信,具体设置如下
// Pin mapping
const lmic_pinmap lmic_pins = {
.nss = 10,
.rxtx = LMIC_UNUSED_PIN,
.rst = 9,
.dio = {2, 6, 7},
};
其它需要设置的通信参数还包括
• ISM频段, 设置为868MHz
• SF, SpreadFactor,有效值为7-12,这里设置为SF9
• BW,BANDWIDTH,设置为125K
• CR,Coding Rate,设置为4/5
• 发射功率,由于距离比较近,随意设置即可
这些参数的设置在结点与网关端都必须相同,否则通信会失败。程序通过LoRa发送Hello, world!字符串,另外为了和网关的LINUX系统通信,还需要使用Process,这里为了测试,只实现了简单的数据显示,通过Process调用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);
}
这一段代码调用LINUX系统上的process.py脚本,实现简单的数据显示,process.py的内容如下
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. *****"
这里只是简单的将传递过来的数据打印出来,以测试LINUX端是否接收到了数据,只要数据能从ARDUINO端传递到LINUX端,接下来就是如何将数据发送到网络的问题。
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
RAK831 Lite:基于树莓派3的LoRa网关... 2022-06-17
-
Imagination推出PowerVR AX2185和AX2145神经... 2022-06-17
-
ODROID-GO是一款兼容Arduino的基于ESP32的便... 2022-06-17
- PID温度控制器
预算:¥700003天前
- 摄像头的可视画面需要一直超上(linux系统,ARM)
预算:¥1000018小时前
- DICOM协议搭建(ARM架构,linux系统)
预算:¥1000017小时前
- 需MIPI摄像头隔离电路,实现3-4米能长距离
预算:¥1000017小时前
- 膨宫仪的控制板,控制流量和检测压力
预算:¥1000016分钟前
- 无创自动测量血压计 NIBP模块
预算:¥100007小时前