Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Auteur Sujet: Prise Connectée activée par ESP32 (Hack Meross MSS310)  (Lu 3209 fois)

Manu

  • Newbie
  • *
  • Messages: 36
    • Voir le profil
Prise Connectée activée par ESP32 (Hack Meross MSS310)
« le: Décembre 20, 2022, 07:56:57 pm »

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

« Modifié: Décembre 20, 2022, 08:22:04 pm par Manu »
IP archivée

papyblue

  • Administrator
  • Hero Member
  • *****
  • Messages: 762
    • Voir le profil
Re : Prise Connectée activée par ESP32 (Hack Meross MSS310)
« Réponse #1 le: Décembre 21, 2022, 08:30:07 am »

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.
IP archivée