Datalogning af temperatur
Datalogning af temperatur
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. Jeg vender tilbage med opdateringer når jeg er nået længere.
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. 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
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Re: Datalogning af temperatur
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:
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.
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 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
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Re: Datalogning af temperatur
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"
"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Sv: Datalogning af temperatur
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
/Morten N
Re: Datalogning af temperatur
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 :-)
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
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Re: Datalogning af temperatur
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;
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;
Sv: Datalogning af temperatur
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
/Morten N
Re: Datalogning af temperatur
det spiller max! :)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 :-)
Mvh Jesper
"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Re: Datalogning af temperatur
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
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Re: Sv: Datalogning af temperatur
Jeg købte min første her: http://www.let-elektronik.dk/freeduino- ... e-kit.htmlGzus.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
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"
"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
Re: Datalogning af temperatur
ebay 2stk for 26kr. incl fragt! :)
'New DS1302 Real Time Clock Module PCB Board For AVR ARM PIC With Battery CR203'
'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"
"Virkeligheden er en illusion: forårsaget af mangel på alkohol"
- kimognicklas
- Indlæg: 1961
- Tilmeldt: 25. okt 2011, 00:07
- Geografisk sted: Rødekro Sønderjylland
Re: Datalogning af temperatur
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;
http://www.ebay.com/itm/Brand-New-PC-La ... 122wt_1454" onclick="window.open(this.href);return false;
Re: Datalogning af temperatur
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.Munkholm skrev:ebay 2stk for 26kr. incl fragt! :)
'New DS1302 Real Time Clock Module PCB Board For AVR ARM PIC With Battery CR203'
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
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39
Re: Datalogning af temperatur
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.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;
- Jan Graabæk
Re: Datalogning af temperatur
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 :-)JBG skrev: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.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;
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
http://bryggeri.landly.dk
http://www.facebook.com/bryggerilandly
http://beersmithrecipes.com/listrecipes/2810/nimbus39