[RESOLU] interface Web simple et intuitive avec AJAX

Vous souhaitez piloter votre framboise à partir d'une page web ? Ou mieux encore à partir d'un smartphone ou d'une tablette Android ? Venez donc visiter cette rubrique...

Modérateur : Francois

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

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

Message par bruno83 » jeu. 19 nov. 2015 19:38

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

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

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

Message par bruno83 » lun. 15 févr. 2016 18:04

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/
Fichiers joints
Webpython.zip
(1.12 Mio) Téléchargé 286 fois
Modifié en dernier par bruno83 le dim. 21 févr. 2016 19:10, modifié 2 fois.

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

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

Message par vague nerd » lun. 15 févr. 2016 21:46

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.
Cordialement,

Vague Nerd

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

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

Message par bruno83 » lun. 15 févr. 2016 22:40

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

bruno83
Messages : 72
Enregistré le : lun. 11 mai 2015 13:29

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

Message par bruno83 » dim. 21 févr. 2016 14:36

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

Répondre

Retourner vers « Des interfaces pour le Raspberry Pi »