// Blocage Servo Moteur
// https://forum.arduino.cc/t/blocage-servo-moteur/1305482
#include <OneWire.h>
#include <DallasTemperature.h>
typedef uint16_t short_time_t;
typedef uint32_t time_t;
#include "Servo.h" //inclure la bibliothèque Servomoteur
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h> // inclure la bibliothèque I2C
LiquidCrystal_I2C lcd(0x27, 16, 2); // adresse i2c , nombre de colonnes, nombre de lignes de l'écran
enum : byte {NORD, EST, OUEST, PISCINE};
/* Broche du bus 1-Wire */
const byte BROCHE_ONEWIRE = 3;
/* Adresses des capteurs de température */
const byte SENSOR_PISCINE_ADDRESS[] = { 0x28, 0xBA, 0xC5, 0x99, 0x5F, 0x20, 0x01, 0xEF };
const byte SENSOR_EST_ADDRESS[] = { 0x28, 0xF6, 0xD2, 0x13, 0x37, 0x20, 0x01, 0x88 };
const byte SENSOR_OUEST_ADDRESS[] = { 0x28, 0x64, 0x09, 0x80, 0x5C, 0x20, 0x01, 0x74 };
const byte SENSOR_NORD_ADDRESS[] = { 0x28, 0x58, 0xE0, 0xDB, 0x5F, 0x20, 0x01, 0x65 };
/* Création de l'objet OneWire pour manipuler le bus 1-Wire */
OneWire ds(BROCHE_ONEWIRE);
DallasTemperature sensors(&ds);
float temperature[4];
time_t tempsActuel;
void afficheTemperatures(const float *temperature) {
Serial.print(F("Temperatures: Piscine:"));
Serial.print(temperature[PISCINE], 4);
Serial.write('°'); // Caractère degré
Serial.print(F("C, Est: "));
Serial.print(temperature[EST], 4);
Serial.write('°'); // Caractère degré
Serial.print(F("C, Ouest: "));
Serial.print(temperature[OUEST], 4);
Serial.write('°'); // Caractère degré
Serial.print(F("C, Nord: "));
Serial.print(temperature[NORD], 4);
Serial.write('°'); // Caractère degré
Serial.println("C, -10, 50"); // <- Utile pour afficher les limites hautes et basses sur un graphe, mettre "C" sinon
}
short_time_t tempsMesureCapteur;
short_time_t mesureCapteurFaite;
void setup() {
uint8_t sensorAddress[8];
// Start serial communication for debugging purposes
Serial.begin(115200);
sensors.begin();
sensors.setResolution(12);
sensors.setWaitForConversion(false);
sensors.setCheckForConversion(true);
sensors.requestTemperatures();
tempsMesureCapteur = 750 / (1 << (12 - sensors.getResolution()));
mesureCapteurFaite = millis() + tempsMesureCapteur;
Serial.println("Ready");
}
void loop(void) {
tempsActuel = millis(); // Obtient le temps actuel en millisecondes
// Afficher les températures lorsqu'elles sont mesurées et démarrer une nouvelle mesure
if (tempsActuel > mesureCapteurFaite) {
temperature[PISCINE] = sensors.getTempC(SENSOR_PISCINE_ADDRESS); // Température de la piscine
temperature[EST] = sensors.getTempC(SENSOR_EST_ADDRESS); // Température du circuit Est
temperature[OUEST] = sensors.getTempC(SENSOR_OUEST_ADDRESS); // Température du circuit Ouest
temperature[NORD] = sensors.getTempC(SENSOR_NORD_ADDRESS); // Température du circuit Nord
sensors.requestTemperatures();
mesureCapteurFaite = millis() + tempsMesureCapteur; // Utiliser millis() car beaucoup de temps s'est
afficheTemperatures(temperature); // écoulé depuis la MàJ de tempsActuel
}
}
Loading
ds18b20
ds18b20
T° piscine
Loading
ds18b20
ds18b20
T° est
Loading
ds18b20
ds18b20
T° ouest
Loading
ds18b20
ds18b20
T°nord
est
ouest
nord
Manu
Auto