Vigingi Raspberry PI na GPIO: Kudhibiti LED kutoka kiolesura cha wavuti

Katika posts ya hivi karibuni ya mfululizo huu, Tuliona wao ni vigingi GPIO na kuhudumu, na Jinsi ya kudhibiti nguvu ya leds kutoka kwa Temino; kabla ya kuanza Kuwa imewekwa maktaba ya GPIO kwa Chatu, na wamekusanyika mzunguko wa kielektroniki na kazi.
Programu tumizi ya wavuti katika HTML + PHP + Chatu kushughulikia Leds chache kupitia GPIO ya.

Katika tukio hili sisi kufunga na seva ya wavuti ya Apache, na kujifunza kuandika na Msimbo HTML na PHP kudhibiti LED sawa, au kadhaa, kutoka kiolesura cha wavuti.

gpioprogramar0pngKitu cha kwanza lazima kufanya ni Sanidi seva ya wavuti ya taa, hivyo Chapa amri ifuatayo kwa Temino:

#Actualizamos los repositorios y el software de la pi
usuario@maquina:~$ sudo apt-get update && sudo apt-get upgrade

#Instalamos LAMP
usuario@maquina:~$ sudo apt-get install apache2
usuario@maquina:~$ sudo apt-get install php5 libapache2-mod-php5
usuario@maquina:~$ sudo service apache2 restart

Sasa tutaweza kuongeza kama sudoer kwa mtumiaji data ya www, Hii si chaguo zaidi salama lakini Kumbuka kwamba tunafanya mtihani katika mazingira ya kudhibitiwa; kwa mazingira katika uzalishaji tunafaa kutafuta njia nyingine ya kuendesha hati katika Chatu kama sudoer.

Kwa Hariri vibali hivi, aliandika sudo visudo katika njia za kuondokea na katika mwisho wa faili Ongeza kwenye www-data kama sudoer, Ni lazima hivyo.

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

Kwa siri kila GPIO Tunahitaji kujenga jalidi ndogo na hati tatu katika Chatu; moja kurejea kwenye, mwingine kuzima, na hati ya mwisho kwa ajili ya kufanya LED yetu flashing, Hapa ni mfano na ya BANA 4.

#!usr/bin/env/ python
## enciende.py
#Importamos la libreria y le cambiamos el nombre a GPIO
Leta RPi.GPIO kama GPIO
#Sisi kuanzisha mfumo wa namba kwamba tunataka, 
#katika kesi hii mfumo BCM
GPIO.setmode(GPIO. BCM)
#Sanidi GPIO pin 4 kama matokeo ya
GPIO.setup(4, GPIO. NJE)
#Sisi Washa ya imesababisha
GPIO.output(4, GPIO. JUU)
#!usr/bin/env/ python
## apaga.py
#Leta maktaba na kubadilisha jina lake ili GPIO
Leta RPi.GPIO kama GPIO
#Sisi kuanzisha mfumo wa namba kwamba tunataka, 
#katika kesi hii mfumo BCM
GPIO.setmode(GPIO. BCM)
#Sanidi GPIO pin 4 kama matokeo ya
GPIO.setup(4, GPIO. NJE)
#Zima imesababisha
GPIO.output(4, GPIO. CHINI)
#Na sisi kuikomboa GPIO ya
GPIO.cleanup()
#!usr/bin/env/ python
## parpadea.py
#Leta maktaba na kubadilisha jina lake ili GPIO
Leta RPi.GPIO kama GPIO

#Muhimu kwa ajili ya ucheleweshaji
Leta wakati

#Sisi kuanzisha mfumo wa namba kwamba tunataka, 
#katika kesi hii mfumo BCM
GPIO.setmode(GPIO. BCM)

#Sanidi GPIO pin 4 kama matokeo ya
GPIO.setup(4, GPIO. NJE)

#Washa na zima ya imesababisha 5 mara
kwa mimi katika masafa(0,5):

        GPIO.output(4, GPIO. JUU)
        Time.sleep(1)(1)
        GPIO.output(4, GPIO. CHINI)
        Time.sleep(1)(1)

#Na sisi kuikomboa GPIO ya
GPIO.cleanup()

Sasa ni wakati wa kujenga ukurasa wetu wa nyumbani katika HTML na PHP, kina vitufe kwamba sisi bonyeza kuendesha hati ya Chatu kutoka kiolesura cha wavuti, baadaye tutaona jinsi uongozi wa mwisho.

<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="Encender">
   <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/leds/gpio/4/enciende.py");
   echo $a;
  }

  if ($_POST[apagar4]) { 
   $a- exec("sudo python /var/www/leds/gpio/4/apaga.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

?>

Kuwa na makundi ni yote katika ukurasa huo kama kuunda ukurasa katika PHP kwa kila chaguo, kuendesha ni, mimi ulitumwa kwenye ukurasa wa hati (ukurasa tupu); Endesha Kanuni sasa na anakaa katika ukurasa huo.

Hatimaye Lazima kufikia uongozi yafuatayo ndani ya jalidi ndogo ya seva ya wavuti /Var/www.

Screenshot ya 2014-10-05 00:06:52Kama wewe kama wewe Nifuate Mtandao wa Twitter, Facebook, Google +, LinkedIn, au kushiriki na vitufe chini ya chapisho hili, Kama una maswali yoyote au maoni Tafadhali usisite kutoa maoni.