Sommario:

Home_X: 5 passaggi
Home_X: 5 passaggi

Video: Home_X: 5 passaggi

Video: Home_X: 5 passaggi
Video: How to Personalize Home Screen in POCO X5 - Rearrange Home Screen 2024, Novembre
Anonim
Home_X
Home_X

Sono uno studente di Howest Kortrijk che studia New Media and Communication Technology (NMCT).

Abbiamo tutti dovuto realizzare un progetto basato su lampone e/o Arduino. Dovevamo utilizzare sensori e database per mostrare i dati in un sito Web, ed è allora che mi è venuta l'idea di creare una mini casa intelligente.

Con la casa intelligente, sarai in grado di vedere tutte le letture dei sensori sul sito web.

In questo tutorial ti guiderò attraverso ogni passaggio in modo che tu possa ricreare questo progetto per te stesso.

Passaggio 1: materiali: di cosa hai bisogno?

  • Lampone Pi
  • DHT22
  • Grove - Sensore di qualità dell'aria
  • Grove - Sensore di gas (MQ2)
  • tagliere
  • Cobbler al lampone Pi T
  • Cavi jumper maschio/femmina
  • LED da 5 mm
  • resistori
  • Legno e strumenti
  • Servomotore
  • GrovePi+

Puoi acquistare questi articoli online (Ali express, amazon, kiwi electronics…) o presso i tuoi negozi locali.

Un elenco dettagliato delle parti con un collegamento ai negozi è riportato di seguito nella distinta base.

Passaggio 2: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio

Ho usato Fritzing per il cablaggio per avere una bella panoramica di come dovrebbe essere fatto il mio cablaggio. Io stesso ho usato un GrovePi+ per 2 dei miei sensori. Se hai intenzione di farlo senza GrovePi+ segui lo schema Fritzing. I sensori non ti funzionano, prova a usare pin diversi.

Puoi trovare il file Fritzing qui sotto.

Passaggio 3: database utilizzando MySQL

Database utilizzando MySQL
Database utilizzando MySQL

Uno dei compiti più essenziali che dovevamo implementare era la connessione con un database MySQL.

Ogni volta che un sensore ottiene letture o si accende una luce, vedrai questi cambiamenti nel database.

Il database invia quindi questi dati al sito Web in modo che l'utente possa vederli anche lì.

Di seguito puoi trovare il mio file.xml dove hai una panoramica di come funziona il database, ma prima devi installare MySQL e flask sul Raspberry Pi.

La codifica dei sensori è avvenuta tramite pycharm quindi assicurati che sia installato anche quello (sul tuo computer).

Per prima cosa devi controllare gli aggiornamenti e installare i pacchetti, in questo modo:

sudo apt-get update && sudo apt-get upgrade

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Ora useremo un ambiente virtuale:

me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenvme@my-rpi:~ $ mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system- site-packages env me@my-rpi:~/project1 $ source env/bin/activate (env)me@my-rpi:~/project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Dovrebbe dirti che mariadb.service è attivo.

Ora, in pycharm vai su VCS> Importa da Controllo versione> GitHub e clone

Quindi configura la configurazione di distribuzione per la directory appena creata, ad es. /home/io/progetto1.

Fatto ciò, vai alle impostazioni dell'interprete e configura l'ambiente virtuale che hai appena creato, ad es. /home/me/progetto/env/bin/python. Anche la mappatura del percorso deve essere compilata.

Se hai fatto tutto questo, il database dovrebbe essere già in esecuzione.

sudo systemctl status mysql

Ora dobbiamo creare utenti per il nostro database, in questo modo:

sudo mariadb

CREA UTENTE 'project-admin'@'localhost' IDENTIFICATO DA 'adminpassword'; CREA UTENTE 'project-web'@'localhost' IDENTIFICATO DA 'webpassword'; CREA UTENTE 'project-sensor'@'localhost' IDENTIFICATO DA 'sensorpassword'; progetto CREA DATABASE;

Concedi TUTTI I PRIVILEGI SUL progetto.* a 'project-admin'@'localhost' CON L'OPZIONE DI CONCESSIONE;CONCEDI SELEZIONA, INSERISCI, AGGIORNA, ELIMINA SUL progetto.* A 'progetto-web'@'localhost'; GRANT SELECT, INSERT, UPDATE, DELETE ON project.* TO 'project-sensor'@'localhost'; PRIVILEGI DI SCARICO;

Ora per vedere il nostro database in pycharm dobbiamo effettuare una connessione.

Possiamo farlo andando su Visualizza > Finestre degli strumenti > Database e facendo clic sul pulsante verde "più".

Origine dati > MySQL e fare clic (se presente) sul pulsante Scarica driver visualizzato.

Quindi vai su SSH/SSL e controlla SSH. Compila host/utente/password per il pi e usa la porta 22 se non ancora compilata.

Se vuoi che pycharm ricordi la tua password seleziona la casella di controllo "Ricorda la password".

Nella scheda "Generale", inserisci localhost in host, project in Database e usa project-admin con la password per poter testare la connessione.

Per rendere ora utilizzabile il database è necessario eseguire il file.sql che inserisco qui sotto. Prova a utilizzare l'opzione di importazione, se non riesci a importare un file di dump, devi aggiungere le tabelle manualmente.

Fatto ciò, devi trovare la directory conf con i due file.service. Lì cambia ogni seb che trovi con il nome dell'utente che usi sul tuo pi. Inoltre, il gruppo deve essere www-data.

Il prossimo passo è avviare questi servizi sul tuo pi, in questo modo:

sudo cp conf/project-*.service /etc/systemd/system/

sudo systemctl demone-reload

sudo systemctl start project-*

sudo systemctl status progetto-*

Dovresti vedere due servizi attivi quando tutto va secondo i piani.

L'ultimo passaggio consiste nell'abilitare nginx.

Per prima cosa controlla la presenza di apache2 sul tuo pi, se lo hai installato, eliminalo o disabilitalo.

Nel file nginx devi prima modificare uwsgi_pass, quindi eseguire questi comandi.

sudo cp conf/nginx /etc/nginx/sites-available/project

sudo rm /etc/nginx/sites-enabled/default

sudo ln -s /etc/nginx/sites-available/project1/etc/nginx/sites-enabled/project

sudo systemctl riavvia nginx.service

sudo systemctl status nginx.service

Nginx dovrebbe essere attivo e in esecuzione. Se tutto è corretto, ora puoi navigare sul tuo pi. All'inizio vedrai "Hello world" ma devi ancora modificare il contenuto di quel file con il mio codice qui sotto.

Puoi abilitare i servizi in modo che vengano eseguiti automaticamente all'avvio di pi.

Quando hai fatto tutto questo, assicurati di inserire almeno 1 casa con indirizzo nel database. Puoi farlo con un semplice inserimento in.

Passaggio 4: codifica

codifica
codifica
codifica
codifica

Puoi scaricare il codice tramite Github:

github.com/NMCT-S2-Project-I/project-i-Tib…

Il codice per i sensori è incluso nel file sensor.py.

Non dimenticare di cambiare il mio nome nel tuo (o l'utente che usi sul tuo pi) nei file di servizio in modo che possano funzionare correttamente e inserire il mio codice nei file già esistenti nel tuo Pycharm.

Passaggio 5: alloggio

alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento
alloggiamento

Ho fatto un rapido disegno di come volevo la mia casa, ma la tua può sembrare completamente diversa. Devi solo assicurarti di avere un intero in modo che il servo possa aprire e chiudere una finestra.

Ho usato principalmente un piccolo trapano e una sega per tagliare il legno. Mi sono anche assicurato che le pareti fossero abbastanza spesse da poter posizionare il mio servo al loro interno.

Quando hai finito con il tuo progetto e il servo è a posto, devi solo collegare i sensori e posizionare il pi all'interno della casa e sei pronto per partire.

Come ho detto prima, la tua casa può sembrare esattamente uguale alla mia, devi solo fare spazio al servo e alla finestra.

Finalmente hai finito con il progetto. Spero che questa guida sia abbastanza chiara in modo che anche tu possa realizzare una fantastica smarthouse come ho fatto io.

Buona fortuna.

Consigliato: