Lora ส่งค่ามา 2 มายัง Lora ตัวรับ 1 ตัว

ผมไม่ค่อยมีความรู้ด้าน เกี่ยวกับ lora มากเท่าไหร่ช่วย หน่อยครับผม ถ้าผมจะเอา เซนเซอร์วัดความชื้นในดิน 2 ตัวแล้วให้ lora มันส่งข้อมูลมา ตัวรับตัวเดียวจะเขียนโค้ดยังไงดีครับ ขอบพระคุณมากครับ

โค้ดตัวส่งครับ

#define BLYNK_PRINT Serial

#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <SPI.h>
#include <LoRa.h>
#define nss 5
#define rst 14
#define dio0 2


char auth[] = "OTMEH_iApo_gyWGD4Wu6wkY3exzZFT65"; // Token App Blynk
char ssid[] = "Tanarak3 floor-2"; // ชื่อ Wi-Fi
char pass[] = "0801736767"; // รหัส Wi-Fi
const int SOILSENSOR = 36;                       //GPIO15 (ADC2_CH3)    //Soil sensor
int sensorValue = 0;

void moisture() {
 int Value = analogRead(SOILSENSOR);
  Value = map(Value, 0, 4095, 100, 0);
  Blynk.virtualWrite(V0, Value);
  Serial.println(Value); 
}

void setup() {
 Serial.begin(115200);
  pinMode(SOILSENSOR, INPUT);
  Blynk.begin(auth, ssid, pass);
   Serial.println("LoRa Sender");
    LoRa.setPins(nss, rst, dio0);
    if (!LoRa.begin(433E6))
    {
        Serial.println("Starting LoRa failed!");
        while (1)
            ;
    }
}

void loop() {
 Blynk.run();
  sensorValue = analogRead(SOILSENSOR);
  Serial.print("sensorValue = ");
  Serial.println(sensorValue);
  int PercentValue = map(sensorValue, 0, 4095,100, 0);
  Serial.print("Soil Moisture = ");
  Serial.print(PercentValue);
  Serial.print("% : Soil value = ");
   moisture();  //ใช้งานการอ่านเซนเซอร์ แล้วส่งค่าไปที่ blynk
   // send packet
    LoRa.beginPacket();
    LoRa.print("Soil Moisture = ");
    LoRa.print(PercentValue);
    LoRa.print("% : Soil value = ");
   //  LoRa.println(value);
    LoRa.endPacket();
  

  delay(1000);
}

โค้ดตัวรับครับ

#include <SPI.h>
#include <LoRa.h>
 
#define nss 5
#define rst 14
#define dio0 2
 
void setup() {
  Serial.begin(115200);
  while (!Serial);
 
  Serial.println("LoRa Receiver Callback");
 
  LoRa.setPins(nss, rst, dio0);
 
  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
 
  // register the receive callback
  LoRa.onReceive(onReceive);
 
  // put the radio into receive mode
  LoRa.receive();
}
 
void loop() {
  // do nothing
}
 
void onReceive(int packetSize) {
  // received a packet
  Serial.print("Received packet '");
 
  // read packet
  for (int i = 0; i < packetSize; i++) {
    Serial.print((char)LoRa.read());
  }
 
  // print RSSI of packet
  Serial.print("' with RSSI ");
  Serial.println(LoRa.packetRssi());
}

แล้วตอนนี้ทดสอบมันรับส่งกันได้รึยังครับ

ตอนนี้มันรับส่งกันได้แล้วครับ แต่เป็นเซนเซอร์ แค่ตัวเดียวครับ ผมอยากเพิ่มอีกตัวครับผม

1 Likes

ก็ลองเพิ่มดูครับ ผมอยากรูว่า ระยะส่งสูงสุดที่ค่า ไม่เพี้ยน คือกี่เมตร ถ้าเทสได้ลองเทสให้หน่อยนะครับ

ใช้ตัวไหนครับ

ได้ครับผม เดะผมลองแล้วจะมาแจ้งผลครับ

1 Likes

ใช้เป็นตัวนี้ครับพี่

เป็นไงบ้างครับ กระทู้นี้ อัพเดทกันหน่อยย