Étape 4: Ajout d’une carte à relais
Nous à l’aide d’une carte de relais de port SainSmart 4 et connexion 4 lignes d’entrée analogiques ports utilisables comme sorties numériques. Pour plus d’informations, consultez http://arduinotronics.blogspot.com/2013/01/working-with-sainsmart-5v-relay-board.html
Le programme d’installation de SainSmart 4 port relais Conseil
Nous sommes sortis des ports numériques, donc recibler
entrées analogiques comme sorties numériques
GND relié au GND de l’Arduino
int relayPin1 = A0 ; IN1 connectée à la broche numérique A0
int relayPin2 = A1 ; IN2 connectée à la broche numérique A1
int relayPin3 = A2 ; In3 connectée à la broche numérique A2
int relayPin4 = A3 ; IN4 relié à la broche numérique A3
VCC connecté à Arduino + 5v
Speak Easy Setup
#include
#define txPin 2
#define rxPin 5
SoftwareSerial sjSerial = SoftwareSerial (rxPin, txPin) ;
int bufferPin = 4 ; surveiller le tampon moitié plein, ou occupé (jmp2)
/*
Exemple de texte Arduino TFT
Cet exemple montre comment dessiner du texte le
TFT avec un Arduino. L’Arduino lit la valeur
d’un capteur analogique attaché à broches A0 et écrit
la valeur à l’écran LCD, mise à jour chaque
quart de seconde.
Cet exemple de code est dans le domaine public
Créé le 15 avril 2013 par Scott Fitzgerald
http://Arduino.cc/en/Tutorial/TFTDisplayText
*/
#include / / bibliothèque Arduino LCD
#include
définition de broche pour l’ONU
SCL matériel 13
SDA Hardware 11
#define cs 10
#define dc 9
#define rst 8
Créez une instance de la bibliothèque
TFT TFTscreen = TFT (cs, dc, rst) ;
Tableau de caractères à imprimer à l’écran
char tempPrintout [6] ;
char humPrintout [6] ;
Exemple de test de croquis pour différents capteurs d’humidité/température DHT
Rédigé par ladyada, domaine public
Conversion Fahrenheit ajoutée par Steve Spence, http://arduinotronics.blogspot.com
#include
#define DHTPIN 6 / / quelle broche nous sommes connectés à
Décommentez peu importe le type que vous utilisez !
#define DHTTYPE DHT11 / / DHT 11
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
#define DHTTYPE DHT21 / / DHT 21 (AM2301)
Connecter la broche + (celle du milieu) du capteur à + 5V
Relier la broche S (à droite) du capteur pour tout ce qui est votre DHTPIN
Relier la broche - (à gauche) du capteur au sol
Connecter 10 k résistance entre S et +
int cycleTime = 2000 ;
DHT dht (DHTPIN, DHTTYPE) ;
flotteur h ;
flotteur t ;
void setup() {}
Initialiser la carte relais SainSmart
pinMode (relayPin1, sortie) ; définit la broche analogique en sortie numérique
pinMode (relayPin2, sortie) ; définit la broche analogique en sortie numérique
pinMode (relayPin3, sortie) ; définit la broche analogique en sortie numérique
pinMode (relayPin4, sortie) ; définit les ensembles la broche analogique en sortie numérique
digitalWrite (relayPin1, HIGH) ; Empêche le relais de démarrage engagés
digitalWrite (relayPin2, HIGH) ; Empêche le relais de démarrage engagés
digitalWrite (relayPin3, HIGH) ; Empêche le relais de démarrage engagés
digitalWrite (relayPin4, HIGH) ; Empêche le relais de démarrage engagés
initialiser la communication série avec le SpeakJet-TTS256
Serial.Begin (9600) ;
pinMode (rxPin, entrée) ;
pinMode (txPin, sortie) ;
pinMode (bufferPin, entrée) ;
sjSerial.begin(9600); / / définir le débit de données pour le port de SoftwareSerial
Ajoutez cette ligne au début de chaque croquis qui utilise le GLCD :
TFTscreen.begin() ;
effacer l’écran avec un fond noir
TFTscreen.background (0, 0, 0) ;
écrivez le texte statique à l’écran
Définissez la couleur de la police à blanc
TFTscreen.stroke(255,255,255) ;
définir la taille de police
TFTscreen.setTextSize(2) ;
écrire le texte dans le coin supérieur gauche de l’écran
TFTscreen.text ("Temp (F)", 0, 0) ;
écrire le texte dans le coin supérieur gauche de l’écran
TFTscreen.text ("humidité (%)", 0,60) ;
Ste très grand pour la boucle de la taille de la police
TFTscreen.setTextSize(4) ;
DHT.Begin() ;
}
void loop() {}
Lire la valeur de la sonde de temperature/HUMIDITE sur D2
Lecture de température ou humidité prend environ 250 millisecondes !
Lectures du capteur peuvent également être jusqu'à 2 secondes « ancienne » (c’est un capteur très lent)
h = dht.readHumidity() ;
t = dht.readTemperature() ;
t = (t * 1,8) + 32 ; C à la conversion de F
String tempVal = doubleToString (t, 0) ;
String humVal = doubleToString (h, 0) ;
String sensorVal = String(1.234) ;
convertir la lecture en un tableau de char
tempVal.toCharArray (tempPrintout, 6) ;
humVal.toCharArray (humPrintout, 6) ;
Définissez la couleur de police
TFTscreen.stroke(255,255,255) ;
imprimer la valeur de la sonde
TFTscreen.text (tempPrintout, 0, 25) ;
TFTscreen.text (humPrintout, 0, 85) ;
Attendez un moment
Delay(cycleTime) ;
effacer le texte que vous venez d’écrire
TFTscreen.stroke(0,0,0) ;
TFTscreen.text (tempPrintout, 0, 25) ;
TFTscreen.text (humPrintout, 0, 85) ;
sjSerial.print ("temprature") ;
Delay(250) ;
sjSerial.print(tempPrintout) ;
Delay(500) ;
sjSerial.print ("humidité") ;
Delay(250) ;
sjSerial.println(humPrintout) ;
if(t>70) {}
digitalWrite (relayPin1, basse) ; Allumez AC) ;
digitalWrite (relayPin2, HIGH) ; éteindre le feu) ;
digitalWrite (relayPin3, basse) ; tourner le ventilateur) ;
digitalWrite (relayPin4, HIGH) ; désactiver le déshumidificateur) ;
}
Si (t < 65 & & h < 50) {}
digitalWrite (relayPin1, HIGH) ; désactiver AC) ;
digitalWrite (relayPin2, basse) ; activer la chaleur) ;
digitalWrite (relayPin3, basse) ; tourner le ventilateur) ;
digitalWrite (relayPin4, HIGH) ; désactiver le déshumidificateur) ;
}
Si (t < 65 & & h > 50) {}
digitalWrite (relayPin1, HIGH) ; désactiver AC) ;
digitalWrite (relayPin2, basse) ; activer la chaleur) ;
digitalWrite (relayPin3, basse) ; tourner le ventilateur) ;
digitalWrite (relayPin4, basse) ; Allumez déshumidificateur) ;
}
Si (t > 65 & & t < 70 & & h > 50) {}
digitalWrite (relayPin1, HIGH) ; désactiver AC) ;
digitalWrite (relayPin2, HIGH) ; éteindre le feu) ;
digitalWrite (relayPin3, basse) ; tourner le ventilateur) ;
digitalWrite (relayPin4, basse) ; Allumez déshumidificateur) ;
}
Si (t > 65 & & t < 70 & & h < 50) {}
digitalWrite (relayPin1, HIGH) ; désactiver AC) ;
digitalWrite (relayPin2, HIGH) ; éteindre le feu) ;
digitalWrite (relayPin3, HIGH) ; désactiver le ventilateur) ;
digitalWrite (relayPin4, HIGH) ; désactiver le déshumidificateur) ;
}
}
Tours, vers le bas (par troncature de conversion entier intermédiaire)
String doubleToString (double entrée, int decimalPlaces) {}
{if(decimalPlaces!=0)}
Chaîne chaîne = String((int)(input*pow(10,decimalPlaces))) ;
if(ABS(Input) < 1) {}
if(Input>0)
String = « 0 » + string ;
d’autre if(input<0)
string = string.substring(0,1)+"0"+string.substring(1) ;
}
return string.substring(0,string.length()-decimalPlaces) + "." + string.substring(string.length()-decimalPlaces) ;
}
else {}
Return String((int)input) ;
}
}