DS18B20 Multi Temperatur

Hier mal ein kleiner Aufbau und Code für zwei DS18B20 Temperatur Sensoren. Man kann den Code natürlich mit Sensoren erweitern. Ursprünglich wollte ich die Vorlauf – Rücklauf Temperatur der Heizung überwachen bzw. aufzeichnen. Das ganze natürlich über Cayenne Dashboard. Da in Cayenne gleich eine Tabelle angelegt wird und ich die Werte dann abfragen kann.

Für diesen Code habe ich folgendes in Gebrauch.

ARDUINO UNO

ARDUINO ETHERNT SHIELD

2 DS18B20 Temperatur Sensoren

2 4,7KOhm Widerstände

Breadboard Aufbau

ARDUINO UNO mit Ethernet-Shield

Schaltplan / Aufbau

Ihr müsst natürlich die Dallas library im Arduino Bibliotheksverwalter installieren !

Ich habe den folgenden Code für mich modifiziert um die Daten nach Cayenne zu senden. Weiter gibt es eine Serielle Ausgabe das ich auch ohne Internet sehen kann ob die Sensoren O.K. sind.

Angezeigt wird die Rücklauf & Vorlauf Temperatur sowie die Differenz Temperatur beider…

ARDUINO CODE hier


#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include <CayenneMQTTEthernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2


char username[] = "Deins";
char password[] = "Deins";
char clientID[] = "Deins";


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


void setup(void)
{
  Serial.begin(9600);
  Cayenne.begin(username, password, clientID);
  Serial.println("Dallas Temperature IC Control Library Demo");
  sensors.begin();
}


void loop(void)
{ 
  Cayenne.loop();

  sensors.requestTemperatures();

  float temp1 = sensors.getTempCByIndex(0);
  float temp2 = sensors.getTempCByIndex(1);

  Cayenne.celsiusWrite(1, sensors.getTempCByIndex(0));
  Cayenne.celsiusWrite(2, sensors.getTempCByIndex(1));
  Cayenne.celsiusWrite(3, temp1-temp2);
       
  Serial.print("Temperature: ");
  Serial.print(temp1);
  Serial.print("    ");
  Serial.println(temp2);
  delay(1000);
  
}

So wird das ganze auf Cayenne angezeigt.

Viel Spass beim basteln…..

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert