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
Temperaturüberwachung
02.01.2016, 10:27
Beitrag #1
Temperaturüberwachung
Hallo und frohes Neues Zusammen,

ich bin ganz neue auf dem Gebiet von Arduino und Programmierung und komme nun leider an meine Grenzen. Huh

Ich möchte bei 2 Kühlhäusern die Temperatur überwachen. Was soweit eigentlich schon ganz gut funktioniert. (:
- Arduino UNO Rev 3[/php]
-2 Temperatursensoren 1-Wire angeschlossen
-2 Led Lampen
-1 Piezosummer der bei Alarmtemperatur Meldung geben soll.
- 1 LCD 16x2 I2C Display
Was noch nicht geht:

1. Ich möchte gerne einen Taster mit einbinden, der den Alarmton für z.B. 15 min unterbricht, wenn man z.B. das Kühlhaus grade befüllt etc. Der Taster ist auf Pin D2.

2.Mir ist nocht nicht gelungen nur 1 LED blinken zulassen wenn z.B. Alarmtemp überschritten ist.

3. Das der Summer die ganze Zeit einen Alarmton ausgibt, durch den Programmablauf hört er zwischendruch immer auf.


Hier der Programmcode ich hoffe Ihr könnt mir helfen, das wichtigste wäre der Taster. Ich habe schon mal mit Interrupts versucht, danach ging nix mehr.Dodgy

Code:
#include <OneWire.h>            // OneWire-Bibliothek einbinden
#include <DallasTemperature.h>  // DS18B20-Bibliothek einbinden
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

#define DS18B20_PIN 8   // Pin für DS18B20 definieren Arduino D2

OneWire oneWire(DS18B20_PIN);          // OneWire Referenz setzen
DallasTemperature sensors(&oneWire);   // DS18B20 initialisieren

LiquidCrystal_I2C lcd(0x27, 16, 2);

int piezo=5;
int LED=3;
int LED2=7;

float Alarmtemp=25;

void setup() {
  
  sensors.begin();  // DS18B20 starten
  lcd.init();
  lcd.backlight();

  pinMode (piezo,OUTPUT);
  pinMode (LED,OUTPUT);
  pinMode (LED2,OUTPUT);
}


void loop(){

  sensors.requestTemperatures(); // Temperatursensor(en) auslesen
  for(byte i=0;i<sensors.getDeviceCount();i++){ // Temperatur ausgeben
    show_temperature(i+1,sensors.getTempCByIndex(i));  
  }
  
  delay(2000);  //  Pause bis zur nächsten Messung

  digitalWrite (LED,HIGH);
  digitalWrite (LED2,HIGH);
}

// Temperatur ausgeben
void show_temperature(byte num,float temp){
  

  lcd.setCursor(0,0);
  lcd.print("Sensor ");
  lcd.print(num);
  lcd.print ("       ");
  lcd.setCursor(0,1);
  lcd.print("Temp ");
  lcd.print(temp);
  lcd.print((char)223);
  lcd.print("C");

  delay(3000);

   lcd.setCursor(0,0);
  lcd.print("Sensor ");
  lcd.print(num);
  lcd.print ("      ");
  lcd.setCursor(0,1);
  lcd.print("Temp ");
  lcd.print(temp);
  lcd.print((char)223);
  lcd.print("C");

        if (temp>=Alarmtemp)        //Alarmtemperatur!Zusätzlich  NUM für Sensornummer ändern.
   {  
    
        lcd.setCursor(0,0);
        lcd.print ("Warnung! ");
        lcd.print (num);
        lcd.print ("      ");
        
        
        digitalWrite(piezo,HIGH);
         delay(500);
        digitalWrite(piezo,LOW);  //Piezo wieder leise.. Ggf. Besser anlassen ohne LOW)
        digitalWrite(LED,LOW);
        digitalWrite(LED2,LOW);
        delay(1000);
        digitalWrite(LED,HIGH);
        digitalWrite (LED2,HIGH);
        delay (1000);
        digitalWrite(LED,LOW);
        digitalWrite(LED2,LOW);
        
   }
       else
    {
       digitalWrite(LED,HIGH);
       digitalWrite(LED2,HIGH);
      // digitalWrite (piezo,LOW);
    }
        
  
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2016, 11:30
Beitrag #2
RE: Temperaturüberwachung
Die Produkte in deinem Kühlhaus sind sehr träge was den Temperaturverlauf angeht auch wenn die Lufttemperatur mal durch das Öffnen eines Tores mal ansteigt.
Ich würde sowieso nur alle 15min messen und auswerten. Wenn die Läger wieder befüllt oder geleehrt werden einfach per Taster die Wartezeit wieder zurücksetzten.
Oder du brinst an den Toren/Türen Kontaktschalter an die die automatisch beim Betreten der Läger die Zeit zurücksetzt. Zusätzlich hättest du dann noch eine Kontrolle ob die Tore/Türe auch zu sind.

Gruß

Hier könnte ihre Werbung stehen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2016, 14:10
Beitrag #3
RE: Temperaturüberwachung
Schon einmal vielen Dank für die schnelle Hilfe und die Ideen.

Der Kontaktschalter ist eine gute Idee um gleichzeitig auch dort eine Überprüfung zu haben. Habe mir direkt welche Bestellt (:

mit den Delay Zeiten ändern habe ich jedoch große Probleme.
Code:
void loop(){

  sensors.requestTemperatures(); // Temperatursensor(en) auslesen
  for(byte i=0;i<sensors.getDeviceCount();i++){ // Temperatur ausgeben
    show_temperature(i+1,sensors.getTempCByIndex(i));  
  }
  
  delay(2000);  //  Pause bis zur nächsten Messung

  digitalWrite (LED,HIGH);
  digitalWrite (LED2,HIGH);
}

Ich habe es genau wie in dem Angegebenen Beispiel gemacht, mit Blinken ohne Delay, jedoch bekomme ich jetzt die Meldung :

exit status 1
'show_temperature' was not declared in this scope


Und hier noch mein Code:
Code:
sensors.requestTemperatures(); // Temperatursensor(en) auslesen
  for(byte i=0;i<sensors.getDeviceCount();i++){ // Temperatur ausgeben
    show_temperature(i+1,sensors.getTempCByIndex(i));  
  }
  
  //delay(2000);  //  Pause bis zur nächsten Messung
if (millis() - startzeit_1 >=laufzeit_1) {
  startzeit_1 = millis();
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


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