![]() |
Carte Yunshan HW622 |
octobre 2019 |
Construire une carte pour des besoins spécifiques, c'est bien mais long, nos amis chinois ont créé une petite carte avec une alim, un Esp-8266, un relai pour seulement quelques euros, du coup, il devient difficile pour l'amateur de faire plus compact et moins cher ! Nous verrons que la carte n'est pas parfaite mais c'est une bonne base pour de nombreux montages et pour un prix imbattable !!!
Une petite carte
de 6,5 cm sur 4.
Le premier défaut de cette carte c'est qu'il n'y a aucune inscription pour identifier les entrées et les sorties, c'est un peu déstabilisant !
Il faut savoir que la sortie du relai est raccordée à Gpio4 et que l'entrée est sur Gpio5.
Ces informations sont utiles pour la programmation...
Pour programmer la carte un petit adaptateur USB / TTL est nècessaire. On en trouve entre autre sur ebay pour 2 ou 3 euros.
Le branchement est on ne peut plus simple 3 fils la masse un fil d'emission et un de reception. Relier l'émission de la carte sur la reception de l'adaptateur.
L'interface arduino reconnait très facilement ce type d'adaptateur si problème de drivers je donne quelques astuce dans le chapitre informatique -> astuces en vrac...
L'adaptateur n'est bien sur uniquement nècessaire qu'au moment de la programmation du module, ensuite vous l'enlevez du montage.
Pour la programmation de la carte il faut également positionner le strap sur la carte et faire une coupure de l'alim pour simuler un reset.
En mode exécution le strap doit être enlevé.
L'adaptateur USB <=> TTL.
Pour la programmation de la carte avec le logiciel Arduino (j'ai utilisé la version 1.8.1 sous Windows) il faut repérer la sortie série utilisée (com5 pour moi) par l'adaptateur USB/TTL,
régler la vitesse (115200 pour moi) et le type de carte (WeMos D1R1 pour moi).
Voir tous les paramètres sur la photo ci-dessous.
Une fois l'exemple de programme que je vous donne plus bas rentré dans l'interface de l'Arduino vous pouvez lancer la programmation de la carte.
En cas de problème vérifier la présence du strap, l'orientation des fils de l'interface série et le parametrage de la carte dans le programme Arduino.
Comme on le voit ci-dessous une fois le code compilé, l'executable est transféré vers la carte cible (les lignes de petits points).
Une fois le transfert terminé, on enlève l'alimentation, on enlève le strap, on débranche l'interface série. Pour vérifier le fonctionnement vous devez raccorder par exemple une led
sur les contacts du relai (on part du + de l'alim on va sur le + de la led on passe par une resistance de quelques K, on va vers le contact du relais on ressort du contact du relai
et on termine sur la masse.) pas besoin de schéma voir eventuellement sur les photos.
Il faut également reperer sur votre box l'adresse du circuit, dans mon cas 192.168.1.54
il faut donc se connecter à cette adresse avec un browser internet et voir l'affichage. Si vous avez des difficultés pour repèrer l'adresse utilisée vous pouvez ajouter dans le programme
un renvoi de l'adresse ip utilisée sur l'interface série, je ne documente pas ici cette possibilité elle est expliquée dans des centaines de sites.
On peut voir sur la photo ci-dessous le câblage de la led pour tester le relai. On voit également le câblage necèssaire pour tester l'entrée du circuit.
En effet j'en ai un peu marre des circuits qui ne se commande que depuis le wifi certes au début c'est amusant de sortir son mobile pour allumer tel ou tel chose mais à la longue
on se dit parfois si j'avais un simple bouton cela pourrait être aussi pratique dans certains cas, alors dans ce montage je souhaite ajouter une commande manuelle pour mon relai !
L'ESP est avant tout un microprocesseur et même si le wifi est HS il gèrera le bouton comme si de rien n'êtait, c'est donc une sécurité pour certains montages.
Alors la sortie du relai fonctionne du premier coup SUPER !
Mais l'entrée NON, rien ne se passe !.
J'ai une deuxieme carte, le résultat est le même, il y a un problème et pas de schéma de disponible sur le site ou j'ai acheté les cartes !.
J'ai fini par trouver sur internet un site qui donne le schéma de la carte (je vous donne ce site en bas d'article). On trouve également dans les commentaires
de l'article du site qu'il y a deux problèmes sur la carte :
La masse de sortie n'est pas connectée il faut donc faire un strap comme sur la photo et dans certains cas la diode D5 est montée à l'envers il faut donc l'inverser.
Un petit coup de fer à souder précautionneux fait l'affaire !
Une fois ces deux modifications effectuées, tout rentre dans l'ordre.
La led bleue sur la carte permet de visualiser l'état de l'entrée.
La led rouge de la carte indique l'état du relai.
Dans le code j'ai ajouté une petite tempo pour éviter les rebonds du bouton, pour la prise en compte d'un changement d'état il est donc necessaire d'appuyer au moins une petite seconde.
Le code (simpliste) que je vous propose, il permet de commander le relai depuis une interface internet ou depuis le bouton.
// esp_2_rel.ino (Test de la carte ESP8266 1 relai)
// Attention sur ma carte la diode D5 était inversée et il faut relier la masse alim à la masse du circuit d'entrée
#include "ESP8266WiFi.h"
#include "ESP8266WebServer.h"
const char* box = "****nom de votre box sur le réseau*****"; // Nom de la box
const char* m_passe = "******passe de la box*******"; // Passe WiFi
ESP8266WebServer server(80);
#define RELAI 4 // relai
#define BOUTON 5 // relai
int etatrelai; // Etat du relai
String page_fab(){
String page = "<html lang=fr-FR><head>";
page += "<title>Carte ESP 8266 1 relai.</title>";
page += "<style> body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }</style>";
page += "</head><body>";
page += "<h3>- ETAT DU RELAI ESP8266 -</h3>";
page += "<ul><form action='/' method='POST'>";
page += "<li>Etablir le relai sur <INPUT type='submit' name='REL' value='1'></li>";
page += "<li>Etablir le relai sur <INPUT type='submit' name='REL' value='0'></li>";
page += "<li>Etat du Relais : "; page += etatrelai == 0?" OFF":" ON"; page += "</li>";
page += "</form></ul>";
page += "</body></html>";
return page;
}
void handleRoot(){
if ( server.hasArg("REL") ) { handleSubmit(); } else { server.send ( 200, "text/html", page_fab() ); }
}
void handleSubmit() {
String val_arg;
val_arg = server.arg("REL");
if ( val_arg == "1" ) {digitalWrite(RELAI, HIGH); etatrelai = 1; server.send(200, "text/html", page_fab());}
else if ( val_arg == "0" ) {digitalWrite(RELAI, LOW); etatrelai = 0; server.send(200, "text/html", page_fab());}
}
void setup(void){
pinMode(RELAI, OUTPUT); digitalWrite(RELAI, 0); etatrelai = 0;
pinMode(BOUTON, INPUT_PULLUP);
WiFi.begin(box, m_passe); // Cnx WiFi
while (WiFi.status() != WL_CONNECTED) { delay(500); } // Attente cnx ok
server.on ( "/", handleRoot ); // Page d'accueil
server.begin();
}
void loop(){
server.handleClient(); // Lecture du serveur
if ( digitalRead( BOUTON ) == HIGH ) { // Lecture du bouton pour chang. d'état manuel sans acces par le web
delay( 400 ); // Pour eviter les rebonds
if ( digitalRead( BOUTON ) == HIGH )
if(etatrelai == 0){ digitalWrite(RELAI, HIGH); etatrelai = 1;
}else{ digitalWrite(RELAI, LOW); etatrelai = 0;}
server.send(200, "text/html", page_fab());
}
}
J'espere que cette petite présentation vous aura donné l'envie de tester cette petite carte bien pratique et pas cher.
Le relai a un pouvoir de coupure de 10A sous 250volts alors cela permet d'imaginer de nombreuses utilisations même si il ne faut pas prendre
trop de risque 5 ampères c'est déjà super ! En tout cas le circuit imprimé est même découpé pour éviter les ponts que pourrait provoquer une forte intensité !
Voici le lien du site qui m'a aidé à utiliser cette carte : Site avec schéma et plein d'infos sur carte