Raspberry PI şi GPIO ace: LED-ul de la o interfaţă web de control

În cele mai recente posturi din această serie, Am văzut ele sunt pinii GPIO şi pentru a servi, şi Cum de a controla puterea de LED-uri din terminal; înainte de a începe Am instalat biblioteci GPIO pentru Python, şi circuite electronice asamblate şi de lucru.
Aplicatie web în HTML + PHP + Python să se ocupe de LED-uri câteva prin GPIO.

Cu aceasta ocazie vom instala serverul web Apache, şi să înveţe să scrie codul HTML şi PHP pentru a controla acelasi LED, sau mai multe, de la o interfaţă web.

gpioprogramar0pngPrimul lucru pe care trebuie să facem este instalare LAMP server de web, Deci, tastaţi următoarele comenzi în terminal:

#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

Acum, vom adăuga ca sudoer pentru utilizator www-date, Acest lucru nu este opţiunea mai sigur, dar Amintiţi-vă că vom face o testare într-un mediu controlat; pentru un mediu în producţie ar trebui să căutăm o altă modalitate de a rula scripturi în python ca sudoer.

Pentru a edita aceste permisiuni, a scris sudo terminalvisudo în terminal şi la sfârşitul fişierului Adauga la www-date ca sudoer, Acesta trebuie să fie aşa.

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

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

Pentru fiecare pini GPIO Avem nevoie să creaţi un subdirector şi trei script-uri Python; unul pentru a activa, un alt la spre nap off, şi un script-ul final pentru a face noastre LED clipeste, Iată un exemplu cu CODUL PIN 4.

#!usr/bin/env/ python
## enciende.py
#Importamos la libreria y le cambiamos el nombre a GPIO
import RPi.GPIO ca GPIO
#Stabilim sistemul de numerotare pe care vrem să, 
#în acest caz sistemul BCM
GPIO.setmode(GPIO. BCM)
#Configuraţi pini GPIO 4 ca o putere
GPIO.setup(4, GPIO. AFARĂ)
#Ne întoarcem pe LED-uri
GPIO.output(4, GPIO. MARE)
#!usr/bin/env/ python
## apaga.py
#Putem importa librăria şi schimba numele ei la GPIO
import RPi.GPIO ca GPIO
#Stabilim sistemul de numerotare pe care vrem să, 
#în acest caz sistemul BCM
GPIO.setmode(GPIO. BCM)
#Configuraţi pini GPIO 4 ca o putere
GPIO.setup(4, GPIO. AFARĂ)
#Nap off LED-uri
GPIO.output(4, GPIO. LOW)
#Şi vom elibera GPIO
GPIO.cleanup()
#!usr/bin/env/ python
## parpadea.py
#Putem importa librăria şi schimba numele ei la GPIO
import RPi.GPIO ca GPIO

#Necesare pentru intarzieri
timp de import

#Stabilim sistemul de numerotare pe care vrem să, 
#în acest caz sistemul BCM
GPIO.setmode(GPIO. BCM)

#Configuraţi pini GPIO 4 ca o putere
GPIO.setup(4, GPIO. AFARĂ)

#Porniţi şi opriţi condus 5 ori
pentru că în intervalul(0,5):

        GPIO.output(4, GPIO. MARE)
        Time.Sleep(1)(1)
        GPIO.output(4, GPIO. LOW)
        Time.Sleep(1)(1)

#Şi vom elibera GPIO
GPIO.cleanup()

Acum este momentul pentru a crea pagina noastră de pornire în HTML şi PHP, conţine butoane care ne va apăsaţi pe pentru a rula script-uri Python de la o interfaţă web, mai târziu, vom vedea cum ierarhia finală.

<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

?>

Trebuie grupate pe ea toate pe aceeaşi pagină ca în cazul în care creează o pagină în PHP pentru fiecare opţiune, a alerga it, am fost trimis la pagina de script-ul (o pagină goală); acum alerga codul şi rămâne pe aceeaşi pagină.

în cele din urmă Trebuie să obţinem următoarea ierarhie în cadrul subdirector al serverului web /var/www.

Screenshot de 2014-10-05 00:06:52Dacă vă place să urmaţi-mă pe Stare de nervozitate, Facebook, Google +, LinkedIn, sau partajaţi-l cu butoanele de sub această publicaţie, Dacă aveţi orice întrebări sau sugestii vă rugăm să nu ezitaţi să comenteze.

Să ne ajute să ajungă la mai mult de cititori Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

71 gânduri pe"Raspberry PI şi GPIO ace: LED-ul de la o interfaţă web de control

  1. bun, După ce se uită la Internet soluţii de automatizare de start, Am decis de sistem, pare bine expuse.
    Chiar şi aşa, şi din cauza mea experienta zero in soft. dubii în mine, Doresc ca tu le-ar putea rezolva, I-am facut mai multe teste si nimic, Eu nu-l….:)
    efectua toate paşii pe care explica şi am gestiona gpio de terminal cu chit, dar din moment ce web pot activa script-ul python.
    Am nevoie pentru a face o pagină de pe /val/www cu html (index.html) asa ca serveste-l am apache. Prin plasarea site-ul tau aici dacă butoanele lasă-mă, dar nu executa php script. În index.php filme, nu se pune în interiorul.
    Ne pare rău pentru neplăcerile create şi vă mulţumesc.

      • Vă mulţumim pentru a răspunde atât de repede, Da am pas pentru a da permisiuni în fişierul pe care le pune, Eu sunt confuz cu filme index.php, Când stau GPiO Director, doar vedea butoanele pe web în cazul în care am pus-o în /val/www….în html!…index.html, dar nu executa PHP script. Care ar trebui să pună index.php care atarna GPIO Director?

        • Dacă te uiţi atent, index.php /var/www/leds 🙂 se blochează în cazul în care încă nu funcţionează, Comenteaza acest articol si uita-te la ea.

          Dacă /var/ www/index.php cuelgas se va vedea în această direcţie, dar nu va funcţiona nimic:

          http://ipdelapi

          În cazul în care atarna de /var/www/leds/will de lucru în mod corespunzător, dar din moment ce acest traseu:

          http://ipdelapi/leds

          Sper că acest lucru se rezolvă îndoielile şi că aveţi posibilitatea să mutaţi în lumea aceasta atât de interesant.

          • Ma bucur ca ai lucrat, în cele din urmă a fost calea de script-ul?

            Mulţumiri pentru dumneavoastră comentariu 🙂

          • bun, Eu am aceeaşi problemă ca şi colegii de mai sus.

            Meu index.php atârnă de la /var/www/html/index.html
            , Dacă I a lua meu html index de acolo nu indicat, dar nu am nici o problema in a avea ea acolo, Problema mea vine când puls buton şi nu a alerga mi traista.

            PD: I-am dat totul şi permise

            Vă mulţumim pentru răspunsul dumneavoastră.
            Un salut

            J.G.

  2. bun, munca ta este de servire mi mult, sunteţi o maşină!
    Sunt încercarea de a face sistemul de automatizare pentru a controla mai multe LED-uri de pe web, dar am o problema nu te poate atenua.
    Tema este că am activat GPIO am nevoie, Eu le activa şi dezactiva de terminal, Conecta un alt PC conectat pe aceeaşi reţea să 192.168.X.X/leds/ şi site-ul arata bine, meniu de control de casa arata perfect, dar LED-uri nu răspund, Am incercat de active şi pasive, ceva I sînt doing greşit…
    Singurul lucru pe care pot să spun este că vă afişează codul sursa al paginii şi arată doar codul html, PHP nu apare, nu este dacă trebuie sau nu.
    Cred că ar putea fi ceva PHP, dar nu sunt foarte convins, pentru că am încercat un test PHP şi nu de bine, Sunt disperat lol

    • Bună, John,

      Mă alegro mult că pot fi utilitatea meu 🙂 de articole sunt întotdeauna bine ati venit comentarii pozitive.

      Codul PHP în browser-ul este afişat ca HTML, Deoarece funcţia PHP este în timp şi dinamic de a crea pagini de web, care sunt servite în browser.

      Rularea script-uri Python direct dacă LED-uri sunt aprinse? dreptul de lucru ar fi începutul de testare de aici şi merge mai departe.

  3. Vă mulţumim pentru a răspunde rapid!
    În cele din urmă format zmeura din nou, Am urmat toti pasii din nou şi totul merge frumos, nu este că ar putea eşua.
    Oricum Multumesc pentru atentie.
    Un salut

    • Vă mulţumim pentru a partaja îndoielile, Ma bucur ca l-a aranjat în cele din urmă.

      Ai schimbat ceva din zmeura, precum şi formatul, ca de exemplu microUSB transformator?

      • da, Cand am cumparat-o am pus o chiuveta de micro la viteza-l sus şi acest lucru va lucra mai repede, dar nici nu este foarte uşor de observat schimbarea.
        Asta a fost singurul lucru care le schimba la rasp.

        • Bună, John, Mă bucur să vă citesc din nou aici.

          În principiu nu are care influenţează Overclock în acest aspect, dar ar fi fost nici o configurare; acum, că sunteţi de lucru cu o curatare Raspbian se întoarce pentru a da probleme după ce a fost în producţie, Acum în cazul în care aş recomanda să găsiţi rădăcina problemei.

          Variația Overclock veţi observa că în în funcţie de sarcinile specifice, care au nevoie de mult puterea de calcul, dar unii factori, cum ar fi portul Ethernet va continua în funcţie de sticla-gât, care utilizează.

          Puteţi vedea de revizuire am făcut modelelor Raspberry PI B, B + şi B2 in urmatorul link, cu plin de performanţă de testare:

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

          Sper că vă va fi util, Ne vedem în curând 🙂

  4. bună, Am o mica intrebare/problema. Aş dori să se conecteze o sonerie în loc de un led, dar vreau sa incerc prima cu un LED-uri pentru a afla. Este necesar să se facă un index.html şi alte .php?
    Eu am condus conectat la gpio4, si eu am un script de on.py şi alte off.py în interiorul folderul 4. Consola de lucru perfect.
    şi nu putem pune index.html, deoarece acesta nu va lasa-ma, dar doar pentru dus funcţionalitate 4.

    Sper ca ma puteti ajuta, Am vizitat profilul de facebook si sper intr-o zi atât de zmeura Pi ca stii. Un salut si Multumesc.

  5. Un web în PHP poate conţine HTML de care au nevoie de doar o index.php

    Daca pun comenzi de PHP pentru a rula script-uri Python într-un fişier HTML, nu se va executa.

    Acum, că terminalul functioneaza, ar putea copia doar index.php acest tutorial, eliminarea altor GPIO şi lăsând doar 4 Asta e ceea ce foloseşti; şi ar trebui să funcţioneze.

    Dacă nu puteţi edita fişiere în/var/www cu siguranta va fi permisiunea, in acest tutorial este soluţia şi ar trebui să funcţioneze, În cazul în care acesta nu comentariu şi voi încerca să vă dau o mână.

  6. bună, Am de gând să ia pentru a pune o altă întrebare aici, Dacă tu sau cineva mă poate lua un cablu. Eu am acest script şi ar dori să ştergeţi folderul cu data o dată repornit, şi ceea ce mă interesează, ştiu cum se face că, atunci când vine la o dimensiune de x suma de capturi, toate să fie şterse sau reporneşte RPi. Multumesc un salut.

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

    # Unele lucruri pe care se execută întotdeauna
    #Touch /var/lock/motionStartup
    Logger - s “Script-ul numit motionStartup”

    # Efectueze funcţii specifice întrebată de sistem
    caz “$1” în
    Începe)
    Logger - s “MotionStartup script-ul a început”
    TIMESTAMP = $(data + %m %d %H %M %S și % | SED pe / / / g') # Fără spații
    Logger - s “Script-ul motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $TIMESTAMP || Logger - s “Mkdir începe eroare”
    găsi/motiontmp/motion /. -tip f - dimensiune 0 -print0 - şterge
    găsi/motiontmp/motion /. -MaxDepth 1 -tip f | \
    XARGS - AM '{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    opreşte-te)
    Logger - s “Script-ul motionStartup oprit”
    ;;
    *)
    ecou “Utilizare: /etc/init.d/motionStartup {Începe|opreşte-te}”
    ieşire 1
    ;;
    ESAC

    ieşire 0

  7. Dacă adăugaţi această linie la începutul scriptului, fiecare dată când executaţi scriptul, înainte de a face ceva va şterge toate folderele în interiorul/motiontmp /

    sudo rm - rf/motiontmp / *

    În ceea ce privește şterge fişierele atunci când ajunge la o anumită mărime, ai putea încerca concatenarea comanda df - h rezultate un director disk usage, sau o partiţie:

    df - h /motiontmp

    Cu o altă comandă ca wc sau sed, astfel că acesta doar Citeşte fraza referindu-se la MB sau GB utilizate, În cele din urmă cu dacă ar putea program partea că dacă rezultatul este mai mare decât N, executaţi comanda descrisă mai sus rm.

    • A şterge folderele perfectă, dar apoi…
      Ne pare rau, dar sunt un pic de nou si am pierdut, cum ar fi de exemplu pentru atunci când ajunge Director/motiontmp/motion / 5 Gigas? Salutări de multumim.

  8. Ne pare rău pentru astfel încât mai multe posturi de urmat, dar aşa cum am constatat în actualizare. Ceva de genul asta ar putea să funcţioneze?

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

    size = du - sh /motiontmp

    Citeste “dimensiune”

    Dacă [ “$dimensiune” > “2048000Pentru a” ]; apoi

    sudo rm - rf/motiontmp / *

    altceva

    Logger - s “Script-ul numit motionStartup”

    # Efectueze funcţii specifice întrebată de sistem
    caz “$1” în
    Începe)
    Logger - s “MotionStartup script-ul a început”
    TIMESTAMP = $(data + %m %d %H %M %S și % | SED pe / / / g') # Fără spații
    Logger - s “Script-ul motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $TIMESTAMP || Logger - s “Mkdir începe eroare”
    găsi/motiontmp/motion /. -tip f - dimensiune 0 -print0 - şterge
    găsi/motiontmp/motion /. -MaxDepth 1 -tip f | \
    XARGS - AM '{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    opreşte-te)
    Logger - s “Script-ul motionStartup oprit”
    ;;
    *)
    ecou “Utilizare: /etc/init.d/motionStartup {Începe|opreşte-te}”
    ieşire 1
    ;;
    ESAC

    ieşire 0

    fi

  9. Bună ziua că un astfel de prieten, Ne pare rau, urmaţi exemplul vostru şi condus este luminat, nu este nici o problema, dar atunci când faceţi clic pe butonul opriţi, clipeşte LED-uri, deja verifica codurile şi tot ceea ce este corect :/ aveţi vreo idee care ar putea face rău?

    • Bună ziua RON, Vă mulţumim pentru comentariul dvs..

      Pe web, Există trei butoane:

      Porniţi, opreşte, şi intermitent.

      Daca se poate, inseraţi aici codul care le-aţi asociat butonul opriţi, Deci comentariul este posibil că butonul opriţi rularea script-ul care ar trebui să fie asociate cu butonul intermitent.

      ne vedem curând.

  10. Bună ziua din nou la toate, un alt îndoială mai mult pentru a adăuga lol.

    Înainte de am pus-o în fundal, Este pentru a activa un sunet de sonerie (sonerie) Ar trebui să fie o buclă care pune codul pin 1 şi o 0 în mod constant, nu ca un led că în timp ce 1 Ea încă mai.
    Problema este cum de a opri această buclă pentru a folosi într-un php web, pentru că consola prin adăugarea la sfârşitul apelul de script-ul o & Acesta rulează în fundal şi lăsaţi consola gratuit pentru a apela scriptul care se termină-l, exemplu:

    sudo python sonar.py &

    Acestea sunt două scenarii, asta o face sunet şi asigurându-vă că se opreşte de apel:

    timp de import
    import RPi.GPIO ca gpio

    GPIO.SetWarnings(Fals)
    GPI.setMode(GPIO. BORD)
    GPIO.Setup(7,GPIO. AFARĂ)

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

    şi închidere:

    timp de import
    import RPi.GPIO ca gpio

    GPIO.SetWarnings(Fals)
    GPI.setMode(GPIO. BORD)
    GPIO.Setup(7,GPIO. AFARĂ)

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

    dar pur şi simplu să perturbe prima lucrat. Multumesc un salut.

  11. Pot înlănţui mai multe comenzi, pentru că se bazează pe numele de script-ul, Terminalul arata PID dumneavoastră şi ucide ulterior executarea ei cu ucide.

    O dată găsit comanda, modificaţi funcţia destinate să închidă cu Ctrl + C, unul în schimb, zumzet de N ori Matt automat cu această comandă.

  12. Dacă cu Ctrl + C se închide în consolă, dar încerc să-l pună în aplicare prin intermediul PHP ca dumneavoastră post de LED-uri, apoi va trebui să fie un alt mod spun.

  13. bună.
    Multumesc pentru tutorial.

    Am o problema, executa script-ul, Dacă tu a alerga-le de pe consolă, dar din moment ce pagina nu, Nu ştiu că se poate. Am făcut ce vă comentariu de
    “Vom scrie sudo terminalvisudo la terminal şi la sfârşitul fişierului adăugaţi la www-date ca sudoer, Acesta trebuie să fie aşa.”

    Dar nimic. Ce altceva pot uita la?

    Saludos.

  14. bună, buna dimineaţa,
    La nimic, vă mulţumesc.

    Acesta permite o întrebare, totul merge perfect, acum, Aş dori pentru a putea Adauga un ecran care indică când LED-uri sunt pornită sau oprită, Am gasit cateva articole chiar cu imagini care arată culoarea în funcţie de dacă schimbarea lămpile funcționează sau nu, încercaţi să înţelegeţi operaţiune dar nu reuşeşte să facem să funcţioneze, I a lua la web cu comenzi, dar nimic nu este activat, Sper sa nu deranjez cu aceasta si un alt aspect, Vă mulţumesc pentru amabilitatea ta uimitoare.

    Ionescu din Belgia

    • Bună ziua ionescu, Vă mulţumesc foarte mult pentru comentariul tau.

      Cred că sunteţi folosind Javascript a face acest lucru, integrarea funcţiilor PHP care activa script-ul Python pentru, gestiona putere-luminatoare.

      JavaScript nu domino, Deoarece eu nu sunt un web developer, dar probabil te poate orienta-te un pic mai bine, sau unele alt cititor poate ajuta să obţineţi ceea ce vrei; dar să facă acest lucru ar trebui să vedea codul, sau tutoriale pe care aţi urmat-o pentru a încerca să detecteze în cazul în care bug-ul este.

      ne vedem curând, şi o mulţime de încurajare!

  15. Hallo la spre tot multe mulţumiri, Am invata multe.
    Am urmat toate etapele expuse, Pot activa pe LED-uri de la locale terminale, încărcaţi patch-uri php conform instrucțiunilor ullu, Acordați permisiuni chiar un 775—-etc. Incarca pagina cu butoanele condus/gpio dar nimic. Sunt folosind Raspberry pi 2…..va fi ceva cu acest card?. Apreciez colaborare.

    • Bună ziua Rafael, Vă mulţumim pentru comentariu.

      Este posibil că soluţia este în comentariile din Tutoriale anterioare din această serie dedicată domotică accesibile pe baza Raspberry PI.

      Paşii de urmat sunt compatibile cu orice versiune de IP, Aceasta are loc pentru mine că ai putea schimba executarea de script-ul Python pe site-ul de comanda următoare, care va crea un fişier în directorul home al tău zmeura:

      sudo touch /home/pi/funciona

      În cazul în care toate funcţionează bine, Acest fişier ar trebui să fi creat.

      • Vă mulţumim pentru răspunsul dumneavoastră rapid. Am făcut modificările, aşa cum a spus-o pentru mine, in index.html prin eliminarea parte python şi introducerea în schimb: sudo touch /home/pi/funciona , dar, din păcate, fişierul nu este creat în meu zmeura. Cred că este un test excelent şi rezultatul cred că concentrat problema din zona web. Eu va căuta mai multe informaţii în alte tutoriale. Multumesc pentru ajutor. ţinem legătura.

        • Bună ziua Rafael, apoi ai putea face acelaşi test modificând uşor calea de fişier pentru a verifica dacă problema se află cu permisiunile de Director/var/www.

          sudo touch /var/www/funciona

  16. bună, Am putea spune o modalitate de a pune o etichetă cu LED de stare din interfaţa de web PHP
    care schimba automat pentru a da un clic a spus butonul fie să porniţi, opreşte, intermitent… au o etichetă care îţi spune starea. Multumesc pentru intrare sper ca ma puteti ajuta..

    • Salut roxana, Vă mulţumesc foarte mult pentru comentariul tau.

      Cred că ai putea face cu PHP şi JavaScript dacă doriţi pentru a da ceva mai mult efect vizual, sau modificări de la butonul.

      Dacă doriţi doar pentru a adăuga o legendă de text în funcţie de buton de presiune, Trebuie să se extindă doar funcţiile asociate cu fiecare intrare; Anexez o listă de funcţii disponibile în PHP:

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

    • Salut eugen,

      Nu inteleg bine întrebarea, dar pentru a găsiţi IP a unui dispozitiv aveţi posibilitatea să utilizaţi NMAP.

      Aveţi, de asemenea, instrumente cu interfaţă grafică ca ZenMap pe baza NMAP şi Fing'rs pentru dispozitive Android.

    • Salut eugen,

      IP pe care va trebui să tastaţi în browser-ul este într-adevăr de Raspberry PI, deoarece acest lucru este că acţionează ca un server de web, de asemenea, dacă fişierul php nu este listat ca index.php va trebui să adăugaţi numele de fişier separat una după perioada de anchetă “/”.

      În cazul meu IP este în intervalul de 10.42.0.0 Din moment ce este un IP de tipul NAT asigurate de o interfaţă de reţea virtuală.

    • Salut Sergio,

      Cred că vă referiţi la script-uri Python, altele au avut aceeaşi problemă şi există mai multe soluţii în Comentariile anterioare; Dacă după testarea le persistă eşecul în cazul în care vă aduce mai multe date probabil alti cititori sau am putut ajutor tu.

      ne vedem curând.

    • Bună ziua Roberto, bun venit.

      Eu nu sunt un expert în php, şi în acele momente am căutat un tutorial pentru executarea ordinelor în interpretul bash-ul la php şi astfel a fost.

      Ar fi mai potrivit să se utilizeze la = exec în loc de?- exec?

      Vă mulţumesc foarte mult pentru comentariul tau, ne vedem curând.

  17. Dacă nu lucraţi web dar dacă script-uri, In curand voi face un articol asa ca se poate remedia problema; Vă mulţumim pentru informaţiile am colectat utilizatorilor diferite, care nu a lucrat.

    Dacă tu a alerga te-ai grabit pentru a repara, Puteţi verifica dacă directorul var există în dumneavoastră zmeura, și dacă da trebuie să mutaţi toate fişierele această cale şi înlocui în script-urile “/var/www” de “/var/www/html” deoarece acum
    Aceasta este calea implicită web server.

    De asemenea, este posibil că nu aţi şters indicele implicit, “index.html” sau dor de tine pentru a schimba-l de “index.php”.

    Sper sa fie de ajutor, ne vedem curând.

  18. Bună ziua Antonio,
    Mă întrebam dacă un server web poate fi montat a se potrivi un sistem de automatizare de start şi încercaţi twitter api pentru a aprinde luminile etc… (Am vazut ca se poate, de asemenea, face de python cu unele biblioteci şi uşor să urmaţi tutoriale… dar ai putea face aşa cum am spus si cu php? adică, zmeura este serverul de web cu twitter şi porturile gpio aprinde LED-uri
    Multumesc anticipat.

    • Bună ziua nano,

      De pe web în php poate rula orice comandă la interpret comanda BASH, care include script-uri Python.

      Se poate utiliza Biblioteca sau Twitter API, astfel încât atunci când vă va trimite un tweet citând nume de utilizator în contul bot, Opriţi sau porniţi lumina sau aparat asociat cu acel mesaj în.

      Eu văd o problemă, şi este că oricine ar putea transforma pe tine si te transforma lumini şi electrocasnice; cu excepţia cazului în care le poate limita în funcţie de utilizatorul care a trimis tweet.

      Ar fi interesant dacă sunteţi comentând ceea ce veţi găsi în acest sens.

      Multumesc pentru comentarea, ne vedem curând.

  19. bună ziua,
    Am urmat tutorialul, copiaţi codul de pe web, Salvaţi-l ca .php, în folderul în care mi-a creat serverul var , pentru că dacă am pus index.php din folderul html nu ma gasi fisierul, dar bun, Se pare că totul este OK. Sunt doar de testare cu GPIO 17, Apoi am creat două .py, pentru a activa şi a dezactiva, I le-au situat în acelaşi folder ca fişierul index.php. Am deschis browser-ul, a intrat în index, dar nu va funcţiona ma condus. Ssh acces Arhiva se aprinde si executa prin consola, în cazul în care funcţionează. nu fi unde am fi în lipsa. Desigur patetic la script-uri din php, Din moment ce este diferit de meditaţii dumneavoastră.
    Sper că vă poate da-mi o mână, Eu sunt prins.
    Un salut.

    mulţumesc mult.

  20. Bună ziua peatonet, Am încercat să facă o invenţie pentru a activa un modul de 4 relee de web pentru a porni sau opri luminile de un local am, problema este că, în testul, condus cu redistencia porneşte şi se opreşte la vor de la web, dar când mă conecta pin40 (care este, care am configurat) eliminarea rezistentei si a condus, opreşte lumina roşie a modulului de releu şi nu pornit sau oprit am să testeze becul.

    Te rog ajută-mă pentru că nu mai este cazul că este greşit modul de releu (la naiba aliexchinapress) dar în niciunul dintre 2 module că am lucrări sau care raspberrypi nu este suficientă tensiune trimisă releu (ca VCC le am de la pin3)

    Ne pare rău pentru tiradă si Multumesc anticipat

    Salutări prietenii

    • bună, autorespondo eu am prietenii, problema ar fi faptul că, în pin20 (în cazul meu) avut de a pune o rezistenţă, Am pus-o 330 împământare.
      Cred că este, deoarece Când treci a condus la rezistenţă de eliminare releu

      Vă mulţumesc pentru tot ceea ce ?

      • Bună ziua lui Isus, Multe mulţumiri pentru sharing soluţie cu noi.

        Ne pare rău dacă am putea răspunde înainte, dar eu prind cu febra, în ultima săptămână din clasele pregătirea examenelor, şi locul de muncă (Freelance nu are permisiunea de a se îmbolnăvesc).

        În ceea ce privește pin că v-aţi conectat VCC, în cazul meu am conecta la pinul 2 sau la 4 în lipsa deja care necesită o sursă de alimentare 5V.

        Daca vrei poti da mai multe detalii despre dovada de concept, apoi utilizaţi LED-uri in loc de 220V AC de desfacere?

        Multumesc pentru comentariu.

  21. bună, Fac un proiect de şcoală şi a fost întrebam dacă există cale că poate emula acest sistem la o aplicaţie android, adică, Cum să se ocupe de pinii de zmeură în acest fel se pare 100 ori mai uşor decât într-o aplicaţie android, Mă întreb dacă crearea o cerere ar putea în mod automat orientându-mă la acest tip de sistem pentru a evita să înveţe de la zero pentru a programa un astfel de lucru în android. Din păcate, sunt obligat să livreze proiectului ca o aplicaţie de mobil, nu de formular web.
    Sper că răspunsul dumneavoastră

  22. Bună ziua şi vă mulţumesc pentru tot ceea ce, Repet întrebarea mea, Care este diferenta pentru ei să lucreze în raspberry pi 3, în avans,

    vă mulţumesc

    • Bună ziua ionescu, Multumesc pentru comentarea.

      Acest tutorial este dezvoltat pe o Raspberry PI 3 Deci ar trebui să funcţioneze fără complicaţii.

      Dacă încă nu pot face să funcţioneze, Aveţi posibilitatea să partajaţi orice erori sau probleme pe care le-aţi găsit.

  23. Salut colegii, Am nevoie de ajutorul tău pentru că eu sunt scufundate într-un proiect între 3 specialităţi, electrice, Electronică şi Informatică, Am domino partea de energie electrică, dar eu nu sunt specialist în celelalte două. Le explic, Am nevoie pentru a conecta un analizator de reţea M2DL2 un Raspberry PI pentru a înregistra date de consumul de curent şi de a le transmite zmeură şi -l înregistreze şi afişate într-un tabel de date, care este la rândul său. Ştiu că semnalul care face scanerul este RS485 şi RS232 care ar trebui să introduceţi zmeura este ceea ce am nevoie de un convertor de semnal de un alt, ceea ce nu stiu este cum să facă şi interconexiunea între analizor, Convertor si zmeura. Ştiţi ceva despre acest lucru sau poate ghida mine în cazul în care găsiţi informaţii?
    Saludos.
    Ramon.

  24. Bună ziua aşa cum eşti?
    Dacă doriţi pentru a verifica starea de un gpio, prin intermediul php, Deci spune-mi dacă acest ON / Deoarece eu sunt la distanţă de PE. Cum ar trebui?

    Poate că există unele mod care rasp returnează valoarea care este gpio.

    Dar iepurele într-o db prin introducerea 1 oana 0 apăsând butoanele, dar că văd mediu rustic

    • Hola toma, Multumesc pentru comentarea.

      GPIO subsistem este în cele din urmă şi la o parte din / sys de sistem de fişiere GNU/Linux, şi de fapt a reuşit prin editarea valorilor de fiecare dosar GPIO port mapate.

      Puteţi verifica dacă un GPIO este activ sau inactiv citit fişierul care conţine valoarea ta, un exemplu în PHP pentru GPIO 18:

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

      În cazul în care valoarea este “1” GPIO este activ, pe de altă parte, în cazul în care valoarea este “0” este inactiv.

      ne vedem curând.

  25. bună, în primul rând vă mulţumesc pentru hassle de a împărtăşi cunoştinţele cu care avem preocupări similare.

    Aş dori să fac o interogare (Sper ca nu este foarte prost), luni în urmă că am fost preocupat cu privire la crearea de interfeţe web pentru raspi. Comentariu subiect da permisiuni la www-date, dar că, Ar fi frumos ca un comentariu pentru acces la locale medii sau pentru testarea. Ar fi ca solutii recomanda pentru medii mai sigure?

    Un salut si Multumesc din nou

    • Bună ziua Gon, Vă mulţumim pentru comentariul dvs.; Încerc doar să documenteze ca eu sunt de învăţare în fiecare zi despre aceasta lume fascinanta, formular online, astfel încât să putem învăţa împreună.

      Aş dori să reamintească tuturor cititorilor că în ciuda fiind funcţională acest panou nu este deloc perfectă, este un exemplu foarte de bază a ceea ce se poate face si mai mult am afla mai multe îmi dau seama cât de mult că ar putea fi îmbunătăţită; Anul acesta am încercat pentru a îmbunătăţi abilităţile mele ca un programator, deoarece mi-am petrecut mereu mai mult a sistemelor şi de securitate, şi el nu doar notiuni despre structuri de cod, metodologii de proiectare sau algoritmi; Sper că în scurtă ia timp pentru a îmbunătăţi panoul de web şi cota de o versiune viitoare de care nu-mi fac deja atât de mult averguence.

      În principiu începând cu versiunea 3 Web-ul este suficient pentru a adăuga www-date de utilizator la grupul de GPIO pentru a gestiona starea de pinii evitând permisiunile de sudoer da; Acest lucru poate fi realizat utilizând următoarea comandă:

      sudo usermod - o - G gpio www-date

      Oricum, cred că întrebarea dumneavoastră este mai concentrat pe restrictionarea accesului la panou prin intermediul autentificare, şi acest lucru poate fi făcut cu modulul mod_auth pentru Apache2; De asemenea, este recomandabil să se utilizeze mod_ssl fie cu un certificat autosemnat.

      În cazul în care aveţi de gând să acces din exterior întotdeauna aveţi posibilitatea să adăugaţi un strat de securitate prin configurarea unui VPN, la care vă puteţi proteja accesul cu certificatele de x 509, numele de utilizator şi parola, sisteme de prevenire, cum ar fi fail2ban printre altele şi.

      Sper că am clarificat un pic îndoielile, Vă mulţumim pentru interesul dumneavoastră în articol.

      • Bună ziua Antonio! Mai întâi de toate mulţumesc pentru a răspunde atât de rapid şi.

        Un mi-mi merge un pic înapoi, Sunt web developer încearcă să vă bucuraţi de lumea de sisteme şi de securitate. Este o placere pe care oamenii de acolo sunt ca tine care investesc timpul lor documentarea proiectelor, astfel încât alţii pot învăţa un pic mai mult în fiecare zi.

        Să vă spun că am ajutat foarte mult. Eu am un mic proiect legat de raspi, şi ea a luat luni circling interfaţa şi fără mult de a face a decis mi ( Dacă php, Dacă cylon.js, tip servicii mydevice deja creat şi similare…) şi am găsit întotdeauna aceleaşi dubii: permisiuni, Securitate, …etc. Articolul tau (crede-mă că citesc multe) este câteva pe care merg un pic mai departe ca punctionarea cablu GPIO, Prin urmare, vă cer.

        Multumesc din nou, au clarificat multe îndoieli.

        Voi fi de testare şi de punere în aplicare cât aveţi timp liber, şi dacă sunteţi interesat am spus rezultatele.

        Un salut

lasă un răspuns