Plugin perso pour communication série USB entre Arduino et Jeedom

Bonjour à tous !

Profitant du retour du soleil, je m’attelle à faire une grosse mise à jour de la commande de mon poulailler (comment ça pas logique ?).


J’ai un programme sur un arduino uno Wifi rev2 (pour ceux qui connaissent), qui me retourne toutes les infos nécessaires au bon fonctionnement de l’automatisme du poulailler, par MQTT.

C’était pas trop mal sauf que l’Arduino est un grand consommateur d’énergie, et de plus, mon poulailler est assez éloigné de la maison et donc de la borne wifi…


Je me suis donc décidé a franchir le pas et me tourner vers une solution sans wifi : le NRF24L01+ couplé a un esp32 (combo DIY surcoté ? ou pas ? pour la basse consommation).

41kgM2xPK9L.AC
J’ai un petit programme qui tourne en permanence sur un Arduino nano que j’aimerais brancher en USB sur ma box Jeedom (un Rpi 3b+), qui m’envoie quand elle reçois une trame, la valeur de la batterie, l’état de la porte et l’état de la caméra (que je convertis et renvoie en chaine de caractère en liaison série de cette sorte : « batterie,porte,camera » en numérique ça donne : « 100,1,0 »).

J’ai aussi la possibilité d’ouvrir/fermer la porte ou allumer/éteindre la caméra (même topo : « porte,camera » → « 1,0 » vous avez saisis l’idée) par la liaison série en envoyant les 2 valeurs a mon Arduino nano qui se chargera de les transmettre à mon esp32 présent, sur les lieux d’oeuvrage (le poulailler en somme…).

Et c’est au niveau de cette communication par USB avec un plugin perso que je suis en galère :
Je ne sais pas par ou commencer…

J’ai essayé le tuto pour créer son plugin (le VDM) mais il en est pas fait mention de la liaison série en USB dessus, et sur le net c’est pas très clair non plus.

Je me suis rapproché de Jeedouino aussi mais ça me convient pas : trop lourd pour ce que je veux faire et trop compliqué je trouve.

J’aimerais juste 4 commandes : Ouvrir/fermer porte et Allumer/eteindre camera. Pas tous le barza avec des pinout etc de Jeedouino, et 3 infos, etat batterie, etat porte et etat camera.

Le tout en liaison série ! C’est tout.

Je pense pas que ce soit dur ou compliqué en soit mais si quelqu’un voulait bien m’aider a avancer ce serait Génial :slight_smile:.

Je vous remercie par avance et désolé du pavé, j’étais inspiré…

Salut, as tu avancés sur la liaison par usb?
Moi je me suis intéressé à l arduino uno pour mesurer la tension 230v
Cela marche plutôt bien. Sur le moniteur série du pc c est ok mais je pêche sur jeedom.
Aussi jeedouino est trop compliqué pour moi.

bonsoir

Essai un esp sous tasmota / jmqtt

Bonjour olive
Y’a un moyen actuellement avec un plugin de loguer la console d’un Arduino ?
Merci

Salut,
pas à ma connaissance …
c’est de la communication asynchrone sur un device série faut écrire un demon pour ça !

Ok
Merci pour l’info ça m’évite de chercher inutilement.

Ta une idée en tête ?

Bonjour ,pour moi j ai une idée
Un script avec une requête python pour lire le port usb

serial_port = serial.Serial( port = "/dev/ttyACM0", baudrate =9600)
# réinitialisation
serial_port .setDTR(False) time. sleep (0.1)
serial_port .setDTR(True)
# on vide le buffer
serial_port . flushInput ()
# lecture des données
for i in range(10):
print( serial_port . readline ())
serial_port . close ()

Mais bon …

comme tu dit
c’est un début mais il s’agit de lire le port en continue et de pouvoir y envoyer des données …
il faut donc un demon qui gère ça

Oui tout à fait
Je prend le problème dans l autre sens .
Un programme dans l arduino et attaque par jeedom pour lire l info…
J ai pensé au script …possible?
Ou Obligé de passer par un plugin…?

tout pendant que c’est pas pour faire une console
le script est possible il faut néanmoins bien établir une sorte de protocole
(quand j’envoi une info x sur le serial il faut qu’elle soit prévue coté arduino
qui lui retournera la réponse y attendue.)

Ah oui merci pour l action a faire côte arduino
La requête ci dessus peut elle marcher en l état?

il y a pas mal d’erreurs notamment manque de l’indentation dans le for …

et il faut que ton port soit ouvert au moment ou il recoit des données …

Non par vraiment, c’est juste que je galère avec un module opentherm que je n’arrive pas à faire fonctionner. Entre les soudures, le Wemos, le sketch, le bus opentherm… ça fait trop de paramètres.

1 « J'aime »

Tu coup c’est quoi le meilleur moyen de loguer python ?
J’ai essayé en sh c’est pas très probant( des caractères bizards, des lignes vides…)

Ho la non c’est pas du texte c’est du protocole vaillant tout est en hexa au niveau des trames …

C’est quoi que tu as exactement ? Une passerelle ebus ? Laquelle ?

J’ai rien, un arduino avec une paire de résistances et je décode les trames derrière.

image

en réalité j’ai remplacer le ftdi par un esp et je renvoie mes infos décodées a jeedom

Le daemon ebusd n’est pas compatible avec ?

Aucune idée je me suis tout fait à la main.