Affichage Dynamique  [RESOLU]

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
yuripa
Messages : 7
Enregistré le : sam. 25 août 2018 14:59

Affichage Dynamique

Message par yuripa » sam. 16 mai 2020 15:20

Bonjour à tous,

J'ai un petit script qui fonctionne très bien.

Quand je suis avec Thonny Python IDE, je fait afficher ceci toutes les 1 secondes. Ps: La valeur de T change constamment.

print(' ')
print('Hygrométrie', T)
print(datetime.now())
if GPIO.input(BP_Auto) == 1:
print('Mode AUTO')
if GPIO.input(BP_Manu) == 1:
print('Mode MANU')
if jourok == 1:
print('Jour AVEC arrosage')
if jourok == 0:
print('Jour SANS arrosage')
print(' ')
print('-----------------------------')


Mon script démarre automatiquement au démarrage de mon Rpi, donc sans démarrer Thonny Python IDE.
J'aimerai avoir un affichage des print('bla bla bla') dans une fenêtre qui s'ouvrirait au démarrage de mon script, mais je ne trouve pas de solution.

Si quelqu'un peux m'aider.

Merci d'avance

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Affichage Dynamique

Message par Bud Spencer » ven. 29 mai 2020 18:38

Personne pour lui filer un coup de main ? trop compliqué ? :roll:
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Affichage Dynamique

Message par domi » ven. 29 mai 2020 21:14

Compliqué je ne sais pas, mais pas trop ma parti ;)
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

jelopo
Raspinaute
Messages : 307
Enregistré le : mer. 11 oct. 2017 10:23

Re: Affichage Dynamique

Message par jelopo » sam. 30 mai 2020 07:55

Bonjour,

Je sais pas trop non plus. Mais je me lance...
Pour ma part, plutôt que de lancer un script, je lancerais un terminal qui lance le script.

Un truc du style:

Code : Tout sélectionner

lxterminal -e <chemin_absolu>/<nom_du_script>
A+

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Affichage Dynamique  [RESOLU]

Message par Bud Spencer » sam. 30 mai 2020 10:34

Le lancement d’un programme au démarrage du PI est une question qui revient très souvent. Le probleme c’est qu’il y a une multitude de besoins différents et en plus suivant les distris et les versions, il y a une multitude de façons de faire.

Ici, si je comprends bien, l’idée c’est de lancer un script qui s'affiche automatiquement en console une fois la séquence de boot fini. On regrette le bon vieux temps de MS-DOS ou il suffisait de rajouter une ligne dans l’autoexec.bat ( … en fait non, on regrette pas du tout :lol: ). La on parle bien de programme au démarrage et non pas de service puisqu'il est justement sensé etre attaché a une console

Donc ca sous entend que le PI doit démarrer en mode console et non pas en mode desktop et que l'utilisateur PI soit défini en auto-login. Ces 2 options sont configurables avec raspi-config.

Ensuite, on peut faire très simple.
Imaginons un petit script python qui affiche date heure toute les secondes.

Code : Tout sélectionner


import time
while True:
    time.sleep(1)
    print('Date Time %s' % time.ctime())

Je ne nomme dateheure.py et le met dans la racine de home de pi :
( /home/pi/dateheure.py )

J’exécute mon script pour tester, $ python dateheure.py ok il fonctionne ( \o/ encore gagné :mrgreen: ).

Si je veux qu’il s’exécute en ouverture de session (donc juste après l’auto login), je créé un fichier batch que j’appelle par exemple mystart.sh que je mets aussi dans la racine de home de pi ( /home/pi/mystart.sh ) et dedans je mets juste une commande pour lancer mon script pyhton

Code : Tout sélectionner


#!/bin/bash
python dateheure.py

une fois le batch enregistré, je le rend exécutable : $ chmod +x mystart.sh

et pour finir j’édite le fichier /etc/profile ( $ sudo nano /etc/profile ) et à la fin du fichier j’ajoute une ligne :
. /home/pi/mystart.sh
profile.png
profile.png (9.8 Kio) Vu 5485 fois
Attention de ne pas bricoler le reste du fichier si vous êtes débutant !


Je sauvegarde le fichier, je reboot et le tour est joué.
Si le programme est une boucle, il suffit d’un ctrl+c pour sortir

C'est simple et efficace, mais attention ! Chaque console ouverte meme en ssh démarrera une instance du programme ...

oopss je n'avais pas vu ca
yuripa a écrit :
sam. 16 mai 2020 15:20
J'aimerai avoir un affichage des print('bla bla bla') dans une fenêtre qui s'ouvrirait au démarrage de mon script, mais je ne trouve pas de solution.
Donc si "fenêtre", ca sous entend 'environnement graphique'. Pas de problème, la seule chose qui change, c'est la ligne de commande et le fichier dans laquelle on va l'écrire. Le mieu est de garder le meme principe d'un batch enregistré dans le home de l'utilisateur pi et plutôt que d'appeler la commande depuis le fichier /etc/profile, il suffit de le faire depuis le fichier /etc/xdg/lxsession/LXDE-pi/autostart (attention, ici c'est pour buster et de mémoire le chemin est diffèrent avec stretch) et de rajouter à la fin de ce fichier une ligne:
@lxterminal --command="/home/pi/mystart.sh"
Ici, le programme démarrera dans une fenêtre terminal à chaque ouverture d'une session graphique de l'utilisateur PI
Modifié en dernier par Bud Spencer le sam. 30 mai 2020 19:29, modifié 6 fois.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Affichage Dynamique

Message par destroyedlolo » sam. 30 mai 2020 11:57

Salut,
jelopo a écrit :
sam. 30 mai 2020 07:55
Pour ma part, plutôt que de lancer un script, je lancerais un terminal qui lance le script.

Un truc du style:

Code : Tout sélectionner

lxterminal -e <chemin_absolu>/<nom_du_script>
Oui, c'est ca.
Et en plus tu peux le lancer immédiatement au lancement de la session X en mettant un script du genre de celui-ci : http://destroyedlolo.info/Developpement ... de%20Conky
(il faut évidemment remplacer la ligne Exec par le lxterminal).

Maintenant, pour pousser les vice un peu plus loin, un terminal comme ca n'est pas très beau. L'évolution suivante serait de créer carrément une petite interface graphique pour l'afficher :
  • soit une vraie fenêtre mais je trouve ça un peu invasif
  • soit une widget dans la barre de la fenêtre (je n'ai pas le code python pour ca vu que je n'utilise pas ; je l'ai déjà fait en Lua et en C et c'est très facile a faire, il doit y avoir des tuto sur le web pour python)
  • soit avec justement conky ... mais c'est une autre histoire car il faudra passer entièrement à Lua ou faire communiqué ton python avec conky. Ca ne casse pas 3 pattes a un canard meme si ca reste plus compliqué que les 2 1er solutions
A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Python »