UART USB : un port série supplémentaire pour mon Raspberry Pi

UART USB RPi

UART USB : un port série supplémentaire pour mon Raspberry Pi

Votre Raspberry Pi possède quelques soit sa version un port série.
Ce port permet de prendre le contrôle de votre Raspberry Pi mais, ça reste une utilisation marginale.
En effet, ce port est à coup sûre plus utile dans les communications entre processeurs et d’autres microcontroleurs que ce soit des arduino ou des micro plus classiques comme les ARM.

Cependant si vous utilisez le port série de votre GPIO, cela vous prive de 2 broches IO de votre Framboise.
De plus, co porte peut ne pas être disponible. En effet, si vous utiliser un Hat, votre port GPIO n’est plus aisement accessible.

Pourtant, il existe des solution simple.

Le port RS232 n’est plus accessible! Une solution simple

En effet, des modules complémentaires à brancher existent. Il suffit les brancher sur le port USB pour transformer votre pour USB en un port RS232 virtuel.
On nomme ces modiles UART – USB.
Dans mon cas, j’utilise un modèle à moins 10€ qu’on peut trouver sur amazon.
Ce module m’est utile pour debugger la sortie RS232 d’un ARM (STN32L432KC), plus particulièrement ça me permet de voir si les données envoyées sur le port RS232 sont bien celles attendues.

UART USB RPi

Je vais vous montrer comment réaliser cette tâche.

Mise en pratique

Vous allez voir, c’est très très simple :

  • On branche le module sur le port USB du RPI. Il est détecté automatiquement. Nul besoin d’installer qqch. Pour ceux qui on pratiquer le port USB à ses débuts, je peux vous dire que c’est le bonheur.
  • On va utiliser un utilitaire pour lire le pors RS232 émuler sur USB.

Pour cela :

grabserial -v -d "/dev/ttyUSB0" -b 115200 -w 8 -p N -s 1 -e 30

Cette commande signifie que vous allez exécuter un grab, une lecture, du port /dev/ttyUSB0 (le port série émulé) avec le formalisme RS232 suivant :

  • 115200 bauds de vitesse
  • 8 bits de données
  • Parité pair
  • 1 bit de stop

le tout pour une durée de 30sec.

Le résultat de cette lecture est affiché dans la fenêtre de votre console. Si vous voulez logger les données dans un fichier il suffit de rediriger le flux vers un fichier.
De cette façon :

grabserial -v -d "/dev/ttyUSB0" -b 115200 -w 8 -p N -s 1 -e 30 >> mon_fichier.log

#Et pour écrire sur ce port?

L’application grabserial permet de rapidement faire un log. Pour des applications de lecture et d’écriture spécifique vous serez obliger d’écrire votre propre code.
A mon sens le plus simple étant d’utiliser Python et la libraire pyserial.

Alors prêt à manipuler une UART USB.

Alimentation solaire pour Raspberry Pi

Lipo Alimentation solaire RPi

Alimentation solaire pour Raspberry Pi

Votre Raspberry Pi est peu être le compagnon idéal pour des applications outdoor pour le data logging de données en tout genre :
– station météo
– mesure de la quantité de Co2 dans l’air
– mesure de la présence de poussière

Ou tout ce que vous voudrez…

Cependant, dès le début de la conception de ce genre d’application, vous vous poserez sans doute la question de l’alimentation du Raspberry Pi.

Naturellement, la première solution est de penser à une batterie par exemple une Lipo qui ont l’avantage d’être légère pour une autonomie importante.
On va trouver des solutions pour pour 5000mAh pour une centaine de gramme et quelques dizaines d’euro (je ne donne pas de prix exact car le prix varie énorméément selon le sourcing).
Avec une 5000mhA vous pourrez sans problème alimenter votre Raspberry Pi une quinzaine d’heures un Pi Zero une vingtaine d’heure. On peut même envisager encore plus avec des optimisation de consommation.

Vient ensuite la problématique de la recharge de la batterie Lipo. Alors attention, on recharge pas une batterie Lipo n’importe comment.

Un peu de sécurité sur les batteries Lipo

Il faut respecter une tension de charge et avoir un courant de charge en adéquation avec votre modèle de batterie.
Il faut également que la batterie ne soit pas trop chaude pour être rechargée.

Pour le courant ou la tension c’est votre chargeur qui devra remplir ce rôle.
Pour la température, vous devez vous assurez que la batterie est équipé d’un composant qui coupe la possibilité de charge si la température est trop importante (Les batteries Lipo 3.7V sont généralement équipées de ce genre de composants)

Pour résumé, il vous faudra donc un module de charge de batterie.

Il vous faudra également une source d’alimentation pour votre chargeur. Étant à l’extérieur les panneau solaires constitue une bonne source d’alimentation.
Il faudra seulement veiller à avoir une puissance crête en adéquation avec votre application et une régulateur de tension en amont de votre chargeur de batterie.

Quel montage?

La vidéo youtube disponible ci-dessous montre le montage que j’utilise :

  • 2 panneaux solaires 12V-1.5W
  • 1 régulateur DC-DC 5V
  • Une carte de charge Lipo et alimentation Rpi
  • un consomètre USB
  • Batterie Lipo 5000mAh en 3.7V

Charge et alimentation simultanée?

Oui et non. On ne peut pas charger et «tirer du jus» sur une batterie simultanément.
Cependant le panneau solaire peut charger la batterie et en cas de puissance suffisante, alimenter le RPi avec le courant disponible.

Un peu de lecture sur le sujet : ICI

Oui mais …

Et oui, il y a un mais! La carte que j’utilise n’a pas la capacité de couper le circuit du panneau solaire en cas de puissance trop peu suffisante pour alimenter le Rpi.
Du coup, la batterie étant en charge elle ne peut alimenter le RPi ce qui a pour effet de passer le RPi hors tension…

Dans ma quête d’autonomie, il me sera dons nécessaire de commander le circuit d’alimentation en fonction du la charge disponible sur la ligne des panneaux solaires.
Comment ? Mesure de courant ? Commande de relais ?
À voir, je suis encore en cours de réflexion.

Et vous? avez vous déjà réalisé l’alimentation solaire pour Raspberry Pi?
Lipo Alimentation solaire RPi

[Vim] Trouver remplacer à partir de la position courante

[Vim] Trouver remplacer

[Vim] Trouver remplacer à partir de la position courante

 [Vim] Trouver remplacer

Une fonctionnalité très connue de vim pour trouver et remplacer (substituer donc) une chaine de caractère est

:%s/\vBEFORE/AFTER/gc

Je vous donne une variante qui permet de faire la substitution qu’à partir de la position en court et de parcourir en direction de la fin du fichier. De plus une confirmation est demandée afin de ne remplacer que si nécessaire

:,$s/BEFORE/AFTER/gc|1,''-&&

Source :

Récupérer sur sur ce fil stackoverflow

Bouton reset raspberry

reset, start raspberry

Bouton reset raspberry

Quelques lignes pour pour montrer comment solutionner le problème de reset du Rpi afin d’éviter le «vieux unplug à chaud et bien dégueulasse» qu’on est tenter de faire si on conserve la configuration du raspberry.

En effet, débrancher et rebrancher votre raspberry pi à chaud risque d’endommager de façon définitive le système d’extension. De plus d’un point électriques, vous mettez à mal l’intégrité de votre nano-ordinatteur.

Mais, il existe des solution. Voyons en délais.
Cas du raspberry Zero 1.3 et Zero W

Le raspberry Zéro (1.2, 1.3 et w) possède juste coté du port GPIO, 2 broches intitulés «run» (voir photo). En fermant le circuit au niveau de ces broches, vous faites un reset de votre Rpi. Pour réaliser cette fermeture de circuit, c’est très simple : il suffit d’ajouter un bouton poussoir qui est à l’état ouvert par défaut 1.

reset, start raspberry
Près du GPIO les bornes «run» permettant de réaliser un reset

Attention cependant, un reset de type hard n’est pas vraiment meilleur. Je vous conseille donc de réaliser :

sudo reboot

autant que faire se peut avant d’employer l’arme nucléaire!

De la même façon, ce bouton permet de démarrer le Rpi après l’avoir éteint à l’aide de la commande système :

sudo halt

Pour finir une petite démo en vidéo :

Cas du raspberry pi 3

Pour le raspberry Pi 3 (et pour le 2 également), vous pouvez réaliser cette manip/modification en connectant le bouton poussoir sur le RPi a l’aide des broches nommées P16 que vous pouvez trouver au dos de la carte de votre mini-ordinateur.

Vous trouverez ICI un article détaillé et publié sur le site framboise314.fr
Et si on le commandait électronique ce bouton?

Il faudra être patient c’est dans les tiroirs car je dois solutionner ce problème pour redémarrer de façon périodique mon RPi qui est en charge des acquisitions de données météo de la maison!

Patience ça viendra dans quelques semaines.

Bon alors prêt à ajouter ce bouton sur votre raspberry?


  1. Ce serait bête de devoir maintenir le bouton enfoncer pour que votre Rpi reste allumé…