Progetto Raspberry Pi Web Relays con Server Apache LAMP

Premessa:

Questo articolo spiegherà passo passo le procedure da seguire per realizzare un server LAMP su distro debian linux. Fondamentalmente vedremo nello specifico ogni istruzione da seguire nel DB nella programmazione php e html ed infine il python che scatenerà gli eventi di attivazione porte GPIO tramite il PHP. Un breve video descrittivo di cosa andremo a fare.

Parte Software WebRelays

In collaborazione con il nostro amico Giorgio.
Parte Harsware WebRelays

Prima di cominciare scaricare il file WebRelays.zip contenente i file necessari per questa guida.

Hardware utilizzato:

Per questo sistema di controllo automatizzato utilizzeremo una Raspberry Pi tipo B un cavo ethernet per la connessione al modem, ma anche sostituibile con dongle wi-fi per la connessione senza fili, una scheda SD da 8gb abbastanza grande da contenere i vari file per lo sviluppo, un alimentatore da 5v 1000 mah (1A) ed infine per prova utilizzeremo un modulo relè per gestire almeno due controlli luce.

Software utilizzato:

Come sopra citato per prima cosa utilizzeremo la distro debian linux da installare sul microprocessore Raspberry Pi, una volta eseguita la procedura di installazione dell’immagine comninceremo nell’installazione del Server Apache con i rispettivi linguaggi di programmazione PHP, PYTHON, HTML, MYSQL per la gestione del DataBase, dell’interfaccia grafica e della procedura di attivazione delle porte GPIO della scheda.

Guida all’uso:

RICORDA BENE: ogni qualvolta che ti da problemi di permesso utilizzare il comando:

sudo chmod 777 www se ti trovi nella cartella /var

oppure

sudo chmod 777 /var/www se ti trovi in un altra cartella

Potrà capitare che questa procedura dovrai ripeterla molte volte nel corso dell’installazione per dare i permessi a tutte le cartelle contanenti nella cartella www. Noi abbiamo riscontrato l’utilizzo tre volte nella procedura di inserimento immagini dal pannelo di wordpress e ci siamo diretti nella cartella cd /var/www e abbiamo utilizzato il comando sudo chmod 777 wp-content per dare i privilegi alla cartella dove andranno contenute le immagini, e poi per ogni inserimento di ogni cartella nuova usavamo l’istruzione sudo chamod 777 www per riconferma dei pemessi.

Questa procedura spiega passo passo tutti i passaggi e link necessari per portare a termine l’installazione del Server Web Relè.

Cominciamo con l’installazione della distro linux Debian e una volta installata passiamo all’installazione di putty per controllare da remoto la raspberry e WinSCP per passare i file nella cartella www del server che creeremo.

Per prima cosa scarichiamo putty e windisk (compresa IMG) e creiamo l’immagine della distro per metterla sulla Raspberry Pi. Una volta scaricato e installato il sistema operativo, passiamo all’installazione di un programma molto utile che funge da ftp e si chiama WinSCP.

WinSCP Download:

http://winscp.net/eng/download.php

Poi scarichiamo il template base di wordpress:

https://wordpress.org/news/2014/08/wordpress-3-9-2/

una volta che siete sul sito cliccare download per eseguire la procedura di download.

PRIMA PARTE DELL’INSTALLAZIONE:

Apriamo Putty che ci permetterà di collegarci in remoto con la Raspberry Pi. Dirigiamoci sul router per trovare l’indirizzo IP della Rasp e inseriamolo nel programma Putty es. “192.168.1.xx” e come credeziali username “pi” e password “raspberry”. Se tutto andato a buon fine vi troverete a gestire da terminale il microprocessore.

Installazioni riga di comando:

il primo comando da effettuare per permettere installazioni e quant altro è l’istruzione:

sudo apt-get update

Successivamente premere y per confermare il tutto.
Poi installiamo i componenti principali per dar vita al Web Server Apache:

sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install mysql-server mysql-client php5-mysql

Come sempre ripetere “y” per confermare il tutto. L’ultima istruzione per installare MySql vi comparirà una pagina dove vi farà inserire le credenziali del DataBase per convenzione dovete inserire come Password e Username la parola “root” e continuare a premere “y” e “Ok”.
Finito il primo processo di installazione se tutto è andato a buon fine vi ritrovate il server Apache Startato quindi potremo mettere le “mani” nella cartella del Web Server /var/www/ e dar vita alle nostre pagine.

Ora un altro passo fondamentale che permette di dare i privilegi all’utente Pi di eseguire codice python php e tutti i linguaggi interessati è:

sudo visudo

dovemo troveremo un file con dei file contenuti e all’ultima riga dovremo inserire questo:

pi ALL=(ALL) NOPASSWD: ALL
apache ALL=(ALL) NOPASSWD: ALL
www-data ALL=PYTHON,NOPASSWD: ALL

di solito dopo l’installazione del server già trovate le prime due istruzioni qualora fosse così inserite solo l’ultima.

INSTALLAZIONE FTP CON WINSCP TEMPLATE BASE WP:

Adesso utilizzeremo il programma WinSCP scaricato pochi minuti fa per passare il template base wordpress nella cartella /var/www della Raspberry Pi.

Nel mentre che aprite winscp dirigetevi al file appena scaricato:

https://wordpress.org/news/2014/08/wordpress-3-9-2/

Scompattatelo e vi troverete sul pc una cartella aprite quella cartella e all’interno vedrete molti file. Questi file andranno travasati nella Raspberry.

Una volta aperto il programma è molto simile a Putty vi chiederà di inserire indirizzo IP e rispettive credenziali della Raspberry Pi che sono sempre le stesse come nel caso di Putty. A sinistra del programma ci saranno le cartelle del pc e dirigetevi in quella cartella appena citata dove cè il vostro wordpress apritela e trascinate tutti i file all’interno nella parte di destra dove vi dovreste dirigere nella cartella /var/www/ e così avrete copiato tutto il tema wordpress.

Aprite l’archivio file WebRelays.zip dove all’interno ci sono alcune cartelle con dei file. Copiate la cartella Wilson.1.17 sul vostro desktop rinominatela in wilson la cartella e dentro ci dovranno essere i contenuti del template che utilizzeremo e successivamente riutilizzare WinSCP per copiarla nella Raspberry nel percorso questa volta /var/www/wp-content/themes.

Finita la procedura del copia e incolla dei file del server arriva la parte un po critica dell’installazione.

SECONDA PARTE INSTALLAZIONE:

Se avete copiato bene tutti i file nel Raspberry potete passare alla procedura di visualizzazione dei contenuti. Aprite il Browser e nella barra degli url inserite l’indirizzo IP della vostra Raspberry e premete invio, al caricamento dovrebbe comparire la procedura iniziale di installazione di WordPress con relativo nome credenziali di accesso e creazione e connessione al Data Base.

NOTA IMPORTANTE: CONTROLLI MYSQL E PRIVILEGI PRIMA DELL’INSTALLAZION WP

E’ molto imporatante questa sezione perché solitamente si riscontrano vari problemi ad esempio errori di connesione al database oppure non posso copiare a causa di problemi di permessi linux o quant altro. E’ molto difficile dare con certezza a una risposta quando chi fa una guida non ha davanti il problema che si pone ma in questa sezione daremo le nozioni base per risolvere i più comuni problemi che si riscontrano nell’installazione.

Installiamo anche:

sudo apt-get install phpmyadmin

Di norma questa istruzione dipende dalla distro ma in quasi in tutti i casi l’installazione avviene con successo premere il solito “y” fino alla fine e come in mysql vi chiederà le credenziali voi inserite sempre root come password e username.

Poi da Winscp copiate in /var/www/ anche un file che si trova all’interno del file zip che invieremo via mail che si chiama phpminiadmin.php che è una versione personalizzata di critics per scrivere istruzioni nel DB.

Aprite un altra scheda browser con l’indirizzo IP della rasp e il file appena caricato in questo modo apparirà un login per il DB e se avete inserito tutto nella maniera corretta nell’inserimento di password e username con parola root avrete accesso nell’area editor del DB per l’inserimento delle istruzioni per popolare il DB.

es. 192.168.1.xx/phpminiadmin.php

CREAZIONE NOME DATABASE PER CONTENERE L’INSTALLAZIONE DI WORDPRESS:

Come spiegato prima una volta che vi trovate nell’editor SQL dovremo creare il DB name per poter contenere le tabelle e i campi per il funzionamento di wordpress. Quindi nel riquadro per scrivere andiamo a inserire questa istruzione.

CREATE DATABASE WebRelays;

se l’inserimento è andato a buon fine sotto al riquadro risulterà una scritta Done per confermare di avvenuto caricamento nel DB.

Successivamente riapriamo la scheda browser dove avevamo lasciato in sospeso la procedura di installazione e adesso siamo pronti per inserire tutti i campi che ci richiede nome del sito etc. etc.

NOTA BENE: Vi chiederà anche l’accesso al Data Base voi inserite come indirizzo o anche detto host la parola “localhost” poi vi chiederà il nome del DATA BASE e inserite “WebRelays” controllare minuscole e maiuscole e molto sensibile ai caratteri e infine la password e username che sono “root”. Fate avanti e infine comincerà a installare il tutto. Finita l’installazione dovrebbe essere visibile il template base, qualora non è visibile refreshate la pagina.

TERZA PARTE DELL’INSTALLAZIONE:

Siamo nella fase finale dell’installazione diciamo che il “grosso” è passato. In questa fase per chi e chi non conosce wordpress bisogna solo aggiustare i template dato che nell’installazione ne abbiamo aggiunto uno nostro che era wilson bisognerà da pannello attivarlo. E come si fa questo?

Dirigetevi sempre da browser e inserite il vostro 192.168.1.xx/wp-admin avrete accesso al sistema di pannello di controllo del vostro sito ora inserite la password che avete inserito nell installazione di Wp con il nome

Nota Bene: non centra niente con la password root. Questa è la password richiesta nella configurazione del nome del sito di wordpress.

Una volta loggati personalizzate il tema e mettete wilson e create 3 pagine come per indicare:

  • info prodotto
  • come usare WR
  • Web Relays APP

Gestite le vostre pagine e inserite i contenuti a vostro piacimento con qualche immagine e altra dimostrazione esemplificativa.

PARTE FINALE PROGETTO:

Ora siamo giunti alla parte finale per prima cosa prendiamo in considerazione che in questa fase procederemo con due semplici passi usando phpminiadmin.php per inserire nel db altre istruzioni per popolare la gestione delle gpio e poi nel caricamento di altri file con WinSCP.

Quindi come prima cosa andiamo su WinSCP e copiamo la cartella app che abbiamo scaricato nel file WebRelays.zip con tutto il suo contenuto nella cartella /var/www. Una volta copiato il tutto non ci resta che andare nel phpminiadmin.php come sempre da browser e scrivere se lo avete chiuso:

192.168.1.xx/phpminiadmin.php

credenziali di accesso root root

e nell’apposito spazio editor inserire questa nuova istruzione che serve per creare la nostra struttura.

Istruzione per creare TABELLA:

con questa funzione creeremo nel nostro DB WebRelays la tabella gpio con campi gpio e value.

NOTA BENE: ricordarsi di mettersi sotto il DB WebRelays in alto nell’editor si puo selezionare il db in questione.
CREATE TABLE gpio (
gpio VARCHAR(100),
value VARCHAR(100)
);
Ora non ci resta che inserire i valori nella tabella che indicano il numero del gpio e il valore della porta se high o low indicato con “checked” o “” (due virgolette indica uno spazio vuoto).

INSERIMENTO DATI NELLA TABELLA:

INSERT INTO gpio (gpio, value)
VALUES (‘8’,”);

Questa istruzione la esguiremo per ben 3 volte cambiando i valori delle gpio.

INSERT INTO gpio (gpio, value)
VALUES (‘7’,”);

INSERT INTO gpio (gpio, value)
VALUES (’25’,”);

In questo modo con questi 3 settaggi potremo utilizzare la GESTIONE LUCI del OpenHome. In fine ci dirigiamo di nuovo in:

192.168.1.xx/wp-admin da browser e ci dirgiamo nell’editor wp della pagina Web Relays APP che avevamo creato qui inseriremo tramite l’editor un frame che ci permetterà di visualizzare il contenuto della pulsantistica creata.

<iframe src=”/app/index.php” height=”500”></iframe>

WordpressWebRelays

Se avete seguito tutto la procedura in modo corretto ora è possibile visualizzare il contenuto della pagina 192.168.1.xx in maniera corretta e potrete gestire già tutta la parte della gestione luci. Da qui in poi bisognerà aggiungere solo alcune istruzioni SQL per inserire le nuove porte gpio e alcuni file con WinSCP per migliorie.

Ricordarsi di gestire il modem per attivare l’indirizzo statico alla Raspberry così da poter eseguire l’accesso anche allo spegnimento del microprocessore.

Critics Corporation