Sommario:

Fanair: una stazione meteorologica per la tua stanza: 6 passaggi (con immagini)
Fanair: una stazione meteorologica per la tua stanza: 6 passaggi (con immagini)

Video: Fanair: una stazione meteorologica per la tua stanza: 6 passaggi (con immagini)

Video: Fanair: una stazione meteorologica per la tua stanza: 6 passaggi (con immagini)
Video: Fuga dagli hacker Ritorno al compito di macinare.. Dead pmc's inc 2024, Dicembre
Anonim
Fanair: una stazione meteorologica per la tua stanza
Fanair: una stazione meteorologica per la tua stanza

Ci sono innumerevoli modi per scoprire il tempo attuale, ma poi conosci solo il tempo fuori. E se volessi conoscere il tempo all'interno della tua casa, all'interno di una stanza specifica? Questo è quello che cerco di risolvere con questo progetto.

Fanair utilizza più sensori per rilevare:

  • temperatura
  • umidità
  • leggero
  • certi gas
  • pressione dell'aria

È molto compatto e utilizza il Raspberry Pi 3 B, per ottenere i valori, salvarli in un database MySQL e poi renderli facilmente disponibili su un sito web. Nel codice e nel sito Web è inclusa la possibilità di ottenere dati meteorologici effettivi per la tua posizione in modo che il sito Web possa essere utilizzato anche per controllare il tempo esterno.

Passaggio 1: ottieni tutti gli articoli richiesti

Ottieni tutti gli articoli richiesti
Ottieni tutti gli articoli richiesti

Prima di tutto avrai bisogno dell'elettronica di base come fili / cavi jumper. Se hai intenzione di saldare tutto insieme come un progetto permanente, ovviamente avrai anche bisogno di un saldatore, una saldatura e per tua comodità un PCB a cui saldare tutto.

Per articoli più specifici ho realizzato questa Distinta Materiali.

  • Raspberry Pi 3 B
  • MPC3008 - ADC a 8 canali a 10 bit
  • AM2301 Termometro Sensore di temperatura e umidità
  • WR Rademacher WR-tyoe 930-1 PCB
  • Custodia in ABS per prototipazione (nera)
  • LDR
  • Sensore di gas MQ135
  • 2x transistor BC517 Darlington
  • LED RGB
  • Pacchetto resistore
  • Cicalino
  • fili
  • Barometro BMP280
  • Ventola USB silenziosa (5V)

Tutto sommato dovrebbe costare circa 110€. Tieni presente che il prezzo totale è un'approssimazione. Inoltre, il mio progetto ha uno schermo LCD nella foto ma non è collegato poiché non c'era abbastanza spazio nel mio caso, quindi non è incluso nell'istruzione.

Passaggio 2: prepara il tuo Raspberry Pi

Ottieni il tuo sistema operativo Raspian Jessie con Pixel dal sito ufficiale di Raspberry Pi e, una volta scaricato, decomprimilo. Otterrai un file immagine. Per ottenerlo sul Pi dovrai scriverlo sulla SD-Card usando Win32 Disk Imager. Una volta installato, seleziona il file immagine e l'unità in cui risiede la scheda SD. Quindi premi scrivi e attendi fino al termine.

Al termine, fai clic sulla tua scheda SD in Esplora file e apri il file chiamato "cmdline.txt" vai alla fine del file di testo appena prima di rootwait e scrivi "ip=254.169.10.2" con spazi intorno ovviamente. Dopo averlo salvato, fai clic con il pulsante destro del mouse da qualche parte all'interno della finestra e crea un nuovo file chiamato 'ssh'. Si noti che questo file non ha un'estensione di file. Per assicurarti che non abbia un'estensione, fai clic su "Visualizza" in Esplora file e seleziona "File nascosti". Se lo fa, rinominalo ed elimina l'estensione in modo che legga solo "ssh".

Fatto ciò, puoi finalmente inserire la tua scheda SD nel Raspberry Pi. Scarica un client ssh (consiglio MobaXterm). E connettiti usando ssh con l'IP che hai impostato in precedenza "254.169.10.2". Il nome utente è 'pi', la password 'raspberry'. Se vuoi puoi cambiare la password digitando il comando 'sudo passwd' nel terminale e seguendo le istruzioni. Poiché utilizzeremo una buona parte della scheda SD per Fanair, dovresti estendere lo spazio di archiviazione disponibile digitando "sudo rapi-config" scegliendo "Opzioni avanzate" e quindi "Espandi file system". Se richiesto riavviare.

Utilizzeremo l'interfaccia 1-wire, SPI e I2C. Per poterli utilizzare devi prima configurarli!

Passaggio 3: collega tutto insieme

Connetti tutto insieme
Connetti tutto insieme
Connetti tutto insieme
Connetti tutto insieme

È tempo di fare un circuito! La prima volta probabilmente dovresti provarlo su una breadboard, ma se non hai tempo potresti provare a saldarlo insieme.

Il circuito di cui avrai bisogno è simile a quello sopra, per comodità è inclusa anche una versione breadboard.

Passaggio 4: crea il tuo database

Per salvare in modo efficiente tutti i dati che riceverai utilizzeremo un database TSQL MySQL. Prima di installare MySQL assicuriamoci che tutto sia aggiornato digitando alcuni comandi nel terminale:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Accetta ogni richiesta digitando "y" e inserisci.

Per installare MySQL digita:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Quando richiesto, crea una password di root a tua scelta.

Dopo aver completato l'installazione di login utilizzando:

'mysql -uroot -p'

E digitando la tua password.

Ottieni il codice Fanair da My Github! Fare clic su "Clona o scarica" e quindi su "Scarica ZIP". Decomprimi il codice in una cartella a tua scelta. La query per creare il database completamente operativo si trova nella cartella del database. Apri il file copia il codice e incollalo nel terminale con MySQL aperto. Quindi fai clic su invio e il database è fatto!

Passaggio 5: tempo per il codice

Per utilizzare tutti i sensori è ovviamente necessario eseguire un programma. Fortunatamente il codice è già stato eseguito (per la maggior parte) e lo abbiamo già scaricato quando abbiamo ricevuto la query SQL del database.

Come ho detto, ci sono alcune cose che devono ancora essere modificate/aggiunte affinché il programma funzioni correttamente. Innanzitutto il programma utilizza l'API Darksky per ottenere i dati meteo basati su longitudine e latitudine. Per utilizzarlo è necessario registrarsi. Le prime 1000 chiamate sono gratuite e successivamente costa $ 0,0001 a chiamata. Ho sentito che se non paghi il tuo account viene bloccato. Ad essere onesti $ 0,0001 per chiamata è abbastanza economico. Fanair chiama i dati più recenti ogni ora, il che significa che in un anno se eseguito a tempo pieno ti costerà solo $ 0,876. Hai anche 41 giorni gratuiti se Fanair funziona a tempo pieno.

Una volta registrato, cerca la tua chiave API. Cerca la longitudine e la latitudine della tua posizione su Google Maps o prova a cercarla su Google. Crea un nuovo file di testo nella directory principale di Fanair (con classi, main.py …). Denominare il file 'key_location.txt'. Apri il file di testo e sulla prima riga incolla la tua chiave API Darksky. Sulla seconda riga incolla la tua longitudine e sulla terza riga incolla la tua latitudine (entrambi in formato decimale). Quando hai finito salva il file.

Nella stessa directory creare un altro file di testo chiamato 'database_dsn.txt'. La prima riga dovrebbe dire "localhost". La seconda riga è 'root'. Nella terza riga devi digitare la password che hai creato per il database in precedenza e nella quarta e ultima riga devi digitare 'fanair'.

Fare clic con il pulsante destro del mouse sul file main.py e selezionare modifica. Il 'fanair = Fanair(5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' deve essere modificato. Se hai seguito l'immagine, i primi 5 valori dovrebbero essere cambiati da "5, 26, 17, 27, 22, 4" a "20, 21, 26, 19, 13". Anche '/home/muhsin/Applications/Fanair' dovrebbe essere cambiato nel percorso root di Fanair (dove si trova main.py). Assicurati di mettere una barra davanti a "casa" ma non dopo "Fanair".

Ora è tutto fantastico, ma il codice deve entrare nel Pi. Fortunatamente per noi esiste il protocollo sftp. Per mettere i file sul Pi usa un client sftp come FileZilla o se hai deciso di usare MobaXterm puoi caricare facilmente i file nell'interfaccia sftp a sinistra del terminale.

Nella mia esperienza non ottengo sempre la data e l'ora corrette nel Raspberry Pi. Per assicurarti di ricevere la data e l'ora corrette ti suggerisco di seguire questa guida: Data e ora di sincronizzazione di Raspberry Pi.

E, ultimo ma non meno importante, è necessario installare alcune librerie e attivare alcune interfacce:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 installa adafruit_python_dht'

1-filo:

  1. 'sudo raspi-config'
  2. "Opzioni di interfacciamento"
  3. '1 filo'
  4. Abilitare
  5. 'sudo nano /boot/config.txt'
  6. Aggiungi questa riga nel file: 'dtoverlay=w1-gpio'
  7. 'riavvio sudo'

SPI:

  1. 'sudo raspi-config'
  2. "Opzioni di interfacciamento"
  3. 'SPI'
  4. Abilitare
  5. 'riavvio sudo'
  6. 'sudo nano /boot/config.txt'
  7. Cerca 'dtparam=spi=on' e decommenta rimuovendo l'hashtag.
  8. "sudo apt-get install python3-dev"

Smbus:

  1. 'sudo raspi-config''
  2. "Opzioni di interfacciamento"
  3. 'I2C'
  4. Abilitare
  5. 'riavvio sudo'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Cerca dtparam=i2c_arm=on e decommenta rimuovendo l'hashtag.

borraccia

pip3 installa Flask

connettore mysql

'pip3 install -Iv mysql-connector==2.1.4'

spidev

'pip3 installa py-spidev'

cielo scuro

'pip3 installa darkskylib'

Passaggio 6: provalo

Se sei riuscito ad arrivare fino a questo punto, toccati sulla schiena. Ora tutto è fatto per far funzionare correttamente Fanair. Quindi, per testarlo, digita 'cd ""'. La posizione del file è "/home/pi" per esempio se hai appena incollato nella tua directory home. Quindi digita "python3 main.py" e lascialo riposare per 15 minuti in modo che al termine abbia i dati nel database. Dopodiché premi 'ctrl + c' ferma il programma e digita 'python3 Flask.py'. Per vedere se il tuo sito web funziona, devi navigare fino all'indirizzo IP del tuo Pi che hai creato con ": 5000" dopo di esso (in questo modo: 169.254.10.1: 5000').

Per farlo funzionare automaticamente dopo l'avvio:

'sudo nano /etc/rc.local'

Alla fine del file MA PRIMA esci 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Congratulazioni, ora il tuo script dovrebbe essere eseguito dall'avvio e il gioco è fatto! Se hai intenzione di mantenere il progetto in esecuzione e non l'hai già fatto, ti suggerirei di saldare tutto insieme, solo per assicurarti che tutto rimanga a posto. Anche se non giochi a spostarlo molto, ovviamente funziona anche una breadboard.

Consigliato: