Lire dans Jeedom la sortie série du capteur HRLV-MaxSonar-EZ MB1043 avec un NodeMCU ESP8266

Lire dans Jeedom la sortie série du capteur MB1043 avec un NodeMCU ESP8266


Le capteur de température DS18B20 c’est perso, inutile pour le MB1043.
La pin3 du MB1043 c’est pour le fun, si vous n’êtes pas intéressé par l’info analogique du capteur ne la raccordez pas.
La pin4 du MB1043 permet de Starter/Stopper la mesure. Vous pouvez la raccorder directement au 3V3 pour que le capteur mesure en permanence, mais perso je préfère controller ça via une sortie de l’ESP.

Il faut souder le Jumper TTL , sinon l’ESP ne sera pas capable de lire la sortie serial du capteur.

Paramétrage du NodeMCU

Installer le plugin ESPeasy dans Jeedom.

Par défaut le NodeMCU démarre en point d’accès Wifi.
Il faut se connecter au point d’accès “ESP EASY” qui vient d’apparaître dans la liste des wifi disponibles.
Si il demande un mot de pass : espconfig ou configesp (dépend de la version…)

  1. Afficher la page web de configuration : 192.168.4.1
  2. Aller dans l’onglet “Configs”
  3. Main Setting:
    Unit Name: Donner un nom au capteur
    Admin Password : Mettre un mot de pass
  4. Wifi Settings :
    Sélectionner le Wifi auquel le capteur devra se connecter.
    Entrer le mot de pass du wifi.
  5. Cliquer sur “Submit” en bas de la page.
  6. Débrancher/Rebrancher le NodeMCU.
    Le NodeMCU se connecte maintenant au Wifi
  7. Paramétrer le routeur pour que le NodeMCU soit en IP fixe
  8. Ouvrir la page web de config en entrant l’adresse IP du module
    Ip : Celle paramétrée au point 7
    pass : Celui paramétré au point 3
  9. Aller dans l’onglet “Controller”
  10. Cliquer sur “ADD”
  11. Controller Settings:
    Protocol: Generic http
    Locate Controller: Use IP Adress
    Controller IP: Adresse IP de Jeedom
    Controller Port: voir config plugin ESPeasy dans Jeedom
  12. Credential:
    Controller Publish: voir config plugin ESPeasy dans Jeedom
    Enabled: Cocher la case
  13. Cliquer sur “Submit” en bas de page
  14. Aller dans l’onglet “Tools”
  15. System ⇒ cliquer sur “Advanced”
  16. Serial Console Settings ⇒ Décocher “Enable Serial Port Console”
  17. Cliquer sur “Submit” en bas de page
  18. Aller dans l’onglet “Devices”
  19. Cliquer sur “ADD” à côté de la Task 1

.Créer un scénario qui va lire la sortie serial du capteur ultrason

function SetValue($id,$Value)
{
$cmd = cmd::byId($id)->event($Value);
}
$cfgServer =« AdresseIPdeTonESP »;
$cfgPort = « PortParamétréAuPoint19 »;
$cfgTimeOut = « 5 »;
$f=fsockopen(« $cfgServer »,$cfgPort,$cfgTimeOut);
if (!$f)
{
$scenario->setLog(‹ pas connecté ›);
}
else
{
$scenario->setLog(‹ connecté ›);
$data = fgets($f, 16);
$tab_data = explode(« R », $data);
$scenario->setLog('Hauteur = '.$tab_data[1]);
$scenario->setLog(‹ coupe la session ›);
fclose($f);
SetValue(« 1522 »,$tab_data[1]);
}

Ce code va écrire la valeur lue dans la variable 1522 de Jeedom.

Config du plugin ESPeasy

  1. Plugin ⇒ Protocoles domotiques ⇒ ESPeasy
  2. Cliquer sur “Inclusion”
  3. Le module apparaît… sinon appuyer sur le bouton reset
  4. Cliquer à nouveau sur “Inclusion” pour sortir du mode
  5. Ouvrir le module
  6. Vérifier qu’il est bien activé
  7. Cliquer sur “Ajouter une commande”
    Nom : Niveau_Run
    Task et variable : GPIO,13,1
  8. Cliquer sur “Ajouter une commande”
    Nom : Niveau_Stop
    Task et variable : GPIO,13,0
  9. Sauvegarder

Vous avez maintenant la possibilité d’activer/Désactiver la sortie GPIO13 depuis Jeedom. Dans mon cas je l’utilise pour Starter/stopper la mesure.

Bonjour
je viens de recevoir les matériels et j’ai fait les connexions presque comme préconisé (en fait je veux avoir la mesure du capteur tout le temps alors j’ai raccordé sur le 3.3volts pour avoir la mesure en permanence…

Par contre je veux faire remonter cela dans home assistant…
Je suis surpris de ne pas avoir une valeur du MB1043 dans Espeasy - Onglet device - case values

Salut,
Le device « Comunication - Serial server » ne renvoi pas de valeur visible directement dans ESPeasy, ça c’est normal.
Je ne connais pas home assistant donc là je ne vais pas pouvoir t’aider.
Tu dois ouvrir un socket sur le port que tu as réglé dans le device, et lire les infos.
C’est se qui est fait dans l’exemple de mon post.
Par contre c’est en php, je sais pas si c’est la même chose sur HomeAssistant.