Sommario:

Mantenere il tuo bambino fresco quest'estate - Controllare i fan stupidi con cose intelligenti!: 6 passaggi (con immagini)
Mantenere il tuo bambino fresco quest'estate - Controllare i fan stupidi con cose intelligenti!: 6 passaggi (con immagini)

Video: Mantenere il tuo bambino fresco quest'estate - Controllare i fan stupidi con cose intelligenti!: 6 passaggi (con immagini)

Video: Mantenere il tuo bambino fresco quest'estate - Controllare i fan stupidi con cose intelligenti!: 6 passaggi (con immagini)
Video: Maranza cerca di prendermi la moto 2024, Dicembre
Anonim
Mantenere il tuo bambino fresco quest'estate - controllare i fan stupidi con cose intelligenti!
Mantenere il tuo bambino fresco quest'estate - controllare i fan stupidi con cose intelligenti!
Mantenere il tuo bambino fresco quest'estate - controllare i fan stupidi con cose intelligenti!
Mantenere il tuo bambino fresco quest'estate - controllare i fan stupidi con cose intelligenti!

A partire da due settimane fa, al momento della stesura di questo, sono diventato papà di un bambino incredibile!

Con le stagioni che cambiano, le giornate che si allungano e le temperature che si fanno più calde, ho pensato che sarebbe stato bello avere una specie di monitor nella stanza dei bambini per controllare quanto faceva caldo lassù!

Non ho armeggiato molto con Python nel corso degli anni, ma volevo tornarci dal mio primo anno all'università quasi 5 anni fa! Per questo ho pensato che sarebbe stato meglio documentare quello che ho fatto, per aiutarmi in seguito, aiutare anche chiunque altro volesse fare la stessa cosa!

Usando un Raspberry pi, Enviro pHAT e una spina kasa intelligente TP-link, puoi controllare le spine usando il framework IFTTT! è davvero semplice da fare e puoi persino modificare questa procedura dettagliata per controllare qualsiasi cosa attraverso diversi sensori e diversi dispositivi! Spero che tu lo trovi utile. Se ti piace questo tutorial, non dimenticare di votare per la mia presentazione nel concorso dei sensori!:D (scusa per la domanda), è la prima volta che lo faccio e vorrei avere una possibile possibilità di vincere qualcosa per tutto il tempo che ci ho dedicato

** EDIT ** Nei prossimi giorni cercherò di inviare questi dati a una bacheca Grafana, se pensi che possa andare bene, faccelo sapere!:D

Entriamo subito nel merito…

Forniture

  1. Qualsiasi Raspberry pi andrà bene, ma ho scelto lo Zero W perché era quello che dovevo consegnare nel mio disegno, ha anche il fattore di forma più piccolo con il WiFi abilitato per impostazione predefinita! - Raspberry PI Zero con
  2. Scheda SD, ognuno ha preferenze diverse su queste, ma io ho usato una di queste! - Scheda Micro-SD
  3. Se sei bloccato, ecco la documentazione ufficiale supportata per le schede SD -schede SD supportate ufficiali
  4. Ponticelli (spiegheremo più avanti) - Ponticelli
  5. Enviro pHAT per tutti i gloriosi sensori! - Envrio-pHAT
  6. Una presa intelligente, sono andato con TP-Link perché non hai bisogno di hub fantasiosi per farlo funzionare fuori dalla scatola! - Spina intelligente!
  7. Un fan stupido da controllare, puoi usare qualsiasi fan, ho appena trovato un fan su Amazon, ma qualsiasi fan della presa a muro funzionerà bene - Dumb fan
  8. Un saldatore, ma se non desideri utilizzare un saldatore, puoi ottenere le intestazioni clic per il tuo PI e pHAT - GPIO-hammer-header

Affinché una connessione tra TP-links kasa e IFTTT funzioni, sarà necessario disporre di un TP-link kasa e di un account IFTTT prima di avviare questo istruzioni. Quando ricevi la tua presa intelligente TP-link, le istruzioni fornite con la presa intelligente ti guideranno attraverso il processo di installazione, incluso come nominare la presa e le sue funzioni di base

Una volta che hai tutta la tua lista della spesa, è il momento di assemblare tutto!

Passaggio 1: configurazione del Raspberry Pi

Imaging della tua scheda micro-SD Ottieni l'immagine Raspbian più recente e migliore, la versione lite andrà bene, se non meglio per lo zero w! -

Scrivi questa immagine sulla scheda SD, avrai bisogno di un lettore per questo e di un imager, io uso incisore -

Setup Wifi (opzionale) Se il tuo PI ha un WIFI integrato, perché non configurarlo ora per risparmiare un sacco di problemi con le console in seguito!

Una volta che il tuo pi è stato ripreso, l'unità è stata espulsa. Scollega e collega la scheda SD in modo che venga nuovamente rilevata dalla tua macchina. Dovrebbe apparire una partizione di avvio.

Crea un file vuoto chiamato wpa_supplicant.conf all'interno della partizione di avvio del tuo pi, qui inserisci quanto segue in questo nuovo file:

rete={

ssid="YOUR_SSID" psk="YOUR_WIFI_PASSWORD" key_mgmt=WPA-PSK }

Abilitare SSH sul tuo PI preferito (opzionale)

Per impostazione predefinita, un'immagine Raspbian pulita avrà ssh disabilitato. Dovresti avviare il sistema, collegare una tastiera e un display al Pi e quindi abilitare ssh. Questo passaggio abiliterà ssh al primo avvio. Nella partizione di avvio, crea un nuovo file chiamato ssh. Un file vuoto con esattamente quel nome.

Dopo aver completato questi due passaggi opzionali, il tuo PI si connetterà automaticamente al tuo WIFI e avrà SSH abilitato per impostazione predefinita.

Una volta che hai ripreso e configurato la scheda micro-SD, puoi inserirla nel tuo PI o nella tua scelta e accenderla!

Aggiornare il tuo PIO Una volta avviato il tuo PI, puoi trovare il tuo indirizzo IP del tuo PI nelle impostazioni del tuo router wireless. La maggior parte dei router è diversa, quindi sarebbe difficile scrivere una guida per questo purtroppo!

Una volta ottenuto l'IP del tuo PI, connettiti tramite SSH e accedi con quanto segue:

Nome utente: pi

Parola d'ordine: lampone

Una volta che hai una sessione SSH attiva con il tuo PI, vorrai aggiornarla, esegui semplicemente quanto segue con la Y o N corrispondente durante l'aggiornamento:

sudo apt-get update

sudo apt-get upgrade

è sempre bene riavviare un PI dopo che sono stati installati nuovi aggiornamenti per assicurarsi che sia stato eseguito di nuovo con gli ultimi aggiornamenti, questo può essere ottenuto con

sudo reboot -n

Ora che il PI è pronto, è ora di passare al passaggio successivo!

Passaggio 2: configurazione di Enviro PHAT

Configurazione del tuo ambiente PHAT
Configurazione del tuo ambiente PHAT
Configurazione del tuo ambiente PHAT
Configurazione del tuo ambiente PHAT

Cablaggio di Enviro pHAT

Una volta che hai aggiornato il tuo pi, puoi collegare il tuo Enviro pHAT al PI di tua scelta!

***Per assicurarti di non danneggiare il tuo PI o il tuo pHAT assicurati di spegnerlo prima***

Qui ho usato i cavi del ponticello perché si può ottenere un washout termico dalla CPU che si surriscalda sotto l'Enviro pHAT. Questo calore extra può alterare le letture della temperatura che otterresti in seguito. Per questo motivo ho utilizzato 5 ponticelli sui pin sottostanti:

  • Pin 3 – GPIO2 (SDA I2C)
  • Pin 5 – GPIO3 (SCL I2C)
  • Pin 7 – GPIO4
  • Pin 6 – Terra
  • Pin 4 - 5V

Si prega di controllare lo schema elettrico nella parte superiore di questo passaggio per riferimento visivo o il collegamento sottostante:

pinout.xyz/pinout/enviro_phat

(scusate per la verniciatura scadente)

Quando colleghi il tuo pHAT, assicurati di averlo impostato nel modo giusto, altrimenti potresti potenzialmente danneggiarlo!!! Per fare ciò, ho impostato il mio in modo che le intestazioni ANALOG IN siano verso lo slot della scheda SD, questo è stato successivamente girato nelle mie foto per adattarlo perfettamente al mio "supporto".

Installazione delle dipendenze

Riaccendi il tuo PI e ripristina SSH

Una volta tornato nel tuo PI, esegui quanto segue per installare i pacchetti e il software richiesti per il tuo Enviro pHAT:

curl https://get.pimoroni.com/envirophat | bash

Assicurati di premere Y o N quando necessario.

Al termine dell'installazione, assicurati di riavviare il tuo PI…

sudo reboot -n

Testare il pHAT

Per assicurarti che il tuo pHAT sia cablato correttamente, puoi entrare in un modulo python ed eseguire alcuni comandi riportando il tuo PI e digitando python, una volta in un modulo python digita quanto segue:

dal tempo di importazione di envirophat

print(meteo.temperatura())

Questo dovrebbe mostrarti una lettura come di seguito:

>> dal tempo di importazione di envirophat

>> print(meteo.temperatura()) 24.0806166987

Risoluzione dei problemi

Se ottieni qualcosa sulla falsariga di un errore di seguito:

Traceback (ultima chiamata più recente): File "", riga 1, in File "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", riga 134, nel file temperature self.update() " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py", riga 169, in aggiornamento se self._read_byte(REGISTER_CHIPID) == 0x58: # check sensor id 0x58=BMP280 File "/usr/lib/ python2.7/dist-packages/envirophat/bmp280.py", riga 116, in _read_byte return self.i2c_bus.read_byte_data(self.addr, register) IOError: [Errno 121] Errore I/O remoto

Puoi quindi eseguire:

sudo i2cdetect -y 1

Questo eseguirà un controllo diagnostico sulle tue connessioni/cablaggi e cercherai qualcosa come di seguito:

pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 abcdef 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- 1d -- -- 20: -- -- -- -- -- -- -- - -- -- 29 -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: -- -- -- -- -- -- -- - - -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - - 70: -- -- -- -- -- -- -- 77

In caso contrario, sarà necessario tornare indietro e controllare nuovamente il cablaggio, controllare lo schema elettrico e riprovare!

Installazione dello script pi-baby-cooler.py

Se tutto va bene e sei riuscito a ottenere una lettura della temperatura, possiamo procedere e installare il pacchetto baby-cooler.py!

A causa del modo in cui instructionsables gestisce i collegamenti, ho allegato lo script.py nell'intestazione del passaggio precedente… Per copiarlo sul tuo PI, ti consiglio di utilizzare qualcosa come WinSCP:

winscp.net/ita/download.php

WinSCP è un popolare client SFTP e client FTP per Microsoft Windows! Copia file tra un computer locale e server remoti utilizzando i protocolli di trasferimento file FTP, FTPS, SCP, SFTP, WebDAV o S3.

WinSCP è semplice da usare, connettiti semplicemente al tuo PI utilizzando l'indirizzo IP del tuo PI, quindi trascina e rilascia il file.py nel punto in cui desideri eseguirlo per me questo è da /home/pi.

Ora lo script.py è sul tuo PI, è ora di passare alla configurazione del tuo account / connessioni IFTTT

Passaggio 3: impostazione dell'account/connessione IFTTT

Impostazione dell'account/connessione IFTTT
Impostazione dell'account/connessione IFTTT
Impostazione dell'account/connessione IFTTT
Impostazione dell'account/connessione IFTTT
Impostazione dell'account/connessione IFTTT
Impostazione dell'account/connessione IFTTT

Successivamente vedremo come ottenere un token IFTTT, questo verrà utilizzato quando si chiama la funzione caldo/freddo all'interno dello script per connettersi alla presa kasa e accendere/spegnere la ventola.

Creazione dei webhook

Vai su https://ifttt.com/ e crea un account se non ne hai già uno.

Una volta effettuato l'accesso, all'interno della barra di ricerca, cerca: TP-link kasa

Una volta caricato, fai clic su servizi, quindi su TP-link kasa. Dovrai quindi connettere il tuo account kasa al tuo account IFTTT, accedere al tuo account kasa tramite IFTTT per stabilire una connessione.

Dopo aver collegato il tuo account, fai clic su "Le mie applet", quindi su nuova applet, quindi fai clic su "+ questo" e cerca i webhook.

Fai clic su "Ricevi una richiesta Web", all'interno del nome dell'evento, digita hot (può essere qualsiasi cosa desideri ma devi aggiornarlo in un secondo momento all'interno dello script pi-baby-coller.py o questo non funzionerà, ho usato hot per girare la ventola è accesa e fredda per spegnerla, quindi fare clic su Crea trigger.

Successivamente dobbiamo collegare il tuo nuovo trigger al tuo account Kasa, fare clic su "+quello" e cercare kasa, fare clic sul collegamento TP kasa quindi fare clic su "accendi", dopodiché seleziona il dispositivo che desideri accendere, quindi fai clic su crea azione. Rivedere l'azione e fare clic su Fine se corretto.

**********

Ricorda che se hai scelto un altro nome di evento diverso da "caldo" e "freddo", dovrai prenderne nota per dopo e aggiornare lo script! Altrimenti lo script.py non funzionerà

**********

Dopo aver creato il nostro primo web hook, ripeti il processo per "freddo", ma questa volta stai selezionando disattiva invece di riattivare quando selezioni l'azione +quella.

Una volta che abbiamo due webhook di eventi nella sezione del tuo account my applet, fai clic su servizi e cerca webhook, quindi fai clic su quello. All'interno di qui vedrai un pulsante di documentazione (in alto a destra), fai clic su di esso. Qui è dove troverai la tua chiave token IFTTT. mentre qui prendi nota della tua chiave (ne avrai bisogno in seguito), ho modificato la mia all'interno dell'immagine altrimenti chiunque sarebbe in grado di accendere o spegnere le mie prese intelligenti.

Testare i webhook

Ora abbiamo creato due webhook collegati al nostro account kasa, possiamo verificare se funzionano o meno!

All'interno del tuo PI, puoi inserire quanto segue:

curl -X POST

Dove dice "caldo" devi aggiungere il nome del tuo evento, se lo hai lasciato come "caldo" lascialo stare. Dove dice / tu … devi sostituirlo con la tua chiave token IFTTT. Premi invio e dovresti sentire il clic del relè delle prese intelligenti che accende la spina. Se non riesci a sentirlo, puoi controllare l'app Kasa per controllare lo stato delle tue prese.

Ora abbiamo installato le dipendenze per il nostro Enviro pHAT e ora abbiamo la configurazione IFTTT, è ora di finire con la modifica del codice.

Passaggio 4: modifica dello script

Modificare lo script
Modificare lo script

Nome evento e TOKENS IFTTT Torna sul tuo pi, passa alla posizione del tuo script pi-baby-cooler.py, per me è in /home/pi (la mia cartella home) e modifica il file usando nano:

nano pi-baby-cooler.py

All'interno del Finder dove dice def turn_off()

def turn_off():

# Imposta la tua parola chiave, ad es. "cold" - e il token Webhook IFTTT di seguito. TRIGGER_WORD = "cold" TOKEN = "IL TUO TOKEN IFTTT VA QUI" request.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, token=TOKEN)) print("Fan off!"):

Questa è la funzione per spegnere la ventola. Lo fa inviando un webhook a IFTTT che attiva lo spegnimento del tplink HS100. Se hai mantenuto il trigger all'interno del tuo account IFTTT allo stesso modo di "cold", puoi lasciarlo e sostituire semplicemente il token che hai ottenuto dalla documentazione dei webhook in precedenza. Se hai scelto un nome di evento diverso, sostituisci questa parola qui.

Dopo aver incollato il tuo token IFTTT, vai alla sezione successiva dove dice def turn_on()

def turn_on():# Imposta la tua parola chiave - ad es. "hot" - e il token Webhook IFTTT di seguito. TRIGGER_WORD = "hot" TOKEN = "IL TUO TOKEN IFTTT VA QUI" request.post("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format(trigger_word=TRIGGER_WORD, token=TOKEN)) print("Ventilatore acceso!")

Questa funzione è il contrario di off, accende lo smart plug TP-link!

Se hai mantenuto il trigger all'interno del tuo account IFTTT allo stesso modo di "hot", puoi lasciarlo dentro e sostituire semplicemente il token che hai ottenuto dalla documentazione dei webhook in precedenza. Se hai scelto un nome di evento diverso, sostituisci questa parola qui.

Tutto il resto è già codificato, quindi non dovresti apportare alcuna modifica al codice oltre a TRIGGER_WORD, TOKEN e alcune modifiche alle temperature che sono le prossime!

Cambiare le temperature

Successivamente, trova dove dice # Variabili locali.

prova: # Variabili locali. state = 0 # Imposta lo stato per l'interruttore basso = 20 # Valore basso per il livello di temperatura (celcius). high = 24 # Valore alto per il livello di temperatura (celcius). periodo = 120 # Ritardo, in secondi, tra le chiamate.

La variabile di stato è il modo in cui pi sa se la spina è accesa o meno, questa viene aggiornata in seguito se diventa troppo calda (24+*c quindi lo stato viene modificato in seguito a 1), questo si attiverebbe anche sul webhook e si accenderà la presa intelligente!

La variabile bassa è quanto voglio che la stanza diventi fresca prima che la spina venga spenta. Se desideri che la stanza sia più calda, cambia semplicemente questo valore con un valore più alto. Se lo desideri più fresco, abbassa il valore.

La variabile alta è la temperatura massima che voglio che la stanza ottenga prima che la ventola si attivi e inizi a raffreddare la stanza. Se si desidera che la ventola si accenda prima, è sufficiente abbassare il valore, o se si desidera che sia più caldo, aumentare il valore.

La variabile periodo è la durata in secondi tra i controlli della temperatura, se si desidera che lo script pi controlli meno frequentemente, aumentare il numero se si desidera ridurre il tempo, abbassare il numero.

Una volta apportate le modifiche, salva ed esci da nano

CTRL + x

Passaggio 5: utilizzo dello script

Usando lo script
Usando lo script

Esecuzione dello script in locale

Ci sono alcuni modi in cui puoi eseguire questo script, puoi connetterti tramite SSH e digitare quanto segue:

sudo python /pi-baby-cooler.py

Questo eseguirà lo script su richiesta, funzionerà solo finché c'è una sessione SSH attiva per il PI. L'altro modo è usare lo schermo, lo schermo non è installato per impostazione predefinita, non credo, quindi dovrà essere utilizzata una schermata di installazione sudo apt.

Ecco un ottimo tutorial su come utilizzare correttamente lo schermo:

Screen o GNU Screen è un multiplexer di terminali. In altre parole, significa che puoi avviare una sessione dello schermo e quindi aprire un numero qualsiasi di finestre (terminali virtuali) all'interno di quella sessione. I processi in esecuzione in Screen continueranno a essere eseguiti quando la loro finestra non è visibile anche se ti disconnetti.

Automazione per l'esecuzione all'avvio

L'altro modo è modificare il file di avvio in /etc/rc.local per farlo utilizzare nano.

sudo nano /etc/rc.local

La modifica di questo file farà eseguire lo script all'avvio. il che significa che sarà sempre in esecuzione quando il PI è attivo, questo è anche il modo in cui eseguo il 90% dei miei script su altri PI.

Se hai utilizzato rc.local, puoi eseguire il comando seguente per verificare cosa è attualmente in esecuzione sul PI. Questo è utile per risolvere i problemi in seguito per vedere se lo script funziona o meno:

ps -aef | grep pitone

Passaggio 6: finito

Bene… Grazie se sei ancora qui e sei arrivato a questo punto!

Mi dispiace che sia passato molto tempo, questo è stato il mio primo tutorial in assoluto e non ero sicuro di cosa scrivere.

Come ho detto all'inizio, questo tutorial ha molte applicazioni diverse usando il calore per attivare una presa intelligente! potresti rinfrescare qualsiasi stanza della casa/appartamento/appartamento/garage/capannone. Puoi persino modificare IFTTT per attivare qualsiasi dispositivo intelligente controllabile tramite IFTTT, non devono essere solo dispositivi kasa con collegamento TP.

Mi piacerebbe sapere se hai provato questo tutorial o anche se lo hai trovato interessante, per favore lasciami un commento qui sotto!

Se hai domande, assicurati di lasciarle qui sotto e farò del mio meglio per rispondere!

Concorso Sensori
Concorso Sensori
Concorso Sensori
Concorso Sensori

Secondo classificato al concorso Sensori

Consigliato: