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
Empfänger RF 433
07.06.2016, 18:03 (Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2016 14:42 von ardu_arne.)
Beitrag #1
Empfänger RF 433
Hallo zusammen.
Nach vielen versuchen ohne erfolg hoffe ich dass mir jemand weiterhelfen kann.
Ich möchte meine Daten vom RF433 sender auf die SD Karte abspeichern. Beim LCD Display sehe ich die Temperatur aber ich bekomme keine Daten auf die SD Karte.
Was ist falsch. Ich hoffe es kann mir jemand weiterhelfen.

gruss
Pedro

Ich hoffe es ist richtig so.


.ino  _3_RF_433_SD_3.ino (Größe: 1,74 KB / Downloads: 16) [//Empfänger mit sd18b20 mit uno und LCD
//geht mit Sender vom Gartenhaus
//23.04.2016
Code:
#include <SPI.h>
#include <SD.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#include <VirtualWire.h>
#include <OneWire.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define ONE_WIRE_BUS 2
OneWire ourWire(ONE_WIRE_BUS);
DallasTemperature sensors(&ourWire);

#undef int
#undef abs
#undef double
#undef float
#undef round

float TempCC;
int i;
File myFile;
int sp = 1;
int ax = 1;
unsigned long previousMillis = 0;
const long interval = 1000;
const int chipSelect = 4;
//******************************************************
void setup()
{ Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  pinMode(10, OUTPUT);
  if (!SD.begin(chipSelect))
  {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  SD.remove("extra.txt");
  //******************************************
  myFile = SD.open("extra.txt", FILE_WRITE);
  myFile.close();
  //*****************************************
    lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("3_RF_REC_433_18B20");
  delay(2000);
  lcd.print("                  ");
  lcd.setCursor(3, 0);
  lcd.print("Temperatur    ");
  delay(1000);
  Wire.begin();
  sensors.begin();
  vw_setup(2000);
  vw_set_rx_pin(8);
  vw_rx_start();
  //}
  //*******************************************
  lcd.init();
  lcd.backlight();
  sensors.begin();

  // Initialise the IO and ISR
  vw_set_ptt_inverted(true);    // Required for RX Link Module
  vw_setup(2000);                   // Bits per sec
  vw_set_rx_pin(8);
  vw_rx_start();                      // Start the receiver
}

void loop()
{
  sp++;
  karteLesen();
  Wire.begin();
  sensors.requestTemperatures();
  lcd.setCursor(0, 1);
  lcd.setCursor(14, 1);
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if ( vw_get_message(buf, &buflen) )
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Outdoor: ");
    for (i = 0; i < buflen; i++)
    {
      lcd.write(buf[i]);
      Serial.write(buf[i]);

    }
    lcd.setCursor(18, 0);
    lcd.print((char)223);
    lcd.print("C");
    Serial.println("");
  }
  delay(2000);
  speicher();
}


void speicher() {
  // { // - + cs/4 mosi/11 sck/13 miso/12 -
  sensors.requestTemperatures();
  ax++;
  // uint8_t buflen = VW_MAX_MESSAGE_LEN;
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  myFile = SD.open("extra.txt", FILE_WRITE );//| O_APPEND);
  myFile.print("Aussen  ");
  myFile.print(buf[i]); //Aussen
  myFile.println("test");
  myFile.print(ax); //kontrolle ob etwas gespeichert wird
  myFile.close();
  lcd.setCursor(4, 1);
  lcd.print("Speichern");
  delay(1000);
  lcd.clear();
  Serial.println(" Speichern ");
}


void karteLesen() //kontrolle was gespeichert ist
{
  myFile = SD.open("extra.txt");
  if (myFile) {
    Serial.println("karteLesen");
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
    delay(5000);

  }

}

Edit: Codebereich formatiert
Gruß Arne
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.06.2016, 18:49
Beitrag #2
RE: Empfänger RF 433
Poste bitte den Sketch direkt im Forum, dann kann ich den auch im Tablet lesen.
Benutze dazu bitte die Code-Tags (Schaltfläche #) .

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.06.2016, 17:52 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2016 17:55 von hotsystems.)
Beitrag #3
RE: Empfänger RF 433
So wie du es geschrieben hast, kann es nicht funktionieren.

Du möchtest 2 mal den RX-Speicher auslesen, 1 mal für das LCD, ein zweites mal für die SD-Karte, hier ist der Speicher aber leer.

Du musst beim ersten auslesen das in eine Variable schreiben und diese jeweils für das LCD und anschließend für die SD-Karte verwenden.

Und setze den Sketch doch bitte in Code-Tags, das hat beim ersten mal nicht geklappt. Das kannst du auch jetzt noch machen.

Vorweg [code.] hinterher [/code.], jeweils ohne den Punkt.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.06.2016, 07:36 (Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2016 14:44 von ardu_arne.)
Beitrag #4
RE: Empfänger RF 433
(08.06.2016 17:52)hotsystems schrieb:  So wie du es geschrieben hast, kann es nicht funktionieren.

Du möchtest 2 mal den RX-Speicher auslesen, 1 mal für das LCD, ein zweites mal für die SD-Karte, hier ist der Speicher aber leer.

Du musst beim ersten auslesen das in eine Variable schreiben und diese jeweils für das LCD und anschließend für die SD-Karte verwenden.

Und setze den Sketch doch bitte in Code-Tags, das hat beim ersten mal nicht geklappt. Das kannst du auch jetzt noch machen.

Vorweg [code.] hinterher [/code.], jeweils ohne den Punkt.

Ich habe versucht es so abzuändern mit einer variable aber irgendwie will es nicht so wie ich möchte. Ich wäre froh um einen tipp.
Hier noch meine änderung.
Danke zum voraus.

Code:
uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;
  if ( vw_get_message(buf, &buflen) )
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Outdoor: ");
    for (i = 0; i < buflen; i++)
      {
     spe=(buf[i]);
      //lcd.write(buf[i]);
      Serial.write(spe);
lcd.write(spe);
    }
    lcd.setCursor(18, 0);
    lcd.print((char)223);
    lcd.print("C");
    Serial.println("");
  }
  delay(2000);
  speicher();
}
void speicher() {
  // { // - + cs/4 mosi/11 sck/13 miso/12 -
  sensors.requestTemperatures();
  
  myFile = SD.open("extra.txt", FILE_WRITE );//| O_APPEND);
  myFile.print("Aussen  ");
  myFile.print(spe); //Aussen
  myFile.println("test");
  myFile.print(ax); //kontrolle ob etwas gespeichert wird
  myFile.close();
  lcd.setCursor(4, 1);
  lcd.print("Speichern");
  delay(1000);
  lcd.clear();
  Serial.println(" Speichern ");
}

Edit: Codebereich formatiert
Gruß Arne
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.06.2016, 08:51
Beitrag #5
RE: Empfänger RF 433
Der Sketch wird nicht richtig angezeigt, da am Ende ein falsches Tag ([\code.]) verwendet wird. Das muss so aussehen ([/code.]) ohne Punkt.

Wirft der Sketch beim Kompilieren einen Fehler? Immer die Fehlermeldungen mit posten.
So wir er vermutlich nicht kompiliert.

Du musst folgendes einfügen bzw. austauschen:
Code:
\\ in der Deklaration die Variable erzeugen
char StringReceived[20];

\\in der Loop die Variable füllen
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;

  if (vw_get_message(buf, &buflen)) {            
    for (i = 0; i < buflen; i++) {
      StringReceived[i] = char(buf[i]);
    }

//und so kannst du die Variable weiter nutzen, auch für die SD-Karte nur mit eigener Anweisung
lcd.write(StringReceived);

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.06.2016, 21:16
Beitrag #6
RE: Empfänger RF 433
Guten Abend.
Jetzt habe ich es begriffen.Manchmal dauert es etwas länger.
Vielen Dank für die Hilfe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.06.2016, 23:01
Beitrag #7
RE: Empfänger RF 433
(10.06.2016 21:16)peterfried schrieb:  Guten Abend.
Jetzt habe ich es begriffen.Manchmal dauert es etwas länger.
Vielen Dank für die Hilfe.

Ok, prima.
Wichtig ist, es hat dir geholfen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  DCF77 Empfänger paq 19 918 23.07.2016 17:16
Letzter Beitrag: rkuehle
  AKtuelle Uhrzeit bekommen, RTC oder DFC-Empfänger Cray-1 34 15.573 11.02.2016 23:49
Letzter Beitrag: hotsystems
  DMX Empfänger BennIY 12 2.207 24.09.2015 19:51
Letzter Beitrag: BennIY
  Hilfe bei RC-Empfänger Signale auswerten und verarbeiten Pat12-6 7 1.679 19.03.2015 20:17
Letzter Beitrag: Eichner
Wink Bitte helft mir: RC Empfänger auslesen und an Motortreiber weitergeben. christian@schiltkamp.info 7 3.942 15.03.2015 17:54
Letzter Beitrag: Pat12-6
  RC-Empfänger auslesen und Motoren steuern Pat12-6 0 972 14.03.2015 10:29
Letzter Beitrag: Pat12-6
  Auto Level Quadrocopter (Modellbau Empfänger) Neumi 12 1.702 20.01.2015 13:47
Letzter Beitrag: Eichner
  IR SENDER & EMPFÄNGER Marc2014 13 3.470 02.10.2014 11:36
Letzter Beitrag: Marc2014
  RC-Empfänger-Signal auswerten DerFranke 6 3.446 18.09.2014 21:06
Letzter Beitrag: scritch
  IR Sende / Empfänger Klasse - wo hier deponieren? Hobel 0 1.651 15.09.2013 13:00
Letzter Beitrag: Hobel

Gehe zu:


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