单片机学习小组
直播中

汪潇潇

7年用户 800经验值
私信 关注

如何对LoRa模块进行定向传输的配置呢

如何对LoRa模块进行定向传输的配置呢?怎样去编写Arduino Uno代码?

回帖(1)

江皎

2022-2-21 10:01:34
二、发送节点(定向传输)

1、LoRa模块的配置

步骤同我上篇基本一致。



  • 注意 :该节点Lora模块我配置为了定向传输。

2、Arduino Uno 代码


#include
#include            //导入dht11的头文件


#define DhtPIN A0            //dht11控制的端口


SoftwareSerial LoRa_Serial(2, 3); // RX, TX    //模拟一个软串口
dht11 DHT11; //实体化dht11的类,命名为:DHT11


unsigned char a[6]={0XFF,0XFF,0X17,0X49,0X44,0X3A };        //前3个为中心节点地址及信道


String comdata = "";               //接收的字符串
char str_chk[] = "chk =";
char str_ID[] = "2 ";                           //节点地址
char str_temp[] = "temp = ";
char str_hum[] = ",Hum = ";
long previousMillis = millis();    //上一次激活时间
long interval = 2000;             //间隔


void Receive_Data() {
  while (LoRa_Serial.available() > 0) {
    comdata += char(LoRa_Serial.read());
    delay(2);
  }


  Serial.print("comdata = ");
  Serial.println(comdata);
  comdata = "";
}


void Send_Data() {
  float res_temp = 0;
  float res_hum = 0;


  DHT11.read(DhtPIN);//读取传感器数据
  res_temp = (float)DHT11.temperature;
  res_hum = (float)DHT11.humidity;
  if (res_temp >= 0 && res_hum > 0) {
    LoRa_Serial.write(a,6);
    LoRa_Serial.write(str_ID);
    LoRa_Serial.write(str_temp);
    LoRa_Serial.print(res_temp);
    LoRa_Serial.write(str_hum);
    LoRa_Serial.println(res_hum);
  }


}


void setup() {
  // put your setup code here, to run once:
  pinMode(DhtPIN, OUTPUT);  //设置dht11端口模式为输出


  Serial.begin(9600);//初始化端口连续通信从波特率9600开始
  Serial.println("hardware seriall!");
  LoRa_Serial.begin(9600);
  LoRa_Serial.println("software serial!");
}


void loop() {
  // put your main code here, to run repeatedly:
  if (LoRa_Serial.available()) {
    Receive_Data();
  }
  if (millis() - previousMillis > interval) {
    Send_Data();
    previousMillis = millis();
  }
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分