Utiliser un relais avec interrupteur et ou capteur PIR
Cette semaine accrocher vous car nous allons voir comment utiliser un relais, un bouton et un détecteur de présences, si c'est beau ça ! du 3 en 1 !
Prérequis..
- 1x NodeMCU et leur alimentation (ou autres ESP8266)
- 1x Relais KY-019 ou autres type de relais
- 1x Capteur de présence PIR
- 1x Interrupteur
- Firmware EspEasy (version du tuto)
- Sinon celui de votre choix sur le Git officiel de Lets Control It
Schématique..
Installation du Firmware..
Confiuration EspEasy..
Notify <numéro>, "contenu du message"
Donc par exemple une commande comme celle-ci
Notify 1, "Salut le monde"
Comme d'habitude vous pourrez trouver en bas une description des champs du formulaire ci-dessous.
Paramètres de la tâche (Task Settings)
- Périphérique : Nom du plugin
- Nom : Nom de la tâche (exemple nom Porte, lumière, bouton, etc.. )
- Activer : A activer sinon ben ça fonctionnera pas
Paramètre du capteur (Sensor Settings)
- Pull-up interne Cochez si vous souhaitez utiliser le pull-up interne de l'ESP mais prenez garde toutes les broches GPIO n'ont pas ce pull-up interne.
- Logique inverse Parfois il arrive que la valeur physique élevée soit publiée en tant que valeur basse. Par exemple, si un interrupteur déclenche une valeur basse (0) lorsque vous appuyez dessus la valeur d'état de Switch#State serait donc logique d'être défini sur 1
- GPIO Quel GPIO doit être utilisé, il est recommandé de ne pas utiliser de commutateur de verrouillage qui peut mettre l'ESP en mode flash s'il est laissé sur haut/bas.
- Type de commutateur Réglez le type de commutateur sur « Switch » ou « Dimmer » selon le type d'application que vous voulez en faire
- Commutateur La manière par défaut de gérer un commutateur est un bouton marche/arrêt. Il est soit activé ( 1) soit désactivé ( 0).
- Gradateur Non utilisé par les interrupteurs de porte, si vous souhaitez toujours l'utiliser, vous pouvez consulter la page Switch .
- Type de bouton de commutation Définissez le type de commutateur, « Commutateur normal », « Bouton-poussoir actif bas » ou « Bouton-poussoir actif haut ». * Commutateur normal : Il s'agit du réglage général à utiliser pour un commutateur PIR.
- Bouton poussoir actif bas Non utilisé par les interrupteurs de porte (en général), si vous souhaitez toujours l'utiliser, vous pouvez consulter la page Switch .
- Envoyer l'état de démarrage Si coché, l'unité publiera l'état du commutateur lors du démarrage. Si cette case n'est pas cochée, vous risquez de vous retrouver avec un interrupteur de verrouillage pris dans les limbes. Cela signifie que l'unité enregistre une valeur basse/élevée mais que l'état physique du commutateur peut être le contraire. Si vous utilisez un interrupteur mécanique qui peut être physiquement réglé sur un état, vous devez cocher cette option.
Gestion avancée des événements (Advanced event management)
- De-bounce (ms) Quelle doit être la durée de l'impulsion (le temps pendant lequel vous appuyez sur le bouton), si elle est réglée sur élevée, vous devez la publier plus longtemps avant que l'unité ne l'enregistre comme un changement d'état. Vous pouvez expérimenter avec ce paramètre pour trouver un bon comportement du bouton si vous sentez qu'il ne répond pas selon vos préférences.
- Evénement double clic Non utilisé par les interrupteurs de porte (en général), si vous souhaitez toujours l'utiliser, vous pouvez consulter la page Switch .
- Intervalle maximum de double-clic (ms) Identique à ci-dessus.
- Événement d'appui long Comme ci-dessus.
- Intervalle minimum d'appui long (ms) Identique à ci-dessus.
- Utiliser le bouton de sécurité (plus lent) Comme ci-dessus.
Acquisition des données
- Envoyer au contrôleur Vérifiez sur quel contrôleur (le cas échéant) vous souhaitez publier. Tout ou aucun contrôleur peut être utilisé.
- Intervalle A quelle fréquence la tâche doit être publiée sa valeur (optionnel pour les plugins de commutation).
Configuration EspEasy Relais..
Pour ne pas me répéter plusieurs fois je vais vous laisser jeter un œil sur mes différentes configuration je pense que ce sera le plus simple !
Commande (GPIO/Valeur) | Informations supplémentaires |
---|---|
GPIO : 0 … 16 État: 2 (HIGH-Z, entrée) 1 (ÉLEVÉ, sortie) 0 (BAS, sortie) | marche/arrêt de base. . Nous pouvons contrôler une broche avec de simples commandes d'URL http. Pour changer la broche en sortie stable haute ou basse. Régler GPIO sur 2 signifie qu'il sera capable de détecter des relais de bas niveau (avec une impédance élevée, Z). |
GPIO : 0 … 16 | Activer/désactiver. . Basculer l'état actuel (sortie) de la broche GPIO donnée. Lorsqu'il est exécuté, il change le mode de broche en sortie. |
GPIO : 0 … 16 État : 1/0 Durée : 1 … 999 S | Pour envoyer une impulsion * longue * à une certaine broche. . Une impulsion longue est fondamentalement la même que l'impulsion simple. La durée est définie en secondes, ce qui la rend plus adaptée à une durée plus longue. Cette commande n'est pas bloquante, mais enverra 2 événements pour démarrer et arrêter l'impulsion. Cela peut varier en fonction de la charge système du module. La variation est généralement jusqu'à 10 ms, mais peut aller jusqu'à une seconde, selon les plugins actifs et les contrôleurs effectuant des opérations de blocage. |
GPIO : 0 … 16 État : 1/0 Durée : 10 … 15000 ms | Pour envoyer une impulsion * longue * à une certaine broche. A |
GPIO : 0 … 16 État : 1/0 Durée : 0 … 1000 ms | Pour envoyer une impulsion *courte* à une certaine broche. Exemple pour envoyer une impulsion active haute (1) sur GPIO 14 pendant 500 mSecondes. La durée d'impulsion est en millisecondes. L'état est 1 ou 0. NB il s'agit d'un appel bloquant, ce qui signifie qu'aucune autre action ne sera effectuée pendant l'impulsion. |
GPIO : 0 … 15 Devoir : 0 … 1023 Durée : 100 … 15000 msec (en option) Fréquence : 100 … 40000 Hz (en option) | Pour définir un certain niveau PWM. Si vous avez défini un certain GPIO sur un niveau PWM et que vous souhaitez l'utiliser comme une broche HIGH/LOW normale, vous devez réinitialiser en définissant le niveau PWM sur 0. Le paramètre de durée (en msec) créera un fondu. La valeur 0 ne définira pas de durée. La fréquence (en Hz) sera réglée sur 1000 Hz lorsqu'elle n'est pas indiquée. Les fréquences supérieures à 30 kHz ne sont pas stables et feront probablement planter l'ESP. |
GPIO : 0 … 15 Servo : 1/2 Position : -180 … 180 (voir avertissement ci-dessous) | Pour contrôler un servomoteur. Les versions antérieures au 22/11/2020 ne prenaient en charge qu'un maximum de 2 servos. Les versions ultérieures autorisent plus et n'ont plus besoin du car un nouvel ID est généré en fonction de la broche GPIO utilisée. Pour rester compatible avec les règles existantes, le nombre de paramètres n'a pas changé. Avertissement La plupart des servos ne sont pas capables de tourner à 360° ! Normalement les servos sont capables d'aller de -90° à 90° , quelques rares servos permettent de -135° à 135°. Une valeur de position de 9000 arrêtera le signal PWM. Cela peut être utile pour économiser de l'énergie sur les servos qui n'ont pas besoin d'alimentation pour rester à la même position. |
GPIO : 0 … 16 | Pour surveiller un état GPIO. En utilisant la commande, vous recevrez des événements lorsque l'état GPIO de cette broche passera de 1 à 0 et de 0 à 1. |
GPIO : 0 … 16 | Pour annuler la surveillance d'un état GPIO. En utilisant la commande, vous cesserez de recevoir des événements lorsque l'état GPIO de cette broche passera de 1 à 0 et de 0 à 1. |
GPIO : 0 … 16 | Renvoie l'état d'une broche. En utilisant la commande, vous recevrez le statut de la broche correspondante. |
Configuration EspEasy Interrupteur..
Bon.. L'idée maintenant c'est de pouvoir forcer manuellement ce relais à l'aide de l'interrupteur que ce sois pour actionner une lumière ou un arrosage automatique mais pour réaliser ceci il faudra d'abord créer une règle donc je vous laisse aller sur l'onglet Rules ,soit vous pouvez continuer dans la première règle soit choisir celle qui vous fait plaisir !
Pour vous faciliter la compréhension du code dans l'image ci-dessous vous pourrez voir que j'ai entrouré de certaine couleur les éléments clé du code !
Il ne vous reste plus qu'a copier le code suivant dans la règle que vous avez choision Bouton1#State do // Quand Bouton 1 Change d'état fait
if [Bouton1#State]=1 // SI l'état de bouton1 est égal à 1
GPIO,14,1 // Met le GPIO n°14 sur HIGH
elseif [Bouton1#State]=0 // Sinon SI l'état de Bouton1 est égal à 0
GPIO,14,0 // Met le GPIO n°14 sur LOW
endif // Fin de la condition SI
endon // Arrêt de la procédure
on Bouton1#State do // Quand Bouton 1 Change d'état fait
if [Bouton1#State]=1 // SI l'état de bouton1 est égal à 1
GPIO,14,1 // Met le GPIO n°14 sur HIGH
elseif [Bouton1#State]=0 // Sinon SI l'état de Bouton1 est égal à 0
GPIO,14,0 // Met le GPIO n°14 sur LOW
endif // Fin de la condition SI
endon // Arrêt de la procédure
Configuration EspEasy PIR..
Et pour finir le détecteur de présences, qui lui servirai plutôt dans un projet d'alarme ou d'éclairage automatique. A nouveau une image pour comprendre de ou viennent les éléments du code.
Et pour finir le code à appliquer à la suite d'une règle ou dans une nouvelle !
on PIR#State=1 do // Quand l'état du PIR est égal à 1 fait..
timerSet,1,1 // Crée le Timer n°1 qui dure 1 seconde
endon // Fin de la procédure
on rules#timer=1 do // Quand le Timer n°1 arrive à zéro fait
if [PIR#State]=0 // SI l'état du PIR est égal à 0
//Action s'il n y a pas de détection
GPIO,14,0 // <Commande>,<N° GPIO>,<Etat>
else // Condition SINON
//Action si il y a une détection
LongPulse,14,1,120 // <Commande>,<N° GPIO>,<Etat>,<Durée en secondes>
endif // Fin de la condition SI
endon // Fin de la procédure
C'est terminé pour ce tuto ! J'espère qu'il vous donnera plein d'idée avec l'arrivé des beaux jours qui arrivent !! N'oublier pas de vous abonner à ma page Facebook et Twitter sans oublier pour suivre mes dernières actus !! Merci !!!
on PIR#State=1 do // Quand l'état du PIR est égal à 1 fait.. timerSet,1,1 // Crée le Timer n°1 qui dure 1 seconde endon // Fin de la procédure on rules#timer=1 do // Quand le Timer n°1 arrive à zéro fait if [PIR#State]=0 // SI l'état du PIR est égal à 0 //Action s'il n y a pas de détection GPIO,14,0 // <Commande>,<N° GPIO>,<Etat> else // Condition SINON //Action si il y a une détection LongPulse,14,1,120 // <Commande>,<N° GPIO>,<Etat>,<Durée en secondes> endif // Fin de la condition SI endon // Fin de la procédure
Les capteurs/compteurs :
- Température et humidité - DHT
- Température - DS18b20
- Pression atm., température et humidité - BMx280
- Lumière - BH1750
- Ultrasons- HC-SR04
- De présences - PIR
- De niveaux de liquide
- RFID - PN532
- Humidité du sol
- Compteurs d'énergie - Eastron SDM120C
- Compteurs d'eau
- Compteurs de poussières - Sharp GP2Y10
- Compteurs de poussières - PMSx003
Les écrans :- OLED SSD1306
- 7-segment display
- Nextion
- LCD2004
Les Contrôleurs :
Les capteurs/compteurs :
- Température et humidité - DHT
- Température - DS18b20
- Pression atm., température et humidité - BMx280
- Lumière - BH1750
- Ultrasons- HC-SR04
- De présences - PIR
- De niveaux de liquide
- RFID - PN532
- Humidité du sol
- Compteurs d'énergie - Eastron SDM120C
- Compteurs d'eau
- Compteurs de poussières - Sharp GP2Y10
- Compteurs de poussières - PMSx003
- OLED SSD1306
- 7-segment display
- Nextion
- LCD2004
Commentaires
Enregistrer un commentaire