Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <OneWire.h> //Importeer de library "OneWire", die hebben we nodig om de thermometers (ds18b20) te initialiseren
- #include <DallasTemperature.h> //Importeer de library "Dallas", die we gebruiken om de thermometers af te lezen
- #include <LiquidCrystal_I2C.h> //Importeer de library "LiquidCrystal_I2C", die we gebruiken om de 16x2 LCD te besturen
- LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //We maken het object "lcd" aan, en geven de parameters om het juist te initaliseren
- OneWire oneWire(2); //We maken het object "oneWire", en geven de parameter waar alle thermometers worden aangesloten
- DallasTemperature sensors(&oneWire); //We maken het object "sensors" aan, die als enige parameters het object "oneWire" nodig heeft
- DeviceAddress sensor1 = { 0x28, 0x8D, 0x4F, 0x77, 0x91, 0x18, 0x02, 0xB3 }; //Elke thermometer heeft een uniek 8-byteadress, die we elk aan een makkelijker te onthouden naam geven
- DeviceAddress sensor2 = { 0x28, 0xBD, 0x26, 0x46, 0x92, 0x01, 0x02, 0xC1 }; //Hiermee zorgen we dat de Arduino al de verschillende data uit elkaar onderscheiden,om dat alles over slechts één draadje gaat
- DeviceAddress sensor3 = { 0x28, 0x88, 0xDD, 0x77, 0x91, 0x09, 0x02, 0x44 };
- DeviceAddress sensor4 = { 0x28, 0x7E, 0x55, 0x77, 0x91, 0x07, 0x02, 0xAD };
- DeviceAddress sensor5 = { 0x28, 0x64, 0x23, 0x46, 0x92, 0x0D, 0x02, 0x0C };
- DeviceAddress sensor6 = { 0x28, 0x87, 0x00, 0x46, 0x92, 0x09, 0x02, 0xF1 };
- DeviceAddress sensor7 = { 0x28, 0x7C, 0xF5, 0x46, 0x92, 0x0D, 0x02, 0x34 };
- DeviceAddress sensor8 = { 0x28, 0x0E, 0xC6, 0x46, 0x92, 0x08, 0x02, 0xF7 };
- void setup(){ //De code die één keer wordt uitgevoerd, namelijk bij het opstarten of resetten van de Arduino
- Serial.begin(9600); //Start de Serialdata met 9600 baudrate (de standaard). Dit gaat via USB naar de PC.
- Serial.println("OCTO");
- lcd.begin(16,2); //Start de lcd
- lcd.clear(); //Verwijder alles huidig op de lcd
- sensors.begin(); //Start de Dallasfunctie
- sensors.setResolution(sensor1, 10); //Initialiseer elke thermometer één voor één, elk met zijn unieke adress
- sensors.setResolution(sensor2, 10); //We passen de dataresolutie aan naar 10-bit, dat is net wat hoger dan de standaard
- sensors.setResolution(sensor3, 10);
- sensors.setResolution(sensor4, 10);
- sensors.setResolution(sensor5, 10);
- sensors.setResolution(sensor6, 10);
- sensors.setResolution(sensor7, 10);
- sensors.setResolution(sensor8, 10);
- Serial.print(sensors.getDeviceCount()); //Print in de console hoeveel sensors er zijn aangesloten, zo kan je makkelijk zien of ze allemaal zijn aangesloten en werken
- Serial.print(" sensors aangesloten!");
- Serial.println("");
- }
- void loop(){
- delay(5000); //Wacht 500 ms, oftewel 5 seconden
- lcd.clear(); //Verwijder alles huidig op de lcd
- Serial.println();
- sensors.requestTemperatures();
- Serial.print("Sensor 1 Temp.: ");
- printTemperature(sensor1);
- Serial.print(" || ");
- Serial.print("Sensor 2 Temp.: ");
- printTemperature(sensor2);
- Serial.print(" || ");
- Serial.print("Sensor 3 Temp.: ");
- printTemperature(sensor3);
- Serial.print(" || ");
- Serial.print("Sensor 4 Temp.: ");
- printTemperature(sensor4);
- Serial.print(" || ");
- Serial.print("Sensor 5 Temp.: ");
- printTemperature(sensor5);
- Serial.print(" || ");
- Serial.print("Sensor 6 Temp.: ");
- printTemperature(sensor6);
- Serial.print(" || ");
- Serial.print("Sensor 7 Temp.: ");
- printTemperature(sensor8);
- Serial.print(" || ");
- Serial.print("Sensor 8 Temp.: ");
- printTemperature(sensor8);
- lcd.print(sensors.getDeviceCount());
- lcd.print(" werkende ");
- lcd.setCursor(0,1);
- lcd.print("sensors");
- }
- void printTemperature(DeviceAddress deviceAddress){
- float TEMPC = sensors.getTempC(deviceAddress);
- if (TEMPC == -127.00){
- Serial.print("ERROR");
- }
- else{
- Serial.print(sensors.getTempC(deviceAddress));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement