Bonjour,
Je souhaite allumer 1 led sur 1 des ports du GPIO en cliquant sur une image grâce à la commande
Bonjour,
Je souhaite allumer 1 led sur 1 des ports du GPIO en cliquant sur une image grâce à la commande
Je viens de m’apercevoir que m’a commande HTLM n’est pas indiquée certainement à causes des balises:
A HREF="…/portail3.py(ouverture(1))"><IMG SRC=« ouverture.jpeg » title=« Ouveture du Portail » border=« 3 » style=« border-color:#3a3a3a » width=« 50% »
Désolé
Nicolas
Ton problème n’est pas très compliqué, mais faire cela nécessite de faire TRES attention du point de vu de la sécurité.
Az
Bonjour Azlux,
Merci pour ton aide!
J’ai déjà créé en Python 1 webserver en utilisant Tornado et je peux me connecter à distance sur mon raspberry. J’ai défini 1 adresse fixe pour mon Raspberry et ouvert 1 port specifique afin d’éviter que tout le monde puisse se connecter. J’ai créé 1 autre programme également en Python qui permet d’allumer / éteindre des led via le GPIO afin de simuler l’ouverture / fermeture de mon portail.v Là ou je sèche actuellement c’est comment faire en sorte que lorsque je clique sur 1 image de mon site web, ma fonction « ouverture_portail » située ds mon fichier « portail.py » s’exécute.
Dois je créer 1 fichier php, ou/et puis je le faire via le web server; si j ai bien compris ta réponse les 2 sont possibles?
Nicolas
Si tu sais faire un web serveur en python (wow, tornado est assez complexe pour débuter je trouve), il vaux mieux l’utiliser. Tu sera quitte de faire des appels de PHP vers Python.
Dans ta fonction qui répond à un une méthode spécifique (GET /start_gpio par exemple) fait simplement un import .portail.py
puis appelle ta fonction qui allume tes GPIO.
Dans ta page d’accueil il ne te reste plus qu’a faire un bouton pour y accéder. et Voilà
Merci pour tes conseils Azlux!
Ce WE, j’ai un peu avancé; ds mon webserver Tornado, j’ai fait appel à une des fonctions de mon fichier portail.py et ça marche; lorsque je lance la fonction « ouverture_portail », la led du GPIO correspondante s’allume bien; voici les bouts de codes que j’ai rajouté:
import portail5 #nom du fichier python a faire appel sans l extension « py »
if name == « main »:
print(« Server running »)
print(« Press ctrl + c to close »)
portail5.ouverture(1)
application.listen(xxxx) #(xxxx) n° du port à utiliser
tornado.ioloop.IOLoop.instance().start()
bon pour l’instant dès que je lance mon webserver, mon portail s’ouvre…, mais ce n’est qu’un début; l’idée que j’ai pour poursuivre et de rajouter 1 condition avec 1 variable qui change d’état lorsque je demande d’ouvrir mon portail.
Ma page index (déjà créée) contient 3 images avec liens hypertextes dont 1 représentant mon portail, lorsque je clique sur cette dernière, une 2em page HTML s’ouvre et 3 autres images apparaissent; chacune d’entre elles correspond à 1 action que devra effectuer mon portail (ouverture, fermeture & ouverture piéton). Bon but final est de lancer une des 3 fonctions créées dans mon fichier portail.py en fonction de l’image qui est « cliquée ».
Via le HTML, impossible de réaliser cela; par csq, je me suis dit qu’il faut que je crée 1 page PHP pour faire le lien entre le clic suer l’im
désolé, mauvaise manip, j’ai cliqué sur « répondre »…je reprends:
Via le HTML, impossible de réaliser cela; par csq, je me suis dit qu’il faut que je crée 1 page PHP pour faire le lien entre le clic sur l’image et l’appel à la fonction correspondante située dans mon fichier portail.py mais pouvant être utilisée dans mon webserver (programmé également en python)
Je pense utiliser la méthode suivante: lorsque je clique sur 1 image du fichier php (que je n’ai pas encore créé mais qui remplace mon fichier « portail.html » déjà créé), 1 variable située ce fichier change d’état et cette variable est utilisée dans mon webserver (fichier python) pour lancer la fonction « ouverture portail ».
Est-ce une méthode qui peut fonctionner, existe t’il une méthode + appropriée?
Nicolas
ça peux être possible. Debian utilise pas mal cette méthode avec les lock (fichier vide qui fini par .lock) pour dire qu’une action est autorisé.
Mais je reste persuadé que tu t’embête pour rien. si tu as un serveur python qui marche, fait tout avec celui ci. Et si tu comprend pas bien les interactions possibles avec tornado, je te conseille grandement Flask. Car tout ce que tu me dit est largement possible avec python seulement.