Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Prossima revisione | Revisione precedente | ||
|
raspberry:gpio [2017/01/22 21:48] stefano creata |
raspberry:gpio [2023/04/17 14:25] (versione attuale) |
||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| + | ===== prima esperienza ===== | ||
| Far lampeggiare un led\\ | Far lampeggiare un led\\ | ||
| collegare un filo al pin nr.6 e un' | collegare un filo al pin nr.6 e un' | ||
| + | Al pin numero 7 corrisponde il GPIO 4 e via di seguito. comunque su internet troviamo le corrispondenze\\ | ||
| alle estremità dei fili un semplice led\\ | alle estremità dei fili un semplice led\\ | ||
| si potrebbe benissimo usare una bredboard\\ | si potrebbe benissimo usare una bredboard\\ | ||
| Linea 25: | Linea 27: | ||
| </ | </ | ||
| + | eseguire lo script:\\ | ||
| + | python codice.py | ||
| + | |||
| + | Pazzesco\\ | ||
| + | installiamo: | ||
| + | apt-get install apache2 php5 | ||
| + | il python l' | ||
| + | di seguito una pagina in php provvisoriamente in spagnolo ma da perfezionare per attivare un' | ||
| + | Però ATTENZIONE, per poter ottenere tutto ciò si deve modificare un file che crea una grande vulnerabilità che consente all' | ||
| + | Se si stanno facendo prove o si è in una rete interna bene, ma attenzione a esporre questa cosa sul web.\\ | ||
| + | modificare con il seguente comando il file / | ||
| + | visudo | ||
| + | verrà editato il file ed in fondo vanno aggiunte le seguenti righe\\ | ||
| + | pi ALL=(ALL) NOPASSWD: ALL | ||
| + | www-data ALL=(ALL) NOPASSWD: ALL | ||
| + | |||
| + | ora procediamo con la scrittura dei file\\ | ||
| + | <file php index.php> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | |||
| + | < | ||
| + | <form action="" | ||
| + | GPIO 17& | ||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <form action="" | ||
| + | GPIO 27& | ||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <form action="" | ||
| + | GPIO 04& | ||
| + | < | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | <form action="" | ||
| + | GPIO 22& | ||
| + | < | ||
| + | < | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <?php | ||
| + | |||
| + | // Funciones PHP del pin GPIO 17 | ||
| + | if ($_POST[encender17]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[apagar17]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[parpadear17]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | // Fin de las funciónes del pin GPIO 17 | ||
| + | |||
| + | |||
| + | // Funciones PHP del pin GPIO 27 | ||
| + | |||
| + | if ($_POST[encender27]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[apagar27]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[parpadear27]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | // Fin de las funciónes del pin GPIO 27 | ||
| + | |||
| + | |||
| + | // Funciones PHP del pin GPIO 4 | ||
| + | if ($_POST[encender4]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[apagar4]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[parpadear4]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | // Fin de las funciónes del pin GPIO 4 | ||
| + | |||
| + | |||
| + | // Funciones PHP del pin GPIO 22 | ||
| + | |||
| + | if ($_POST[encender22]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[apagar22]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | if ($_POST[parpadear22]) { | ||
| + | $a- exec(" | ||
| + | echo $a; | ||
| + | } | ||
| + | |||
| + | // Fin de las funciónes del pin GPIO 22 | ||
| + | |||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Naturalmente vengono richiamati dei file in python simili a quello fatto all' | ||
| + | |||
| + | <file py accendi.py> | ||
| + | # | ||
| + | #Importiamo la libreria e le cambiamo | ||
| + | import RPi.GPIO as GPIO | ||
| + | |||
| + | #Stabiliamo il sistema di numerazione che vogliamo, | ||
| + | #in questo caso il sistema BCM | ||
| + | GPIO.setmode(GPIO. BCM) | ||
| + | |||
| + | # | ||
| + | GPIO.setup(4, | ||
| + | |||
| + | #Si accende il led | ||
| + | GPIO.output(4, | ||
| + | </ | ||
| + | |||
| + | ecc..\\ | ||
| + | <file py spegni.py> | ||
| + | # | ||
| + | #Importiamo la libreria e le cambiamo | ||
| + | import RPi.GPIO as GPIO | ||
| + | |||
| + | #Stabiliamo il sistema di numerazione che vogliamo, | ||
| + | #in questo caso il sistema BCM | ||
| + | GPIO.setmode(GPIO. BCM) | ||
| + | |||
| + | # | ||
| + | GPIO.setup(4, | ||
| + | |||
| + | #spengo il led | ||
| + | GPIO.output(4, | ||
| + | </ | ||
| + | |||
| + | ovviamente questi file dovranno essere esposti su un server web ad esempio apache nella cartella / | ||
| + | ==== WEBIOPI ==== | ||
| + | Attenzione, non sono sicuro di questa guida...\\ | ||
| + | |||
| + | scaricare \\ | ||
| + | wget http:// | ||
| + | decomprimere \\ | ||
| + | tar -xzvf WebIOPi-0.7.1.tar.gz | ||
| + | entrare nella directory \\ | ||
| + | cd WebIOPi-0.7.1 | ||
| + | scaricare eventuale patch per il RP3 \\ | ||
| + | wget http:// | ||
| + | eseguire la patch \\ | ||
| + | patch -p1 -i webiopi-pi2bplus.patch | ||
| + | lanciare il setup\\ | ||
| + | ./setup.sh | ||
| + | e se raspbian è stato installato attraverso il NOOBS fare anche questo:\\ | ||
| + | wget https:// | ||
| + | systemctl start webiopi | ||
| + | systemctl enable webiopi | ||
| + | |||
| + | |||
| + | Sito di riferimento: | ||
| + | http:// | ||
| + | oppure | ||
| + | https:// | ||
| + | |||
| + | Per federe se funziona il tutto si dovrebbe eseguire webiopi indicando il file di configurazione ad es:\\ | ||
| + | webiopi -d -c / | ||
| + | |||
| + | poi si accede con il browser sulla porta 8000\\ | ||
| + | nome utente: webiopi e la password: raspberry\\ | ||
| + | il problema è che in questo modo la consolle rimane attiva e vengono visualizzati i messaggi.\\ | ||
| + | |||
| + | Poi ad un certo punto dopo aver riscontrato tutti questi problemi ho seguito le istruzioni qui:\\ | ||
| + | https:// | ||
| + | |||
| + | sudo dpkg --purge python2-webiopi | ||
| + | sudo dpkg --purge python3-webiopi | ||
| + | find /usr | grep -i webiopi | ||
| + | tar cjvf ~/ | ||
| + | cat ~/ | ||
| + | cat ~/ | ||
| + | | ||
| + | git clone https:// | ||
| + | cd rpi3-webiopi | ||
| + | cd dev | ||
| + | ./ | ||
| + | |||
| + | ./ | ||
| + | |||
| + | ./ | ||
| + | | ||
| + | Note that remove official WebIOPi python codes/ | ||
| + | |||
| + | If you want install WebIOPi+ for python3, select python3 for webiopi daemon/ | ||
| + | |||
| + | webiopi-select-python 3 | ||
| + | sudo systemctl daemon-reload | ||
| + | sudo systemctl restart webiopi | ||
| + | |||
| + | If you don't have systemd, init.d command is available to start/ | ||
| + | |||
| + | sudo / | ||
| + | |||
| + | Per disinstallare \\ | ||
| + | |||
| + | sudo dpkg --purge python2-webiopi | ||
| + | e / o \\ | ||
| + | |||
| + | sudo dpkg --purge python3-webiopi | ||
| + | |||
| + | ===== seconda esperienza ===== | ||
| + | Prima di iniziare è necessario abilitare le funzioni del gpio tramite il configuratore del raspberry\\ | ||
| + | raspi-config | ||
| + | abilitare il gpio\\ | ||
| + | Usare il python per gestire il gpio e i device ad esso collegati\\ | ||
| + | installare prima di tutto il gestore dei pacchetti del python \\ | ||
| + | apt-get install python-pip | ||
| + | |||
| + | Poi dovremo installare gli strumenti di sviluppo. Qui installo quelli di Python 3, se preferite Python 2 togliete il 3 dal comando che segue: \\ | ||
| + | |||
| + | apt-get install python3-dev | ||
| + | |||
| + | Infine, installiamo tramite pip due pacchetti che ci servono: distribute e RPi.GPIO:\\ | ||
| + | |||
| + | pip install distribute | ||
| + | pip install RPi.GPIO | ||
| + | | ||
| + | | ||
| + | ===== terza esperienza ===== | ||
| + | L' | ||
| + | |||
| + | ===== altre info ===== | ||
| + | per il discorso dell' | ||
| + | http:// | ||
| + | http:// | ||