#include <OneWire.h>
#include <IRremote.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 12 //La ligne de communication pour les DS18B20
uint16_t command = 22;
const int pinIR = 2;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
//variable servant a la selection de la sonde à afficher sur l'écran
String complet = "1";
//variables contenant les informations à afficher sur l'écran
String infoSonde = "";
String valeurSonde = "";
float recupTemp(String sonde){
int val = sonde.toInt();
return sensors.getTempCByIndex(val);
}
void readIR() { /* function readKp4x4 */
//// Read button states from keypad
/*if (customKey) {
if(String(customKey)=="#"){
complet = clavier;
clavier = "";
}
else{
clavier += String(customKey);
}
}*/
if (IrReceiver.decode()) {
command = IrReceiver.decodedIRData.decodedRawData;
}
Serial.println(command );
//String RecupValeur
switch(command){
//DS18B20
case 1: infoSonde = "Sonde DS18B20(1)";
valeurSonde = String(recupTemp("0")) + " C";
break;
//DS18B20
case 12: infoSonde = "Sonde DS18B20(2)";
valeurSonde = String(recupTemp("1")) + " C";
break;
//DS18B20
case 24: infoSonde = "Sonde DS18B20(3)";
valeurSonde = String(recupTemp("2")) + " C";
break;
//DS18B20
case 94: infoSonde = "Sonde DS18B20(4)";
valeurSonde = String(recupTemp("3")) + " C";
break;
//DS18B20
case 8: infoSonde = "Sonde DS18B20(5)";
valeurSonde = String(recupTemp("4")) + " C";
break;
//DS18B20
case 28: infoSonde = "Sonde DS18B20(6)";
valeurSonde = String(recupTemp("5")) + " C";
break;
//DS18B20
case 90: infoSonde = "Sonde DS18B20(7)";
valeurSonde = String(recupTemp("6")) + " C";
break;
//DS18B20
case 66: infoSonde = "Sonde DS18B20(8)";
valeurSonde = String(recupTemp("7")) + " C";
break;
//DS18B20
case 82: infoSonde = "Sonde DS18B20(9)";
valeurSonde = String(recupTemp("8")) + " C";
break;
case 74: infoSonde = "Sonde DS18B20(10)";
valeurSonde = String(recupTemp("9")) + " C";
break;
case 25: infoSonde = "Sonde DS18B20(11)";
valeurSonde = String(recupTemp("10")) + " C";
break;
default: infoSonde = "Erreur Clavier";
valeurSonde = "valeur inconnue";
}
lcd.clear();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(infoSonde);
lcd.setCursor(0,1);
lcd.print(valeurSonde);
}
void setup() {
// put your setup code here, to run once:
lcd.init();
IrReceiver.begin(pinIR, ENABLE_LED_FEEDBACK);
Serial.begin(9600);
sensors.begin();
}
void loop() {
// put your main code here, to run repeatedly:
sensors.requestTemperatures();
readIR();
}