Gérer le chauffage de la serre.
Vous disposez de 2 informations :
La température dans la serre
La température de consigne
Vous pouvez agir :
sur le chauffage
sur la ventilation
sur l'ouverture du battant
Remarque : Utilisation du DS18B20
Exemple de code pour la lecture de la température avec un DS18B20
1
// en entête de programme :
2
3
4
OneWire ds(2); // à modifier avec le n° de la broche utilisée pour le bus OneWire
5
const byte ds_rom[8]={0x28,0xFF,0x64,0x14,0x81,0x16,0x03,0x1D}; // à modifier avec l'adresse de votre DS18B20
6
7
// dans le setup --> la ligne pour initialiser le DS18B20
8
9
DS18b20_ini(ds_rom); //initialisation du DS18B20
10
11
// dans la boucle loop (ou ailleurs) -->la ligne pour lire la température
12
13
temperature =DS18b20_temp(ds_rom); // lecture de la température
14
15
// à mettre a la fin du programme (après loop() {..} )
16
// description des fonctions: initialisation et lecture DS18B20
17
18
void DS18b20_ini(const byte rom[]){
19
ds.reset();
20
ds.select(rom);
21
ds.write(0x4e);
22
ds.write(0x60); // th
23
ds.write(0xc0); // tl
24
ds.write(0x7f); // mode 12 bits
25
}
26
27
float DS18b20_temp(const byte rom[]){
28
ds.reset();
29
ds.select(rom);
30
ds.write(0x44);
31
while (!ds.read_bit()); // (environ 100ms)
32
ds.reset();
33
ds.select(rom);
34
ds.write(0xBE);
35
byte oct_0 = ds.read();
36
byte oct_1 = ds.read();
37
ds.reset(); //
38
int tp = (oct_1 << 8) | oct_0;
39
return (float)tp / 16.0;
40
}
41