Daten an einen Raspberry senden

Hallo liebe Community,
ich arbeite zur zeit an einem Projekt bei dem der Arduino verschiedene Sensoren ausließt (Luftfeuchtigkeit, Helligkeit, Temperatur). Ich würde gerne die ausgelesenen Daten an einen Raspberry schicken damit er mit diesen Daten weiter arbeiten kann. Jetzt meine Frage an euch: kann mir jemand von euch einen Beispiel liefern der Die Daten ließt und an die Serielle Schnittstelle(USB) rausschickt an dem ich mich orientieren kann ? Bin noch Neuling und kenne mich deshalb noch nicht so gut aus.
Hier der Code den ich bis jetzt schon habe:

#include <OpenGarden.h>
#include <Ports.h>
#include <DHT.h>
#include <OneWire.h>
#include <RF12.h>
#include <RemoteReceiver.h>
#include <DallasTemperature.h>
#include <RemoteSwitch.h>
#include <filter.h>
#include <RTClib.h>

#include <OpenGarden.h>
#include <Wire.h>
const int ledPin = 8;

void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600); 
OpenGarden.initSensors();
OpenGarden.sensorPowerON();
delay(100);
}

void loop(){

delay(1000);
 if (Serial.available()) {
        byte nr = Serial.read();
        Serial.print("Folgender char wurde empfangen: ");
        Serial.println(nr, DEC);
        }
  
  float soilTemperature = OpenGarden.readSoilTemperature();
 Serial.print("Temeratur Sensor: ");
 Serial.print(soilTemperature);
 Serial.println("'C");
 delay(2000);

 OpenGarden.sensorPowerON();
delay(500);
int luminosity = OpenGarden.readLuminosity();
OpenGarden.sensorPowerOFF();

Serial.print("Helligkeit: ");
Serial.print(luminosity);
Serial.println("%");
delay(2000);

OpenGarden.sensorPowerON();
delay(1000);
float Luftfeuchtigkeit = OpenGarden.readAirHumidity();
OpenGarden.sensorPowerOFF();

Serial.print("Luftfeuchtigkeit: ");
Serial.print(Luftfeuchtigkeit);
Serial.print("% RH");

}

Danke schon mal im Voraus
LG Rene

Du hast doch Serial.print/println schon in Deinem Sketch drin. Damit kannst Du Deine Werte doch bereits nach USB senden.

Gruß Tommy

Der Code ist doch schonmal gut als Beispiel.

Ich würde es aber für Tests erstmal verkleinern. Mehrere verschiedene Sensoren lesen ist das eine, die Daten über USB senden ( und dann auf dem Raspberry auswerten ) das andere.

Wenn du die zweite Hälfte in den Griff kriegen willst, und der Serial Monitor in der Arduino IDE das anzeigt, was du erwartest, musst du dich um deinen Raspberry kümmern.

okay vielen Dank für die Antworten

Hallo,

ich würde die Softseriell benutzen , damit man noch normal mit dem Monitor debugen kann. Dann benötigst Du allerdings einen zus. Umsetzer seriell auf USB.

An den Pi würde ich nur die eigendlichen Messdaten senden, getrennt mit einem Trennzeichen z.B ";". Die Reihenfolge liegt damit fest, den zusätzlichen Text brauchst du in dem Pi doch nicht. Wenn Du willst kannst Du auch noch eine Start und Endkennung dazu nehmen, ist aber nicht nötig.

sieht dann z.B so aus:

25.2;20.0;35.4 ( wert1;wert2;wert3)

s;25.2;20.0;35.4;e (mit start "s" und endkennung"e" )

diese eine Zeile liest Du dann mit dem Pi ein und trennst sie auf in die drei Werte.

Also zumindest Endekennung (z.B.:'\n') halte ich für absolut notwendig. Wie willst Du sonst mitbekommen, ob die letzte Zahl 123 oder 1234 lautet?

Gruß Tommy

Hallo,

@tommy Du hast natürlich vollkommen recht.

Gruß Heinz

Endekennung (z.B.:'\n') halte ich für absolut notwendig. Wie willst Du sonst mitbekommen, ob die letzte Zahl 123 oder 1234 lautet?

Der Haupt-Vorteil, Zahlen seriell als Text zu übertragen, ist ja die leichte Testbarkeit mit irgend einem unabhängigen Testwerkzeug. Da ist eine NeueZeile (println) als Endekennung sehr vorteilhaft.

Man kann den Pi auch per GPIO RX+TX ansprechen. Nur ein Spannungsteiler (1kOhm+2kOhm) ist dann noch nötig. Habs aber auch schon direkt probiert.