Datalogning af temperatur

PID regulator, styringer og programmer.
Brugeravatar
Nimbus39
Indlæg: 3392
Tilmeldt: 27. jun 2010, 10:52
Geografisk sted: Greve (Mosede Strand)
Kontakt:

Datalogning af temperatur

Indlæg af Nimbus39 »

Så er den første prototype ved at tage form på mit breadboard.
Jeg har fået lavet et setup der kan aflæse temperaturen på en sonde, kombinere den med et klokkeslæt og skrive det til en fil på et SD-kort.
Jeg testede det i nat ved at lave målinger gennem natten hvert sekund. Det ser ud til der gik noget galt, efter ca. 5.000 målinger er data korrupte. Det tror jeg dog jeg kan løse ved at lave en datafil for hver dag.
Næste skridt er så at få fundet en måde at måle "blop" jeg har forskellige følere som jeg tænker kan monteres på toppen af en duplex og på den måde opfange når der lukkes CO2 ud.
Eneste dims jeg endnu ikke har fået til at spille sammen med resten er netværks delen, men den del skal jeg til at kode nu så det kommer nok.
20130323_111423.jpg
20130323_111423.jpg (118.98 KiB) Vist 17319 gange
Jeg vender tilbage med opdateringer når jeg er nået længere.
Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime.
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Brugeravatar
Nimbus39
Indlæg: 3392
Tilmeldt: 27. jun 2010, 10:52
Geografisk sted: Greve (Mosede Strand)
Kontakt:

Re: Datalogning af temperatur

Indlæg af Nimbus39 »

Ufedt, men SPI bussen kan tilsyneladende ikke håndtere både min SD-kortlæser og mit (ældre ENC20J60) Ethernet modul.
Der kommer en konflikt når de skal dele MOSI pin på pin 11, så enten skal jeg undvære SD-kortet eller også Ethernet modulet.
Datalogningen virker ellers 100% og uden Ethernet modulet ser koden således ud:

Kode: Vælg alt

#include <OneWire.h>
#include <DallasTemperature.h>
#include <SD.h>
#include <RTCdue.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
//CS on Pin 4
const int chipSelect = 4;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Init the DS1307
RTC_DS1307 rtc;
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
// Variables
DateTime OldTime, now;       // Time variables
const int  buttonPin = 6;    // the pin that the pushbutton is attached to
int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Initialiserer...");
  rtc.begin();
  // Reset time variables
  DateTime now = rtc.now();
  DateTime OldTime = rtc.now();
  // make sure that the default chip select pin is set to
  // output, even if you don't use it:
  pinMode(10, OUTPUT);
  // initialize the button pin as a input:
  pinMode(buttonPin, INPUT);
  // Check RTC running
  if (! rtc.isrunning()) {
    Serial.println("RTC koerer IKKE!");
  }
  // following line sets the RTC to the date & time this sketch was compiled
  rtc.adjust(DateTime(__DATE__, __TIME__));
  Serial.println("RTC initialiseret, tid indstillet");
  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("SD-kort ikke initialiseret");
    // don't do anything more:
    return;
  }
  Serial.println("SD-kort initialiseret");

  // Start up the DS18B20 library
  sensors.begin();
  Serial.println("Sensorer initialiseret");
  delay(1000); // wait 1 second
  Serial.println("System startet");
}
//***** Functions *****
boolean TimeSkift (void){ // Checks if minute has changed
DateTime now = rtc.now();
  if (OldTime.minute() == now.minute()){ // NO change
    return false;
  }
  else { // Change
    OldTime = now;    
    return true ;
  }
}

String SkrivTilLog (DateTime now, int Taeller){ // Writes data to logfile
  // open the file. 
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  // if the file is available, write to it:
  if (dataFile) {
    dataFile.print(Taeller);
    dataFile.print(";");
    dataFile.print(sensors.getTempCByIndex(0));
    dataFile.print(";");
    dataFile.print(sensors.getTempCByIndex(1));
    dataFile.print(";");
    dataFile.print(now.day());
    dataFile.print(':');
    dataFile.print(now.month());
    dataFile.print(':');
    dataFile.print(now.year());
    dataFile.print(';');
    dataFile.print(now.hour());
    dataFile.print(':');
    dataFile.print(now.minute());
    dataFile.print(':');
    dataFile.println(now.second());
    dataFile.close();
    return("Data skrevet til log");
  }  
  // if the file isn't open, pop up an error:
  else {
    return("Fejl ved aabning af datalog.txt");
  } 
}

// ***** Mainprogram *****
void loop(void)
{ 
  // Sets date variables
  DateTime now = rtc.now();
 
  // read the pushbutton input pin:
  buttonState = digitalRead(buttonPin);
  // compare the buttonState to its previous state
  if (buttonState != lastButtonState) {
    // if the state has changed, increment the counter
    if (buttonState == HIGH) {
      // if the current state is HIGH then the button
      // went from off to on:
      buttonPushCounter++;
      Serial.println("on");
      Serial.print("Antal gange knappen er aktiveret:  ");
      Serial.println(buttonPushCounter);
    } 
    else {
      // if the current state is LOW then the button
      // went from on to off:
      Serial.println("off"); 
    }
  }
  // save the current state as the last state, 
  //for next time through the loop
  lastButtonState = buttonState;
  
 // Writes data to log if time changes
  if (TimeSkift()){
      Serial.println(SkrivTilLog (now, buttonPushCounter)); // crash, MOSI pin er optaget af ethernet!
      buttonPushCounter = 0; //Reset pushbutton counter
  }
}
Den er lige nu sat op til at holde øje med minuttallet (men det kan hurtigt ændres) og hver gang det skifter skriver den til sd-kortet.
Den laver en linje i en tekstfil, hvor den skriver "Antal gange føler er aktiveret" (blop i gærrør), Temperaturen på de 2 sensorer, samt dato og klokkeslæt - herefter nulstiller den sammentællingen af blop i gærrøret og begynder at tælle igen.

Nu vil jeg prøve med nogle andre dimser, da jeg har flere RTC'er og et selvstændigt EthernetShield skulle jeg nok kunne finde en løsning.
Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime.
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Brugeravatar
Munkholm
Indlæg: 231
Tilmeldt: 11. feb 2013, 17:13
Geografisk sted: Staby

Re: Datalogning af temperatur

Indlæg af Munkholm »

sejt.. jeg 'låner' nok lige din kode! men skal lige ha købt mig en rtc-chip først..
Mvh Jesper

"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Brugeravatar
Gzus.DK
Indlæg: 200
Tilmeldt: 8. okt 2012, 19:19

Sv: Datalogning af temperatur

Indlæg af Gzus.DK »

Hvor køber i jeres dele henne ? Jeg har kigget efter både originale Arduino og "kopier" men syntes det er svært at finde et sted hvor det er billigt og man er samtidigt er sikker på ikke at betale ekstra told. Kan ihvertfald se at det er steder der får tingene shippet fra Kina/Hong kong.

/Morten N
Brugeravatar
Nimbus39
Indlæg: 3392
Tilmeldt: 27. jun 2010, 10:52
Geografisk sted: Greve (Mosede Strand)
Kontakt:

Re: Datalogning af temperatur

Indlæg af Nimbus39 »

Jeg har købt det meste hos dx.com og lidt hos aliexpress.com (husk at vælge free shipping som søgekriterie!)
Gratis fragt, så jeg laver bare mange små ordrer :-)
Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime.
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Brugeravatar
admin
Site Admin
Indlæg: 4754
Tilmeldt: 4. dec 2005, 16:25
Geografisk sted: 7080 Børkop

Re: Datalogning af temperatur

Indlæg af admin »

jeg har lige modtaget mit fra kina, jeg har i dag rodet med at køre med flere digitale følere på en samlet indgang og det virker fint :-)
Mvh.
Jens
Øl og sol er livet....

http://www.fribryg.dk" onclick="window.open(this.href);return false;
http://www.facebook.dk/fribryg" onclick="window.open(this.href);return false;
Brugeravatar
Gzus.DK
Indlæg: 200
Tilmeldt: 8. okt 2012, 19:19

Sv: Datalogning af temperatur

Indlæg af Gzus.DK »

Bliver tingene sendt sammen en kvittering ? Hvis grænsen stadig er på de 80 kr. er det jo svært at få sendt et board uden at komme over det beløb ? Gider bare ikke betale de 150 kr. til Post DK :/

/Morten N
Brugeravatar
Munkholm
Indlæg: 231
Tilmeldt: 11. feb 2013, 17:13
Geografisk sted: Staby

Re: Datalogning af temperatur

Indlæg af Munkholm »

admin skrev:jeg har lige modtaget mit fra kina, jeg har i dag rodet med at køre med flere digitale følere på en samlet indgang og det virker fint :-)
det spiller max! :)
Mvh Jesper

"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Brugeravatar
Nimbus39
Indlæg: 3392
Tilmeldt: 27. jun 2010, 10:52
Geografisk sted: Greve (Mosede Strand)
Kontakt:

Re: Datalogning af temperatur

Indlæg af Nimbus39 »

Ds18b20 har unikke serienumre så dem kan man koble på samme indgang uden problemer.
Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime.
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Brugeravatar
Munkholm
Indlæg: 231
Tilmeldt: 11. feb 2013, 17:13
Geografisk sted: Staby

Re: Sv: Datalogning af temperatur

Indlæg af Munkholm »

Gzus.DK skrev:Hvor køber i jeres dele henne ? Jeg har kigget efter både originale Arduino og "kopier" men syntes det er svært at finde et sted hvor det er billigt og man er samtidigt er sikker på ikke at betale ekstra told. Kan ihvertfald se at det er steder der får tingene shippet fra Kina/Hong kong.

/Morten N
Jeg købte min første her: http://www.let-elektronik.dk/freeduino- ... e-kit.html
Men siden har jeg hentet hjem fra Hong kong og Kina! uden at blive snupset i tolden! :)
Mvh Jesper

"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Brugeravatar
Munkholm
Indlæg: 231
Tilmeldt: 11. feb 2013, 17:13
Geografisk sted: Staby

Re: Datalogning af temperatur

Indlæg af Munkholm »

ebay 2stk for 26kr. incl fragt! :)
'New DS1302 Real Time Clock Module PCB Board For AVR ARM PIC With Battery CR203'
Mvh Jesper

"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Brugeravatar
kimognicklas
Indlæg: 1961
Tilmeldt: 25. okt 2011, 00:07
Geografisk sted: Rødekro Sønderjylland

Re: Datalogning af temperatur

Indlæg af kimognicklas »

Det her er da absolut også et billigt alternativ til en bærbar

http://www.ebay.com/itm/Brand-New-PC-La ... 122wt_1454" onclick="window.open(this.href);return false;
Brugeravatar
Nimbus39
Indlæg: 3392
Tilmeldt: 27. jun 2010, 10:52
Geografisk sted: Greve (Mosede Strand)
Kontakt:

Re: Datalogning af temperatur

Indlæg af Nimbus39 »

Munkholm skrev:ebay 2stk for 26kr. incl fragt! :)
'New DS1302 Real Time Clock Module PCB Board For AVR ARM PIC With Battery CR203'
Vær opmærksom på at (så vidt jeg ved) så er DS1302 digital, og kræver digitale input pins, og dem har man ikke for mange af i forvejen.
DS1307 kører på de analoge pins som man ikke bruger til ret meget, man kan selvfølgelig lave de analoge om til digitale pins...
Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime.
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Brugeravatar
JBG
Indlæg: 357
Tilmeldt: 19. nov 2012, 11:07
Geografisk sted: Silkeborg

Re: Datalogning af temperatur

Indlæg af JBG »

kimognicklas skrev:Det her er da absolut også et billigt alternativ til en bærbar

http://www.ebay.com/itm/Brand-New-PC-La ... 122wt_1454" onclick="window.open(this.href);return false;
Den er satme sød den der! Den burde kunne sluttes til noget ala raspberry pi, og være næsten lydløs og bruge lidt mindre strøm end en bærbar.
- Jan Graabæk
Brugeravatar
Nimbus39
Indlæg: 3392
Tilmeldt: 27. jun 2010, 10:52
Geografisk sted: Greve (Mosede Strand)
Kontakt:

Re: Datalogning af temperatur

Indlæg af Nimbus39 »

JBG skrev:
kimognicklas skrev:Det her er da absolut også et billigt alternativ til en bærbar

http://www.ebay.com/itm/Brand-New-PC-La ... 122wt_1454" onclick="window.open(this.href);return false;
Den er satme sød den der! Den burde kunne sluttes til noget ala raspberry pi, og være næsten lydløs og bruge lidt mindre strøm end en bærbar.
Hvis du allerede har en raspberry kan du da lige så godt bruge en ds18b20 de er langt billigere og så slipper du for bøvl med drivere :-)
Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime.
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Besvar

Tilbage til "Microprocessor styring til ølbrygning"