购买的模块终于到齐了,来个接线图:
第一步:通过官方工具,将lora模块进行初始化,注意一定要选定点传输方式,我一开始不知道在这里搞了好久。第一个模块设置地址为1,这个模块到时接树莓派,第二个模块设置地址为2,接到arduino上。
第二步:接线,这步要注意,lora模块有m0,m1两根针,用来控制模式的,如果不用,一定要接地,这里我也尝试了好久。第三步:编写通信代码,我要实现一个简单的功能,01模块向02模块发送一个指令,arduino验证指令完整后向01模块响应。多话不说,直接上代码:#include <
SoftwareSerial.h>
SoftwareSerial rolaSerial(2, 3); // 电流表数据通讯TTL RX, TX
String cmdBuffer = ""; // 命令缓存
int loggerLevel = 1; // 日志级别
char szTmp[3]; // 串口读取
unsigned char channel = 0x04; // 信道
void setup() {
Serial.begin(9600);
rolaSerial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// 读取串口指令到buffer
if(rolaSerial.available() > 0) {
digitalWrite(LED_BUILTIN, HIGH);
}
while (rolaSerial.available() > 0)
{
sprintf( szTmp, "X", (unsigned char) rolaSerial.read() );
cmdBuffer += szTmp;
delay(2);
}
digitalWrite(LED_BUILTIN, LOW);
if(cmdBuffer.length() > 0) {
parseBuffer();
}
}
void parseBuffer() {
// 长度超过2048,清空
if(cmdBuffer.length() > 2048) {
cmdBuffer = "";
logger("size out 2048");
return;
}
// 查找AA333380
int start = cmdBuffer.indexOf("AA333380");
if(start > 0) {
cmdBuffer = cmdBuffer.substring(start);
} else if(start == -1) {
return;
}
// 查找FCFF
String temp = "";
int end = cmdBuffer.indexOf("FCFF");
if(end != -1) {
temp = cmdBuffer.substring(0, end + 4);
cmdBuffer = cmdBuffer.substring(end + 4);
sendReturn();
}
String cmdstr = temp.substring(8, 12);
String data = temp.substring(12, temp.length() - 4);
if(cmdstr.equals("0001")) {
logger(data);
}
}
// 收到信息号响应
void sendReturn() {
unsigned char dest[11] = {0x00, 0x01, channel, 0xBB, 0x66, 0x66, 0x80, 0xFF, 0xFF, 0xFc, 0xFF};
rolaSerial.write(dest, 11);
}
void logger(String str) {
if(loggerLevel) {
Serial.println(str);
}
}第四步:测试连通性测试,发送一条,响应一条
压力测试:定时发送设置为100,200,300,400,在100ms情况下,模块接收到数据错乱。300以后正常,但偶尔发生不回复的情况,500ms较为稳定。因为lora模块是通过无线电来传输的,首先,传输的数据不能太多。第二,需要一点时间。所以确定500ms为一次通信较为稳定。距离与稳定性测试:官方数据说在3KM之内通信,我测试了在1-2KM,是正常的,再远没测试过了。电梯内也可以正常收发,在电梯运动时会偶尔收发失败。lora通信基本测试成功,下一步使用树莓派开发中继器
首先,端正心态。这是四川麻将技巧中的重中之重,也就是说在四川的麻将技巧当中,这个心态是十分的关键的,因为每一个麻将游戏的技巧都是围绕着人们的心态去转的,也就是说,如果玩家们不能够端正自己的心态的话,那么就很难很好的去运用其他的麻将游戏的技巧。而不能够运用其他的游戏技巧,那么也就是说不能够很好的去玩麻将游戏了。 其次,莫出生牌。关于四川麻将,许多人都是不知道什么是生牌,只是觉得自己不想要的牌打出去就对了,这样说确实是没错,但是在四川麻将技巧当中棋牌资讯,这一点是行不通的,也就是说这样出牌的话是很容易就让别人就赢得麻将游戏了。因为生牌通常情况下都是别人想要的牌,如果说玩家们不知道而出了这一张牌的话,那么也就意味着别人赢得游戏的几率就很高了,而你自己想要赢得麻将游戏的几率就变得很低了。为了让自己能够赢得麻将游戏,玩家们最好是不要打生牌。