Étape 6: Ajouter LCD
Benodigdheden :
-Scherm LCD 16 x 2
-soldeerbout
-broches
-POTENTIOMETRE de k 10
Voert de lcd aan zoals op de foto est aangegeven.
LAISSEZ LES OP!!! ZORG DAT DE LCD GOED EST GESOLDEERD!!!
De code : innovente lcd(12,11,7,6,5,4) ; zijn de datapins en volgorde van links naar rechts. Zorg dat deze ook goed sjabloon zijn.
Code :
Pluie
const int sensorMin = 0 ; capteur minimal const int sensorMax = 1024 ; capteur maximale
Temp #include « DHT.h » #define DHTPIN 2 / / quelle broche numérique nous sommes reliés à #define DHTTYPE DHT11 / / DHT 11
La lumière int ledPin = 13 ; int lightPin = 1 ; int lightSensivity = 0 ; int lightBarier = 600 ;
Écran LCD #include innovente lcd(12,11,7,6,5,4) ;
DHT dht (DHTPIN, DHTTYPE) ; void setup() {/ / Mettez votre code de configuration ici, pour exécuter une fois : dht.begin (); //start dht bibliothèque pinMode (ledPin, sortie); //setup ledpin sortie lcd.begin (16,2); //setup lcd écran 16 x 2 format lcd.setCursor(0,1) ; lcd.print("Welkom...");}
void loop() {/ / Mettez votre code principal ici, pour exécuter à plusieurs reprises : Serial.begin(9600) ; Rain() ; Delay(3000) ; Light() ; Delay(3000) ; Temp() ; Delay(3000) ; }
void Rain() {/ / lecture du capteur analogique A0 : int sensorReading = analogRead(A0); / / carte de la gamme de capteurs (quatre options): / / ex : gamme int 'carte int long (long int, int long, long int, int long, long int)' = carte (sensorReading, sensorMin, sensorMax, 0, 3); / / gamme de valeur : String statut = "" ; commutateur (gamme) {case 0: / / capteur obtenir statut humide = « Inondation » ; Serial.println("Flood") ; rupture ; cas 1: / / capteur se mouiller Serial.println ("avertissement de pluie") ; statut = « Avertissement de pluie » ; rupture ; case 2: / / capteur sec - taire cela supprimer la "Serial.println ("pleut pas");" ci-dessous. Serial.println ("pleut ne pas") ; statut = « Pleut ne pas » ; rupture ; } lcd.clear() ; lcd.setCursor(0,0) ; LCD.Print(Status) ; }
void Temp() {}
Lecture de température ou humidité prend environ 250 millisecondes ! Lectures du capteur peuvent être aussi jusqu'à 2 secondes « ancienne » (c’est un capteur très lent) flotter h = dht.readHumidity() ; Lire la température en degrés Celsius (la valeur par défaut) flotter t = dht.readTemperature() ; Lire la température en degrés Fahrenheit (isFahrenheit = true) flotteur f = dht.readTemperature(true) ;
Vérifier si des lectures a échoué et arrêter prématurément (pour réessayer). Si (isnan(h) || isnan(t) || isnan(f)) {Serial.println ("Impossible de lire du capteur DHT!"); return;}
Calculer l’indice de chaleur en degrés Fahrenheit (par défaut) flotter hif = dht.computeHeatIndex (f, h) ; Calculer l’indice de chaleur en degrés Celsius (isFahreheit = false) flotter hic = dht.computeHeatIndex (t, h, false) ;
Serial.Print ("humidité:") ; Serial.Print(h) ; Serial.Print ("\t %") ; Serial.Print ("Temp:") ; Serial.Print(t) ; Serial.println ("* C") ;
imprimer sur LCD lcd.clear() ; lcd.setCursor(0,0) ; LCD.Print ("humidité:") ; lcd.setCursor(10,0) ; LCD.Print(h) ; lcd.setCursor(0,1) ; LCD.Print ("Temp:") ; lcd.setCursor(6,1) ; LCD.Print(t) ; }
void Light() {/ / Mettez votre code principal ici, pour exécuter à plusieurs reprises : lightSensivity = analogRead(lightPin) ; Serial.println(lightSensivity) ; if(lightSensivity < lightBarier) {digitalWrite (ledPin, HIGH);} else {digitalWrite (ledPin, LOW);} //print à lcd.clear() LCD ; lcd.setCursor(0,0) ; LCD.Print ("lumière:") ; lcd.setCursor(8,0) ; LCD.Print(lightSensivity) ; }