Pages: [1] 2 3   Go Down
Author Topic: [gelöst] Temperatur Logger, mit DS18B20  (Read 6609 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo allerseits,
ich muss mich schon wieder an Euch wenden, ich bin dabei mir einen Temperatur-Logger zu basteln.
Hardware steht und funktioniert in einzelnen Sketchen.
Was ich nur nicht verstehe, wie ich Daten auf der SD Karte speichere (in Log.txt) um die dann später Visuell darzustellen.
In der Log.txt sollen die Daten wie folgt auf tauchen:
Datum Uhrzeit Temperatur
16.4.2012 20:02 24.50°C

Kann mir jemand den Code dafür zeigen und vieleicht erklären ?   smiley-roll-blue

Hier mein Sketch bis jetzt ( bitte nicht meckern, der ist total unübersichtlich, aber funktioniert...)  smiley-red
Code:
#include <SD.h>
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "RTClib.h"

#define ONE_WIRE_BUS 6

RTC_DS1307 RTC;

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress outsideThermometer = { 0x28, 0x65, 0x35, 0xC3, 0x03, 0x00, 0x00, 0x35 };

//LED blinkt jede Minute für 5sekunden
int ledPIN = 5;                // LED liegt am (digitalen) Pin 5
long previousMillis = 0;        
long previousLEDmillis = 0;
long LogInterval = 30000;        // Zeit LED AUS (60000 = 1 min)
long ledInterval = 10000;         // Zeit LED AN (10000 = 10 sec)
boolean ledON = false;

// Ethernet EInrichten
byte mac[] = { 0xDE, 0xAD, 0xED, 0xEF, 0xFE, 0xBE };
byte ip[] = { 192, 168, 178, 216 };
byte gateway[] = { 192, 168, 178, 1 };
byte subnet[] = { 255, 255, 255, 0 };

EthernetServer server(80);

// SD Card
const int chipSelect = 9; // CS is pin 9

void setup(void)
{
   Ethernet.begin(mac, ip); // initialize the ethernet device, mac, ip);
    server.begin();   // start listening for clients

// Setzt den ledPin (Pin 5) als Ausgang
  pinMode(ledPIN, OUTPUT);
  // start serial port
  Serial.begin(57600);
   Serial.print("Pruefe ob SD Card vorhanden...");
  // make sure that the default chip select pin is set to
  // output, even if you don't use it:
  pinMode(9, OUTPUT);
  
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    // don't do anything more:
    return;
  }
  Serial.println("Karte vorhanden und initialisiert.");
  
   Wire.begin();
   RTC.begin();
   if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
  // Start up the library
  sensors.begin(); DEC;
  sensors.setResolution(outsideThermometer, 9);
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Error getting temperature");
  } else {
    Serial.print(tempC);
  }
}

void loop(void)
{
  DateTime now = RTC.now();
      
  delay(10000);
     Serial.print(now.day(), DEC);
    Serial.print('.');
    Serial.print(now.month(), DEC);
    Serial.print('.');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    if (now.minute()<10)
    {
    Serial.print("0");
    }
    Serial.print(now.minute(), DEC);
    Serial.print(' ');
  sensors.requestTemperatures();
float tempoutsideThermometer = sensors.getTempC(outsideThermometer);
  
  printTemperature(outsideThermometer);
  Serial.print(char(176)); // Gibt das ° Grad-Zeichen aus
  Serial.print("C");
  Serial.println();

  // Ausgabe auf Website
  EthernetClient client = server.available();
  if (client) {
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println();
    client.println("<html><head>");
    client.println("<meta http-equiv='refresh' content='10'>");
    client.println("<title>Arduino Webserver</title>");
    client.println("</head>");
    client.println("<body>");
    //---Überschrift---
    client.println("<br><hr />");
    client.println("<h1><div align='center'>Arduino Webserver powered by Cetax</div></h1>");
    client.println("<hr /><br>");
    //---Überschrift---
    client.println("Die Temperatur betraegt ");
    client.println("<h2>");
    client.println(tempoutsideThermometer);
    client.println("&deg;C");
    client.println("</h2>");
    client.println("</BODY></HTML>");    
    delay(10);
    client.stop();//close the connection with the client
  }
  
//LED Loop
unsigned long currentMillis = millis();
unsigned long currentLEDmillis = millis();

 if (ledON) {
   if(currentLEDmillis - previousMillis > ledInterval) {
     previousLEDmillis = currentLEDmillis;
     ledON = false;
     digitalWrite(ledPIN, LOW);
   }
 }
 
  if(currentMillis - previousMillis > LogInterval) {
    previousMillis = currentMillis;
     currentLEDmillis = 0;
     digitalWrite(ledPIN, HIGH);
     ledON = true;
  }

}

Einpaar Beispiel habe ich schon gelesen, aber ich verstehe nicht wie ich es für meinen Temperatur-Logger
umsetze  smiley-confuse
z.B.: http://www.ladyada.net/make/logshield/lighttemp.html

Vielen Dank für Eure Hilfe...
« Last Edit: April 22, 2012, 02:28:42 am by Cetax » Logged

*greatz*

 CeTax

www dot blinkmann dot de


Offline Offline
Full Member
***
Karma: 2
Posts: 137
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nimm den sketch von https://github.com/adafruit/Light-and-Temp-logger/blob/master/lighttemplogger.pde

Diesen musst du nur ab Zeile 169 an deinen DS18B20 anpassen. Und dann mit deinem bestehenden Code zusammenfügen.
Logged

duemilanove / OSX & WIN
Arduino & Teensy: http://bit.ly/13rbdtQ

Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
ok, habe mir den Sketch geholt und alles was mit dem Lichtsensor zu tun hat gelöscht.
Und versucht das zu ändern was mit meinem DS18B20 zu tun hat, aber ich bekomme mehrere Fehlermeldungen die mir garnichts sagen  smiley-confuse
Hier der von mir geänderte Code:
Code:
#include <SD.h>
#include <Wire.h>
#include "RTClib.h"
#include <SPI.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 6 // DS18B20 an Pin 6 anngeschlossen

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

DeviceAddress insideThermometer = { 0x28, 0x03, 0xF6, 0xC2, 0x03, 0x00, 0x00, 0xA7 };

// how many milliseconds between grabbing data and logging it. 1000 ms is once a second
#define LOG_INTERVAL 1000 // mills between entries (reduce to take more/faster data)

// how many milliseconds before writing the logged data permanently to disk
// set it to the LOG_INTERVAL to write each time (safest)
// set it to 10*LOG_INTERVAL to write all data every 10 datareads, you could lose up to
// the last 10 reads if power is lost but it uses less power and is much faster!
#define SYNC_INTERVAL 1000 // mills between calls to flush() - to write data to the card
uint32_t syncTime = 0; // time of last sync()

#define ECHO_TO_SERIAL 1 // echo data to serial port
#define WAIT_TO_START 0 // Wait for serial input in setup()

// the digital pins that connect to the LEDs
#define redLEDpin 2
#define greenLEDpin 3

// The analog pins that connect to the sensors
//#define tempPin 6
//#define tempPin 1 // analog 1
//#define BANDGAPREF 14 // special indicator that we want to measure the bandgap

//#define aref_voltage 3.3 // we tie 3.3V to ARef and measure it with a multimeter!
//#define bandgap_voltage 1.1 // this is not super guaranteed but its not -too- off

RTC_DS1307 RTC; // define the Real Time Clock object

// for the data logging shield, we use digital pin 10 for the SD cs line
const int chipSelect = 9;

// the logging file
File logfile;

void error(char *str)
{
  Serial.print("error: ");
  Serial.println(str);
 
  // red LED indicates error
  digitalWrite(redLEDpin, HIGH);

  while(1);
}


void setup(void)
{
  Serial.begin(9600);
  Serial.println();
  sensors.begin(); DEC;   // Start up the library
  sensors.setResolution(insideThermometer, 9);
  // use debugging LEDs
  pinMode(redLEDpin, OUTPUT);
  pinMode(greenLEDpin, OUTPUT);
 
#if WAIT_TO_START
  Serial.println("Type any character to start");
  while (!Serial.available());
#endif //WAIT_TO_START

  // initialize the SD card
  Serial.print("Initializing SD card...");
  // make sure that the default chip select pin is set to
  // output, even if you don't use it:
  pinMode(9, OUTPUT);
 
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    error("Card failed, or not present");
  }
  Serial.println("card initialized.");
 
  // create a new file
  char filename[] = "LOGGER00.CSV";
  for (uint8_t i = 0; i < 100; i++) {
    filename[6] = i/10 + '0';
    filename[7] = i%10 + '0';
    if (! SD.exists(filename)) {
      // only open a new file if it doesn't exist
      logfile = SD.open(filename, FILE_WRITE);
      break; // leave the loop!
    }
  }
 
  if (! logfile) {
    error("couldnt create file");
  }
 
  Serial.print("Logging to: ");
  Serial.println(filename);

  // connect to RTC
  Wire.begin();
  if (!RTC.begin()) {
    logfile.println("RTC failed");
#if ECHO_TO_SERIAL
    Serial.println("RTC failed");
#endif //ECHO_TO_SERIAL
  }
 

  logfile.println("millis,stamp,datetime,light,temp,vcc");
#if ECHO_TO_SERIAL
  Serial.println("millis,stamp,datetime,light,temp,vcc");
#endif //ECHO_TO_SERIAL
 
  // If you want to set the aref to something other than 5v
  //analogReference(EXTERNAL);
}
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Error getting temperature");
  }
  else {
    //Serial.print("C: ");
    Serial.print(tempC);
  }
}


void loop(void)
{
  DateTime now;

  // delay for the amount of time we want between readings
  delay((LOG_INTERVAL -1) - (millis() % LOG_INTERVAL));
 
  digitalWrite(greenLEDpin, HIGH);
 
  // log milliseconds since starting
  uint32_t m = millis();
  logfile.print(m); // milliseconds since start
  logfile.print(", ");
#if ECHO_TO_SERIAL
  Serial.print(m); // milliseconds since start
  Serial.print(", ");
#endif

  // fetch the time
  now = RTC.now();
  // log time
  logfile.print(now.unixtime()); // seconds since 1/1/1970
  logfile.print(", ");
  logfile.print('"');
  logfile.print(now.year(), DEC);
  logfile.print("/");
  logfile.print(now.month(), DEC);
  logfile.print("/");
  logfile.print(now.day(), DEC);
  logfile.print(" ");
  logfile.print(now.hour(), DEC);
  logfile.print(":");
  logfile.print(now.minute(), DEC);
  logfile.print(":");
  logfile.print(now.second(), DEC);
  logfile.print('"');
#if ECHO_TO_SERIAL
  Serial.print(now.unixtime()); // seconds since 1/1/1970
  Serial.print(", ");
  Serial.print('"');
  Serial.print(now.year(), DEC);
  Serial.print("/");
  Serial.print(now.month(), DEC);
  Serial.print("/");
  Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(":");
  Serial.print(now.minute(), DEC);
  Serial.print(":");
  Serial.print(now.second(), DEC);
  Serial.print('"');
#endif //ECHO_TO_SERIAL

  sensors.requestTemperatures();
  float tempinsideThermometer = sensors.getTempC(insideThermometer); //damit wird die Temperatur an tempinsideThermometer gegeben

 // analogRead(tempPin);
 // delay(10);
  //int tempReading = analogRead(tempPin);
  //int tempReading = digitalRead(tempPin);
  // converting that reading to voltage, for 3.3v arduino use 3.3, for 5.0, use 5.0
//  float voltage = tempReading * aref_voltage / 1024;
  //float temperatureC = (voltage - 0.5) * 100 ;
  //float temperatureF = (temperatureC * 9 / 5) + 32;
 
  logfile.print(", ");
  logfile.print(tempinsideThermometer);
#if ECHO_TO_SERIAL
  Serial.print(", ");
  Serial.print(tempinsideThermometer);
#endif //ECHO_TO_SERIAL

  // Log the estimated 'VCC' voltage by measuring the internal 1.1v ref
 

  logfile.println();
#if ECHO_TO_SERIAL
  Serial.println();
#endif // ECHO_TO_SERIAL

  digitalWrite(greenLEDpin, LOW);

  // Now we write data to disk! Don't sync too often - requires 2048 bytes of I/O to SD card
  // which uses a bunch of power and takes time
  if ((millis() - syncTime) < SYNC_INTERVAL) return;
  syncTime = millis();
 
  // blink LED to show we are syncing data to the card & updating FAT!
  digitalWrite(redLEDpin, HIGH);
  logfile.flush();
  digitalWrite(redLEDpin, LOW);
 
}
Die Fehlermeldungen zu Posten, würde glaub ich den Rahmen sprengen... Sind sehr viele..
Logged

*greatz*

 CeTax

www dot blinkmann dot de


Offline Offline
Full Member
***
Karma: 2
Posts: 137
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

habe deinen Code übernommen und
Code:
#include <RTC_DS1307.h>
hinzugefügt.
Nun wird alles ohne Probleme kompiliert
Quote
Binary sketch size: 24538 bytes (of a 126976 byte maximum)
Logged

duemilanove / OSX & WIN
Arduino & Teensy: http://bit.ly/13rbdtQ

Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Nabend...
also, habe es jetzt hinbekommen, hatte die falsche SD-Libraries.
Jetzt klappt es. Vielen Dank.
Zwei Fragen noch, wie kann ich es ändern, das er mir statt einer *.CSV eine *.TXT Datei erstellt?
Habe es so probiert:
Code:
// create a new file
  //char filename[] = "LOGGER00.CSV";
 char filename[] = "DATALOG.TXT";
 for (uint8_t i = 0; i < 100; i++) {
    filename[6] = i/10 + '0';
    filename[7] = i%10 + '0';
    if (! SD.exists(filename)) {
      // only open a new file if it doesn't exist
      logfile = SD.open(filename, FILE_WRITE);
      break; // leave the loop!
    }
  }
Aber das hat nicht geklappt  smiley-confuse

Und wo ändere was, damit er nicht andauernd eine Neue Datei anfägt?
Ich möchte, das er immer in die selbe Datei schreibt, auch wenn er mal neu gestartet wird.

Vielen Dank für die tolle Hilfe bis jetzt, Suuper Forum mit klasse Leuten hier ! Daumen hoch !!
Logged

*greatz*

 CeTax

www dot blinkmann dot de


Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
wenn ich das einfüge meckert er wieder.

habe deinen Code übernommen und
Code:
#include <RTC_DS1307.h>
hinzugefügt.
Nun wird alles ohne Probleme kompiliert
Quote
Binary sketch size: 24538 bytes (of a 126976 byte maximum)

Aber ich habe es zum laufen bekommen (siehe Post drüber)
Aber Danke für die schnelle Hilfe.
Logged

*greatz*

 CeTax

www dot blinkmann dot de


Offline Offline
Full Member
***
Karma: 2
Posts: 137
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

versuch es damit
Code:
char filename[] = "DATALOG.TXT";
logfile = SD.open(filename, FILE_WRITE | O_APPEND);
« Last Edit: April 16, 2012, 04:20:21 pm by thewknd » Logged

duemilanove / OSX & WIN
Arduino & Teensy: http://bit.ly/13rbdtQ

Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi thewknd,
danke für den Code, funktioniert Super... VIELEN DANK !!!

Nu läuft ja alles so wie es soll... Eigentlich...
Es ist ja schön und gut das die Daten auf der SD-Karte geschrieben werden,
aber wie kann ich denn jetzt von Extern, darauf zugreifen, um sie auszuwerten bzw. Grafisch darzustellen?
Also Ethernet ist hinzugefügt und er zeigt mir auf der mini HP die aktuell gemessene Temperatur an.

Ich würde gern per wget die Log-Datei auf einem anderen Rechner lesen/speichern
Code:
wget http://192.168.178.216/DATALOG.TXT

Oder wie macht Ihr das ?
Logged

*greatz*

 CeTax

www dot blinkmann dot de


0
Offline Offline
Full Member
***
Karma: 6
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

ich bereite die auf SD-Karte geschriebenen Daten mit dem Arduino so auf, dass ich sie mit dem Programm
LogView per USB lesen und darstellen kann. Finde die Darstellung echt gut gelungen. Ein entsprechendes Beispiel
findes Du in der Datei LogLesen.pde, die ich Dir schonmal geschickt habe. Habe die Daten aber auch schon in eine
Exel-Datei verwandelt. Eine graphische Auswertung sollte damit auch möglich sein.

Gruss Kalli
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Kurze Frage, welches Ethernet-Shield verwendest Du? Wenn es das mit dem WIZ5100 Chip ist (ist das teurere Shield) ist, dann sollte das Übertragen größerer Datenmengen kein Problem sein. Bei dem "billig" Shield mit ENC28J60 wird das schwierig, da die Lib nicht mehrere TCP-Pakete in einer Verbindung verschicken kann, damit kannst Du ohne komplizierte Anpssungen der Lib nicht mehr als knapp 1500 Bytes auf einen Request verschicken. Das Problem hatten hier schon mehre Leute im Forum.
Ansonsten kannst Du Dich an das Beispiel "WebServer" der Ethernet Bibliothek halten, da findest Du Code mit dem man auf einen HTTP-Request Daten verschickt.
Aufpassen musst Du beim gleichzeitigen Benutzen der SD-Karte und des Ethernet-Chips, da beide die SPI Schnittstelle verwenden.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
also ich nutze das mit dem WIZ5100 Chip.
@ Kalli: Mit USB geht nicht, da das Ding so verbaut wird, das es zu weit von einem PC weg ist und
nur Netzwerkanschluss hat.

Also, habe es mit wget versucht, leider holt er nur die HTML Datei bzw. das was sie anzeigt ab.
Mit dem BeispielSkript "Webserver" werde ich mich jetzt mal beschäftigen...

Mal sehen ob ich's verstehe...  smiley-roll
Logged

*greatz*

 CeTax

www dot blinkmann dot de


Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Kalli,
erstmal vielen Dank für Dateien.
Ich weiss nicht was die Datei LogLesen.pde genau macht.  smiley-red
Bereitet sie die Daten so auf, das man sie von der SD Karte auslesen kann? Z.B. mit einem Texteditor?

Hallo,

ich bereite die auf SD-Karte geschriebenen Daten mit dem Arduino so auf, dass ich sie mit dem Programm
LogView per USB lesen und darstellen kann. Finde die Darstellung echt gut gelungen. Ein entsprechendes Beispiel
findes Du in der Datei LogLesen.pde, die ich Dir schonmal geschickt habe. Habe die Daten aber auch schon in eine
Exel-Datei verwandelt. Eine graphische Auswertung sollte damit auch möglich sein.

Gruss Kalli

Logged

*greatz*

 CeTax

www dot blinkmann dot de


Germany
Offline Offline
Sr. Member
****
Karma: 1
Posts: 309
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Also, wenn ich das richtig sehe, dann wird hier(siehe Code) der Request mit einer leeren Seite quittiert.
Wenn ich wget http://192.168.178.216/ aufrufe, lädt er mir eine leere Datei runter, weil ja nix angegeben ist, oder versteh ich das falsch?
Code:
EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
Wenn das bis jetzt richtig wäre, müsste ich doch beim letzten
Code:
client.println();
die Datei (DATALOG.TXT) angeben, damit ich sie runterladen kann, Oder föllig miss verstanden?  smiley-sad

Noch eine Frage,habe bei google irgendwie nix gefunden, kann den Sketch/Code auf die SD-Karte packen? Mein Sketch hat jetzt schon 29660bytes von max 32256bytes
Logged

*greatz*

 CeTax

www dot blinkmann dot de


Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
client.println();
die Datei (DATALOG.TXT) angeben, damit ich sie runterladen kann, Oder föllig miss verstanden?  smiley-sad

Noch eine Frage,habe bei google irgendwie nix gefunden, kann den Sketch/Code auf die SD-Karte packen? Mein Sketch hat jetzt schon 29660bytes von max 32256bytes
Im Prinzip schon, aber nicht die Datei gibst Du an, sondern Du musst diese Schrittweise einlesen und an den Client ausgeben. Datei auf der SD-Card öffnen, Daten aus der Datei lesen und per client.print() an den Client schicken. Und hier greift dann ggf. das Problem des gleichzeitigen Lesens von SD und Senden per Ethernet.
Achtung, das leere client.println(); ist wichtig. Damit weiss der Browser (wget) das der HTTP-Header zuende ist und die Daten anfangen. Also erst nach dem leeren client.println(); Deine Ausgabe einbauen.
Logged

0
Offline Offline
Full Member
***
Karma: 6
Posts: 153
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Stefan,

Quote
Ich weiss nicht was die Datei LogLesen.pde genau macht. 
Bereitet sie die Daten so auf, das man sie von der SD Karte auslesen kann? Z.B. mit einem Texteditor?


Generell erfolgt die Ausgabe der Daten auf SD-Karte in einem Format, das man mit jedem Texteditor lesen kann.
Mein Logger unterteilt sich in zwei Teile (mit Dil-Schalter einstellbar). Im ersten Teil erfolgt die Ausgabe der Daten,
bis der 1. Dil-Schalter wieder ausgeschaltet wird. Im zweiten Teil werden die Daten von der SD-Karte gelesen und etwas
aufbereitet per USB an  LogView übergeben. Es hat sich herausgestellt, dass das byteweise Lesen von der SD-Karte
und die Ausgabe per USB teilweise fehlerhaft ist. Deshalb werden erst die Daten eingelesen und als geschlossener Block
über USB ausgegeben.
Zur Zeit werden noch Zeit und Temp-Daten in getrennten Dateien ausgegeben. Soll sich aber auch noch ändern. Für eine Exel Datei kann man ganz einfach beide Dateien zusammenfügen, da es Text-Dateien sind. In dem Programm können max. 6 DS-18B20 angeschlossen werden. Zur zeit benutze ich vier.


Gruss Kalli
Logged

Pages: [1] 2 3   Go Up
Jump to: