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.

75 mawazo juu ya"Vigingi Raspberry PI na GPIO: Kudhibiti LED kutoka kiolesura cha wavuti

  1. Nzuri, Baada ya kuangalia tovuti ufumbuzi home automatisering, Niliamua kwa mfumo wako, inaonekana wazi vizuri.
    Hata hivyo na kwa sababu ya uzoefu wangu sifuri katika laini. ana shaka mimi, Napenda anaweza kuyatatua, Nimekuwa kufanya majaribio mengi na hakuna, Siielewi….:)
    kutekeleza hatua zote kueleza na mimi kusimamia gpio ya kutoka Temino na putty, Lakini tangu wavuti unaweza kuamilisha hati ya Chatu.
    Nahitaji kufanya ukurasa kwenye /val/www na html (index.html) hivyo kumtumikia ni mimi apache. Kwa kuweka tovuti yako hapa kama vitufe kuondoka kwangu, lakini kutekeleza php script. Katika ukurasa index.php, si kuwekwa ndani.
    Samahani kwa usumbufu na Asante.

      • Asante kwa kujibu haraka, Ndio alifanya hatua ili kupeana vibali vya katika faili ambayo unaweza kuweka, Nimechanganyikiwa na ukurasa index.php, Unaweza hutegemea mpangilio orodha GPiO, tu kuona vitufe kwenye wavuti kama mimi kuweka katika /val/www….katika html!…index.html, lakini kutekeleza PHP script. Watiao index.php ambayo hutegemea mpangilio orodha GPIO?

        • Kama ukiangalia kwa karibu, index.php /var/www/leds 🙂 hangs kama bado haifanyi kazi, maoni makala hii na kuangalia ni.

          Kama /var/ www/index.php cuelgas wataiona katika mwelekeo huu lakini ni si kazi kitu chochote:

          http://ipdelapi

          Kama hutegemea /var/www/leds/will kazi vizuri lakini tangu njia hii:

          http://ipdelapi/leds

          Natumaini hii unasuluhisha mashaka yako na kwamba unaweza kuhamisha katika ulimwengu huu wa kusisimua.

          • Nina furaha kwamba nimefanya kazi, mwisho ilikuwa njia ya hati ya?

            Shukrani kwa ajili ya 🙂 yako ya maoni

          • Nzuri, Nina tatizo moja kama wenzetu hapo juu.

            Index.php yangu hangs kutoka /var/www/html/index.html
            , Kama nitapata html yangu kielezo kutoka huko si umeonyesha, lakini hakuna tatizo kwa kuwa kuna, Shida yangu inakuja wakati mdundo kitufe na si kuendesha mimi Mkoba wa.

            PD: Nilimpa kila kitu na vibali vya

            Asante kwa jibu lako.
            Salamu

            J.G.

  2. Nzuri, kazi yako ni kumtumikia mimi mengi, wewe ni mashine ya!
    Mimi kujaribu kufanya mfumo automatisering kudhibiti leds anuwai kutoka wavuti lakini nina tatizo unaweza kupunguza.
    Mandhari ni kwamba kuwa ulioamilishwa GPIO nahitaji, Kuamilisha yao na kulemaza kutoka Temino, Kuunganisha PC nyingine imeunganishwa kwenye mtandao huo kwa 192.168.X.X/leds/ na tovuti inaonekana vizuri, Menyu kwa ajili ya udhibiti wa nyumbani inaonekana kamili, lakini leds ya kujibu, Nimekuwa walijaribu amilifu na passiv, kitu mimi nina kufanya makosa…
    Jambo pekee unaweza kusema ni kwamba unaweza kuonyesha Msimbo chanzo ya ukurasa na tu inaonyesha msimbo wa html, php haionekani, kuwa kama ni lazima au si.
    Nadhani inaweza kuwa kitu PHP lakini sina hakika sana kwa sababu Nilijaribu mtihani PHP na inafanya vizuri, Mimi lol kukata tamaa

    • Jambo Yohana,

      Mimi alegro kiasi kwamba inaweza kuwa na manufaa 🙂 yangu makala daima ni karibu maoni chanya.

      Wote PHP code kwa kivinjari ni kuonyeshwa kama HTML, Tangu kazi PHP ni wakati na pakubwa kuunda kurasa za wavuti ni waliohudumu katika kivinjari.

      Kuendesha hati ya Chatu moja kwa moja kama ya leds iliwashwa? jambo sahihi kuwa kuanza kupima kutoka hapa na kwenda mbele.

  3. Asante kwa kujibu haraka!
    Hatimaye umbizo rasiberi tena, Kufuata hatua zote tena na kila kitu kazi nzuri, kuwa kwamba kushindwa.
    Hata hivyo shukrani kwa ajili ya tahadhari.
    Salamu

    • Asante kwa kushiriki mashaka yako, Nina furaha kwamba hatimaye amepangilia m.

      Umebadilisha kitu katika yako rasiberi kama vile umbizo, kama kwa mfano transfoma microUSB?

      • Ndio, Wakati mimi kununuliwa ni mimi kuweka karo kwa midogo kwa kasi yake juu na hivyo itakuwa kazi haraka, lakini wala ni mabadiliko liko sana.
        Hiyo ilikuwa ni kitu tu kwamba kubadilisha kwa rasp ya.

        • Jambo Yohana, Nafurahi kusoma wewe tena hapa.

          Katika kanuni na kushawishi Overclock katika suala hili, Lakini hiyo inaweza kuwa configuration yoyote; sasa kwa kuwa unafanya kazi na Raspbian kusafisha anarudi kutoa matatizo baada ya kuwa katika uzalishaji, Sasa kama kwamba ningependa kupendekeza wewe Tafuta mzizi wa tatizo.

          Kubadilisha katika Overclock utakuwa taarifa nayo kwa mujibu wa kazi maalum ambayo haja uwezo mwingi ikihesabu, Lakini baadhi ya mambo kama vile bandari ya Ethernet itaendelea kwa mujibu wa chupa-shingo ambayo inatumia.

          Unaweza kuona mapitio nilifanya ya mifano ya rasiberi PI B, B + na B2 katika kiungo kifuatacho, na kupima utendaji kamili:

          http://www.peatonet.com/raspberry-pi-y-los-pines-gpio-controlando-el-led-desde-una-interfaz-web/

          Natumaini utakuwa muhimu, Angalia hivi karibuni 🙂

  4. Hello, Nina swali/tatizo kidogo. Nataka kuunganisha buzzer badala ya imesababisha, Lakini mimi nataka kujaribu kwanza na imesababisha kujifunza. Ni muhimu kufanya index.html na na php nyingine?
    Nina ya imesababisha kushikamana na gpio4 ya, na nina hati ya on.py na wengine off.py ndani ya kabrasha 4. Kazi ya Kiweko kikamilifu.
    na unaweza si kuweka index.html na kwa sababu hiyo si basi mimi, lakini tu kwa kuongozwa utendaji 4.

    Natumaini unaweza kunisaidia, Alitembelea profile yako facebook na natumaini siku moja wote ya rasiberi Pi kama unajua. Salamu na shukrani.

  5. Wavuti katika PHP kunauwezekano wa HTML na ambayo tu haja ya index.php

    Kama kuweka amri ya PHP kuendesha hati yako katika Chatu katika faili ya HTML, si kukimbia.

    Sasa kwamba kituo kazi, inaweza tu Nakili index.php ya mafunzo haya, kuondoa GPIO nyingine na kuacha tu ya 4 ndiyo unaweza kutumia; na ni lazima kazi.

    Kama wewe unaweza kuhariri faili katika/var/www hakika itakuwa kwa ruhusa, katika mafunzo haya ni ufumbuzi na ni lazima kazi, Kama haina maoni na nitajaribu kukupa mkono.

  6. Hello, Mimi naenda kuchukua kuweka swali lingine hapa, Ikiwa wewe au mtu anaweza nitoe kebo ya. Kuwa hati hii na ungependa kufuta kabrasha na tarehe mara rebooted, na nini maslahi yangu, kujua jinsi ya kufanya hivyo wakati inafikia ukubwa x kiwango cha upatikanaji wa samaki, wote kufutwa au yataanza RPi ya. Shukrani na salamu.

    #! /bin/sh
    # /etc/init.d/motionStartup
    #

    # Baadhi ya vitu ambavyo daima kukimbia
    #gusa /var/lock/motionStartup
    logger - s “Hati inayoitwa motionStartup”

    # Kutekeleza kazi mahsusi wakati aliuliza kwa mfumo wa
    kesi “$1” katika
    Kuanza)
    logger - s “Hati motionStartup kuanza”
    KIBAINISHI SAA = $(tarehe + %m %d %H %M %S na % | Ya SED / / / g') # Hakuna nafasi
    logger - s “Hati motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $ Kibainishi saa || logger - s “Mkdir kuanza kosa”
    kupata/motiontmp/hoja /. -aina ya f - ukubwa 0 -print0 - Futa
    kupata/motiontmp/hoja /. -MaxDepth 1 -f aina | \
    XARGS - MIMI '{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    Komesha)
    logger - s “Hati motionStartup kusimamishwa”
    ;;
    *)
    mwangwi “Matumizi: /etc/init.d/motionStartup {Kuanza|Komesha}”
    toka 1
    ;;
    ESAC

    toka 0

  7. Ukiongeza mstari huu mwanzoni mwa hati yako, kila wakati kwamba kukimbia script kabla ya kufanya chochote unaweza kutafuta kabrasha zote za ndani/motiontmp /

    sudo rm - rf/motiontmp / *

    Kuhusiana na Futa faili wakati kufikia ukubwa fulani, Unaweza kujaribu concatenating amri ya df - h kuonyesha matumizi ya diski ya orodha, au kuhesabu:

    DF - h /motiontmp

    Na amri nyingine kama wc au sed ili kwamba tu akisoma kishazi kurejelea MB au GB kutumika, Hatimaye na kama wewe inaweza programu sehemu ya kwamba kama matokeo ni kubwa kuliko N, Endesha amri ilivyoelezwa hapo juu ya rm.

    • Kwenye makabrasha ya kamili ya kufuta, lakini kisha…
      Samahani lakini mimi mpya kidogo na mimi waliopotea, kama ingekuwa kwa mfano kwa wakati kufikia mpangilio orodha/motiontmp/hoja / 5 Gigas? Asante salamu.

  8. Samahani kwa hivyo nafasi nyingi ikifuatiwa lakini kama ni kutafuta nje sasishi. Kitu kama hiki huenda kazi?

    #! /bin/sh
    # /etc/init.d/motionStartup
    #

    Ukubwa = du - sh /motiontmp

    Soma “Ukubwa”

    Kama [ “$Ukubwa” > “2048000K” ]; Kisha

    sudo rm - rf/motiontmp / *

    mwingine

    logger - s “Hati inayoitwa motionStartup”

    # Kutekeleza kazi mahsusi wakati aliuliza kwa mfumo wa
    kesi “$1” katika
    Kuanza)
    logger - s “Hati motionStartup kuanza”
    KIBAINISHI SAA = $(tarehe + %m %d %H %M %S na % | Ya SED / / / g') # Hakuna nafasi
    logger - s “Hati motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $ Kibainishi saa || logger - s “Mkdir kuanza kosa”
    kupata/motiontmp/hoja /. -aina ya f - ukubwa 0 -print0 - Futa
    kupata/motiontmp/hoja /. -MaxDepth 1 -f aina | \
    XARGS - MIMI '{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    Komesha)
    logger - s “Hati motionStartup kusimamishwa”
    ;;
    *)
    mwangwi “Matumizi: /etc/init.d/motionStartup {Kuanza|Komesha}”
    toka 1
    ;;
    ESAC

    toka 0

    Fi

  9. Hello kwamba rafiki kama, Samahani kufuata mfano wako na ya imesababisha ni lit, hakuna tatizo, Lakini wakati unapo bofya kwenye kitufe cha zima, mmuliko imesababisha, tayari kuangalia misimbo na kila kitu ni sahihi :/ una wazo lolote kwamba unaweza kufanya makosa?

    • Hello Fco, Asante kwa maoni yako.

      Kwenye wavuti, Kuna vitufe vitatu:

      Washa, Zima, na upeo.

      Kama unaweza, Bandika hapa msimbo ambao nimekuwa imepangiwa kwenye kitufe cha zima, hivyo maoni ni inawezekana kwamba kitufe zima kuendesha hati ambayo unapaswa kuhusishwa na kitufe cha upeo.

      Tuonane hivi karibuni.

  10. Hello tena kwa wote, shaka nyingine zaidi kuongeza lol.

    Kabla ya mimi kuweka katika mandharinyuma, Ni kuamsha sauti buzzer (Buzzer) Ni lazima kitanzi kwamba kuweka nambari yako ya siri 1 na 0 daima, si kama ya imesababisha kwamba wakati ambapo 1 Ni bado.
    Tatizo ni jinsi ya kuacha hii kitanzi kutumia php na wavuti, kwa sababu Kiweko kwa kuongeza mwishoni mwa wito wa hati ya & Anaendesha kwa nyuma na basi console huru kuwaita hati kwamba mwisho ni, mfano:

    sudo Chatu sonar.py &

    Haya ni hati mbili, kwamba inafanya sauti na hakikisha ataacha kupigia:

    Leta wakati
    Leta RPi.GPIO kama gpio

    GPIO.SetWarnings(Uongo)
    GPI.setMode(GPIO. BODI)
    GPIO.Setup(7,GPIO. NJE)

    GPIO.output(7,1)
    Time.sleep(1)(.3)
    GPIO.output(7,0)
    Time.sleep(1)(.3)

    na shutoff ya:

    Leta wakati
    Leta RPi.GPIO kama gpio

    GPIO.SetWarnings(Uongo)
    GPI.setMode(GPIO. BODI)
    GPIO.Setup(7,GPIO. NJE)

    GPIO.output(7,0)
    GPIO.cleanup()

    lakini tu ili kuvuruga kwanza kazi. Shukrani na salamu.

  11. Concatenate amri kadhaa, kwa kuwa jina lako hati kwa kuzingatia, njia za kuondokea kuangalia PID yako na hatimaye kumuua utekelezaji wake kuua.

    Mara moja kupatikana amri, kubadilisha kazi lengo kufunga na Ctrl + C, na moja badala yake, N kikubwa mara Matt otomatiki kwa amri hii.

  12. Kama na Ctrl + C hufunga katika Kiweko, Lakini mimi kujaribu kutekeleza kupitia PHP kama leds yako baada, basi atakuwa na kuwa njia nyingine ninasema.

    • Hapo juu una suluhisho kuua mchakato wako na BASH, kupata PID yako kutoka jina la faili; wewe tu na kuunganisha kwenye tovuti yako PHP na “Exec”.

  13. Hello.
    Shukrani kwa ajili ya mafunzo ya.

    Nina tatizo, kutekeleza hati, Kama unaweza kukimbia kwao kutoka Kiweko, Lakini tangu ukurasa si, Sijui kwamba inaweza. Tumefanya nini maoni ya
    “Tunaandika sudo visudo katika njia za kuondokea na katika mwisho wa faili Ongeza kwenye www-data kama sudoer, Lazima iwe hivyo.”

    Lakini hakuna lolote. Nionyeshe ni kitu gani kingine?

    Kila la heri.

  14. Hello, Asubuhi njema,
    Kwa lolote, Asante.

    Inaruhusu swali, kila kitu kazi kikamilifu, sasa, Ningependa kuwa na uwezo wa kuongeza screen kwamba inaonyesha wakati ya leds ni alibadilisha au zima, Nimeona makala baadhi hata na picha kuonyesha rangi kutegemea kama taa mabadiliko ni kazi au si, Jaribu kuelewa uendeshaji lakini inashindwa kufanya kazi, Mimi kupata wavuti na amri lakini kitu imeamilishwa, Natumaini si bother kwa kuangalia hii na nyingine, Asante kwa wema wako wa ajabu.

    Ignacio kutoka Ubelgiji

    • Hello Ignacio, Asante sana kwa maoni yako.

      Mimi Nadhani kwamba ni kutumia Javascript kufanya hii, kuunganisha shughuli PHP kuamilisha hati ya Chatu kwa, Simamia nguvu-luminaires.

      JavaScript si domino, Tangu mimi si ya developer ya wavuti lakini labda wewe unaweza kuelekeza mwenyewe bora kidogo, au msomaji nyingine inaweza kukusaidia kupata kile unachotaka; Lakini kwa kufanya hivyo ingekuwa haja ya kuona kanuni, o los tutoriales que has seguido para intentar detectar donde está el fallo.

      Tuonane hivi karibuni, y ¡mucho ánimo!

  15. Hola ante todo muchas gracias, aprendo un monton.
    He seguido todos los pasos expuestos, logro encender los leds desde el terminal local, cargue el parche php como lo indicó ullu, otorgue los permisos incluso uno 775—-nk. Carga la página con los botones despues de leds/gpio pero nada. Estoy usando Raspberry pi 2…..sera algo con esta tarjeta?. Aprecio su colaboración.

    • Hola Rafael, gracias a ti por comentar.

      Es posible que la solución se halle en los comentarios de los tutoriales anteriores de esta serie dedicada a la domotica asequible basada en Raspberry PI.

      Los pasos a seguir son compatibles con cualquiera de las versiones de la PI, se me ocurre que podrías cambiar en la página web la ejecución del script en python por la siguiente orden que creará un archivo en el directorio home de tu Raspberry:

      sudo touch /home/pi/funciona

      Si todo está funcionando bien, debería crearse dicho archivo.

      • Gracias por su rápida respuesta. Hice los cambios, conforme me lo indicó, en index.html retirando la parte de python y colocando a cambio: sudo touch /home/pi/funciona , pero infortunadamente no se crea el archivo en mi raspberry. Me parece una excelente prueba y por el resultado creo que concentra el problema en la zona web. Buscare mas información en otros tutoriales. Gracias por su ayuda. Estamos en contacto.

        • Hola Rafael, a continuación podrías hacer la misma prueba cambiando ligeramente la ruta del archivo para comprobar si el problema recae en los permisos del directorio /var/www.

          sudo touch /var/www/funciona

  16. Hello, me podrias decir alguna manera de poner una etiqueta con el estatus de el LED desde la interfaz web PHP
    que cambie automaticamente al darle Clic a dicho boton ya sea encender, Zima, parpadeartener una etiqueta que te diga el estatus. Gracias por tu aporte espero me puedas ayudar..

    • Hola Chaka, Asante sana kwa maoni yako.

      Creo que podrías hacerlo con PHP y JavaScript si quieres darle algún efecto más visual, o realizar cambios en el botón.

      Si solo quieres añadir una etiqueta de texto según que botón presiones, únicamente tendrías que ampliar las funciones asociadas a cada input; te adjunto una lista de las funciones disponibles en PHP:

      http://php.net/manual/es/indexes.functions.php

    • Hola Jameson,

      No entiendo bien la pregunta, pero para encontrar la IP de algún dispositivo puedes utilizar NMAP.

      También dispones de herramientas con interfaz gráfica como ZenMap basada en NMAP y Fing para dispositivos Android.

    • Hola Jameson,

      Efectivamente la IP que debes escribir en tu navegador es la de Raspberry PI puesto que esta es la que actúa como servidor web, además si tu archivo php no lo nombraste como index.php tendrás que añadir tras la ip el nombre de tu archivo separado por una “/”.

      En mi caso la IP es del rango 10.42.0.0 ya que es una IP del tipo NAT proporcionada por una interfaz virtual de red.

  17. Por favor necesito ayuda. La cuestión es que tengo todo según tal cual lo explicas, pero no funcionan los scripts en PHP.

    Shukrani nyingi

    • Hola Sergio,

      Supongo que te refieres a los scripts en Python, otros usuarios tuvieron el mismo problema y hay varias soluciones en los comentarios anteriores; si tras probarlas persiste el fallo si aportas más datos quizás otros lectores o yo podríamos ayudarte.

      Tuonane hivi karibuni.

  18. ¿por qué “kwa- Exec…” Badala ya “a= exec…” ?

    no entiendo y no he encontrado esta formula en google.

    • Hola Roberto, bienvenido.

      No soy experto en php, y en esos momentos busqué un tutorial para ejecutar ordenes en el interprete bash desde php y así lo encontré.

      ¿Sería mas apropiado utilizar a= exec en lugar de a- Exec?

      Asante sana kwa maoni yako, Tuonane hivi karibuni.

  19. Kama sio wewe kazi wavuti lakini kama hati, Hivi karibuni nitafanya makala hivyo wanaweza kurekebisha; Shukrani kwa taarifa mimi wamekusanya watumiaji mbalimbali kwamba amefanya kazi.

    Kama unaweza kukimbia haraka kurekebisha, Unaweza kuangalia kama mpangilio orodha var lipo katika rasiberi yako, na kama ni hivyo lazima Hamisha faili zote kwa njia hiyo na Badilisha katika hati “/Var/www” na “/Var/www/html” tangu sasa
    Hii ni njia ya seva ya wavuti ya chaguo-msingi.

    Pia ni inawezekana kwamba si umefuta kielezo kwa chaguo-msingi, “index.html” au hawajulikani walipo, mabadiliko na “index.php”.

    Natumaini kuwa wa msaada, Tuonane hivi karibuni.

  20. Hello Antonio,
    me preguntaba si se puede montar un servidor web para montar un sistema domótico y probar la api de twitter para encender luces etc… (he visto que también se puede hacer por python con algunas librerías y resulta sencillo siguiendo los tutorialespero se podría hacer como digo y con php? yaani, que la raspberry tenga el servidor web con twitter y los puertos gpio enciendan los leds
    Gracias de antemano.

    • Hola Nano,

      Desde la web en php puedes ejecutar cualquier orden en el interprete de órdenes BASH, lo que incluye scripts en Python.

      Puedes utilizar la librería o API de Twitter para que cuando envíes cierto tweet citando el nombre de usuario de la cuenta del bot, apague o encienda la luz o electrodomestico asociada a ese mensaje en concreto.

      Veo un problema, y es que cualquiera podría encenderte y apagarte las luces y los electrodomésticos de casa; a no ser que se pueda restringir dependiendo del usuario que envía el tweet.

      Sería interesante si vas comentando lo que encuentres al respecto.

      Asante kwa maoni, Tuonane hivi karibuni.

  21. Mchana mwema,
    He seguido el tutorial, copie el codigo de la web, lo guarde como .php, en la carpeta que me crea el servidor /var/www/html , porque si pongo el index.php fuera de la carpeta html no me encuentra el archivo, pero bueno, parece que todo esta bien. Solo estoy probando con el GPIO 17, entonces he creado dos .py, uno para encender y otro para apagar, los he ubicado en la misma carpeta del archivo index.php. Abro el navegador, entro en el index, pero no me prende el led. Si accedo por ssh al archivo enciende y lo ejecuto por consola si que funciona. no se donde puedo estar fallando. Por supuesto cambie la ruta de acceso a los scripts desde el php, ya que es diferente a tu tutoria.
    Espero puedas echarme una mano, estoy pillado.
    Salamu.

    Shukrani nyingi.

    • Hola Charlie,

      Desde hace un par de versiones, Raspbian ha actualizado Apache y las páginas web se sirven desde /var/www/html en lugar de /var/www

      Hay una nueva versión de la web en la que puedes prescindir de utilizar archivos adicionales, también puedes colaborar en su desarrollo mediante github si lo deseas:

      http://www.peatonet.com/raspberry-pi-implementando-un-sistema-domotico-asequible-parte-iii/

      De todos modos si quieres utilizar esta versión del panel de control puedes probar añadiendo al usuario www-data en el grupo gpio, parece que ese es el problema puesto que te funciona mediante ssh.

  22. Hola peatonet, estoy intentando hacer un invento para activar un modulo de 4 relés desde la web para encender o apagar las luces de un local que tengo, el problema es que en la prueba, el led puesto con redistencia se enciende y apaga a voluntad desde la web, pero cuando conecto el pin40 (que es el que tengo configurado) quitando la resistencia y el led, se apaga la luz roja del módulo de relés y ni enciende ni apaga la bombilla que tengo para probar.

    Por favor ayudadme porque ya no se si es que esta mal el módulo de relés (maldito aliexchinapress) aunque en ninguno de los 2 módulos que tengo funciona o si es que la raspberrypi no manda bastante tensión al relé (como VCC le tengo puesto al pin3)

    Perdón por la parrafada y gracias de antemano

    Un saludo amigos

    • Hello, me autorespondo yo amigos, el problema lo tenía en que en el pin20 (katika kesi yangu) le tenía que poner una resistencia, yo la he puesto de 330 unida a tierra.
      Supongo que será porque cuando pase de led a relé elimine la resistencia

      Gracias por todo ?

      • Hola Jesús, muchas gracias a ti por compartir la solución con nosotros.

        Disculpa si no pude contestar antes pero me pillaste con fiebre, en la última semana de clases preparando exámenes, y hasta arriba de trabajo (los Freelance no tenemos permiso para ponernos enfermos).

        Respecto al pin al que tienes conectado el VCC, en mi caso lo conecto al pin 2 o al 4 en su defecto ya que requiere 5V de alimentación.

        Si quieres puedes dar más detalles de tu prueba de concepto, estás utilizando leds en lugar de tomas de 220V AC entonces?

        Gracias por tu comentario.

  23. Hello, estoy haciendo un proyecto para la facultad y quisiera saber si existe la forma que desde una aplicacion android se pueda emular este sistema, yaani, como manejar los pines de la raspberry de esta forma me parece 100 veces mas facil que en una aplicacion de android, quisiera saber si creando una aplicacion podria de alguna forma automatica direccionarme a este tipo de sistema para no tener que aprender de la nada a programar semejante cosa en android. Lamentablemente estoy obligado a entregar el proyecto como aplicacion de celular, no de forma web.
    Espero tu respuesta

  24. Hola amigo muchas gracias!! excelente explicación!! que viva el OpenSource. gracias por tu aporte.

  25. amigo disculpa mi ignorancia es posible realizar el mismo proyecto pero sin utilizar python solamente con php?????

  26. Hola y gracias por todo, repito mi pregunta, cual es la diferencia para que esto funcione en la raspberry pi 3, mapema,

    Asante

    • Hello Ignacio, Asante kwa maoni.

      Este tutorial está desarrollado sobre una Raspberry PI 3 por lo que debería funcionar sin complicaciones.

      Si aún así no logras hacerlo funcionar, puedes compartir los errores o problemas que has encontrado.

  27. Hola colegas, necesito de vuestra ayuda pues estoy inmerso en un proyecto entre 3 especialidades, eléctrica, electrónica e informática, yo domino la parte de electricidad pero no soy especialista en las dos restantes. Les explico, necesito conectar un analizador de red M2DL2 a una Raspberry pi con el objetivo de registrar datos de consumo de corriente y poder trasmitirlos a la raspberry y que esta a su vez lo registre y visualice en una tabla de datos. Sé que la señal que saca el analizador es RS485 y la que debe entrar a la raspberry es RS232 por lo que necesito un convertidor de una señal a otra, lo que no sé es como hacer la interconexion entre el analizador, el convertidor y la raspberry. Sabéis algo de esto o me podéis orientar donde buscar información al respecto?
    Kila la heri.
    Ramon.

  28. Hola como andas?
    Si quisiera consultar el estado de un gpio, a traves de php, para que me diga si esta ON / OFF ya que me encuentro remoto. Como deberia hacer?

    Quizá existe alguna manera de que la rasp devuelva el valor que esta el gpio.

    Sino lo hare en una db ingresando 1 Ee 0 al presionar los botones, pero eso lo veo medio rustico

    • Hola Juani, Asante kwa maoni.

      El subsistema GPIO es al fin y al cabo parte del sistema de archivos /sys de GNU/Linux, y realmente se gestiona editando los valores de los archivos asignados a cada puerto GPIO.

      Puedes consultar si un GPIO está activo o inactivo leyendo el archivo que contiene su valor, un ejemplo en PHP para el GPIO 18:

      $estado_gpio18 = file_get_contents(“/sys/class/gpio/gpio18/value”);

      Si el valor es “1” el GPIO está activo, por el contrario si el valor es “0” está inactivo.

      Tuonane hivi karibuni.

  29. Hello, lo primero agradecerte la molestia de compartir tus conocimientos con los que tenemos inquietudes similares.

    Quisiera hacerte una consulta (espero que no sea muy tonta), ya hace meses que llevo dándole vueltas al tema de la creación de interfaces web para la raspi. Tu comentas el tema de darle permisos a www-data, pero eso, estaría bien como comentas para accesos desde entornos locales o para pruebas. ¿Que soluciones aconsejarías para entornos más seguros?

    Un saludo y gracias nuevamente

    • Hola Gon, gracias a tí por tu comentario; únicamente intento documentar como voy aprendiendo día a día sobre este fascinante mundo, de forma online para que así podamos aprender todos juntos.

      Quiero recordar a todos los lectores que a pesar de ser funcional este panel no es en absoluto perfecto, es un ejemplo realmente básico de lo que puede hacerse y cuanto más aprendo más cuenta me doy de lo mucho que se podría mejorar; este año estoy tratando de mejorar mis habilidades como programador ya que siempre me dediqué más a los sistemas y a la seguridad, y no tenía apenas nociones sobre estructuras de código, metodologías de diseño ni algoritmos; espero en breves sacar tiempo para mejorar el panel web y compartir una siguiente versión de la cual ya no me averguence tanto.

      En principio desde la versión 3 Wavuti inatosha kuongeza mtumiaji www-data katika kikundi cha GPIO ili kusimamia hali ya vigingi kuepuka Toa sudoer ruhusa; Hili linaweza kufanyika kutumia amri zifuatazo:

      usermod G - a - wa sudo gpio www-data

      Hata hivyo nadhani kwamba swali lako unalenga zaidi katika kuzuia ufikivu kwa Paneli ya kwa njia ya uhalalishaji, na hili linaweza kufanyika kwa moduli ya mod_auth kwa Apache2; Pia ni vyema kutumia mod_ssl ama kwa cheti cha saini binafsi.

      Kama wewe ni kwenda kupata kutoka nje daima unaweza kuongeza tabaka moja ya usalama kwa kusakinisha VPN na, ambayo unaweza kulinda upatikanaji na vyeti x 509, jina la mtumiaji na nywila, na mifumo ya kuzuia kama vile fail2ban miongoni mwa wengine.

      Natumaini mimi zimeonyesha kidogo mashaka yako, muchas gracias por tu interés acerca del artículo.

      • Hello Antonio! En primer lugar muchísimas Gracias por responder y tan rápido.

        A mi me pasa un poco al revés, soy desarrollador web intentando empaparme del mundo de los sistemas y la seguridad. Es un placer que haya personas como tu que inviertan su tiempo documentando sus proyectos para que otros podamos aprender un poquito más cada día.

        Decirte que me has ayudado mucho. Tengo un proyectito conectado a la raspi, y llevo meses dándole vueltas a lo del interfaz y sin decidirme mucho que hacer ( que si php, que si cylon.js, servicios ya creados tipo mydevice y similares…) y siempre me topé con las mismas dudas: permisos, Usalama, …nk. Tu artículo (créeme que leído muchos) es de los pocos que van un poco más allá de como pinchar cables en las GPIO, de ahí el preguntarte.

        Gracias nuevamente, has aclarado muchas dudas.

        Iré probando e implementando según tenga tiempo libre, y si te interesa te comento resultados.

        Salamu

  30. Hola Que aplicaciones se pueden utilizar en los automóviles
    Se podría que funcionara milrrolling
    Alguien a echó algún proyecto sobre este tema
    Saudos

  31. estimado y si deseo hacerlo con input type radio y sin el boton submit, este podria ser llamado desde un js ? ajax? me gustaria puedas asesorarme gracias

  32. Nzuri,
    He estado intentando realizar lo que propones y no lo he conseguido. He seguido todos los pasos y nada. El problema es el archivo php. He creado un archivo de texto en el que he copiado todo lo que has puesto arriba, sin modificar nada, tal cuál, y lo he guardado como php. Lo he ubicado dentro de la carpeta leds y no hay manera de que se ejecute. No sé cuál es el problema.
    Gracias y un saludo

  33. Hola Amigo, para mi proyecto me pidieron madar al prender el led de la misma forma pero publicnado desde tweter,tendras algun tuto para eso?? yo tenfo un codigo pero no lo puedo hacer jalar te lo podria compartir para que lo cheques??

Jibu

Anwani ya barua pepe yako si kuchapishwa. Mashamba required ni alama *

*