Strumenti Utente

Strumenti Sito


raspberry:gpio

Questa è una vecchia versione del documento!


Far lampeggiare un led
collegare un filo al pin nr.6 e un'altro filo al pin nr.7
Al pin numero 7 corrisponde il GPIO 4 e via di seguito. comunque su internet troviamo le corrispondenze
alle estremità dei fili un semplice led
si potrebbe benissimo usare una bredboard
installare il python

apt-get install python

e installare il python rpi gpio

apt-get install python-rpi.gpio

ora editare uno script come di seguito:

codice.py
#!/usr/bin/python
 
import time
import RPi.GPIO as GPIO
 
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
 
while 1:
   GPIO.output(4, True)
   time.sleep(1)
   GPIO.output(4, False)
   time.sleep(1)
 

eseguire lo script:

python codice.py

Pazzesco
installiamo:

apt-get install apache2 php

il python l'abbiamo installato prima e anche il modulo per il gpio
di seguito una pagina in php provvisoriamente in spagnolo ma da perfezionare per attivare un'interfaccia per poter gestire l'accensione o lo spegnimento dei led
Però ATTENZIONE, per poter ottenere tutto ciò si deve modificare un file che crea una grande vulnerabilità che consente all'utente di apache di eseguire degli script in python
Se si stanno facendo prove o si è in una rete interna bene, ma attenzione a esporre questa cosa sul web.
modificare con il seguente comando il file /etc/sudoers

visudo

verrà editato il file ed in fondo vanno aggiunte le seguenti righe

pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

ora procediamo con la scrittura dei file

index.php
<html>
 <head>
                        <!--index.php-->
 </head>
 <body>
 
  <!--GPIO17-->
  <form action="" method="post">
   GPIO 17&nbsp;<input type="submit" name="encender17" value="Encender">
   <input type="submit" name="apagar17" value="Apagar">
   <input type="submit" name="parpadear17" value="Parpadear">
 
 <br></br>
 
  <!--GPIO27-->
  <form action="" method="post">
   GPIO 27&nbsp;<input type="submit" name="encender27" value="Encender">
   <input type="submit" name="apagar27" value="Apagar">
   <input type="submit" name="parpadear27" value="Parpadear">
 
 <br></br>
 
  <!--GPIO4-->
  <form action="" method="post">
   GPIO 04&nbsp;<input type="submit" name="encender4" value="Accendi">
   <input type="submit" name="apagar4" value="Apagar">
   <input type="submit" name="parpadear4" value="Parpadear">
 
 <br></br>
 
  <!--GPIO22-->
  <form action="" method="post">
   GPIO 22&nbsp;<input type="submit" name="encender22" value="Encender">
   <input type="submit" name="apagar22" value="Apagar">
   <input type="submit" name="parpadear22" value="Parpadear">
 
 </body>
</html>
 
<?php
 
// Funciones PHP del pin GPIO 17
  if ($_POST[encender17]) {
   $a- exec("sudo python /var/www/leds/gpio/17/enciende.py");
   echo $a;
  }
 
  if ($_POST[apagar17]) {
   $a- exec("sudo python /var/www/leds/gpio/17/apaga.py");
   echo $a;
  }
 
  if ($_POST[parpadear17]) {
   $a- exec("sudo python /var/www/leds/gpio/17/parpadea.py");
   echo $a;
  }
 
// Fin de las funciónes del pin GPIO 17
 
 
// Funciones PHP del pin GPIO 27
 
  if ($_POST[encender27]) {
   $a- exec("sudo python /var/www/leds/gpio/27/enciende.py");
   echo $a;
  }
 
  if ($_POST[apagar27]) {
   $a- exec("sudo python /var/www/leds/gpio/27/apaga.py");
   echo $a;
  }
 
  if ($_POST[parpadear27]) {
   $a- exec("sudo python /var/www/leds/gpio/27/parpadea.py");
   echo $a;
  }
 
// Fin de las funciónes del pin GPIO 27
 
 
// Funciones PHP del pin GPIO 4
  if ($_POST[encender4]) {
   $a- exec("sudo python /var/www/html/accendi.py");
   echo $a;
  }
 
  if ($_POST[apagar4]) {
   $a- exec("sudo python /var/www/html/spegni.py");
   echo $a;
  }
 
  if ($_POST[parpadear4]) {
   $a- exec("sudo python /var/www/leds/gpio/4/parpadea.py");
   echo $a;
  }
 
// Fin de las funciónes del pin GPIO 4
 
 
// Funciones PHP del pin GPIO 22
 
  if ($_POST[encender22]) {
   $a- exec("sudo python /var/www/leds/gpio/22/enciende.py");
   echo $a;
  }
 
  if ($_POST[apagar22]) {
   $a- exec("sudo python /var/www/leds/gpio/22/apaga.py");
   echo $a;
  }
 
  if ($_POST[parpadear22]) {
   $a- exec("sudo python /var/www/leds/ejecgpio/22/parpadea.py");
   echo $a;
  }
 
// Fin de las funciónes del pin GPIO 22
 
?>

Naturalmente vengono richiamati dei file in python simili a quello fatto all'inizio

accendi.py
#!usr/bin/env/ python
#Importiamo la libreria e le cambiamo  il nome a GPIO
import RPi.GPIO as GPIO
 
#Stabiliamo il sistema di numerazione che vogliamo,
#in questo caso il sistema BCM
GPIO.setmode(GPIO. BCM)
 
#Configurare il pin GPIO 4 come uscita
GPIO.setup(4, GPIO.OUT)
 
#Si accende il led
GPIO.output(4, True)

ecc..

spegni.py
#!usr/bin/env/ python
#Importiamo la libreria e le cambiamo  il nome a GPIO
import RPi.GPIO as GPIO
 
#Stabiliamo il sistema di numerazione che vogliamo,
#in questo caso il sistema BCM
GPIO.setmode(GPIO. BCM)
 
#Configurare il pin GPIO 4 come uscita
GPIO.setup(4, GPIO.OUT)
 
#spengo il led
GPIO.output(4, False)
raspberry/gpio.1485121236.txt.gz · Ultima modifica: 2023/04/17 14:25 (modifica esterna)