Pour mettre au point vos projets à base d’Arduino ou d’ESP8266 sur Raspberry Pi, on peut avoir besoin d’accéder au port série pour la mise au point. Ce tutoriel devrait fonctionner sur toutes les distributions Linux et Raspbian en particulier. J’ai écrit ce tutoriel car j’avais besoin d’accéder aux messages de ma Gateway MySensors ESP8266 branchée sur le port USB de mon Raspberry Pi 3.
Si vous débutez sur Raspberry, voici une liste de commandes utiles à connaître pour débuter avec Linux.
Installer pyserial sur Raspbian
En fonction de la version de python, il existe plusieurs commandes pour installer le package pyserial. Pour connaître la version de python exécutez
python --version
Si la commande pip est disponible (exécutez pip pour voir si bash renvoie ou pas commande introuvable) exécutez (remplacez par pip2 ou pip3 en fonction de la version python employée).
sudo pip3 install pyserial
Sinon on passe par apt-get
sudo apt-get install python-serial python3-serial
Lire sur le port Série
Libérer le port Série
Avant d’aller plus loin, il faut vérifier que la console n’est pas en écoute sur le port Série. Pour cela exécutez
sudo raspi-config
Puis suivez les images
Trouver le port ttyUSB qui correspond à votre appareil
Il existe plusieurs moyens pour déterminer le port USB sur lequel l’appareil est connecté. Pour connaître toutes les possibilités rendez-vous ici. Le plus rapide est de brancher l’appareil sur le port USB puis d’exécutez immédiatement la commande
dmesg -s 1024
Vous obtiendrez ainsi directement le port tty qui sur lequel il est connecté.
Code Python pour lire le port série
Ouvrez nano
sudo nano read_serial.py
Et copiez le code suivant
#!/usr/bin/env python import time import serial ser = serial.Serial( port='/dev/ttyUSB0', baudrate = 9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) counter=0 while 1: x=ser.readline() print x
Enregistrez avec la combinaison Ctrl+X puis O en donnant un nom au fichier (read_serial.py par exemple).
Maintenant, lancez le programme pour lire les messages envoyés sur le port série par votre appareil (par exemple un Arduino).
sudo python read_serial.py
Pour quitter le programme, faites la combinaison de touches Ctrl+C.