Utiliser un bouton poussoir sans pousser dessus

Bonjour,
Je suis débutant avec Arduino et je souhaiterais utiliser l'arduino pour activer 2 boutons poussoirs sans pousser dessus c'est à dire le codage enverrai une impulsion au bouton 1 ou au second pour l'activer voila pour l'explication courte.

Pour plus de détail j'ai une télécommande additionnelle pour mes 3 volets électriques (ils sont tous appairés sur celle-ci) et je voudrais pouvoir ouvrir et fermer mes volets a distance avec Home Assistant, je cherche donc une solution qui pourrait simuler 1° ouverture des volets 2° fermeture des volets. J'ai soudé 4 cables sur ma télécommande pour l'étendre vers Arduino : bonton up, bouton down, terre et 3v. J'avais essayé avec un ESP32 mais c'est trop complexe pour moi.
Merci d'avance pour votre aide.
Benjamin

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

tout dépend de ce que font les boutons réels

Bonjour.

Dans l'absolu, c'est indispensable de savoir combien il y a de contact par BP.
Admettons qu'il y ait qu'un seul contact par BP, le cas devient relativement simple:

Pour simuler l'appui sur un BP sans se mélanger les pinceaux et les potentiels, rien de tel que 1 petit relais par BP.

Vous branchez les 2 fils des BP sur les contacts des relais (en parralléle).

Et vous pilotez vos relais par le code.

Il existe des modules relais 100% compatibles sorties Arduino, vous pouvez brancher directement l'entrée commande du relais sur une sortie 5V ou 3.3V Arduino.

Par exemple (parmis tant d'autres)

Bonjour benadmin

Si tu mets la terre sur bouton up ou bouton down, est ce que la fonction s'exécute?

A+
Cordialement
jpbbricole

Avec une pelle?

Non, je plaisante :roll_eyes:, la "Terre" d'ici n'est pas celle de là bas dirait un vieil électronicien.

Aprés, comme le dit @J-M-L , il faut d'abord savoir électriquement qui va où avant de brancher ce que @benadmin appelle "la terre" et qui est je présume le 0V (ce n'est pas toujours le cas d'ailleurs).

Je me suis simplement adapté au langage de @benadmin, l'essentiel est de se comprendre, pour certain, le GND, c'est la terre, ou le 0V. ou...

J'avais compris, c'était un clin d'oeil.

Mais en réalité, on ne sait pas si les BP de la télécommande ont un point relié au GND ou au +3V, à moins de le mesurer.

j'ai hacké une télécommande de garage / portail à code tournant en enlevant les boutons et rajoutant des fils allant à des optocouplers ainsi je peux simuler l'appui sur un bouton de cette télécommande depuis mon arduino. J'utilise HomeSpan depuis un ESP32 pour mettre cela dans mon réseau HomeKit (Apple).

J'en avais parlé dans ce post en anglais

Il faut vérifier si l'appui du bouton met le contact à GND ou à 3V

Bonjour à tous et merci pour vos retours.
J'ai annexé la photo de la télécommande au post les 3 câbles utiles sont le vert (0v ou gnd) le jaune activation vers le haut, le bleu activation vers le bas. Si je connecte le bleu ou le jaune au vert l'activation des volet s'exécute. Le fil rouge n'est pas utile ici.

Bonjour benadmin

Donc, avec l'ESP32 (Pour te permettre l'intégration à Home Assistant), en mettant son GND avec le fil vert (terre = GND), les fils bleu et jaunes chacun sur un GPIO de l'ESP, en mettant LOW sur un GPIO, cela doit activer la fonction.

A+
Cordialement
jpbbricole

Ou optocoupleurs à la place des relais

Merci jpbbricole les 2 problèmes que je rencontre avec le ESP32, malgré les recherches que j'ai déjà faites sur le net pour trouver une solution avant d'abandonner et de chercher une alternative ici avec l'arduino, je ne sais pas sur quelle pin connecter mes cables sur le ESP32 mais surtout je suis débutant de débutant en codage donc voilà. En annexe l'ESP32 où j'ai fais les tests sur les pin 25 et 26 au hasard mais je suis dans le brouillard pour le code.
Votre aide est la bienvenue.


Merci a Jef59 pour l'alternative avec relais, schéma très précis merci.
Là encore il me faudra coder mais pour l'activation de 2 relais, je devrais pouvoir trouver ça.
Je préfèrerais passer par le ESP32 , sinon je prendrai cette solution.
Bon dimanche

Bonjour benadmin

Essaies ça, il suffit de taper, dans la ligne de commande de l'IDE Arduino, à 115200,
image
HAUT ou BAS pour activer les commandes.

Le programme:

const int cmdVoletsHautPin = 25;     // Commande haut fil Jaune
const int cmdVoletsBasPin = 26;     // Commande bas fil Bleu

const int cmdVoletsNiveauActif = LOW;     // Niveau actif de la commande
void setup()
{
	Serial.begin(115200);

	pinMode(cmdVoletsHautPin, OUTPUT);
	pinMode(cmdVoletsBasPin, OUTPUT);

	digitalWrite(cmdVoletsHautPin, !cmdVoletsNiveauActif);     // Commande à OFF
	digitalWrite(cmdVoletsBasPin, !cmdVoletsNiveauActif);     // Commande à OFF
}

void loop()
{
	//--------------------------------- Commandes moniteur
	if (Serial.available())
	{
		String cmdRx = Serial.readStringUntil('\n');     // Réception de la commande terminée par Nouvelle ligne
		cmdRx.trim();     // Nettoyage de la chaîne reçue
		cmdRx.toUpperCase();     // Tout en majuscules

		if (cmdRx == F("HAUT"))
		{
			telecomEnvoiCmd(cmdVoletsHautPin);
		} 
		else if (cmdRx == F("BAS"))
		{
			telecomEnvoiCmd(cmdVoletsBasPin);
		}
		else
		{
			Serial.print(F("Commande inconnue : "));
			Serial.println(cmdRx);
		}
	}
}

void telecomEnvoiCmd(int cmdPin)
{
	digitalWrite(cmdPin, cmdVoletsNiveauActif);
	delay(200);     // Delais de "pression" de la touche
	digitalWrite(cmdPin, !cmdVoletsNiveauActif);     // Fin de la "pression"
}

A+
Cordialement
jpbbricole

Je ne cherche pas à vendre ma solution à relais, ni celle de @J-M-L à optocoupleurs.

Si celle suggérait par @jpbbricole marche, parfait.

Mais celles à opto ou relais permettent (gros avantage quand on ne connait pas le schéma de la "boîte à BP") de séparer, ou isoler électriquement l'ESP et votre télécommande, et ainsi éviter de "drainer" au GND, via des sorties GPIO del'ESP, des courants de valeurs inconnues.

Forcément, ça ne change pas trop le code que @jpbbricole pourrait vous proposer, mais ça rajoute du matériel (opto ou module relais).

1 Like

Merci encore a tous, ça marche depuis la console Arduino, super.
Bon maintenant il reste a comprendre comment intégrer ça dans Home Assistant :wink:

Bonne soirée / journée

Bonjour benadmin

J'ai posé 2 questions à ChatGPT, comment connecter le montage à Home Assistant et comment l'intégrer, je te laisse lire :wink:

Bonne journée
jpbbricole

Comme le code ne contient pas de serveur WEB et que cela n'est pas nécessaire pour connecter en MQTT un ESP32 à home assistant, ne pas perdre trop de temps sur ESPAsyncWebServer.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.