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…)
- Afficher la page web de configuration : 192.168.4.1
- Aller dans l’onglet “Configs”
- Main Setting:
Unit Name: Donner un nom au capteur
Admin Password : Mettre un mot de pass - Wifi Settings :
Sélectionner le Wifi auquel le capteur devra se connecter.
Entrer le mot de pass du wifi. - Cliquer sur “Submit” en bas de la page.
- Débrancher/Rebrancher le NodeMCU.
Le NodeMCU se connecte maintenant au Wifi - Paramétrer le routeur pour que le NodeMCU soit en IP fixe
- 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 - Aller dans l’onglet “Controller”
- Cliquer sur “ADD”
- Controller Settings:
Protocol: Generic http
Locate Controller: Use IP Adress
Controller IP: Adresse IP de Jeedom
Controller Port: voir config plugin ESPeasy dans Jeedom - Credential:
Controller Publish: voir config plugin ESPeasy dans Jeedom
Enabled: Cocher la case - Cliquer sur “Submit” en bas de page
- Aller dans l’onglet “Tools”
- System ⇒ cliquer sur “Advanced”
- Serial Console Settings ⇒ Décocher “Enable Serial Port Console”
- Cliquer sur “Submit” en bas de page
- Aller dans l’onglet “Devices”
- 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
- Plugin ⇒ Protocoles domotiques ⇒ ESPeasy
- Cliquer sur “Inclusion”
- Le module apparaît… sinon appuyer sur le bouton reset
- Cliquer à nouveau sur “Inclusion” pour sortir du mode
- Ouvrir le module
- Vérifier qu’il est bien activé
- Cliquer sur “Ajouter une commande”
Nom : Niveau_Run
Task et variable : GPIO,13,1 - Cliquer sur “Ajouter une commande”
Nom : Niveau_Stop
Task et variable : GPIO,13,0 - 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.