Nouvelles:

Bienvenue au Forum de discussion Électro-Bidouilleur! Inscrivez-vous pour participer aux discussions!: 
https://forum.bidouilleur.ca/index.php?action=signup Les demandes d'inscription sont révisées quotidiennement.

Menu principal

Prise Connectée activée par ESP32 (Hack Meross MSS310)

Démarré par Manu, Décembre 20, 2022, 07:56:57 PM

« précédent - suivant »

Manu

Bonjour à  tous,

Voici une petite astuce qui consiste à  activer une prise connectée (en l'occurrence un modèle Meross MSS310) avec un arduino ou esp32 par exemple, sans perdre son usage normal et ses fonctions d'origine.

On distingue deux gros circuits à  l'intérieur de la prise. Un avec alimentation et commande de relais, un autre plus petit qui traite la connexion réseau (vertical sur la photo).


Ce que j'ai réussi à  localiser. Le plus intéressant bien sûr, est la ligne qui active le relais lorsqu'il est à  un niveau haut de 3.3v.Ici je suppose RX pour la fonction qui mesure la consommation dispo sur l'app mais je ne l'ai pas vérifié.

Désolé, sur cette photo, le violet est le supposé RX mais dans l'assemblage ESP32 sur les photos suivante, j'utilise cette couleur pour GND.

Il faut couper la piste. Connectez ensuite la sortie de la carte d'origine et celle de l'esp32 à  cette piste. J'ai ajouté une diode 1N5711 pour chacun pour éviter que si l'ESP32 est à  un niveau haut, cela n'endommage pas la petite plaque d'origine de la prise a niveau bas, par exemple.




Exemple avec un ESP32, deux diodes 1N5711 et 5 fils.

Violet   GND
Rouge  3.3v
verte sortie ESP32 pour activer le relais (avec diode)
verte sortie Prise   pour activer le relais (avec diode)
bleu sortie finale qui regroupe les deux précédentes

VertESP32 + VertePrise   = Bleu
       0       +       0          = 0
       0       +       1          = 1
       1       +       0          = 1
       1       +       1          = 1

Code simple pour activer le relais par intermittence juste pour vérifier le fonctionnement. Je ne suis pas programmeur, il existe des moyens plus élégants de le faire sans doute, mais cela fonctionne.

//TEST RELAY HIGH=ON en ESP32
//Relay---------------------------------------------------
#define RelayPin 32                                                      // Pin D32 GPIO32
#define RelayLevelON HIGH                                                 // Relay activated in high
#define RelayLevelOFF LOW                                               // Relay disable in low
#define msPinSet 500
#define msON 3000
#define msOFF 3000
#define msLoop 50

void RelayPinSet(){
  pinMode(RelayPin, OUTPUT);                                             // configure pin in output mode to activate relay
  delay(msPinSet);
  digitalWrite(RelayPin, RelayLevelOFF);                                 // Turno OFF relay
  delay(msPinSet);
  Serial.println("RelaySetPin");   
}

void RelayON(){
  digitalWrite(RelayPin, RelayLevelON);                                  // Turno ON relay go to "#define RelayLevelON" to change HIGH or LOW for your relay activated
  delay(msON);                                                           // minimum turn ON time check the relay initial start
  Serial.println("Relay ON");   
}

void RelayOFF(){
  digitalWrite(RelayPin, RelayLevelOFF);                                 // Turno OFF relay go to "#define RelayLevelOFF" to change HIGH or LOW for your relay disabled
  delay(msOFF);     
  Serial.println("Relay OFF");   
}


void setup() {
  Serial.println("Setup START");   
  RelayPinSet();                                                        // Set output & HIGH
  Serial.println("Setup END");   
}

void loop(){
  RelayON();                                                            // Relay ON
  RelayOFF();                                                           // Relay OFF
  delay(msLoop);
}



Bien sûr, si vous utilisez un arduino nano por exemple, il faut tenir compte du fait que le niveau logique ici est de 3.3v, pas de 5v, et il faut rajouter un "converter" pour plus d'infos, voir cette vidéo.

EB_#264 Mini-Plaquette - Conversion de niveaux logiques de bus
https://www.youtube.com/watch?v=7N1shxJ8k7I


papyblue

Bonjour Manu,

Il est possible de remplacer le "ou cablé" par un "ou logiciel" en faisant rentrer dans l'esp32 l'information issue de la prise connectée. Cela économise deux diodes et surtout évite d'éventuels problèmes dus à  leur tension de seuil.