Çözüldü4.23K görüntülenmeLorabmp183 Lora
0

Hocam merhabalar, BMP183 ile irtifa verisi alıp Lora ile göndermek istiyorum. Ancak irtifa verisini olması imkansız değerler alıyorum (30332m gibi…). Sensörde problem yok, aynı kütüphaneyle Lora olmadan çalışıyor. İşin içine Lora girdiğinde sıkıntı yaşanıyor. Veriyi diğer Loraya göndermede sorun yaşamıyorum ancak aldığım veri yanlış. Sebebi ne olabilir? Cevabınız için şimdiden teşekkür ederim. Imu+GPS veya Basınç+GPS gibi verilerin gönderilmesi hakkında video veya yazı da gelirse çok seviniriz.

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Temmuz 29, 2021
0

Bu verici

#include "LoRa_E32.h"
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP183.h>
#include <SoftwareSerial.h>
  SoftwareSerial mySerial(4, 5); // Arduino RX <-- e32 TX, Arduino TX --> e32 RX
LoRa_E32 e32ttl(&mySerial);
  #define BMP183_CLK  13
#define BMP183_SDO  12  
#define BMP183_SDI  11 
#define BMP183_CS   10
 float sensorValue;
  Adafruit_BMP183 bmp = Adafruit_BMP183(BMP183_CLK, BMP183_SDO, BMP183_SDI, BMP183_CS);
 struct Signal {
  byte yukseklik[4];
} data;
   void setup() {
  Serial.begin(9600);
  e32ttl.begin();
  delay(500);
}
 void loop() {
 float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; // should be ~1000
     Serial.print("Altitude:    "); 
    Serial.print(bmp.getAltitude(seaLevelPressure)); 
    Serial.println(" m");
    Serial.println("");
sensorValue=bmp.getAltitude(seaLevelPressure);
   struct Signal  {
   byte yukseklik[4];
  } data2;
   (*(float*)(data2.yukseklik)) = sensorValue;
   ResponseStatus rs = e32ttl.sendFixedMessage(0, 2, 2, &data2, sizeof(Signal));
  Serial.println(rs.getResponseDescription());
    delay(500);
 }

Bu alıcı

#include "LoRa_E32.h"
#include <SoftwareSerial.h>
  SoftwareSerial mySerial(4, 5); // Arduino RX <-- e32 TX, Arduino TX --> e32 RX
LoRa_E32 e32ttl(&mySerial);
  struct Signal {
  byte yukseklik[4];
} data;
  void setup() {
 Serial.begin(9600);
  e32ttl.begin();
  delay(500);
 }
 void loop() {
  while (e32ttl.available()  > 1) {
    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));
    struct Signal data = *(Signal*) rsc.data;
    Serial.print("Yukseklik: ");
    Serial.println(*(float*)(data.yukseklik));
    rsc.close();
  } 
 }

Enes Ertürk Durumu yayınlanmak üzere'ye değiştirildi Temmuz 26, 2021
4 cevaptan 1'ini inceliyorsun, tüm cevapları görmek için buraya tıklayın.