Arduino-驱动LoRa模块-主节点

1、LoRa模块的配置

模块我是买的正点原子的Lora sx1278用串口协议实现数据的传输,拿来配置一下就能用啦很方便。
附带的上位机软件
这是附带的上位机软,按照商家给的手册再根据自己的需求分分钟配置好。

注意事项

(1)发射功率不要太高,会导致信号过于精准,不易于接收。

(2)模块地址、通信信道以及波特率要保持一致。

(3)配置的时候,上面的波特率一定要选115200,不然会提示连接超时

2、Arduino uno代码

#include <SoftwareSerial.h>			/软串口头文件
#include <dht11.h>        			//导入dht11的头文件

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

SoftwareSerial LoRa_Serial(2, 3); 	// RX, TX //模拟一个软串口,开发板接受LoRa模块接收的信号
dht11 DHT11; 						//实体化dht11的类,命名为:DHT11
String comdata = "";                //接收的字符串
char str_chk[] = "chk =";
char str_temp[] = "temp =";
char str_hum[] = "Hum =";
long previousMillis = millis();     //上一次激活时间
long interval = 5000;               //间隔

void Receive_Data() {
  while (LoRa_Serial.available() > 0) {	//有数据过来
    comdata += char(LoRa_Serial.read());
    delay(2);
  }
  
  Serial.print("comdata = ");
  Serial.println(comdata);			//打印信息
  comdata = "";						//接收信息归0
}

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

  DHT11.read(DhtPIN);				 //读取传感器数据
  res_temp = (float)DHT11.temperature;
  res_hum = (float)DHT11.humidity;
  if (res_temp >= 0 && res_hum > 0) {
    LoRa_Serial.print("temp = ");//串口打印结果,便于观察和调试
    LoRa_Serial.print(res_temp);//串口打印结果,便于观察和调试
    LoRa_Serial.print(",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!");
  Serial.begin(9600);
  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();
  }
}

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
atk-lora模块是一款基于Arduino的无线通信模块,它采用LoRa无线技术,能够实现长距离、低功耗、低速率的数据传输。下面是一个基本的atk-lora模块Arduino代码示例。 首先,我们需要引入LoRa库以便使用相关函数。在Arduino IDE中,点击Sketch -> 包含库 -> 管理库,搜索"LoRa"并安装。 然后,我们需要定义配置参数,如频段、传输功率等。例如: #include <LoRa.h> #define BAND 915E6 // 频段,根据所使用的模块和地区进行设置 #define POWER 20 // 传输功率,单位为 dBm,可根据需求进行调整 void setup() { Serial.begin(9600); // 初始化串口,用于调试输出 LoRa.setPins(ss, rst, dio0); // 设置SS引脚,复位引脚,中断引脚(根据模块的实际连接情况进行修改) if (!LoRa.begin(BAND)) { // 初始化LoRa模块 Serial.println("LoRa init failed. Check your wiring."); while(true); // 若初始化失败,则进入死循环 } LoRa.setTxPower(POWER); // 设置传输功率 } void loop() { // 在这里编写你的代码 } 在setup()函数中,我们首先初始化了串口,方便我们在调试时输出信息。然后通过调用LoRa.setPins()函数设置LoRa模块相关的引脚。接着,通过调用LoRa.begin()函数初始化LoRa模块。如果初始化失败,会打印错误信息,并进入死循环。 在loop()函数中,你可以编写你自己的代码。例如,可以使用LoRa库提供的函数发送和接收数据。例如,使用LoRa.beginPacket()函数开始一个数据包的传输,使用LoRa.write()函数写入数据,最后通过调用LoRa.endPacket()函数完成数据包的传输。 这只是一个基本的atk-lora模块Arduino示例代码。你可以根据你的具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值