mon projet a pour objectif la surveillance de 2 frigo et 1 congélateur ( 1 autre frigo par la suite) : j'utilise des capteurs de températures DS1820
les température seront lisible sur un lcd
1 led par son qui s'allumera en cas de dépassement d'un seuil de température
voila le projet de base
et j'aimerai par la suite ajouter un module Ethernet pour faire une relevé de température et une alerte mail en cas de problème
voila, actuellement la parti physique est monté sur une plaque d'essai ,
et la je m'attaque a la phase programmation.... :-/
Bonsoir
voici mon code
il n'est surement pas parfait mais avec mais maigre notion c'est tout ce que je suis arrive a faire, en piochant a droite et a gauche :-[
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
// Data wire is plugged into pin 9 on the Arduino
#define ONE_WIRE_BUS 10
int LED = 13;
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
lcd.begin(16, 2);
Serial.begin(9600);
sensors.begin();
//set up frequency of 9 & 10 pin on 32MHz
TCCR1B = TCCR1B & 0b11111000 | 0x01;
}
void loop(void)
{
float temp1=0, temp2=0, temp3=0;
Serial.print("Requesting temperatures...");
sensors.requestTemperatures();
delay(250);
Serial.println("DONE");
lcd.clear();
lcd.setCursor(0,0);
temp1=sensors.getTempCByIndex(0);
lcd.print(temp1);
Serial.println(temp1);
lcd.setCursor(8,0);
temp2=sensors.getTempCByIndex(1);
lcd.print(temp2);
Serial.println(temp2);
lcd.setCursor(0,1);
temp3=sensors.getTempCByIndex(2);
lcd.print(temp3);
Serial.println(temp3);
if ( temp1 > 6 || temp2 > 6|| temp3 > -15)
{
digitalWrite(LED, HIGH);
lcd.setCursor(8,1);
lcd.print("ALARME");
}
else
{
digitalWrite(LED, LOW);
lcd.setCursor(8,1);
lcd.print("OK");
}
delay(500);
}
ce que je pense qui est a améliore
c'est faire la relève des températures avec l'adresse du capteur