Éteindre proprement avec une alim intermittante

Bonjour/bonsoir

(Note: ma question s’inscrit dans un projet que j’ai déjà évoqué sur le forum mais ce point précis étant susceptible de toucher d’autres personnes avec d’autres projets, je préfère écrire dans un post séparé)
Petite question que je me pose à la lecture de la doc.

(Si j’ai bien compris) Les Raspberry doivent être éteint proprement avant de couper l’alim au risque d’abîmer notamment la carte SD. Quand on envisage une application ou l’alimentation est susceptible de disparaître d’elle même (alimentation sur batterie, alimentation solaire) quelles sont les solutions pour que cela se passe bien?
il met combien de temps à s’éteindre « pépére »?
comment on peut lui faire parvenir un ordre d’arrêt?

Salut,

Un Rpi s’éteint avec « sudo poweroff » (enfin, chez moi, c’est souvent comme ça).

Le temps de coupure est court (qq secondes), mais cela dépend du type de Rpi (le zéro est plus lent que le 3B+).
Cela sera également plus long si le système est sur clef que sur carte SD.
Comme tous les Linux, le temps est plus long en fonction du nombre de services lancés.

Tu as sur le forum des gens qui ont (ça dépend de la région) des Rpi sur batterie ET alim solaire avec autonomie totale.

Sinon, le truc est de lancer un script d’extinction avant la fin de la batterie, soit par mesure de ladite batterie soit par connaissance du temps de tenue habituel.
C’est la piste à creuser je pense (a déjà été évoquée sur le forum).

Test fait avec un Rpi3B+ à l’instant :
Raspbian sur Clef USB.
Ventilo en USB et sur port GPIO (pour le test).
Attention, les éléments sur GPIO et USB continuent de pomper sur l’alim et continuent de tourner même système éteint.

A noter que le Rpi passe en diode rouge uniquement (extinction) en 10 secondes (3 tests).
Mais il était allumé depuis 30 secondes seulement.
Faudrait voir après 3h de fonctionnement avec divers services.

++

Edit :
Nouveau test.
Rpi3B+ avec Raspbian sur Clef USB.
Juste clavier + souris + écran. Rien d’autre.
Wifi et Bluetooth coupés.
40 secondes pour l’allumage complet.
10 secondes pour coupure totale avec juste la diode en rouge + extinction de la prise réseau (je suis en filaire)

Edit 2 :
Test avec Rpi allumé depuis 20 minutes.
Connexion VNC active.
Ordre lancé depuis autre PC en VNC.
Ouverture du Terminal et instruction sudo poweroff
Coupure complète en 15 secondes.

Bonjour,

Si vous estimez que votre pi est susceptible de s’éteindre dans une plage horaire donnée, la commande shutdown est munie d’options, comme pouvoir couper l’alimentation après un temps définie.

Exemple, si je veux éteindre « proprement » mon pi dans 10 minutes, je tape :

$ sudo shutdown -r +10

Pour mon installation solaire, je cherche à mesurer la tension de la batterie et informer le pi lorsque celle ci passe sous la barre des 12 Volts. Auquel cas, le pi exécute un script qui a pour fonction de l’éteindre.

@++

Bonjour. Merci pour vos réponses.

Je compte utiliser un Rpi PI zéro.
Vous semblez me confirmer que le Raspberry peut être éteint automatiquement sur détection d’un seuil de tension, ça me rassure, c’est le fonctionnement que je voulais.

Dans mon cas, je souhaite utiliser le Raspberry justement pour être le cœur de la régulation.

J’ai 2 problèmes pour ce qui est d’alimenter le Rpi par la batterie:
-ce régulateur en projet est justement prévu pour fonctionner avec ou sans batterie
-un problème de « masse ». Pour adapter la tension et ne pas perdre d’énergie, je compte réaliser un hacheur abaisseur et mon transistor de puissance coupe le négatif.

La possibilité d’utiliser une pile de 9V pour apporter l’appoint nécessaire à l’extinction me semble vraiment à la limite: les régulateur du type 7805, 78M05 (0.5A max) fournissent une tension comprise entre [4,75 à 5,25V] pour une tension d’alimentation comprise entre [7,5 à 20V] et il est recommandé de ne pas fournir moins de 4.75V au Rpi. Ce qui est certain c’est que l’on peut oublier les « piles 9V rechargeables » qui font en vérité 7.2V nominal. Je vais essayer de creuser de ce coté.

Pour la plage horaire, j’y ai pensé, mais ça demanderai de retranscrire en programmation un tableur qui permet de donner, l’heure du lever et du coucher du soleil pour chaque jour et c’est un gros morceau.

Pour la détection de tension basse batterie, je verrai plutôt un seuil de tensions plus bas, du style 11.8V

@Alynx

Bon, c’est vrai, @stef-k n’a pas tort … Je suis un gros bourrin.
Moi, quand je coupe, je coupe :slight_smile:
(mais je suis seul sur mes machines que je coupe en « poweroff »)

Différence entre halt, poweroff, reboot et shutdown ?

En fait, il est possible de résumer le tout en 2 catégories :

shutdown : pour arrêter ou redémarrer le système proprement et en alertant les utilisateurs connectés (si plusieurs sessions ouvertes)
halt, poweroff et reboot : pour arrêter le système en tuant tous les processus en cours et sans avertir personne

Pour d’avantages d’informations, lire le manuel des commandes :

man shutdown

man reboot

Source : MemoLinux

@Nabla

Tu as raison, je pense que l’architecture du pi, supporte des coupures d’alimentation, sans l’éteindre « proprement » comme le précise @Alynx
L’alimentation est solide, à condition de la stabiliser.
:smiley:

@Nabla: normalement le système devrait être autonome et fonctionner sans intervention humaine. Néanmoins, je prends ta remarque en considération, pour prendre en compte l’éventualité d’une intervention, par exemple pour modifier des programmes et qu’il me coupe à la figure à ce moment là sans me prévenir…

Par contre, je ne suis pas sur de pouvoir utiliser les instructions Linux, je ne sais pas encore dans quel langage je vais programmer (et j’y connais quasiment rien en programmation)

Oui, elle sera stabilisée.
J’avance dans mes recherches et j’ai vu que les régulateurs L7805A (les A pas les autres) pourraient être plus adaptés, car il délivrent une tension régulée à +/- 2% à priori plus acceptable que les autres familles de régulateurs 78xx régulée à +/- 4%. Le détail qui me chagrine, c’est qu’il sont limités à 1.5A (les L7805A) alors que le Rpi zéro ne consomme que 0.16A, ça peut faire plus mal à la carte en cas de problème.

En tout cas, je sais maintenant que c’est possible de programmer un arrêt propre.

j’avance mais tout doucement.

@Nabla:
peut tu me précisé si la sortie +3.3V du Rpi s’éteint au même moment que lui, au dernier moment? (pour savoir si je peux m’en servir pour couper l’alim après son arrêt)

@stef-k:
bah, j’ai tendance à essayer d’être soigneux,
c’est quand même déconseillé sur le site officiel
https://www.raspberrypi.org/documentation/installation/sd-cards.md

Bonsoir tout le monde
vous allez sans doute éclater de rire à la lecture de ce qui suit mais tant pi()
si j’avais ce problème à gérer, j’utiliserai un arduino nano + 1 détecteur de tension FZ0430 5 +1 relais KY-019 5 v + 1 pile lithium 9V rechargeable total une dizaine d’€
et encore, que l’arduino peut peut-être sans relais faire le shunt sur le GPIO
un nodeMCU permettrait en outre de contrôler le truc par internet avec mail d’alerte et gestion à distance
bon, ce n’est peut-être pas très conventionnel pour un site pro-RPI :sunglasses:

Perso, c’est surtout que je n’ai pas compris

par contre, je me suis rendu compte que pile 9V, ça ne convient pas:
le courant (maxi) consommé, même par le plus économe en énergie des Rpi est de 160mA et ce courant met à genoux une pile de 9V en quelques minutes.

Je suis plutôt réfractaire au piles lithium, sauf pour une application qui demande un très faible courant et qui demande et permet de conserver une pile très longtemps. Le lithium est à la fois mauvais pour l’environnement, plus cher et d’un tempérament assez explosif. (Ne le prends pas comme une attaque perso)

Pour éviter des batteries, je pense que 8 piles AA ou AAA couplées ensemble seraient suffisantes. Pour couper le courant, j’y travaille encore…
peut être un montage avec des transistors en Darlington ou passer par un optocoupleur… (je posterais le schéma quand ça sera plus éclairci)

à première vu ta solution me semble un peu compliquée, mais je suis quand même intéressé pour écouter tes explications sur ton idée.

Pourquoi se moquer??
On dit que la moquerie est le propre des ignorants…
Bon, je suis peut être ignorant pour une autre raison, puisque je ne comprends pas ta solution, mais bon…

la pile n’alimentait que le nano
pour le reste, c’est une piste que je te donne, je n’ai pas le temps de m’y pencher plus

Je cherche des trucs pour connecter proprement et tester.
Sur 5V et masse, les ventilo se coupent puis se relancent et restent actif tant que l’alim n’est pas débranchée

Edit :
Modification d’une LED de PC (Power LED).
J’ai scindé le connecteur en 2.
Branché sur Masse et sur 3,3V
Test sur Rpi3B+ avec Raspbian Graphique
Test sur Rpi3 avec Raspbian Lite (pour MotionEye)
LED allumée dès que le jus passe.
Elle reste allumée (comme la led de fonctionnement rouge du Rpi) même après la coupure totale.
C’est idem sur mes 2 Rpi.
Je ne vais pas tester sur mes Rpi Zero qui n’ont pas de port GPIO (enfin, juste les trous, pas les picots)

J’ai regardé un peu les plans des Rpi3 et du Rpi0.

Sur le Rpi0, il y a un connecteur J2 intitulé « 2W pin header » (je comprend pas ce que ça veux dire), la borne 2 est connectée à la masse, la borne 1 semble être connectée à une sortie (ou une entrée?) « RUN » et à une résistance de 10 Kohm.
Peut être que cela serait exploitable?

Sur le Rpi3, ce connecteur existe aussi, il est notamment raccordé sur le « RUN » du circuit U1N (BCM2837, c’est le processeur?), sur la broche « PP21 » et sur un truc qui doit alimenter la carte SDRAM puisqu’il s’appelle « SDRAM_LDO_EN » (et LDO, ça veut dire régulateur à faibles pertes)

Donc « PP21 », ça voudrait dire quoi? vu les dessin les PP, c’est sûrement des pinoches, mais ça ne correspond pas avec les broches du GPIO que l’on peux voir ici:
https://fr.pinout.xyz/

Sinon, c’est peut être possible d’utiliser le signal d’horloge? (même si sur le principe, c’est pas super top) S’il s’arrête lorsque le Rpi s’arrête, ce qui est fort probable, c’est gagné, une diode (rapide) un condo et ça me suffit. Avec le modèle de transistor MOS (un IRF7401) que j’ai trouvé, avec 2.7V minimum et 25µA de conso, on peut piloter facilement une alim de plusieurs ampères. Seul problème, c’est du CMS, j’ai rien trouvé d’autre avec un seuil de fonctionnement aussi bas.

Salut,

Au fait,
Mon Rpi3B+ fonctionne sur Clef USB et sur Carte SD.
J’ai remarqué que si je tourne sur carte SD, le ventilo branché en USB se coupe à l’extinction de Raspbian alors qu’il poursuit sa danse si je suis sur clef.
Faut que je reteste pour les ports GPIO.

Edit :
Rpi3b+ fonctionnant sur carte SD
Ventilo sur USB = se coupe à l’extinction
Ventilo sur 5V et masse = ne s’arrête pas.

Edit2 :
idem
Rpi3b+ fonctionnant sur carte SD
Ventilo sur USB = se coupe à l’extinction
LED sur 3,3V et masse = ne s’éteint pas.

Edit3 :
Autre test
Rpi3b+ fonctionnant sur clef USB
Ventilo sur USB = se coupe furtivement à l’extinction puis se relance
LED sur 3,3V et masse = ne s’éteint pas.

On a donc une différence de fonctionnement sur système sur carte ou sur Clef

1 « J'aime »

C’est intéressant, pour un système sur carte, l’USB me semble facilement utilisable.

Effectivement, c’est différent. Je crois que certains ordinateurs peuvent être configurés pour laisser ou non leur port USB alimentés lorsqu’ils sont éteints. Dans le cas d’un Rpi ou le système réside sur une carte USB, il n’y a peut être pas le choix.

Et avec un système sur carte SD, si tu connecte du matériel USB (une clef ou un clavier), est-ce qu’il coupe l’alimentation comme quand ill n’y a rien?

Voici le schéma mais j’ai des doutes:
-sur la nécessité d’ajouter une diode « anti-retour » sur le circuit des piles
-sur l’utilisation correcte du transistor MOS

Re,

Test fait avec système sur Clef.
Le ventilo et la souri se coupent … et … se relancent !

Test fait avec système sur carte SD
Le ventilo et la souri se coupent … et … se se relancent pas !

(je n’ai pas de diode sur ce clavier)

pour le schéma électronique … heu … je passe mon tour :slight_smile:

1 « J'aime »

Merci pour ces infos.