Dans cette vidéo les frères poulain vont piloter un servo moteur, cad qu'on peut lui dire de combien de degrés il doit tourner.
https://youtu.be/cvuMRMCzv5I?t=230
Ils expliquent que pour cela le firmware Tasmota sur l'ESP8266 des modules Sonoff n'est pas aussi bien que ESPEasy.
ESPEasy prendrait en charge plus facilement plein périphériques comme des capteurs hydrométriques, de pression de l'air etc
Ca c'est l'ESP 8266 qui va être utilisé. Ce n'est pas le même que dans les autres épisodes
On trouve l'ESP 8266 à 10€ sur Amazon :
https://www.amazon.fr/AZDelivery-D1-Mini-d%C3%A9veloppement-compatible/dp/B01N9RXGHY
J'ai cru comprendre que c'est un Wemos D1 ‘compatible’. (voir les boards Wemos D1 officielles sur https://www.wemos.cc/en/latest/d1/index.html)
Il ne faut pas oublier d'installer au préalable les drivers CH340 qui se trouvent sur https://www.wemos.cc/en/latest/ch340_driver.html
Télécharger ESPEasy que l'on trouve sur github sur https://github.com/letscontrolit/ESPEasy
Descendre et aller sur les releases
Cliquer sur la dernière version
La télécharger
Décompresser le zip
On va maintenant pouvoir injecter ESPEasy
Alors sur la vidéo pour flasher l'ESP 8266 ils ont utilisé NodeMCU PyFlasher que l'on peut télécharger ici :
https://github.com/marcelstoer/nodemcu-pyflasher/releases/tag/v2.2
Ils s'en sont servi dans leur second tuto :
https://youtu.be/3aLcRPbp1As?t=300
Ils ont pris se firmware, cad l'ESP8266 1M. Après il faut passer le module en mode boot, cad appuyer sur le bouton du module et l'insérer dans le lecteur usb
Cocher Dual Output, yes et wipes all data
Notez que lorsque l'on télécharge ESPEasy mega, il est livré avec ESP Easy Flasher. J'ai testé et il fait très bien l'affaire.
Avec ESP Easy Flasher je crois que le même firmware c'est celui-ci (à vérifier)
Une fois flashé, il faut se connecter sur le module en wifi pour l'appairer.
Il n'est pas nécessaire de trouver son adresse ip, le module s'expose comme une borne wifi à laquelle on se connecte.
Un mot de passe sera demandé. C'est configespDe là une page s'affiche et on entre nos paramètres wifi.
Le module redémarre et se connecte sur notre réseau wifi.
Au cas où, pour trouver son adresse ip si vous ne la trouvez pas sur la box avec ceci :
Maintenant on veut piloter un servo moteur à 12€ nommé Diymore 2PCS MG996R Metal Gear sur Amazon :
https://www.amazon.fr/Diymore-Digital-H%C3%A9licopt%C3%A8re-Voiture-commandes/dp/B07KD6NVPM
On va pouvoir définir la position de l'axe au degré près et ça c'est cool.
Le servo moteur et ses fils
Ca c'est le branchement des alims sur la borne nommée 5V et G
Ca c'est le câble pour transmettre les ordres, à mettre borne D7
Alors le port matériel D7 par exemple n'a pas le même nom dans le logiciel où c'est un port dit gpio.
Le port D7 sur l'ESP a le port gpio 13.
On va envoyer une commande du type
http://ip_de_votre_module/control?cmd=Servo,1,13,90
La commande c'est servo pour dire qu'on pilote un servo moteur.
1 c'est le numéro, 13 c'est le port gpio et 90 c'est l'ordre, cad tourner de 90 degrés.
Une vue de la connexion sur l'ESP. Ce dernier est alimenté directement en 5V via le port usb. Il n'est donc pas en 3,3V
On va maintenant déclarer l'ESP dans Domoticz en tant qu'interrupteur.
Pour cela on va dans Configuration puis Matériel
Créer un capteur virtuel
Déclarer un interrupteur, le nommer
Aller sous Interrupteurs
Le modifier
Entrer ces ordres et sauvegarder
Cliquer maintenant sur la lampe pour l'allumer
Remodifier l'interrupteur pour le transformer en dimmer
Mettre le type sur Dimmer et sauvegarder
Pour que le Dimmer fonctionne correctement, déclarer un script. Pour cela aller sous Configuration Plus d'Options et Evénements
Créer un nouveau script Lua
Tout supprimer
Coller ce script
-- Merci @MikeF : https://www.domoticz.com/forum/viewtopic.php?t=21454
-- Script Domoticz -> ESPEasy servo dimmer
commandArray = {}
DomDevice = 'Plafonnier Bureau'; -- Votre peripherique à controler
IP = '10.0.0.91'; -- L'adresse IP de l'ESP8266
PIN = "13"; -- Le pin GPIO du servo
function sleep(n)
os.execute("sleep " .. tonumber(n))
end
if devicechanged[DomDevice] then
if(devicechanged[DomDevice]=='Off') then
print ("OFF dim = "..uservariables['dimmer']);
CalcValue = 0;
else if(devicechanged[DomDevice]=='On') then
DomValue = uservariables['dimmer'];
print ("ON dim = "..uservariables['dimmer']);
CalcValue = DomValue;
else
print("Other");
DomValue = otherdevices_svalues[DomDevice];
CalcValue = math.floor(30 + DomValue * 1.50); -- La fonction de calcul dimmer vers servo
commandArray['Variable:dimmer'] = tostring(CalcValue);
print ("dim Level = "..uservariables['dimmer']);
end
end
runcommand = "curl 'http://" .. IP .. "/control?cmd=Servo,2," ..PIN.. "," .. CalcValue .. "'"; -- Commande de servo
dodo = "curl 'http://" .. IP .. "/control?cmd=Servo,2," ..PIN.. ",9999'"; -- Desactiver lesServo
os.execute(runcommand);
sleep(2) -- Attente entre commande et desactivation
os.execute(dodo);
print("PWM value= "..CalcValue);
end
return commandArray
Lien vers le fichier : cliquez ici
Mettre ces infos
Dans le cas de leur dimmer, ils ont dû mettre un ratio de 1,8
Nommer le script et sauvegarder
Modifier l'interrupteur
Virer ces 2 lignes qui ne sont maintenant plus nécessaire. C'est le script qui gère
Article(s) précédent(s)