Salut, et bienvenue sur ZdS !
Tout d’abord, je te suggères de clarifier un peu ton message. On le devine en regardant tes captures d’écran, mais pourrais-tu indiquer explicitement quelques trucs comme le langage utilisé sur le RPi ou le bus de communication stp ? Quelle erreur obtient-tu quand tu lances ton programmes Python ? Une erreur de la lib serial, rien du tout ?
Aussi, je te suggères de copier ton code dans ton message, dans une balise code
. Ça permettrait à tout le monde de le lire plus aisément.
Tout d’abord, j’ai l’impression qu’il y a des problèmes d’indentation dans ton programme. Par exemple, le code qui suit le bloc try/except
n’est pas indenté, ce qui devrait déjà lever une IndentationError.
Pour récupérer les différentes valeurs, je vois que tu fais un split(;)
, ce qui devrait aussi lever une exception. Le ’;’ devrait être entouré de guillemets. Utilises la variable str
que tu définis juste avant.
À la fin de ton programme, je vois un finally
qui ne me semble pas être précédé d’un bloc try/except
(à moins que tout le code ne soit dans le except
?).
Ce n’est pas obligatoire, mais le temps des tests, je te suggères de remplacer ta requête SQL par un print
, ça te permettrait de voir en temps réel comment Python gère les données reçues.
Enfin, la première ligne de ton while
est indentée, mais pas les autres. Ce qui veut dire que seule la ligne donnees=ser.readline()
sera exécutée en boucle, sans moyen de sortie. Il faut que tu indentes les autres lignes pour que Python les considères comme étant dans la boucle et pas après.
Ça peut paraître un peu déroutant, mais Python ne se base que sur l’indentation pour interpréter les blocs de code (contrairement au C par exemple, où ces blocs sont délimités par des accolades).
rezemika