Bonjour,
Je suis novice en électronique (je suis dans l'informatique) et je souhaite pouvoir ouvrir la porte de mon immeuble grâce à un Arduino (en plus du bouton physique).
Sur l'interphone, le bouton poussoir possède 6 PIN et il faut appuyer 2 secondes afin que la porte s'ouvre.
J'avais pour idée de souder 2 fils entre le bouton poussoir et l'Arduino et de coder un petit programme qui va permettre d'effectuer l'action, mais je pense qu'il manque des composants, étapes.
S'il y a des passionnés en électronique qui passent par ici et qui souhaitent me guider, je vous en remercie par avance
Anthony
Bonsoir luffyyfful
Dans un cas comme celui-ci où on ignore ce qui se pasasae sur ces 2 fils, le plus simple est d'utiliser un relais qui simulera la pression du bouton, relais 5v.
commandé par l'Arduino.
Pourquoi 6 pin sur le BP?
Cordialement
jpbbricole
Merci pour ton retour jpbbricole.
Voici une photo des 6 PIN du bouton poussoire :
Du coup, le plus simple serait de connecter un relais entre l'Arduino et le bouton poussoir ? Comment savoir sur quels PIN je dois souder le relais ?
Par avance merci
Bonsoir luffyyfful
Si tu peux débrancher l'installation, c'est de presser le bouton et, au moyen d'un ohmemètre, mesurer entre quelles PIN se pontent.
Après brancher le relais sur ces 2 PIN, aux bornes COM et NO:
A+
Cordialement
jpbbricole
jpbbricole:
phmemètre
Super, merci beaucoup pour votre aide, je vais commander ce qu'il faut et essayer tout ça, je vous tiendrais informé et je mettrai le programme aussi.
Bonjour,
J'ai enfin terminé la réalisation et ça fonctionne parfaitement, merci pour votre aide.
** Composants **
Arduino Nano 33 IOT
Relais x2 5V
Interphone : 2 Boutons
** Câblage **
Relais GND -> Arduino GND
Relais VCC -> Arduino 5V
Relais IN_1 -> Arduino 8
Relais NO_1 -> Bouton poussoir 1 PIN 1
Relais COM_1 -> Bouton poussoir 1 PIN 2
Relais IN_1 -> Arduino 7
Relais NO_1 -> Bouton poussoir 2 PIN 1
Relais COM_1 -> Bouton poussoir 2 PIN 2
** Programme Arduino **
#include <WiFiNINA.h>
#include <WiFiServer.h>
char ssid[] = "WIFI_SSID";
char password[] = "WIFI_CLE";
WiFiServer server(80);
const int relaisPinActivation = 7;
const int relaisPinOuvrir = 8;
bool activationInProgress = false;
static unsigned long activationStartTime = 0; // Déclarer la variable comme statique
const unsigned long activationDuration = 2000; // Durée d'activation du relais en millisecondes (2 secondes)
const unsigned long activationCooldown = 30000; // Temporisation entre les activations en millisecondes (20 secondes)
void setup() {
Serial.begin(9600);
while (WiFi.begin(ssid, password) != WL_CONNECTED) {
Serial.println("Tentative de connexion au Wi-Fi...");
delay(1000);
}
Serial.println("Connecté au réseau WiFi");
pinMode(relaisPinActivation, OUTPUT);
//digitalWrite(relaisPinActivation, LOW);
pinMode(relaisPinOuvrir, OUTPUT);
//digitalWrite(relaisPinOuvrir, LOW);
server.begin();
Serial.println("Serveur web démarré");
}
void loop() {
WiFiClient client = server.available();
if (client) {
Serial.println("Nouvelle connexion client");
String request = client.readStringUntil('\r');
client.flush();
if (request.indexOf("/activate") != -1) {
// Rejeter la requête si activationInProgress est true
if (activationInProgress) {
client.println("veuillez_actualiser_dans_30s");
client.stop();
return; // Sortir de la fonction loop
}
// Lancer le programme
activationInProgress = true;
activationStartTime = millis();
// Interphone activation avant ouverture de la porte
client.println("la_porte_va_s_ouvrir_dans_5s");
digitalWrite(relaisPinActivation, HIGH); // Activer le relais
delay(2000); // Simuler l'appui sur le bouton-poussoir pendant 2 secondes
digitalWrite(relaisPinActivation, LOW);
delay(5000);
digitalWrite(relaisPinOuvrir, HIGH);
delay(500);
digitalWrite(relaisPinOuvrir, LOW);
}
// Vérifier si le programme est en cours et a dépassé la durée d'activation
if (activationInProgress && (millis() - activationStartTime >= activationCooldown)) {
activationInProgress = false;
}
client.stop();
Serial.println("Client déconnecté");
}
}
De cette façon, je déclenche le programme en allant sur l'ip de l'arduino, ex : http://192.168.0.1/activate