INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Messstation mit Lora
11.10.2019, 12:32
Beitrag #1
Arduino Messstation mit Lora
Guten Tag,
ich habe 2 Arduino Unos und 2 Lora Shields
und einen DHT 22 Temperatur und Luftfeuchtigkeits Sensor.
Ich möchte nun ein Programm schreiben, bei dem der eine Arduino mit dem Sensor die Werte generiert und der andere diese Werte über die Lora Funktechnik gesendet bekommt und ausgibt
Codes habe ich auch schon jedoch stoße ich auf ein Problem:
Ich kann zwar beliebige Texte Senden jedoch nicht die Variablen der Messung in meinem Fall T und L für Temperatur und Luftfeuchtigkeit.

Empfänger:
Code:
#include <SPI.h>
#include <RH_RF95.h>

RH_RF95 rf95;
int led = 13;

void setup()
{
  pinMode(led, OUTPUT);    
  Serial.begin(9600);
  delay(4000);
  if (!rf95.init()){
    Serial.println("init failed");
  }
}

void loop()
{
  if (rf95.available())
  {  
    uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
    uint8_t len = sizeof(buf);
    if (rf95.recv(buf, &len))
    {
      digitalWrite(led, HIGH);
      Serial.print("Response from slave: ");
      Serial.println((char*)buf);
      Serial.print("RSSI: ");
      Serial.print(rf95.lastRssi(), DEC);
      Serial.print(" dBm");
      
      // Send a response
      uint8_t data[] = "Hello Slave!";
      rf95.send(data, sizeof(data));
      rf95.waitPacketSent();
      Serial.println("Send response to slave");
      digitalWrite(led, LOW);
    }
    else
    {
      Serial.println("Can´t receive packet!");
    }
  }
}

Sender mit dem DHT 22
Code:
#include <SPI.h>
#include <RH_RF95.h>
#include "DHT.h"
DHT dht(A2,DHT22);

RH_RF95 rf95;

void setup()
{
  Serial.begin(9600);
  dht.begin();
  delay(4000);
  if (!rf95.init()){
    Serial.println("init failed");
  }
}

void loop()
{
  
  delay(1500);
  float t=dht.readTemperature();
  float l=dht.readHumidity();
  if (isnan(t) || isnan(l))
  {
    Serial.println("Die Werte konnten nicht ausgelesen werden");
  }
  else
  {
    Serial.print("Temperatur: ");
    Serial.print(t);
    Serial.println("°C");
    Serial.print("Luftfeuchtigkeit: ");
    Serial.println(l);
    Serial.println(".......................");
  
  }

  Serial.println("Send to Master");
  uint8_t data[] = "Hier muss die Temperatur und Feuchtigkeit hin";
  rf95.send(data, sizeof(data)); //Send to master
  rf95.waitPacketSent();
  uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
  uint8_t len = sizeof(buf);

  if (rf95.waitAvailableTimeout(3000))//Listen for a response
  {
    if (rf95.recv(buf, &len)) //If data is received
    {
      Serial.print("Response from Master: ");
      Serial.println((char*)buf);
      Serial.print("Signal RSSI: ");
      Serial.print(rf95.lastRssi(), DEC);
      Serial.println(" dBm");
    }
    else
    {
      Serial.println("Can´t receive packet!");
    }
  }
  else
  {
    Serial.println("No response! Is master in range and on?");
  }
  delay(400);
  }
Da wo uint8_t data[] = "Hier muss die Temperatur und Feuchtigkeit hin";
steht soll also t gesendet werden dies funktioniert aber nicht bzw ich weiß nicht wie ich das machen soll.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 12:45
Beitrag #2
RE: Arduino Messstation mit Lora
Dann schau Dir mal Strukturen an. Die Struktur muss in beide rein.
Ungetestet als Idee, ich habe die Hardware nicht.
Code:
struct daten { // Das ist die Strukturdefinition, also ein eigener Datentyp
  float hum;
  float temp;
} data; // das ist Deine Variable

// Sender
....
  data.temp=dht.readTemperature();
  data.hum=dht.readHumidity();
  rf95.send(data, sizeof(data));

// Empfänger
  if (rf95.recv(buf, &len)) {
    if (len >= sizeof(data)) memcpy(data,buf,sizeof(data)) {
      Serial.println(data.hum);
    }
...
  }

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 12:53
Beitrag #3
RE: Arduino Messstation mit Lora
Leider wieder einer der Fragen stellt, aber sich zu fein ist, unsere Fragen zu beantworten.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 13:12
Beitrag #4
RE: Arduino Messstation mit Lora
Hatte ich leider übersehen, sonst hätte ich nicht geantwortet.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 13:15
Beitrag #5
RE: Arduino Messstation mit Lora
(11.10.2019 13:12)Tommy56 schrieb:  Hatte ich leider übersehen, sonst hätte ich nicht geantwortet.

Gruß Tommy

Evtl. springt er ja über seinen Schatten und antwortet mal.
Oder es kommen weitere Fragen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 13:49
Beitrag #6
RE: Arduino Messstation mit Lora
Vielen dank schonmal für die Idee ich werde es mal ausprobieren.
Bei meinem Anderen post habe ich nicht geantwortet, da er schlecht strukturiert war habe jetzt versucht alles viel übersichtlicher für euch zu machen!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 13:52
Beitrag #7
RE: Arduino Messstation mit Lora
Ach und eine kurze Mitteilung darüber war Dir zu viel Aufwand?

Das kann schnell dazu führen, dass Antworten an Dich zuviel Aufwand werden.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.10.2019, 13:56 (Dieser Beitrag wurde zuletzt bearbeitet: 11.10.2019 14:25 von Murdock.)
Beitrag #8
RE: Arduino Messstation mit Lora
Ja war vielleicht unüberlegt.
kleine Frage zu deiner Antwort mit dem Code
Der Part für den Empfänger wo genau muss der hin blicke da nicht so durch

Allso wenn ich es so versuche, dass ich die Temperatur so senden will

Serial.println("Send to Master");
uint8_t data[] = t;
rf95.send(data, sizeof(data)); //Send to master
rf95.waitPacketSent();
uint8_t buf[RH_RF95_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);

dann kommt das als Fehlermeldung:

LoRa_Slave:44:11: error: initializer fails to determine size of 'data'

uint8_t data[] = t;

^~~~

LoRa_Slave:44:20: error: array must be initialized with a brace-enclosed initializer

uint8_t data[] = t;

^
Weiß jemand was das heißt?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 166 Heute 14:48
Letzter Beitrag: Thorsten_S
  LoRa Shield Temperaturmesser Murdock 6 306 03.10.2019 10:35
Letzter Beitrag: hotsystems
  Lora uint8_t Potiwerte übergeben gandalf7588 1 816 08.04.2018 13:23
Letzter Beitrag: Tommy56
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 3.904 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 3.482 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 9.529 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste