首页 > 评测 > 轻松实现远距离通信——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
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前