まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

samedi, 18 août 2018

Un bouton power on/off pour le Raspberry Pi

Je suis en train de travailler à l’élaboration d'une carte de type « Pi Hat », équivalent du « Schield » pour Arduino, à savoir une carte qu'on enfiche par dessus le Raspberry.
Cette carte destinée au Rpi Zero, comportera une sortie Audio avec son amplificateur, deux connecteurs FCP pour connecter un écran LCD de type SPI - ILI9341, un connecteur pour déporter des GPIO sur une nappe de fil, et enfin un connecteur d'alimentation 5V avec un système de bouton On/Off sécurisé.
Tout ceci dans le but d’intégrer un montage dans une maquette…

Après beaucoup de temps perdu à tenter de comprendre ce dessin, en vue de bien sûr tester le concept, j'ai dû me résoudre à le redessiner complètement, en respectant les normes de représentation. Le voici : ( ouf ! )
RpiOnOffRelay.png

  • Fonctionnement :

- Pour mettre en route le Rpi, effectuer une pression longue sur le bouton SW1, afin de laisser le temps au signal TXD0 de passer à l'état haut et de faire coller le relais qui maintiens alors le Rpi alimenté en énergie.
- Pour éteindre le Rpi, le bouton SW1 étant connecté sur une sortie GPIO, il suffit de le presser normalement pour déclencher un arrêt propre de GNU/Linux grace au script Python3 ci-dessous.
- Une fois arrêté, le signal TXD0 passe donc à l'état bas et le relais se décolle alors, coupant l'énergie du Rpi.
- Le bouton SW2 sert à couper brutalement le courant, en cas de plantage du Rpi
- Ce montage ne gère pas le reboot. Effectuer un redémarrage éteindra donc le Raspberry, car durant le redémarrage TXD0 passe à l'état bas…
Édit : Passer C2 à 220µF et le relais attendra 5 secondes avant de couper , ça devrait permettre un reboot sans coupure.

  • Prérequis :
sudo apt-get install python3 RPi.GPIO
  • Écrire le script :
nano /home/pi/SoftOffButton.py

Avec dedans :

import RPi.GPIO as GPIO
import time
import os
import signal

print ("Soft Off Button")

GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

def button_pressed(channel):
    print ("Boutton Off pressé")
    os.system("sudo shutdown now")

GPIO.add_event_detect(21, GPIO.RISING, callback=button_pressed, bouncetime=300)

signal.pause()

Pour démarrer automatiquement le programme python dés le démarrage du Raspberry, il faut créer un service :

sudo nano /etc/systemd/system/SoftOffButton.service

Avec dedans :

[Unit]
Description=Démarre le script SoftOffButton
[Service]
ExecStart=/usr/bin/python3 /home/pi/SoftOffButton.py
[Install]
WantedBy=multi-user.target

Installer le service au démarrage :

sudo systemctl --system daemon-reload
sudo systemctl enable SoftOffButton.service

Pour manipuler le service :

sudo systemctl status SoftOffButton.service
sudo systemctl start SoftOffButton.service

20180818_141218.jpg

  • Ce montage fonctionne très bien, et vu le temps passé dessus j'ai voulu le partager à ceux qui pourraient en avoir besoin.

Je ne compte pas l'utiliser pour mon « Pi Hat », car le relais prendrait trop de place, et j'envisage une solution plus souple et élégante à base de microcontrôleur.

samedi, 3 mars 2018

WebRadioRéveilWifi -5-

Suite de l'étude précédente :

L'Horloge/Réveil étant fin prête, il est temps de réviser la configuration de la WebRadio.
J'ai tout repris de zero… C'est qu'il s'est passé pas mal de temps depuis les premières expérimentations, et pas mal de version de Raspbian sont passées sous les ponts !

Pour rappel, j'ai décidé d'articuler la WebRadio autour d'un Raspberry Pi 1 (où Rpi zeroW car le 1 n'est plus en vente), de quelques boutons d'interactions, d'une cellule infrarouge et d'un écran LCD (facultatif) bon marché type radar de recul.

  • On va ici étudier la partie software, la partie hardware concernant le câblage des GPIO, relais et interfaçage horloge, pilotée par le programme mpc.py venant au prochain billet.

1 - Installer et configurer Raspbian Lite :

  • Déployer l'image sur une carte SD depuis un système GNU/Linux, avec la commande DD

(attention, of=/dev/sdx à adapter pour la cible de votre carte SD, en cas d'erreur risque d'effacement d'un disque dur non désiré)

dd bs=4M if=2017-11-29-raspbian-stretch-lite.img of=/dev/sdx; sync
  • Placer la carte SD dans le Raspberry, et le mettre sous tension.

Exécuter raspi-config, et configurer tous les trucs comme on veut, notamment les variables locales (time zone, clavier, etc), et surtout le login automatique de l'utilisateur.

sudo raspi-config

raspi-config01.png
raspi-config02.png
raspi-config03.png

Après le reboot, pour rappel :

Login : pi
Pass : raspberry

Lire la suite...

jeudi, 13 juillet 2017

USB Virus Scanner - RaspberryPi

20170713_110755.jpg Cernés que nous sommes par les machines sous Windows®, en ce temps ou les virus courent si vite et où les cléUsb circulent trop facilement, il est souvent difficile de faire appliquer les règles de sécurités élémentaires à l'humain lambda, tant elles sont perçues comme barbantes et contraignantes, souvent à juste titre…
Pour autant rien n'est perdu, un petit objet simple d'utilisation et d'aspect plutôt ludique pourrait se révéler être un pon début sur le chemin de la sensibilisation à la sécurité informatique.

L'appareil :

  • L'idée serait donc d'avoir un boîtier pour scanner ou formater une cléUsb par la simple pression d'un bouton :

1- Une clé USB est insérée dans l’appareil.
2 - Un menu s’affiche automatiquement, il propose soit de formater la clé, soit d'effectuer un scan anti-virus.
3 - Il est possible d'afficher la date de la base de donnée des définitions de virus.

20170711_095740.jpg

  • Pour cela nous allons utiliser :

- Un ordinateur RaspberryPi3.
- Une Carte microSD de 8 Go ou plus.
- Une Interface écran/boutons Pifacecad. (« Piface Control & Display 2 » chez Farnell)
- Le boîtier adéquat.

  • À l'aide :

- Du système d’exploitation Raspbian.
- De la librairie Pifacecad.
- De la librairie WiringPI.
- Du logiciel anti-virus ClamAV.

20170711_095637.jpg 20170713_110936.jpg

Comment ça marche ? :

  • Il serait trop long de décrire ici l'ensemble du fonctionnement du système, c'est pourquoi vous trouverez un PDF à consulter en annexe de ce billet.

En bonus une archive avec les scripts logiciels (bash et python3).
Et cerise fraise sur le gâteau, une image disque à coller sur votre carte SD !

  • Cependant voici un bref descriptif fonctionnel :

UsbVirusScanner_scripts.png [ Bash ]
/home/pi/autocle/poweroff.sh, Scrute le GPI021 et déclenche BoutonShutdown.py.
/usr/local/bin/autocle.sh, Stoppe le Bouton5.service et lance autocle.py.
/usr/local/bin/ejectcle.sh, Stoppe autocle.service, lance ejectcle.py et Bouton5.service.

[ Python ]
/home/pi/autocle/autocle.py, Programme principal.
/home/pi/autocle/BoutonShutdown.py, Affiche « le système va s'éteindre » et halt.
/home/pi/autocle/ejectcle.py, Efface et éteint l'écran.
/home/pi/autocle/InitSysteme.py, Affiche « démarrage en cours » et lance VirusDatabase.py.
/home/pi/autocle/ShutdownMessage.py, Affiche « Attendre 30 sec pour debrancher ».
/home/pi/autocle/VirusDatabase.py, Affiche la date des déf de virus puis « système opérationnel ».

Lire la suite...

lundi, 15 août 2016

Un Raspberry Pi 2 en MediaCenter

dsc00067.jpg

  • Avec l’avènement du Raspberry Pi2, mon vieux médiacenter, lui-même PC recyclé (P4@2,66GHz) fait pas mal grise mine…

Incapable de lire des vidéo h264 qui dépasse le 720p, bruyant, énergivore (environ 80W), couplé à un vieux poste de télévision cathodique qui consomme aussi pas mal (environ 90Watt continu).
Utiliser un RpiPi2 (moins de 5W) donc me permettrait de laisser de côté tous ces inconvénients, cependant j'avais besoin d'une prise HDMI et c'est après avoir récupéré un vieux poste de télévision LCD (HD Ready, 720p et 1080i max, tuner mpeg2 obsolète, 50W en mode éco) que j'ai envisagé de changer mon système de médiacenter.

Entre temps, bonne nouvelle, plus besoin de bidouiller, ma clé wifi TP-Link est désormais reconnue par le kernel des derniers système GNU/Linux désigné pour RpiPi !

  • Voici donc l'histoire d'une migration, ou plutôt d'une lente progression…

1 - Choix du système d'exploitation :

À ma connaissance il y a deux possibilités, utiliser Raspbian Lite et à la main installer le logiciel médiacenter Kodi et tout le reste; Ou alors utiliser une distribution dédiée telle que Openelec ou RaspBMC. La première solution serait calquée sur ma démarche avec l'ancien médiacenter, mais puisqu'on me dit qu'Openelec offrirait de bien meilleures, j'ai donc choisis cette dernière…
Et après une semaine à m'échiner à faire fonctionner le truc, j'ai lâché l'affaire…
Pourtant j'avais réussis à tout faire fonctionner, télécommande, récup de la base, tout ça… sauf une chose, le partage réseau !
Avec ma config je n'ai pas le choix, je suis obligé de passer par un partage ssh, soit en sftp depuis l'interface de Kodi, qui s'évertue à monter ce partage en lecture seule…
Impossible de me rabattre sur le NFS, car mon stockage est chiffré, et NFS ne fonctionne donc pas.
Openelec étant verrouillée de partout, impossible d'installer un soft ou même d'écrire sur le disque, afin de monter un partage sshfs… Merci pour le temps perdu, au revoir !

Donc Raspbian Lite :) Ça je connais, et on va tout faire à la main, quoi de mieux que d'être servis par soit même !??

Lire la suite...

- page 2 de 5 -