Page 2 sur 2

Re: [RESOLU] interface Web simple et intuitive avec AJAX

Posté : jeu. 19 nov. 2015 19:38
par bruno83
Juste à titre d’indication je vous conseille d’utiliser plutôt un programme en python :idea: :idea: , c’est simple et ultra facile voici un bout programme exemple qui remplace une écriture sur le gpio de wiringPi
A titre personnel j’ai gardé mon application html, PHP, JavaScript mais j’utilise que des programmes en python , je mettrai sur le forum l’ensemble du projet :
Coté php:

Code : Tout sélectionner

<?php
unset($status);//je détruits la variable
$pint=11;//broche n°11
exec("sudo test ".$pint,$status);//Exécution du programme sudo test et j’envoie la variable $pint contenant "11"
echo($status[0]);//Réception de l’état de la variable coté python print(A) et l'afficher
echo '<br>';//mettre à la ligne
echo($status[1]);//Réception de l’état de la variable coté python print('toto') et l'afficher
?>	
Coté python (test.py) :

Code : Tout sélectionner

#!/usr/bin/env python
import sys"""librairie système"""
import RPi.GPIO as GPIO""" librairie GPIO"""
GPIO.setmode(GPIO.BOARD)""""choisir le connecteur GPIO""" 
pintest = sys.argv[1] """" permet de récupérer la variable venant de php"""
B = int(pintest)"""convertir cette variable en entier"""
GPIO.setup(B,GPIO.OUT)"""mettre la broche 11 en sortie"""
GPIO.output(B,GPIO.LOW)""" mettre à 0 la sortie 11 du connecteur"""
A = GPIO.input(B)"""lire la sortie 11 du connecteur"""
print (A)"""afficher le contenu et l'envoyer dans $status[0]"""
print ('toto')"""afficher toto et l'envoyer dans $status[1]"""
remarque :j’ai enlevé .py sur l’exécutable car plus jolie
http://tsin.langevin-la-seyne.fr/SIN/

A+Bruno

Re: [RESOLU] interface Web simple et intuitive avec AJAX

Posté : lun. 15 févr. 2016 18:04
par bruno83
voici la version python

Nous allons paramétrer le Raspberry pi pour que le serveur apache2(www-data) puisse exécuter des commande système linux.
Ouvrir le fichier suivant :
sudo nano/etc/sudoers
Puis rajouter la ligne sous root : www-data ALL=(ALL) NOPASSWD: /usr/local/bin/lecture.py, /usr/local/bin/ecriture.py

Sauvegardez le fichier avec « Ctrl+o » puis valider en tapant sur « ENTREE » et fermez l’éditeur avec « Ctrl+x ».

on va choisir /usr/local/bin ,on copie les fichiers lecture.py ecriture.py sur ce répertoire
Donner les droits à voc fichiers
sudo chmod 777 /usr/local/bin/lecture.py
sudo chmod 777 /usr/local/bin/ecriture.py

http://tsin.langevin-la-seyne.fr/SIN/

Re: [RESOLU] interface Web simple et intuitive avec AJAX

Posté : lun. 15 févr. 2016 21:46
par vague nerd
ATTENTION,

Certaines commandes précédentes me semblent dangereuses.
Non pas pour le matériel, ou même pour des tests ou du développement.

Quelqu'un peut nous confirmer (ou infirmer) des problèmes de sécurité ?

Cdt.

Re: [RESOLU] interface Web simple et intuitive avec AJAX

Posté : lun. 15 févr. 2016 22:40
par bruno83
Avec jessie plus besoin du sudo pour la librairie RPi.GPIO. :D :D
donc plus besoin de rajouter la ligne sous root : www-data ALL=(ALL) NOPASSWD: ALL
et aucun risque de sécurité mais avec la vielle version de wheezy obligatoire si non :
exec ("sudo lecture.py ".$broche, $status); nouvelle version exec ("lecture.py ".$broche, $status);
exec ("sudo ecriture.py $broche $etat", $status); nouvelle version exec ("ecriture.py $broche $etat", $status);
finie les problèmes de sécurité mais j'ai mis pour la version wheezy car encore beaucoup d'utilisateurs.
pour 777 c'est trop mais 111 était suffisant . :oops: :oops:
A+ bruno

Re: [RESOLU] interface Web simple et intuitive avec AJAX

Posté : dim. 21 févr. 2016 14:36
par bruno83
bonjour,
merci de l'intervention de "vague nerd"
sudo nano /etc/sudoers
j'ai sécurisé le serveur apache
Puis rajouter la ligne sous root : www-data ALL=(ALL) NOPASSWD: /usr/local/bin/lecture.py, /usr/local/bin/ecriture.py
je n'autorise que pour mes deux fichiers la commande sudo
voir l'article http://www.framboise314.fr/une-interfac ... spberry-pi
voir nos projetshttp://tsin.langevin-la-seyne.fr/SIN/
A+bruno