Sommario:

SmartHome con Raspberry Pi: 5 passaggi
SmartHome con Raspberry Pi: 5 passaggi

Video: SmartHome con Raspberry Pi: 5 passaggi

Video: SmartHome con Raspberry Pi: 5 passaggi
Video: Home Automation Raspberry Pi Distribution Board DIY | IOT Project 2023 2024, Dicembre
Anonim
SmartHome con Raspberry Pi
SmartHome con Raspberry Pi

Per questo progetto ho realizzato una SmartHome che può essere gestita da un sito Web e da un dispositivo mobile. Per questo utilizzo il Raspberry PI come database e server web.

Forniture

Se vuoi iniziare, hai bisogno di diverse cose:

  • 5 led bianchi (5mm)
  • 1 sensore di temperatura a un filo
  • 1 LDR (resistenza dipendente dalla luce)
  • 2 servomotori
  • 1 microSD (per Raspberry Pi)
  • 1 Alimentatore breadboard
  • 1 Raspberry Pi 3 Modello B+
  • 3 piastre in schiuma
  • 1 motore passo-passo (5V)
  • 1 lettore RFID-RC522
  • 8 resistenze (220 Ohm)
  • 1 resistenza (10K Ohm)
  • 2 taglieri
  • 2 confezioni di cavi per ponticelli
  • 1 display LCD 16x2
  • 1 PCF8574AN
  • 4 piccole finestre (stampate in 3D)
  • 1 porta (stampa 3D)
  • 2 grandi finestre (stampate in 3D)
  • 1 porta del garage (stampata in 3D)

Se hai bisogno di tutto questo per acquistare, il costo massimo sarà di circa 150€

Passaggio 1: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio

Il modo più semplice per iniziare è con il cablaggio in modo da avere già le basi, con questo metodo puoi facilmente verificare se tutto funziona quando stai scrivendo il codice.

In questo modo, puoi vedere se hai abbastanza pin sul Raspberry Pi per connettere tutto. In questo caso ho usato il PCF8574AN per controllare il mio LCD con meno pin GPIO.

Per disegnare lo schema ho usato Fritzing. È un pratico programma in cui è possibile visualizzare il cablaggio in modo ben organizzato.

Come puoi vedere nella seconda foto ci sono molti cavi quindi devi ancora lavorare in modo organizzato.

Passaggio 2: alloggio

alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento

Per l'alloggiamento ho usato pannelli di schiuma come pareti. Ho usato un coltello per tagliare le tavole nelle forme desiderate. Le finestre, le porte e la porta del garage sono stampate in 3D. Ovviamente ho disegnato la casa in anticipo quindi sapevo quali dimensioni dovevo usare.

Ho usato SketchUp per disegnare la casa. Ho usato una pistola per colla per tenere le pareti dritte e tenerle insieme. Se riesci a vedere nelle foto, la finestra e la porta del garage sono attaccate con la colla in modo che fosse abbastanza forte. La scatola nera nella 3a foto c'è una scatola che ho usato per trasportare in modo che tutto rimanesse intatto

Passaggio 3: banca dati

Banca dati
Banca dati

Prima di tutto, è necessario progettare il database utilizzando Mysql Workbench. Se l'operazione riesce, è necessario installare il database Mysql sul Raspberry Pi.

Il primo passo da fare è verificare se il tuo Pi è aggiornato. Puoi usare il seguente comando:

sudo apt-get update

e

sudo apt-get upgrade

Ora puoi installare il server Mysql:

sudo apt-get install mysql-server

Se il server Mysql è installato, installa il client Mysql

sudo apt-get install mysql-client

Se ora guardi il server sql con il comando:

sudo mysql

Ora puoi importare il codice del tuo database aprendo il file.mwb con il workbench sql e forward engineer. Copia il codice e incollalo nel mysql dal Raspberry. La banca dati è fatta.

Affinché l'utente ottenga tutte le autorizzazioni, aggiungi semplicemente il tuo nome utente nella tabella

concedere tutti i privilegi su smarthome.* a 'tuonome'@'%' identificato da 'tuonome';

ovviamente devi aggiornare la tabella ora

PRIVILEGI DI SCARICO;

Per verificarlo puoi semplicemente provare:

usa casa intelligente;

seleziona * dalla cronologia;

Nella tabella utenti i nomi degli utenti sono accompagnati dal loro badge, qui puoi aggiungere nuovi utenti. Nella tabella dei dispositivi puoi trovare tutti i sensori attivi con il loro id. La tabella historiek mostra tutto ciò che sta accadendo come il sensore di temperatura, il badge con lo stato della porta del garage e altro ancora.

Passaggio 4: configurazione

Per impostare l'immagine sul Raspberry Pi puoi usare Putty, questo è un programma gratuito. Puoi trovare il file dell'immagine di base qui:

Interfacce

Ovviamente devi abilitare alcune interfacce sul Pi. Per prima cosa vai alla pagina di configurazione.

sudo raspi-config

Ora puoi andare alle categorie 1-Wire e Spi ed entrambe abilitarle. Ti serviranno per il sensore di temperatura.

Wifi

Segui i passaggi successivi per ottenere il wifi sul Pi.

Primo accesso come root

sudo-i

Quindi inserisci il nome e la password della tua rete wifi

wpa_passphrase="wifiname" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf

Quindi inserisci il client WPA

wpa_cli

seleziona l'interfaccia

interfaccia wlan0

Ora ricarica la configurazione

riconfigurare

E ora puoi controllare se sei connesso

ip a

Pacchetti

La prima cosa da fare è aggiornare le ultime versioni

sudo apt update

Per Python installiamo e ci assicuriamo che il Pi stia scegliendo la versione corretta

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Affinché il server web possa eseguire il sito, è necessario installare Apache2

sudo apt install apache2 -y

Anche alcuni pacchetti Python devono essere installati

  • Borraccia
  • Flask-Cors
  • Flask-MySQL
  • Flask-SocketIO
  • PyMySQL
  • Python-socketIO
  • richieste
  • pip
  • gpio
  • Gevent
  • Gevent-websocket

se ci sono problemi con un pacchetto che non viene trovato, basta fare clic destro su di esso e lasciarlo installare.

Passaggio 5: codice

Codice
Codice
Codice
Codice

backend

Per il backend, scriviamo il codice in python e usiamo pycharm per scrivere. Le rotte dal backend possono essere verificate con postino. Con questa app puoi utilizzare i metodi POST e GET. Nel backend ho usato il multithreading, quindi tutto è in esecuzione in background e può funzionare insieme. Per impostare l'immagine sul Raspberry Pi puoi usare Putty, questo è un programma gratuito.

fine frontale

Sul frontend ci sono alcuni pulsanti che possono accendere le luci, aprire la porta del garage e la porta. Usando javascript e CSS lo stile dei pulsanti cambia quando sono attivi. C'è anche una temperatura in tempo reale e un grafico con le temperature passate. Nella pagina utente puoi vedere i vari utenti, puoi anche aggiungere un utente al database e c'è una cronologia utenti dove puoi vedere chi ha aperto o chiuso la porta del garage per ultimo.

Puoi trovare il codice per il frontend e il backend su

github.com/NMCT-S2-Project-1/nmct-s2-proje…

Consigliato: