Récolte de données depuis un enregistreur de Température /Hygrométrie

Signaler
Messages postés
2
Date d'inscription
vendredi 2 juillet 2021
Statut
Membre
Dernière intervention
28 juillet 2021
-
 collecteur -
Bonjour,

Je suis bloqué depuis 2 jours ???:(

Je suis jeune Padawan sous Ubuntu..., et les scipts et lignes de code sont un mystère pour moi ;). J'assure seulement quelques lignes de commandes. Bref, merci infiniment par avance si quelqu'un a une solution pour moi :)

Je n'arrive pas à récupérer les données enregistrées par cet appareil :

https://www.cdiscount.com/bricolage/climatisation/enregistreur-de-temperature-fut/f-166130304-auc0738604223869.html

L' appareil est bien identifié par le système, (QinHeng Electronics HL-340 USB-Serial adapter):

 lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ lsusb
Bus 001 Device 004: ID 13d3:5a07 IMC Networks
Bus 001 Device 003: ID 13d3:3491 IMC Networks
Bus 001 Device 002: ID 0438:7900 Advanced Micro Devices, Inc. Root Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Le driver a été téléchargé et installé (
CH341SER_LINUX
)

Mais ensuite? Que faut il faire pour récolter les données ?

Rien d'autre n'apparaît dans l’arborescence système du PC quand on branche le cable USB.
Et aucun logiciel d'interface n'est disponible chez le fabricant pour visualiser les données.

L'appareil enregistreur fonctionne correctement. On voit que le compteur d'enregistrement tourne, donc enregistre les données à intervalles réguliers.

J'ai fait l'essai sous Windows et Linux. Dans les deux cas c'est la même impasse.

Please please please
Help-me !

Configuration: Linux / Chrome 91.0.4472.114

4 réponses

Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 145
Bonjour,

Tout le début me paraît correct.

Je n'ai aucune idée des commandes que tu peux espérer taper. Donc avant de te lancer dans le python, essayons déjà de nous connecter à ton device avec
screen
et de voir si on arrive à faire des choses avec. On scriptera le tout en python dans un second temps.

Etape 1 :
screen


Cela dépend du matériel, mais parfois une aide est affichée quand on tape la commande
help
ou
?
te permettrait d'avoir des informations (sinon tu peux aussi chercher sur internet voir le genre de commandes que les gens ont utilisé). C'est peut être aussi documenté avec ton driver, je n'ai pas regardé ?

Pour utiliser
screen
, fais comme expliqué dans https://askubuntu.com/questions/40959/how-do-i-connect-to-tty-com-dev-ttyusb0 :

screen /dev/ttyUSB0


Plus de détails sur comment utiliser
screen


Une fois que tu as trouvé les commandes qui t'intéresse, copie colle moi ce qui est dans ton screen (donc les commandes que tu as tapé et les réponses que tu as reçues), puis on verra scripter ça dans un second temps.

Etape 2 : script python

Par rapport à ton erreur python, je m'aperçois en regardant cette page que le module est stocké dans
/usr/lib/python3/dist-packages/serial/
et donc qu'il s'agit du module
serial
et non
pyserial
. Il faut donc dans ton code remplacer
import pyserial
par
import serial
.

Je pense que le module a juste été renommé car je ne trouve pas de documentation sur
serial
, uniquement sur
pyserial
. Ce renommage n'est pas forcément étonnant, il y a des écarts entre la nomenclature python et debian. Après au pire il suffit de regarder un peu dans les fichiers installés les fonctions qui sont disponibles pour au besoin adapter le code (on verra ça plus tard).

Une fois le paquet installé, tu peux en gros reproduire ce que tu faisais auparavant avec
screen
(envoyer des commandes, puis lire la réponse). Avec python, il sera alors assez simple de parser la réponse pour extraire la partie qui t'intéresse.

Bonne chance
Messages postés
2
Date d'inscription
vendredi 2 juillet 2021
Statut
Membre
Dernière intervention
28 juillet 2021

Bonjour Mamiemando,

Je n'ai plus la possibilité de continuer les tests avec cet appareil...
Je vais devoir ré-investir dans quelque chose de plus sérieux ( ou en tous cas de plus "accessible" pour moi ;))
Je te remercie infiniment pour m'avoir autant aider.
Je souhaiterai un jour (dans cette vie ° ͜ʖ ͡ - ) pouvoir te renvoyer l'ascenseur !
Certes, pas en 'codes informatiques' ...;)... mon domaine c'est plutôt tout ce qui se rapporte au Végétal.
Au plaisir,

Bonne journée & à+ sur CCM
Lio)
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 145
Bonjour,

Juste pour comprendre la démarche, qu'est ce qui t'a permis de comprendre qu'il fallait utiliser "
CH341SER_LINUX
" pour supporter ce matériel ? As-tu installé ce pilote ? Si oui comment (as-tu suivi un tutoriel) ?

Avant de creuser plus sur ton device, je pense qu'il faut s'assurer que tu es dans ce cas, voire un peu la documentation sur laquelle tu t'es basée, etc.

Un exemple pour débuter : la souris

Voici les grandes lignes et une manière de t'entraîner sur un device pour lequel on sait comment faire (la souris).

Ensuite ça dépend du module, mais je suppose que si ton matériel a été créé, cela a dû créer un device. Voir notamment les résultats de :
cat /proc/bus/input/devices
ls -l /dev/input/by-path


Un petit exemple avec une souris USB. Cela crée
/dev/input/mice
(et probablement un autre device équivalent, genre
/dev/input/mouse3
) qui se comporte comme un fichier dans lequel est inscrit en temps réel la position de la souris. En réalité un device n'est pas un fichier stocké sur un disque dur, mais quelque chose qui se comporte de la même manière. Bref si tu lances :

cat /dev/input/mice


... et que tu bouges ta souris, tu verras des caractères s'afficher sur ton terminal. Il correspondent aux caractères ascii obtenus en retranscrivant chaque octet lu depuis ce flux émis par (le module du noyau de) la souris. Si on creuse un peu, on tombe sur cette discussion (qui présente la nature des données et comment lire le flux en python) et un exemple de code (qui montre comment le flux en C).

Dans ton cas, si ton matériel est bien supporté, il doit de la même manière engendré un device, et la nature des données écrite dans le flux associé à ce device est définie dans le code du module associé à défaut d'être documentée...

Retour à ton appareil

D'après ce lien, le module
ch34x
crée un device
/dev/ttyUSB0
(vérifie avec
ls -l /dev/tty*)
, au besoin regarde ce que raconte alors
dmesg | tail
).

Ensuite il faut choisir un langage de programmation. Python est un très bon choix pour débuter, c'est bien plus simple que du C, donc si tu ne sais pas quoi prendre, partons là-dessus si tu le veux bien.

Toujours d'après ce même lien, tu peux utiliser
pyserial
pour interagir avec le matériel. Cela semble assez raccord avec le code source du module, qu'on peut retrouver notamment ici.

Dans l'exemple donné, l'auteur change les permissions sur le device avec
chmod
. Je te déconseille de le faire pour plusieurs raisons :
1) La correction ne sera plus effective au prochain redémarrage ;
1) Ce n'est pas la bonne manière de faire, car dès lors n'importe qui à accès à ton ordinateur peut lire des information de ce device. Sous linux on ne relâche jamais les droits associés à un fichier, ses permissions sont définies pour avoir un système sûr et respectueux de ta vie privée. La bonne démarche consiste à accroître les privilèges de l'utilisateur pour que celui-ci ait le droit de lire le device. Dans ce cas précis, il faut voir à quel groupe appartient le device (avec la commande
ls -l /chemin/vers/le/device
) ajouter ton login utilisateur (voir résultat de
whoami
) au groupe auquel appartient le device (e.g. avec la commande
usermod -aG
: par exemple la commande
sudo usermod -aG mon_groupe mon_login
ajoute l'utilisateur
mon_login
au groupe
mon_groupe
).

Ensuite, il faut bien voir que l'exemple donné lit uniquement les 100 premiers octets. Le programme tourne tant que 100 octets n'ont pas été écrits, et n'indique pas comment extraire de l'information du flux ainsi récupérer. Ça a l'air, d'après l'exemple, d'être du texte, donc on peut imaginer ensuite qu'il soit assez simple de lire l'information que tu veux récupérer...

Bonne chance
Merci pour toutes ces infos.!!!
J'ai testé avec la souris, ça fonctionne bien sûr ! :) et j'ai appris beaucoup.
Cependant je n'ai pas encore atteint mon but...

Voilà ce que ça donne :

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ cat /proc/bus/input/devices
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:37/PNP0C09:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=3
B: KEY=4000 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input4
U: Uniq=
H: Handlers=sysrq kbd event4 leds
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input5
U: Uniq=
H: Handlers=kbd event5
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0019 Vendor=1043 Product=0000 Version=0000
N: Name="Asus Wireless Radio Control"
P: Phys=asus-wireless/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/ATK4002:00/input/input8
U: Uniq=
H: Handlers=rfkill kbd event8
B: PROP=0
B: EV=3
B: KEY=80000000000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Asus WMI hotkeys"
P: Phys=asus-nb-wmi/input0
S: Sysfs=/devices/platform/asus-nb-wmi/input/input9
U: Uniq=
H: Handlers=rfkill kbd event6
B: PROP=0
B: EV=100013
B: KEY=1000000080000 0 0 0 0 181606f00900000 8280027801701000 e000000000000 0
B: MSC=10

I: Bus=0018 Vendor=04f3 Product=309f Version=0100
N: Name="ELAN1200:00 04F3:309F Mouse"
P: Phys=i2c-ELAN1200:00
S: Sysfs=/devices/platform/AMD0010:03/i2c-0/i2c-ELAN1200:00/0018:04F3:309F.0001/input/input10
U: Uniq=
H: Handlers=mouse0 event7
B: PROP=0
B: EV=17
B: KEY=30000 0 0 0 0
B: REL=1943
B: MSC=10

I: Bus=0018 Vendor=04f3 Product=309f Version=0100
N: Name="ELAN1200:00 04F3:309F Touchpad"
P: Phys=i2c-ELAN1200:00
S: Sysfs=/devices/platform/AMD0010:03/i2c-0/i2c-ELAN1200:00/0018:04F3:309F.0001/input/input11
U: Uniq=
H: Handlers=mouse1 event9
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA ATI HDMI HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.1/sound/card0/input12
U: Uniq=
H: Handlers=event10
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HD-Audio Generic Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:09.2/sound/card1/input13
U: Uniq=
H: Handlers=event11
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HD-Audio Generic Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:09.2/sound/card1/input14
U: Uniq=
H: Handlers=event12
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0003 Vendor=13d3 Product=5a07 Version=1701
N: Name="USB2.0 VGA UVC WebCam: USB2.0 V"
P: Phys=usb-0000:00:12.0-1.4/button
S: Sysfs=/devices/pci0000:00/0000:00:12.0/usb1/1-1/1-1.4/1-1.4:1.0/input/input15
U: Uniq=
H: Handlers=kbd event13
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0


>>>>>>>>>>>>>>>>>>> Il semble qu'aucun device ne soit créé, Alors qu'on retrouve avec (ls -l /dev/ttyUSB0) la trace du device en question ( ch341-uart converter now attached to ttyUSB0)

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ 
lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ sudo chmod 777 /dev/ttyUSB0

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ ls -l /dev/tty0
crw--w---- 1 root tty 4, 0 juil. 2 12:14 /dev/tty0

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ dmesg | tail
[34949.724267] usb 2-1: USB disconnect, device number 3
[34949.724633] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[34949.724668] ch341 2-1:1.0: device disconnected
[34956.291720] usb 2-3: new full-speed USB device number 4 using xhci_hcd
[34956.463357] usb 2-3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[34956.463364] usb 2-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[34956.463367] usb 2-3: Product: USB Serial
[34956.472586] ch341 2-3:1.0: ch341-uart converter detected
[34956.486809] usb 2-3: ch341-uart converter now attached to ttyUSB0
[36862.904735] audit: type=1400 audit(1625299433.798:86): apparmor="ALLOWED" operation="open" profile="libreoffice-soffice" name="/usr/share/libdrm/amdgpu.ids" pid=48689 comm="soffice.bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0


import pyserial
import-im6.q16: attempt to perform an operation not allowed by the security policy `PS' @ error/constitute.c/IsCoderAuthorized/408.


__________________________________________

J'ai aussi été voir dans le répertoire dev/ et j'ai ce fichier :
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
qui fait 0 octet

__________________________________________
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 145
Bonjour,

Il semble qu'aucun device ne soit créé, Alors qu'on retrouve avec (ls -l /dev/ttyUSB0) la trace du device en question (ch341-uart converter now attached to ttyUSB0)

En effet, mais ça n'est pas grave, le device (
/dev/ttyUSB0
) qui nous intéresse est identifié et c'était notre seul objectif à ce stade. C'est avec lui qu'il faudra interagir pour récupérer les informations.

Apparemment la commande serait du coup :

sudo udevadm info --query=all --name=ttyUSB0


sudo chmod 777 /dev/ttyUSB0


Pas bien, comme je t'ai dit il ne faut pas changer les droits du device.

Ce n'est pas grave, au prochain reboot ça devrait être remis d'équerre. Ici, il faut ajouter ton utilisateur
lio
au groupe
tty
avec la commande :

sudo usermod -aG tty lio


Tu peux alors contrôler que tu appartiens bien à ce groupe avec la commande
groups
(il faudra peut être te délogguer/relogguer).

ls -l /dev/tty0


Non,
/dev/ttyUSB0
(le serial vers ton appareil), pas
/dev/tty0
(qui est une console en mode texte).

dmesg | tail


Cette commande confirme que ton noyau semble prendre en charge le matériel et que le device associé est
/dev/ttyUSB0
.

import pyserial


Je ne sais pas où tu as tapé cela, mais tu dois l'écrire dans un fichier python (donc créer un fichier texte qu'on appelera par exemple
mon_script.py
).

Avant de te lancer dans le python, tu peux aussi regarder cette discussion, qui propose d'autre manière de manipuler
/dev/ttyUSB0
que via un script python (ça peut être pas mal d'utiliser
screen /dev/ttyUSB0
pour voir quelles commandes tu peux taper et ce qu'elles retournent de manière interactive. Une fois que tu sauras quelles commandes exécuter, il sera temps de scripter tout cela en python. Pour cela crée le fichier
~/mon_script.py
:

gedit ~/mon_script.py &


Pour information :
  • ~
    correspond au dossier personnel de l'utilisateur courant (
    lio
    ), donc à
    ~lio
    , qui lui même correspond à
    /home/lio
    conformément à ce qui est indiqué dans
    /etc/passwd
    ; tu peux donc écrire
    gedit /home/lio/mon_script.py &
    ce sera pareil.
  • Le
    &
    en fin de commande permet de détacher
    gedit
    du terminal, ce qui signifie que le terminal peut continuer à être utilisé pendant que
    gedit
    tourne, et que
    gedit
    reste ouvert si le terminal est fermé.
  • Le nom du script est bien entendu arbitraire, nomme-le comme tu veux et adapte la suite en conséquence.


Dans le fichier
~/mon_script.py
, tu dois reporter le code python indiqué dans le tutoriel que je t'ai pointé et qu'on va légèrement compléter histoire de se mettre bien :

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import pyserial

ser = serial.Serial('/dev/ttyUSB0', '9600', timeout=2)
ser.write('your command\r\n'.encode('ascii'))  # convert to ASCII before sending it
buf = ser.read(100)  # read 100 bytes

print(buf.decode('utf-8'))


Il faudra adapter
"your command"
par la commande que tu veux exécuter sur ton appareil.

Pour que ce script fonctionne, il faut ensuite installer
python3
et
pyserial
:

sudo apt update
sudo apt install python3 python3 python3-serial


Enfin il ne reste plus qu'à lancer le script :

chmod a+x ~/mon_script.py
python3 ~/mon_script.py


Il ne restera "plus" qu'à comprendre comment extraire des informations, mais pour le savoir, il faudra me montrer ce que retourne ton script python...

Bonne chance
Sincèrement, merci pour ton temps et surtout ta patience à mon égard ! ;)

ci-après ce que j'obtiens:

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ sudo udevadm info --query=all --name=ttyUSB0
[sudo] Mot de passe de lio :
P: /devices/pci0000:00/0000:00:10.0/usb2/2-1/2-1:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
L: 0
S: serial/by-path/pci-0000:00:10.0-usb-0:1:1.0-port0
S: serial/by-id/usb-1a86_USB_Serial-if00-port0
E: DEVPATH=/devices/pci0000:00/0000:00:10.0/usb2/2-1/2-1:1.0/ttyUSB0/tty/ttyUSB0
E: DEVNAME=/dev/ttyUSB0
E: MAJOR=188
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=2074643095
E: ID_BUS=usb
E: ID_VENDOR_ID=1a86
E: ID_MODEL_ID=7523
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI
E: ID_VENDOR_FROM_DATABASE=QinHeng Electronics
E: ID_MODEL_FROM_DATABASE=HL-340 USB-Serial adapter
E: ID_VENDOR=1a86
E: ID_VENDOR_ENC=1a86
E: ID_MODEL=USB_Serial
E: ID_MODEL_ENC=USB\x20Serial
E: ID_REVISION=0264
E: ID_SERIAL=1a86_USB_Serial
E: ID_TYPE=generic
E: ID_USB_INTERFACES=:ff0102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=ch341
E: ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class
E: ID_PATH=pci-0000:00:10.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_10_0-usb-0_1_1_0
E: ID_MM_CANDIDATE=1
E: DEVLINKS=/dev/serial/by-path/pci-0000:00:10.0-usb-0:1:1.0-port0 /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
E: TAGS=:systemd:


lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ sudo usermod -aG tty lio
lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ groups
lio adm tty cdrom sudo dip plugdev lpadmin lxd sambashare


lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ dmesg | tail
[ 2066.758110] usb 2-3: USB disconnect, device number 2
[ 2066.758484] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 2066.758522] ch341 2-3:1.0: device disconnected
[ 2073.278111] usb 2-1: new full-speed USB device number 3 using xhci_hcd
[ 2073.450673] usb 2-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64
[ 2073.450680] usb 2-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 2073.450683] usb 2-1: Product: USB Serial
[ 2073.459858] ch341 2-1:1.0: ch341-uart converter detected
[ 2073.473969] usb 2-1: ch341-uart converter now attached to ttyUSB0
[ 2766.450921] audit: type=1400 audit(1625487654.618:75): apparmor="ALLOWED" operation="open" profile="libreoffice-soffice" name="/usr/share/libdrm/amdgpu.ids" pid=13330 comm="soffice.bin" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0


__________________________________________________________________________

J’ai créé le script python comme indiqué et sauvegardé le fichier
mon_script.py
dans
/home/lio/
.

Python3 et python3-serial sont installés et à jour :


lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ sudo apt install python3 python3 python3-serial
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
python3 est déjà la version la plus récente (3.8.2-0ubuntu2).
python3-serial est déjà la version la plus récente (3.4-5.1).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.



Dans le script
mon_script.py
je ne sais pas quoi indiquer à la place de
your command\r\n


Et lorsque je le lance ça donne ça :

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ chmod a+x ~/mon_script.py
lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ python3 ~/mon_script.py
Traceback (most recent call last):
File "/home/lio/mon_script.py", line 4, in <module>
import pyserial
ModuleNotFoundError: No module named 'pyserial'
lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$


et bien sûr ma tentative de
sudo apt install pyserial
ne donne rien...

lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$ sudo apt install pyserial
[sudo] Mot de passe de lio :
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet pyserial
lio@lio-VivoBook-ASUSLaptop-X411QA-A411QA:~$
Pour vérifier que votre collecteur de données est bien configuré, vous pouvez entrer la commande "od < /dev/ttyUSB0" et patienter quelques minutes pour voir les données arriver.

Voici ce que j'obtiens (avec un collecteur d'un modèle différent du vôtre) :
[linux@optiplex doc]$ od < /dev/ttyUSB0
0000000 051012 071401 001334 001401 001015 005100 000522 156164
0000020 000402 006403 040002 051012 072401 002277 171000 000457
^C


Reste bien entendu à traiter ces données par un programme approprié.