Könnt Ihr mir bitte weiterhelfen die beiden Sketches zusammenzumachen ?

(Beide sketches sind attached )

Hallo !

Ich habe 2 super funktionierende Sketches.Ich möchte die beiden Sketches mit einer kleinen Modifizierung zusammenmachen.

Das erste Sketch ist ein funktionierendes DATEN LOGGER Sketch das mit einem BMP180 Sensor , einem Ethernet_SD Shield daten auf die Sdkarte aufzeichnet.
Das zweite ist ein Arduino Sketch für den nrf24L01 es schickt einfach nur "Hallo Welt zu einem Arduino Nano mit auc einemnrf24L01.

Was ich gerne machen würde ist einen nrf24L01 zu meinem Daten Logger ( Arduino Nano mit EthernetSDCARD Schield und BMP180 ) hinzufügen sodass es nicht “Hello World” verschickt sondern die daten von dem BMP180 zu einem anderen Arduino mit dem gleichen Tranceiver MOdul sodass ich die Daten auf einem etwas entfernten Monitor sehen kann.

( Der Grund ist :Ich habe ein Projekt wo ein Data Logger mit mehreren 9 Vlt baterien verbunden ist.Das ganze ist Luftdicht in einer BOX verpackt ( keine Kabel nach draussen ) Ich versuche zu prüfen ob der Kleber den ich benutze DICHT ist , indem ich einen gewissen druck auf das Gehäuse mache. Und möchte den Test gerne einen Monat laufen lassen aber nebenbei auf dem Monitor sehen ob alles noch in Ordnung ist.

I am habe 2 Anhänge , einmal mein funktionierendes LOGGER Sketch und einmal das “sende” Sketch das ich gerne einbinden würde für den nrf24L01.

Ich hoffe ich habe das gut erklärt und das mir jemand von euch weiterhelfen kann.
Ich sitze gerade an einem Dual Monitor setup und versuche die beiden Sketches zu verbinden … ROFL …

Für eure Mithilfe bin ich sehr dankbar !

Dankeschon !!!
Christian

WWWFINALWWWWORKING.ino (3.03 KB)

sendsketch.ino (1.16 KB)

Ich habe Zweifel dass die Funktionalitäten SD-Karte, Ethernet, BMP und NRF in 32k Flash passen.

Und ich frage mich, warum du es nicht selbst machst.

Hallo WhandallHmmm ,,, Ich hätte auch noch ein paar Arduinos zur verfügung ...
Zum Beispiel : Der Arduino der den LOGGER beinhaltet , kann ich da nicht einen arduino nano ranmachen der alles was er auf dem serial port sieht einfach über den NRF24L01 an einen anderen arduino schickt ?

Bis jetzt hatte ich noch keine Speicher Probleme , habe noch 30 Prozent :slight_smile:

Und zu Hotsystems ... ich versuche mein bestes , aber da ich nicht so bewandert bin mit der Thematik dauert es leider. Ich glaube eigentlich nicht das ein " machs dir doch selber " Kommentar wirklich so hilfreich ist.

Aber mach Dir nichts draus ,,, ich weis es ist Freitag Morgen ..... :slight_smile: :slight_smile: :slight_smile:
Ein Versuch mir zu helfen in irgendeiner Weise wäre super :slight_smile: ( Wegweiser , Tip , ... )
Kind regards
Christian

microwhatt:
Und zu Hotsystems ... ich versuche mein bestes , aber da ich nicht so bewandert bin mit der Thematik dauert es leider. Ich glaube eigentlich nicht das ein " machs dir doch selber " Kommentar wirklich so hilfreich ist.

Ok, aber wenn du diese Sketche schon schreiben kannst, dann sollte das zusammensetzen doch kein Problem sein.
Oder habe ich da etwas übersehen?

Dann nehme ich alles zurück.

Also, beim zusammensetzen musst du drauf achten, dass die Variablen nicht doppelt auftreten. Genauso wie Setup und Loop. Dann wird der Code der einen Loop als Funktion eingesetzt.

So im Wesentlichen.

Was ist denn genau dein Problem beim Selbermachen?

Da alles einzeln offenbar super klappt, und du auch sonst keinen allzu bedauernswerten Eindruck machst, ist “nicht so bewandert” etwas wenig. HotSystems Tips sollten eigentlich klar sein, hätte ich gedacht (und wohl auch Hotsystems bei seiner ersten Antwort)

Damit es schneller geht und du dir weniger Arbeit machst…
Dann viel Erfolg weiterhin und alles Gute! :wink:

Ich habe versucht etwas zu posten ... Aber durch die 5 Minuten limitierung und dann zurück klicken ist es weg :slight_smile:

Klar kann ich sketches schreiben ,... Aber nur welche die mit *.BAS enden ...

Ich bin in der Arduino Materie nicht sehr bewandert wie ich schon gesagt hatte.

Hotsystems hat schon sein Karma von mir bekommen.

Ich habe Asperger Syndrom und es ist leider für mich nicht alles so einfach wie es scheint... :frowning:

Ich bin Forensiker und machen Daten Wiederherstellungen von Datenträgern / Handys / Computern die ins Wasser fallen ...

Ich bräuchte eine klare ( Idiotensichere ) Antwort auf was ich als nächstes zu tun habe , oder einen anderen Lösungsvorschlag ( anderen arduino mit dran machen der alles über NRF24L01 schickt was beim serial port antanzt ? )

Kind regards
Christian

microwhatt:
Klar kann ich sketches schreiben ,… Aber nur welche die mit *.BAS enden …
Ich bin in der Arduino Materie nicht sehr bewandert wie ich schon gesagt hatte.

Aber wie passt das zusammen?
Du postest Arduino Sketche obwohl du nicht sehr bewandert bist.
Sind die nicht aus deiner Feder?

Hotsystems hat schon sein Karma von mir bekommen.

Danke

Ich bräuchte eine klare ( Idiotensichere ) Antwort auf was ich als nächstes zu tun habe , oder einen anderen Lösungsvorschlag ( anderen arduino mit dran machen der alles über NRF24L01 schickt was beim serial port antanzt ? )

Das habe ich versucht, dir schon (oben) zu schreiben.
Wenn du das zusammen gesetzt hast, darfst du es gern wieder posten und wir machen weiter.

Bitte poste es direkt in Code-Tags, Schaltfläche </> verwenden. Die findest du unter “Preview”, oben links.

Oki , versuche das jetzt zusammenzustöpseln nach Deiner Anweisung :slight_smile:

microwhatt:
Oki , versuche das jetzt zusammenzustöpseln nach Deiner Anweisung :slight_smile:

Prima, wir kriegen das hin.
Hier werden sicher viele helfen.
Aber die Arbeit musst du machen. :wink:

Kannst du auch meine Festplatte "retten"?
Hab vom Netzteil ein falsches Kabel genommen und wahrscheinlich den Lesekopf zerschossen, zu viel Spannung oder so.

Natürlich Scorpi08 ,,, Schick mir mal bitte ein Foto von der Unterseite Deiner festplatte.
xxxx oder einfach hier posten wenn das erlaubt ist.

[EDIT] Emailadresse aus Sicherheitsgründen entfernt. Bitte über PM komunizieren. Uwe]

Dein Festplatten PCB hat glücklicherweise kleine Suizidgefärdete Bauteile die einen kurzschluss verursachen wenn etwas schief läuft ( overvoltage )..... Dein Schreib / Lese Kopf ist in Ordnung und Deine Daten auch.
Ganz nett wäre noch was passiert wenn Du Strom ( diesmal mit richtigem Netzteil ) auf die Festplatte giebst ...
Passiert nix / Oder klicken / oder brummen / oder wird sie zum Fön ? :slight_smile:

Mit freundlichen grüßen
Christian

Hallo,

wegen der Sketch Zusammenführung. Ich sehe erstmal keine großen Hinternisse.
Du kannst den Sendesketch in den anderen "kopieren".
Ich würde aber vorher im Sendesketch aus all dem was in der loop steht eine Funktion machen und diese dann rüber hiefen. Eins ist aber auch klar. Mit dem übelsten delays wird alles und jeder blockiert.
Das wird nicht zufriedenstellend funktionieren. Weil auf nichts mehr reagiert werden. Nur mit Verzögerungen.

Du solltest dich mit millis() befassen.

#include <SD.h> //Load SD card library
#include <SPI.h> //Load SPI Library
#include <nRF24L01.h>
#include <RF24.h>
#include "Wire.h"    // imports the wire library for talking over I2C 
#include "Adafruit_BMP085.h"  // import the Pressure Sensor Library We are using Version one of Adafruit API for this sensor
#include <RF24_config.h>
Adafruit_BMP085 Sensor;  // create sensor object called mySensor

// Ok everyone so this is the base that we will have for our data output to sd card coding.
float tempC;  // Variable for holding temp in C
float pressure; //Variable for holding pressure reading

float al;
int msg[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
const int greenPin = 7; //this is here for us to activate our pin warning system.
const int redPin = 8; 

int chipSelect = 4; //chipSelect pin for the SD card Reader
File SensorData; //Data object you will write your sesnor data to

void setup(){
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  Serial.begin(9600); //turn on serial monitor
  Sensor.begin();   //initialize pressure sensor mySensor
  if (!SD.begin(4)) {
    Serial.println("Card failed, or not present");
      radio.begin();
  radio.openWritingPipe(pipe);}
    // don't do anything more:
    return;
    
  }
   Serial.println("card initialized.");
   PrintHeader();
  

  
}

void PrintHeader() // this function prints header to SD card
{
   File dataFile = SD.open("home.txt", FILE_WRITE);
   if (dataFile)
   {
      String header = "Temperature (C), Pressure (Pa),)";
      dataFile.println(header);
      dataFile.close();
      Serial.println("Header Printed");
   }
   else
   {
     Serial.println("ERROR: Datafile or SD card unavailable");
   }
}

void loop() {

  if (!Sensor.begin()) 
  {
        digitalWrite(redPin, HIGH); // turns on red warning LED
        digitalWrite(greenPin, LOW); // turns off green LED
	Serial.println("DANGER! DANGER! Check wiring, Check code, Check well... I don't know just look busy");
  }
    else 
  {
  (Sensor.begin());
  SensorData = SD.open("Ein_Data.txt", FILE_WRITE);
  
  if (!SensorData) 
  {
  
        digitalWrite(redPin, HIGH); // turns on red warning LED
        digitalWrite(greenPin, LOW); // turns off green LED
	Serial.println("Check SD Card, Then Press Reset");
        delay(2000);
  }
  
  else 
  {
  (SensorData); 
  digitalWrite(greenPin, HIGH); // turns on the green pin
  digitalWrite(redPin, LOW); // turns off red warning LED
  tempC = Sensor.readTemperature(); //Read Temperature from BMP180
  pressure = Sensor.readPressure(); //Read Pressure
 
    Serial.print("The Temp is: "); //Print Your results
  Serial.print(tempC);
  Serial.println(" degrees C");
  Serial.print("The Pressure is: ");
  Serial.print(pressure);
  Serial.println(" Pa.");
 
  Serial.println("");

  String theMessage = "Hello there!";
  int messageSize = theMessage.length();
  for (int i = 0; i < messageSize; i++) {
    int charToSend[1];
    charToSend[0] = theMessage.charAt(i);
    radio.write(charToSend,1);
  }  
//send the 'terminate string' value...  
  msg[0] = 2; 
   radio.write(msg,1);
/*delay sending for a short period of time.  radio.powerDown()/radio.powerupp
//with a delay in between have worked well for this purpose(just using delay seems to
//interrupt the transmission start). However, this method could still be improved
as I still get the first character 'cut-off' sometimes. I have a 'checksum' function
on the receiver to verify the message was successfully sent.
*/
  radio.powerDown(); 
  delay(1000);
  radio.powerUp();

SensorData.print(tempC);                             //write temperature data to card
SensorData.print(",");                               //write a commma
SensorData.print(pressure);
SensorData.print(",");
SensorData.close();                                  //close the file
}
}

}