Étape 2: Programmation de l’Arduino
/* Inclure les bibliothèques nécessaires Le programme d’installation de vars Vars interne (ne changent pas) Configure le thermomètre void setup() {} if (!. {SD.begin(chipSelect))}
Script par Manuel Schutze - mai 2013
Connexions :
DS18B20 thermomètre - broche 2
Module relais - broche 3
SD CS - pin 10
SD MOSI - broche 11
SD MISO - axe 12
SD CLK - pin 13
*/
#include < OneWire.h >
#include < DallasTemperature.h >
#include < SD.h >
intervalTemp long = 1000 ; intervalle de mesure de la température
intervalSD long = 5 000 ; intervalle entre l’enregistrement des données sur la carte SD
float tempMin = 42,5 ; temp min (< truns à feu)
float tempMax = 43,5 ; temp max (> truns hors feu)
rele int = 3 ; broche, où le relais est connecté
const int chipSelect = 10 ; broche CS (carte SD)
long previousMillisTemp = 0 ;
long previousMillisSD = 0 ;
float tempAtual = 0 ; température actuelle
int stat = 0 ; 0 = relais off / 1 = relais sur
public static char tempBuff [15] ;
Fichier datafile ;
OneWire oneWire(2) ; broche où le themometer est connecté
Capteurs DallasTemperature (& oneWire) ;
DeviceAddress insideThermometer ;
sensors.Begin() ;
sensors.getAddress (insideThermometer, 0) ;
sensors.setResolution (insideThermometer, 11) ; résolution max Set thermomètre
pinMode (rele, sortie) ;
pinMode (sortie 10,) ;
Serial.Begin(9600) ;
Serial.println ("### Yogurtator ###") ;
Serial.println ("carte SD ayant échoué, ou n’existe pas") ;
} else {}
Serial.println ("carte SD initialisée.") ;
Créez un nouveau fichier
Char [filename] = "DATA00. TXT";
pour (uint8_t i = 0; i < 100; i ++) {}
NomFichier [4] = i / 10 + « 0 » ;
NomFichier [5] = i % 10 + « 0 » ;
if (!. {SD.exists(filename))}
seulement ouvrir un nouveau fichier s’il n’existe pas
DataFile = SD.open (filename, FILE_WRITE) ;
rupture ; laisser la boucle !
}
}
Si (! datafile) {}
Serial.println ("Impossible de créer fichier") ;
} else {}
Serial.Print ("ouvrir une session:") ;
Serial.println(fileName) ;
}
}
Serial.Print ("Found") ;
Serial.Print(sensors.getDeviceCount(), DEC) ;
Serial.println ("thermomètres.") ;
Serial.Print ("périphérique 0 résolution:") ;
Serial.println(sensors.getResolution(insideThermometer), DEC) ;
Serial.Print ("min Temp:") ;
Serial.Print(tempMin) ;
Serial.Print ("Temp max:") ;
Serial.println(tempMax) ;
Serial.println("###") ;
}
void loop() {}
unsigned long currentMillis = millis() ;
Vérifie la température actuelle et l’imprime sur la série
Si ((currentMillis - previousMillisTemp > intervalTemp) || (currentMillis - previousMillisTemp < 0)) {
Mises à jour précédentes millis
previousMillisTemp = currentMillis ;
Obtient la température
sensors.requestTemperatures() ;
tempAtual = sensors.getTempCByIndex(0) ;
Relais de contrôle
Si (tempAtual! = 0) {}
if(tempAtual < tempMin) {}
digitalWrite (rele, HIGH) ;
stat = 1 ;
}
if(tempAtual > tempMax) {}
digitalWrite (rele, faible) ;
stat = 0 ;
}
}
Température actuelle impressions sur la série
Serial.Print ("Temp:") ;
Serial.Print(sensors.getTempCByIndex(0)) ;
Serial.Print ("C - chaleur:") ;
if(stat == 0) {}
Serial.println("OFF") ;
} else {}
Serial.println("on") ;
}
}
Enregistre les données sur la carte SD
Si ((currentMillis - previousMillisSD > intervalSD) || (currentMillis - previousMillisSD < 0)) {
Mises à jour précédentes millis
previousMillisSD = currentMillis ;
Crée la chaîne à enregistrer le fichier
String dataString = "" ;
dtostrf (tempAtual, 5, 2, tempBuff) ;
dataString.concat(tempBuff) ;
dataString.concat(",") ;
dataString.concat(stat) ;
Si le fichier est disponible, écrivez à elle :
Si {(datafile)
DataFile.println(dataString) ;
DataFile.Flush() ;
}
Si le fichier n’est pas ouvert, affiche une erreur :
else {}
Serial.println ("erreur ouverture fichier de données.") ;
}
}
}
/ * Code se termine ici ! */
Tout est commenté. Il suffit de définir le min et max température et transférez-le sur votre carte Arduino.
Ce code imprime l’état actuel de la température et le relais sur le port série 1 seconde, sou, vous avez une idée ce qui se passe à l’intérieur de la boîte !
Notez que le code appelle également pour une carte SD enregistrer les données. Ceci est facultatif et commentées sur l’étape suivante.