Aveņu PI un GPIO adatas: Kontrolējot LED no web interfeisa

Šīs sērijas jaunāko posts, Mēs redzējām tie ir GPIO adatas un kalpot, un Kā kontrolēt gaismas diodes no termināla jauda; pirms sākat Mums ir uzstādītas GPIO bibliotēkas Python, un samontēti elektroniskos komponentus un darba.
HTML Web lietojumprogrammā + PHP + Apstrādāt dažas gaismas diodes caur GPIO Python.

Šajā gadījumā mēs uzstādīsim Apache web serveri, un uzziniet, kā rakstīt HTML un PHP kodu lai vadītu pats LED, vai vairākiem, no web interfeisa.

gpioprogramar0pngPirmā lieta, kas mums ir jādara, ir LAMPU web serveri instalēt, tāpēc ievadiet šādas komandas termināls:

#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

Tagad mēs pievienot kā sudoer lietotājam www-data, Tas nav variants vairāk nodrošināt, bet atcerieties, ka mēs to darām testa kontrolētā vidē; vide ražošanā, mums vajadzētu meklēt citu veidu, kā skriptus palaist Python, sudoer.

Lai rediģētu šīs atļaujas, wrote sudo visudo termināla un faila beigās Pievienot kā sudoer www-data, Tai jābūt.

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

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

Katram kontaktam GPIO Mums ir jāizveido apakšdirektorijā un trīs Python skriptu; viens, lai ieslēgtu, citā, lai izslēgtu, un gala skriptu padarīt mūsu LED mirgo, Šeit ir piemērs ar PIN KODU 4.

#!usr/bin/env/ python
## enciende.py
#Importamos la libreria y le cambiamos el nombre a GPIO
importēt kā GPIO RPi.GPIO
#Mēs veidojam numerācijas sistēma, ko mēs gribam, lai, 
#Šajā gadījumā sistēma BCM
GPIO.setmode(GPIO. BUSINESS CONTACT MANAGER)
#Konfigurēt GPIO pin 4 kā izvadi
GPIO.setup(4, GPIO. ĀRĀ)
#Mēs savukārt par bars
GPIO.output(4, GPIO. AUGSTA)
#!usr/bin/env/ python
## apaga.py
#Mēs bibliotēka importa un mainīt savu nosaukumu uz GPIO
importēt kā GPIO RPi.GPIO
#Mēs veidojam numerācijas sistēma, ko mēs gribam, lai, 
#Šajā gadījumā sistēma BCM
GPIO.setmode(GPIO. BUSINESS CONTACT MANAGER)
#Konfigurēt GPIO pin 4 kā izvadi
GPIO.setup(4, GPIO. ĀRĀ)
#Izslēgtu veda
GPIO.output(4, GPIO. ZEMA)
#Un mēs atbrīvot GPIO
GPIO.cleanup()
#!usr/bin/env/ python
## parpadea.py
#Mēs bibliotēka importa un mainīt savu nosaukumu uz GPIO
importēt kā GPIO RPi.GPIO

#Nepieciešami, lai segtu kavējumus
importēšanas laikā

#Mēs veidojam numerācijas sistēma, ko mēs gribam, lai, 
#Šajā gadījumā sistēma BCM
GPIO.setmode(GPIO. BUSINESS CONTACT MANAGER)

#Konfigurēt GPIO pin 4 kā izvadi
GPIO.setup(4, GPIO. ĀRĀ)

#Ieslēgt un izslēgt bars 5 reizes
Es šajā diapazonā(0,5):

        GPIO.output(4, GPIO. AUGSTA)
        Time.Sleep(1)(1)
        GPIO.output(4, GPIO. ZEMA)
        Time.Sleep(1)(1)

#Un mēs atbrīvot GPIO
GPIO.cleanup()

Tagad ir laiks, lai radītu mūsu mājas lapā HTML un PHP, ir iekļautas pogas, kuras mēs uzstās, lai palaistu skriptus Python no web interfeisa, vēlāk mēs redzēsim kā galīgo hierarhija.

<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

?>

Man ir grupēti visi par vienu un to pašu lapu kā tad, ja lapas izveide PHP katrai opcijai, palaišanai, tika nosūtīts skriptu lappusei (tukšu lappusi); Tagad palaist kodu un paliek tajā pašā lappusē.

beidzot Mums ir jāpanāk Šī hierarhija atrodas web servera apakšdirektorijā /var/www.

Screenshot 2014-10-05 00:06:52Ja jums patīk jūs varat sekot mani uz Čivināt, Facebook, Google +, LinkedIn, vai dalīties tajā ar pogām zem šīs publikācijas, Ja jums ir kādi jautājumi vai ierosinājumi, lūdzu, nekautrējieties komentēt.

Palīdz mums sasniegt vairāk lasītāju Share on LinkedIn
LinkedIn
Share on Facebook
Facebook
Tweet about this on Twitter
Čivināt
Share on Google+
Google +
Email this to someone
e-pasts

75 domas par"Aveņu PI un GPIO adatas: Kontrolējot LED no web interfeisa

  1. labs, Pēc tam apskatot interneta risinājumus mājas automatizācijas, Nolēma, ko jūsu sistēma, šķiet labi iedarbojas.
    Pat tā, un sakarā ar manu nulles pieredzi mīkstā. man ir šaubas, Es vēlos jūs varētu atrisināt tos, Esmu bijis dara daudzi testi un nekas, Nav get it….:)
    veikt visus pasākumus, kas izskaidro un pārvaldīt gpio no termināla ar tepe, bet, tā kā python skriptu nevar aktivizēt web.
    Man vajag darīt /val/www ar html lapu (index. HTML) Tātad tas kalpo man apache. Ievietojot jūsu mājas lapā, šeit, ja pogas atstāt mani, bet nevar izpildīt php skriptu. Šajā lapā index. php, nedrīkst laist iekšā.
    Atvainojamies par neērtībām un paldies.

      • Paldies par tik ātri reaģēt, Jā bija solis dotu atļaujas failu, ko ievietojat, Es esmu sajaukusi ar index. php page, jūs pakārt GPiO direktoriju, tikai redzētu pogas tīmeklī, vai likt to /val/www….HTML formātā!…index. HTML, bet nevar izpildīt PHP skriptu. Kas būtu jāliek index. php, kas karājas GPIO direktoriju?

        • Ja jūs meklējiet cieši, index. php /var/www/leds 🙂 uzkaras ja joprojām nedarbojas, komentēt šo rakstu un skatīties uz to.

          Ja /var/ www/index.php cuelgas to redzēs šajā virzienā, bet kaut kas nedarbojas:

          http://ipdelapi

          Ja hang /var/www/leds/will strādāt pareizi, bet, tā kā šis ceļš:

          http://ipdelapi/leds

          Es ceru, ka tas atrisina jūsu šaubas un var ienākt šajā tik aizraujoša pasaule.

          • labs, Man ir tāda pati problēma kā kolēģi iepriekš.

            /Var/www/html/index.html karājas manu index. php
            , Ja man manu indekss html no tur netiek parādīta, bet man nav nekādu problēmu, ņemot to tur, Mana problēma nāk, kad pulsu pogu un nevar palaist mani lūžņi.

            PD: I deva viņam viss un atļaujas

            Paldies par jūsu atbildi.
            Sveiciens

            J.G.

  2. labs, jūsu darbs mani apkalpo daudz, tu esi mašīna!
    Es cenšos padarīt automatizācijas sistēmas, lai kontrolētu vairāki indikatori no tīkla web, bet man ir problēma, jums, iespējams, nevar mazināt.
    Tēma ir, ka man ir aktivizēts GPIO, man vajag, Es aktivizētu un deaktivizētu no termināla, Izveidot savienojumu ar citu datoru savienotas vienā tīklā ar 192.168.X.X/leds/ un mājas izskatās labi, izvēlnē, lai veiktu kontroli pār mājas izskatās perfekts, bet gaismas diodes nereaģēja, Esmu mēģinājis, aktīvā un pasīvā, kaut ko es daru nepareizi…
    Vienīgais, ko varu teikt ir tas, ka jūs attēlot lappuses avota kodu un rāda tikai html kodu, PHP neparādās, nevar būt, ja tā būtu, vai ne.
    Es domāju, ka tas var būt kaut kas PHP, bet es neesmu ļoti pārliecināts, jo es mēģināju PHP tests, un tas ir labi, Es esmu izmisis lol

    • Labdien, Juan,

      Man alegro, daudz kas var būt lietderību manu rakstus 🙂 vienmēr ir laipni pozitīvas atsauksmes.

      Visi PHP kods pārlūkprogrammā tiek parādīts kā HTML, PHP funkcija ir laikā un dinamiski veidot web lapas, kas tiek pasniegti pārlūkprogrammā.

      Python skriptu izpildi tieši, ja ir apgaismoti indikatori? pareizi būtu sākt no šejienes testēšana un iet uz priekšu.

  3. Paldies, lai atbildētu ātri!
    Beidzot atkal aveņu formāts, Es sekoju visiem darbības vēlreiz un viss strādā skaisti, nevar būt, ka varētu neizdoties.
    Anyway paldies par uzmanības.
    Sveiciens

    • Paldies, ka dalīties ar jūsu šaubas, Es esmu priecīgs, ka beidzot tas ir sakārtots.

      Kaut kas ir mainījušies, aveņu, kā arī formātu, piemēram, transformatora microUSB?

      • jā, Kad es to pirkusi man izlietne Micro ātrumu viņu uz augšu, un tā darbosies ātrāk, bet neviena no tām nav ļoti ievērojamas izmaiņas.
        Tas bija vienīgais, kas jums jāmaina aslapainības.

        • Labdien, Juan, Es esmu priecīgs lasīt jums vēlreiz šeit.

          Principā nav ko ietekmēt šo aspektu Overclock, bet iespējams, ka tā ir jebkuras konfigurācijas; tagad, kad jūs strādājat ar Raspbian tīrīšanas atgriežas dot problēmas pēc tam, kad to ražošanā, Tagad, ja kas ieteiktu jums atrast saknes problēma.

          Overclock, jūs ievērosiet, to saskaņā ar īpašiem uzdevumiem, kas vajadzīgs daudz skaitļošanas jaudas izmaiņas, bet daži faktori, piemēram, Ethernet ports turpinās pēc pudeles kakla, kas izmanto.

          Jūs varat redzēt, es darīju aveņu PI B modeļu pārskats, B + un B2 šo saiti, ar pilnu veiktspējas testēšana:

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

          Es ceru, ka jums būs noderīga, redzēt jūs drīz 🙂

  4. labdien, Man ir mazs jautājums/problēma. Es gribētu, lai savienotu svilpe, nevis veda, bet es gribu mēģināt vispirms ar led, lai uzzinātu. Ir nepieciešams veikt INDEX un citas PHP?
    Man ir bars, savienota ar gpio4, un man ir on.py skriptu un citu off.py mapē 4. Konsole darbu perfekti.
    un nevaru laist index. HTML, jo tā neļaus man, bet tikai veda funkcionalitāti 4.

    Ceru, ka jūs varat man palīdzēt, Ir apmeklējuši jūsu facebook profils, un es ceru, ka kādu dienu abi aveņu Pi, kā jūs zināt. Sveicienu un paldies.

  5. PHP web var saturēt HTML, kas ir nepieciešama tikai index. php

    Ja jūs varat ievietot jūsu skriptus palaist Python HTML failā PHP komandas, netiks palaista.

    Tagad, kad termināls strādā, varētu vienkārši nokopējiet šo pamācību index. php, novēršot citi GPIO un atstājot tikai 4 tas ir, ko izmantosit; un tai ir jāstrādā.

    Ja jūs nevarat rediģēt failus, / var/www noteikti būs pēc atļaujas, Šī apmācība ir risinājums, un tai ir jāstrādā, Ja tas nav komentārs, un es centīšos jums roku.

  6. labdien, Es esmu gatavojas pieņemt šeit likt vēl vienu jautājumu, Ja jūs vai kāds cits var ņemt mani kabeli. Man ir šis skripts un vēlētos izdzēst mapi ar datumu, kad rebooted, un mani interesē, zināt, kā to darīt, ja runa ir par lielumu x nozvejas apjomu, Visi izdzēsti vai restartējas RPi. Pateicoties sveiciens.

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

    # Dažas lietas, kas vienmēr darbojas
    #Touch /var/lock/motionStartup
    Logger - s “Skriptu ar nosaukumu motionStartup”

    # Veic specifiskas funkcijas, kad tiek prasīts sistēma
    gadījumā “$1” programmā
    Sākums)
    Logger - s “Skripta motionStartup sāka”
    TIMESTAMP = $(datums + %m %d %H %M %S un % | SED ir / / / g') # Bez atstarpēm
    Logger - s “Skripta motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $LAIKSPIEDOLS || Logger - s “Mkdir sākt kļūdu”
    atrast kustības/motiontmp / /. -f - lielums ierakstiet 0 -print0 - dzēst
    atrast kustības/motiontmp / /. -MaxDepth 1 -tips f | \
    XARGS - I "{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    apstājieties)
    Logger - s “Skripta motionStartup apstājās”
    ;;
    *)
    atbalss “Lietojums: /etc/init.d/motionStartup {Sākums|apstājieties}”
    izejiet no 1
    ;;
    ESAC

    izejiet no 0

  7. Ja pievienojat šīs rindas sākumā, jūsu skriptu, katru reizi, palaižot skriptu, pirms jūs kaut ko izdzēsīs visas mapes iekšpusē/motiontmp /

    sudo rm - rf/motiontmp / *

    Attiecībā uz Dzēst failus, kad jūs sasniedzat noteiktu lielumu, jūs varētu mēģināt konkatenācijai komandu df - h rāda direktorija diska lietojums, vai nodalījuma:

    df - h /motiontmp

    Ar citu komandu, piemēram, wc, vai tāpēc, ka tas tikai skan frāze, atsaucoties uz MB vai GB izmantot sed, Beidzot ar, ja jūs varētu programma daļa, ja rezultāts ir lielāks nekā N, izpildīt komandu, kas aprakstīts iepriekš rm.

    • Ideāls mapju dzēšana, bet pēc tam…
      Atvainojiet, bet es esmu mazliet jauns un es esmu zaudējusi, kā tas būtu, piemēram, kad sasniedz katalogs/motiontmp/kustības / 5 Gigas? Paldies, sveicieni.

  8. Atvainojiet par tik daudz amatu sekoja, bet, kā es esmu uzzināt atjauninājums. Kaut kas līdzīgs šim, iespējams, nedarbosies?

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

    lielumu = du - sh /motiontmp

    lasīt “lielums”

    Ja [ “$lielums” > “2048000K” ]; pēc tam

    sudo rm - rf/motiontmp / *

    cits

    Logger - s “Skriptu ar nosaukumu motionStartup”

    # Veic specifiskas funkcijas, kad tiek prasīts sistēma
    gadījumā “$1” programmā
    Sākums)
    Logger - s “Skripta motionStartup sāka”
    TIMESTAMP = $(datums + %m %d %H %M %S un % | SED ir / / / g') # Bez atstarpēm
    Logger - s “Skripta motionStartup $TIMESTAMP”
    sudo mkdir/motiontmp / $LAIKSPIEDOLS || Logger - s “Mkdir sākt kļūdu”
    atrast kustības/motiontmp / /. -f - lielums ierakstiet 0 -print0 - dzēst
    atrast kustības/motiontmp / /. -MaxDepth 1 -tips f | \
    XARGS - I "{}’ sudo mv {} /motiontmp / $TIMESTAMP
    ;;
    apstājieties)
    Logger - s “Skripta motionStartup apstājās”
    ;;
    *)
    atbalss “Lietojums: /etc/init.d/motionStartup {Sākums|apstājieties}”
    izejiet no 1
    ;;
    ESAC

    izejiet no 0

    fi

  9. Labdien, tik draugs, Atvainojiet sekot jūsu piemēram un lampiņa deg, nav nekādu problēmu, bet tad, kad jūs noklikšķiniet uz pogas izslēgt, lampiņa mirgo, jau pārbaudiet kodus un viss ir pareizi :/ tev ir kaut mazākā nojausma, ko varētu darīt nepareizi?

    • Labdien, Fco, Paldies par jūsu komentārs.

      Tīklā web, Tur ir trīs pogas:

      Ieslēgt, izslēgt, un mirgojošs.

      Ja jūs varat, ielīmēt šeit kodu, kas piešķirts poga izslēgt, Tātad ir iespējams, ka poga izslēgt skripta, kas būtu saistīts ar mirgojošu pogu komentārs.

      uz drīzu redzēšanos.

  10. Sveiki atkal visiem, vēl vairāk šaubu, pievienot lol.

    Pirms man fonā, Tas ir, lai aktivizētu skaņu svilpe (svilpe) Tas būtu cilpa, kas izvirzīti pin 1 un 0 pastāvīgi, nevis, kā rezultātā, kamēr 1 Tas joprojām.
    Problēma ir tā, kā pārtraukt šīs cilpas to izmantot web PHP, jo skriptu sarunas beigās pievienojot konsoli & Tas darbojas fonā, un ļaujiet konsoles bezmaksas zvans skriptu, ar ko tas beidzas, piemērs:

    sudo python sonar.py &

    Šie ir divi skripti, kas padara skaņu un pārliecinoties, ka tā pārtrauc zvanīt:

    importēšanas laikā
    importēt kā gpio RPi.GPIO

    GPIO.SetWarnings(Viltus)
    GPI.setMode(GPIO. VALDE)
    GPIO.Setup(7,GPIO. ĀRĀ)

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

    un izslēgšanās funkciju:

    importēšanas laikā
    importēt kā gpio RPi.GPIO

    GPIO.SetWarnings(Viltus)
    GPI.setMode(GPIO. VALDE)
    GPIO.Setup(7,GPIO. ĀRĀ)

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

    bet vienkārši, lai sagraut pirmo strādāja. Pateicoties sveiciens.

  11. Varētu saķēdēt vairākas komandas, ka, pamatojoties uz skripta nosaukuma, termināla skatīties jūsu PID un vēlāk nogalināt tā izpilde ar medījumu.

    Reiz atrast komandu, mainīt funkciju paredzēts slēgt ar Ctrl + C, viena vietā, visdažādākie N reizes Matt automātiski ar šo komandu.

  12. Ja ar taustiņu Ctrl + C aizver konsoli, bet es mēģināt īstenot caur PHP kā jūsu sūtījums leds, tad būs vēl viens veids, kā es saku.

    • Iepriekš jums ir risinājums, lai nogalinātu savu procesu ar BASH, atrast jūsu PID no faila nosaukuma; jums ir tikai integrēt jūsu PHP tīmekļa vietnē ar “exec”.

  13. labdien.
    Paldies par pamācību.

    Man ir problēma, nevar izpildīt skriptu, Ja palaižat no konsoles, bet tā lapa nav, Nav zināms, ka tas var būt. Es esmu darījusi to, ko jūs komentāru par
    “Mēs rakstām sudo visudo terminālā un beigās failu pievienošana www-data, kā sudoer, Tai jābūt.”

    Bet nekas. Ko vēl es paskatos uz?

    ar sveicieniem.

  14. labdien, labrīt,
    Nekas nespēj, paldies.

    Tas ļauj jautājums, viss strādā perfekti, tagad, Es gribētu, lai varētu pievienot ekrāna, kas norāda, kad leds ir ieslēgt vai izslēgt, Es atklāju dažus pantus, pat ar attēli rāda krāsu, atkarībā no tā, vai mainīgās lampas darbību, vai ne, mēģināt saprast operācijas, bet neizdodas, lai tā darbotos, Man mājas ar komandas, bet nekas ir aktivizēta, Es ceru, ka ne apgrūtināt ar šo un citu izskatu, Paldies par jūsu pārsteidzošu laipnību.

    Ignacio no Beļģijas

    • Hello Ignacio, Liels paldies par jūsu komentārs.

      Domāju, ka jūs izmantojat Javascript, lai to izdarītu, integrējot PHP funkcijas, kuras aktivizē Python skriptu, pārvaldīt barošanas gaismekļiem.

      JavaScript nav domino, Kopš tā laika neesmu web izstrādātājs, bet varbūt var orientēt sevi mazliet labāk, vai kādu citu lasītājs var palīdzēt jums iegūt to, ko vēlaties; bet to darīt, tas būtu nepieciešams, lai redzētu kodu, vai konsultācijas, kas jāievēro, lai mēģinātu noteikt, kur bug ir.

      uz drīzu redzēšanos, un daudz iedrošinājumu!

  15. Sveiki visiem liels paldies, Es uzzinu daudz.
    Ir jāievēro visi pasākumi, kas pakļauti, Var ieslēgt gaismas diodes no vietējā termināļa, kā norādījis ullu slodze php patch, piešķirt atļaujas pat vienu 775—-u.c.. Lappusē ar pogas ielādēt pēc vadīja/gpio, bet nekas. Es lietoju aveņu pi 2…..būs kaut kas ar šo karti?. Es augstu vērtēju jūsu sadarbības.

    • Hello Rafael, Paldies par komentāru.

      Tas ir iespējams, ka risinājums ir komentārus no iepriekšējās konsultācijas šajā sērijā, kas veltīta pieejamu mājas automatizācijas pamatā aveņu PI.

      Posmus, kas jāievēro, ir saderīgi ar jebkuras versijas IP, Man šķiet, ka varētu mainīt mājas lapā Python skriptu izpildi ar šādu komandu, kas izveidos failu jūsu aveņu mājas direktorijā:

      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.

        • Hello 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. labdien, 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, izslēgt, parpadeartener una etiqueta que te diga el estatus. Gracias por tu aporte espero me puedas ayudar..

    • Hola Chaka, Liels paldies par jūsu komentārs.

      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.

    • Hola Sergio,

      Supongo que te refieres a los scripts en Python, citi bija tāda pati problēma, un ir vairāki risinājumi iepriekšējās piezīmes; Ja pēc pārbaudes tos nevar novērst neveiksmes ja jums dot vairāk datu varbūt citiem lasītājiem, vai es varētu jums palīdzēt.

      uz drīzu redzēšanos.

    • Labdien, Roberto, laipni lūdzam.

      Es neesmu eksperts, PHP, un šādos brīžos es meklēju pamācību izpildīt pasūtījumus tulks no php bash un tādējādi atzina, ka.

      Tas būtu lietderīgāk izmantot = exec vietā?- exec?

      Liels paldies par jūsu komentārs, uz drīzu redzēšanos.

  17. Ja nedarbojas web, bet, ja skripti, Tiks drīz veikt rakstu, tāpēc to var salabot; Pateicoties informāciju esat savācis dažādus lietotājus, kas nav strādājis.

    Ja jūs darbināt pasteigties, lai to salabotu, podéis revisar si el directorio /var/www/html existe en vuestra raspberry, y si es así debéis mover todos los archivos a esa ruta y substituir en los scripts “/var/www” pēc “/var/www/htmlya que ahora
    esa es la ruta por defecto del servidor web.

    También es posible que no hayáis borrado el index por defecto, “index. HTML” o que os falte cambiarlo por “index. php”.

    Espero que sea de ayuda, uz drīzu redzēšanos.

  18. Labdien, 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? ti, aveņu ir web serveris, ar čivināt un gpio ostās aizdegas leds
    Paldies jau iepriekš.

    • Nano Hello,

      PHP Web var palaist jebkuru komandu, komandu interpretatora BASH, kas ietver skriptus Python.

      Var izmantot bibliotēkā vai Twitter API, lai kad jums nosūtīs čivināt citējot no bot konta lietotājvārdu, izslēgt vai ieslēgt gaismu vai ierīces, kas saistīts ar šo ziņojumu, jo īpaši.

      Es neredzu problēmu, un tas, ka kāds varētu jums ieslēgt un savukārt jums gaismas un sadzīves; ja vien tas var ierobežot atkarībā no lietotāja, kas nosūtīts čivināt.

      Tas būtu interesanti, ja jūs esat komentējot to, ko jūs atradīsiet šajā sakarā.

      Paldies par komentējot, uz drīzu redzēšanos.

  19. labdien,
    Es sekoju apmācība, nokopējiet kodu tīmekļa, saglabājiet to kā PHP, mapē, kas izveidota mani serveri var , jo, ja es izbāzt index. php html mapē nevar atrast mani failu, Bet nu, Šķiet, ka viss ir labi. Es esmu tikai testēšanas ar GPIO 17, Es tad radīja divi .py, lai ieslēgtu un izslēgtu, Es viņiem atrodas tajā pašā mapē, kur fails index. php. Es atveru pārlūku, iekļautas indeksā, bet nevar darboties mani veda. Ja man ir ssh piekļuve arhīva aizdegas un izpildīt to caur konsoli, ja tas darbojas. nebūs kur pabūt nedarot. Protams mainīt ceļu skriptus no php, Kopš tā laika tas ir atšķirīgs no jūsu apmācību.
    Es ceru, ka jūs varat aizdot man roku, Esmu nozvejotas.
    Sveiciens.

    liels paldies.

  20. Sveiki peatonet, Es cenšos darīt izgudrojums, lai aktivizētu moduli 4 releji, no interneta, lai ieslēgtu vai izslēgtu vietējo apgaismojumu, man ir, problēma ir tā, ka pārbaudes, rezultātā ar redistencia sāk un pārtrauc pēc vēlēšanās no tīkla 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

    • labdien, me autorespondo yo amigos, el problema lo tenía en que en el pin20 (manā gadījumā) 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.

  21. labdien, estoy haciendo un proyecto para la facultad y quisiera saber si existe la forma que desde una aplicacion android se pueda emular este sistema, ti, 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

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

    paldies

    • Hello Ignacio, Paldies par komentāru.

      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.

  23. 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?
    ar sveicieniem.
    Ramón.

  24. 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 o 0 al presionar los botones, pero eso lo veo medio rustico

    • Hola Juani, Paldies par komentāru.

      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.

      uz drīzu redzēšanos.

  25. labdien, 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 de la web es suficiente con añadir el usuario www-data al grupo GPIO para gestionar el estado de los pins evitando darle permisos de sudoer; esto puede hacerse mediante la siguiente orden:

      sudo usermod -a -G gpio www-data

      De todos modos creo que tu pregunta va más enfocada a restringir el acceso a dicho panel mediante autenticación, y esto puede hacerse con el modulo mod_auth para Apache2; también es recomendable utilizar mod_ssl aunque sea con un certificado autofirmado.

      Si vas a acceder desde el exterior siempre puedes añadir una capa más de seguridad configurando una VPN, a la cual puedes proteger el acceso con certificados x509, usuario y contraseña, y sistemas de prevención como fail2ban entre otros.

      Espero haber aclarado un poco tus dudas, muchas gracias por tu interés acerca del artículo.

      • Labdien, 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, Drošības, …u.c.. 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.

        Sveiciens

  26. 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

  27. 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

  28. labs,
    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

  29. 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??

atstāt atbildi

Your email address will not be published. Required fields are marked *

*