Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Konfigurere din Raspberry Pi
- Trinn 2: Konfigurere Enviro PHAT
- Trinn 3: Angi din IFTTT -konto/tilkobling
- Trinn 4: Redigere manus
- Trinn 5: Bruke skriptet
- Trinn 6: Ferdig
Video: Hold babyen din kjølig i sommer - Kontroller stumme fans med smarte ting !: 6 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
For to uker siden, da jeg skrev dette, ble jeg pappa til en utrolig gutt!
Med årstidene som skifter, dagene blir lengre og temperaturene blir varmere, tenkte jeg at det ville være greit å ha en slags monitor i barnehagen for å sjekke hvor varmt det var å komme opp dit!
Jeg har ikke puslet med mye pyton gjennom årene, men ønsket å komme tilbake til det siden mitt første år på universitetet for snart 5 år siden nå! På grunn av dette tenkte jeg at det ville være bedre å dokumentere det jeg gjorde, for å hjelpe meg senere, også hjelpe alle andre som ønsker å gjøre det samme!
Ved å bruke en Raspberry pi, Enviro pHAT og en smart TP-link kasa-plugg, kan du kontrollere pluggene ved hjelp av IFTTT-rammeverket! det er veldig enkelt å gjøre, og du kan til og med endre denne gjennomgangen for å kontrollere alt gjennom forskjellige sensorer og forskjellige enheter! Håper du synes dette er nyttig. Hvis du liker dette instruerbart, ikke glem å stemme på innsendelsen min i sensorkonkurransen!: D (beklager for spørringen), det er første gang jeg gjør dette og vil gjerne ha en mulig sjanse til å vinne noe for hele tiden jeg legger ned i dette
** EDIT ** I løpet av de neste dagene skal jeg se på å skyve disse dataene til et Grafana -bord, hvis du tror dette ville være bra, gi beskjed!: D
La oss komme inn på det …
Rekvisita
- Enhver Raspberry pi vil gjøre, men jeg valgte Zero W, da det var det jeg måtte levere i trekningen min, den har også den minste formfaktoren med WiFi aktivert som standard! - Bringebær PI Zero w
- SD -kort, alle har forskjellige preferanser på disse, men jeg brukte en av disse! - Micro-SD-kort
- Hvis du sitter fast, her er den offisielle støttede dokumentasjonen for SD -kort -offisielle SD -kort som støttes
- Jumperwires (forklarer senere) - Jumper wires
- Enviro pHAT for alle de strålende sensorene! - Envrio-pHAT
- En smart plugg, jeg har gått med TP-Link ettersom du ikke trenger noen fancy hubber for å få det til å fungere ut av esken! - Smart plugg!
- En dum vifte for å kontrollere, du kan bruke hvilken som helst vifte, jeg har nettopp funnet en vifte på Amazon, men en hvilken som helst stikkontakt vil fungere fint - Dum vifte
- Et loddejern, men hvis du ikke ønsker å bruke et loddejern, kan du få klikk-inn overskrifter for PI og pHAT-GPIO-hammer-header
For at en tilkobling mellom TP-links kasa og IFTTT skal fungere, må du ha en TP-link kasa og IFTTT-konto konfigurert før du kan starte denne instruksen. Når du mottar din TP-link smart plugg, vil instruksjonene som følger med smart pluggen guide deg gjennom installasjonsprosessen, inkludert hvordan du navngir pluggen og dens grunnleggende funksjoner
Når du har fått handlelisten din, er det på tide å sette sammen alt!
Trinn 1: Konfigurere din Raspberry Pi
Imaging ditt micro-SD-kort Få det nyeste og beste Raspbian-bildet, lite-versjonen vil gjøre det bra, om ikke bedre for null w! -
Skriv dette bildet til SD -kortet, du trenger en leser for dette og et bildebehandler, jeg bruker etser -
Oppsett Wifi (valgfritt) Hvis PI -en din har en innebygd WIFI, hvorfor ikke sette den opp nå for å spare mye rot med konsoller senere!
Når pien din er blitt avbildet, har stasjonen blitt kastet ut. Koble fra og koble til SD -kortet slik at det blir oppdaget av maskinen din igjen. En oppstartspartisjon skal vises.
Lag en tom fil som heter wpa_supplicant.confwith the boot partition of your pi, within here place the below in this new file:
nettverk = {
ssid = "YOUR_SSID" psk = "YOUR_WIFI_PASSWORD" key_mgmt = WPA-PSK}
Aktivering av SSH på valgfri PI (valgfritt)
Som standard vil et rent Raspbian -bilde ha ssh deaktivert. Du må starte systemet, koble et tastatur og skjerm til Pi og deretter aktivere ssh. Dette trinnet vil aktivere ssh ved første oppstart. I oppstartspartisjonen lager du en ny fil som heter ssh. En tom fil med akkurat det navnet.
Etter å ha fullført dem to valgfrie trinn, vil PI -en automatisk koble seg til WIFI og ha SSH aktivert som standard.
Når du har avbildet og konfigurert micro-SD-kortet, kan du sette det inn i PI eller valg og slå det på!
Når du oppdaterer PIO -en din etter at du har startet PI -en, kan du finne IP -adressen til PI -en din i innstillingene for de trådløse ruterne. De fleste rutere er forskjellige, så dette ville være vanskelig å skrive en guide for dette dessverre!
Når du har IP -adressen til PI -en din, kobler du til via SSH og logger på med følgende:
Brukernavn: pi
Passord: bringebær
Når du har en aktiv SSH -økt med PI -en din, vil du oppdatere den. Bare kjør under med den tilhørende Y eller N under oppdateringen:
sudo apt-get oppdatering
sudo apt-get oppgradering
Det er alltid godt å starte en PI på nytt etter at noen nye oppdateringer er installert for å sikre at den har kjørt på nytt med de siste oppdateringene. Dette kan oppnås med
sudo reboot -n
Nå er PI klar, på tide å gå videre til neste trinn!
Trinn 2: Konfigurere Enviro PHAT
Kabling av Enviro pHAT
Når du har pi -en din oppdatert, kan du koble Enviro pHAT til PI -en etter eget valg!
*** For å sikre at du ikke skader PI eller pHAT, må du slå den av først ***
Her brukte jeg jumperledningene fordi du får termisk utvasking fra CPU -en som blir varm under Enviro pHAT. Denne ekstra varmen kan endre temperaturavlesningene du vil få senere. På grunn av dette har jeg brukt 5 jumperledninger på pinnene nedenfor:
- Pin 3 - GPIO2 (SDA I2C)
- Pin 5 - GPIO3 (SCL I2C)
- Pin 7 - GPIO4
- Pin 6 - Bakken
- Pin 4 - 5V
Vennligst sjekk koblingsskjemaet øverst i dette trinnet for visuell referanse eller lenken nedenfor:
pinout.xyz/pinout/enviro_phat
(beklager den dårlige malingsjobben)
Når du kobler til pHAT, må du sørge for at du har satt det på riktig måte, ellers kan du skade det !!! For å gjøre dette, hadde jeg mitt oppsett slik at ANALOG IN -hodene er mot SD -kortsporet, dette har senere blitt snudd i bildene mine for å få det til å passe godt inn i min "bærer".
Installere avhengighetene
Slå PI -en på igjen og SSH inn igjen
Når du er tilbake i PI -en, kjører du følgende for å installere nødvendige pakker og programvare for Enviro pHAT:
krølle https://get.pimoroni.com/envirophat | bash
Sørg for å trykke Y eller N når det er nødvendig.
Når installasjonen er fullført, må du starte PI -en på nytt …
sudo reboot -n
Testing av pHAT
For å være sikker på at pHAT er koblet til riktig, kan du slippe inn i en python -modul og kjøre noen få kommandoer ved å sette tilbake til PI -en og skrive python, en gang i en python -modul skriver du inn følgende:
fra envirophat importvær
print (weather.temerpature ())
Dette bør vise deg en avlesning som nedenfor:
>> fra envirophat importvær
>> skrive ut (vær. temperatur ()) 24.0806166987
Feilsøking
Hvis du får noe i stil med en feil nedenfor:
Traceback (siste anrop sist): File "", line 1, in File "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", line 134, in temperature self.update () File " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py ", linje 169, i oppdatering hvis self._read_byte (REGISTER_CHIPID) == 0x58: # check sensor id 0x58 = BMP280 File"/usr/lib/ python2.7/dist-packages/envirophat/bmp280.py ", linje 116, i _read_byte return self.i2c_bus.read_byte_data (self.addr, register) IOError: [Errno 121] Ekstern I/O-feil
Du kan deretter kjøre:
sudo i2cdetect -y 1
Dette vil utføre en diagnostisk kontroll av tilkoblingene/ledningene, og du vil se etter noe som nedenfor:
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
Hvis ikke, må du gå tilbake og sjekke ledningene igjen. Vennligst sjekk koblingsskjemaet og prøv igjen!
Installere skriptet pi-baby-cooler.py
Hvis alt er bra, og du lyktes med å få en temperaturavlesning, kan vi fortsette og installere baby-cooler.py-pakken!
På grunn av hvordan instrukser håndterer koblinger, har jeg lagt ved.py -skriptet i overskriften ovenfor … For å kopiere dette til PI -en din, anbefaler jeg å bruke noe som WinSCP:
winscp.net/eng/download.php
WinSCP er en populær SFTP -klient og FTP -klient for Microsoft Windows! Kopier fil mellom en lokal datamaskin og eksterne servere ved å bruke FTP, FTPS, SCP, SFTP, WebDAV eller S3 filoverføringsprotokoller.
WinSCP er enkel å bruke, bare koble til PI -en din ved hjelp av PIs IP -adresse, og dra og slipp.py -filen der du vil kjøre den fra, for meg er dette fra /home /pi.
Nå er.py -skriptet på PI -en din, det er på tide å gå videre til å sette opp IFTTT -kontoen / tilkoblingene
Trinn 3: Angi din IFTTT -konto/tilkobling
Neste gang vil vi se på å få et IFTTT -token, dette vil bli brukt når du kaller varm / kald -funksjonen i skriptet for å koble til kasa -pluggen og slå på / av viften.
Opprette Webhooks
Gå til https://ifttt.com/ og opprett en konto hvis du ikke allerede har en.
Når du har logget deg på, i søkefeltet, søker du på: TP-link kasa
Når det er lastet, klikker du på tjenester og deretter TP-link kasa. Du må deretter koble din kasa -konto til din IFTTT -konto, logge på kasa -kontoen din gjennom IFTTT for å opprette en tilkobling.
Etter at du har koblet kontoen din, klikker du på "Mine appleter" og deretter på den nye appleten, klikker på "+dette" og søker i webhooks.
Klikk på "Motta en webforespørsel", innenfor navnet på hendelsen hot (dette kan være hva du vil, men du må oppdatere dette senere i pi-baby-coller.py-skriptet, ellers fungerer dette ikke, jeg har brukt hot for å slå viften på og kald for å slå av viften. Klikk deretter på opprett utløser.
Deretter må vi koble den nye utløseren din til Kasa-kontoen din, klikk på "+that" og søk i kasa, klikk på TP-link kasa, klikk deretter på "slå på", velg deretter enheten du vil slå på, klikk deretter på opprett handling. Se gjennom handlingen og klikk på Fullfør hvis den er riktig.
**********
Husk at hvis du har valgt et annet hendelsesnavn enn "varmt" og "kaldt", må du notere disse for senere og oppdatere skriptet! Ellers fungerer ikke.py -skriptet
**********
Etter at vi har opprettet vår første webkrok, gjentar du prosessen for "kald", men denne gangen velger du slå av i stedet for å slå på når du velger +den handlingen.
Når vi har to webhooks for hendelser i seksjonen min applets -konto, klikker du på tjenester og søker på webhooks, og klikker deretter på det. Her vil du se en dokumentasjonsknapp (øverst til høyre), klikk på den. Det er her du finner IFTTT -tokenøkkelen din. mens du er her, noterer du nøkkelen din (du trenger den senere), men jeg har redigert min i bildet, ellers ville noen kunne slå mine smartplugger på eller av.
Tester webhooks
Nå har vi opprettet to webhooks som er koblet til vår kasa -konto, vi kan teste om de fungerer eller ikke!
I PI -en din kan du skrive inn følgende:
curl -X POST
Der det står "hot" må du legge til navnet på arrangementet, hvis du la det stå som "hot", la dette være. Der det står /du … må du erstatte dette med IFTTT -tokenøkkelen. Trykk enter, og du bør da høre klikkene på smarte plugger -reléet som slår pluggen på. Hvis du ikke kunne høre det, kan du sjekke Kasa -appen for å sjekke statusen til pluggene dine.
Nå har vi avhengighetene for vår Enviro pHAT installert og har nå IFTTT -oppsett, på tide å avslutte med å endre koden.
Trinn 4: Redigere manus
Hendelsesnavn og IFTTT TOKENS Tilbake på pien din, eskalerer til plasseringen av pi-baby-cooler.py-skriptet, for meg er det in /home /pi (min hjemmemappe) og rediger filen ved hjelp av nano:
nano pi-baby-cooler.py
Innen finner der det står def turn_off ()
def turn_off ():
# Still inn triggerordet ditt - f.eks. "kaldt" - og IFTTT Webhook -tokenet nedenfor. TRIGGER_WORD = "cold" TOKEN = "DITT IFTTT Token går her" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan off!"):
Dette er funksjonen for å slå av viften. Det gjør dette ved å sende en webhook til IFTTT som får tplink HS100 til å slå seg av. Hvis du har beholdt utløseren i IFTTT -kontoen din på samme måte som "kaldt", kan du la det stå igjen og bare erstatte tokenet du fikk fra webhooks -dokumentasjonen tidligere. Hvis du valgte et annet hendelsesnavn, kan du erstatte dette ordet her.
Etter å ha limt inn IFTTT -tokenet ditt, går du til neste seksjon der det står def turn_on ()
def turn_on ():# Angi triggerordet ditt - f.eks. "hot" - og IFTTT Webhook -tokenet nedenfor. TRIGGER_WORD = "hot" TOKEN = "DITT IFTTT Token går her" request.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan on!")
Denne funksjonen er motsatt av av, den slår på TP-link smart pluggen!
Hvis du har beholdt utløseren i IFTTT -kontoen din som "hot", kan du la det stå igjen og bare erstatte tokenet du fikk fra webhooks -dokumentasjonen tidligere. Hvis du valgte et annet hendelsesnavn, kan du erstatte dette ordet her.
Alt annet er allerede kodet inn, så du trenger ikke å gjøre noen endringer i koden andre TRIGGER_WORD, TOKEN og noen justeringer i temperaturer som er neste!
Endre temperaturene
Deretter finner du hvor det står # Lokale variabler.
prøv: # Lokale variabler. state = 0 # Angir tilstanden for bryteren lav = 20 # Lav verdi for temperaturnivå (celcius). høy = 24 # Høy verdi for temperaturnivå (celcius). periode = 120 # Forsinkelse, i sekunder, mellom anrop.
Tilstandsvariabelen er hvordan pi vet om pluggen er på eller ikke, denne oppdateres senere hvis det blir for varmt (24+*c, deretter endres tilstanden senere til 1), dette vil også gå av til webhook og slå den smarte pluggen!
Den lave variabelen er hvor kult jeg vil at rommet skal bli før pluggen slås av. Hvis du vil at rommet skal bli varmere, kan du bare endre dette til en høyere verdi. Hvis du vil ha det kjøligere, senk verdien.
Den høye variabelen er den maksimale temperaturen jeg vil at rommet skal få før jeg vil at viften skal sparke inn og begynne å kjøle ned rommet. Hvis du vil at viften skal komme på før dette, kan du bare senke verdien, eller hvis du vil at den skal være varmere, så høyere verdi.
Periodevariabelen er varigheten i sekunder mellom temperaturkontrollene. Hvis du vil at pi -skriptet skal sjekke sjeldnere, er tallet høyere hvis du vil forkorte tiden.
Når du har gjort endringene, lagrer og avslutter du nano
CTRL + x
Trinn 5: Bruke skriptet
Kjører skriptet lokalt
Det er noen få måter du kan kjøre dette skriptet på. Du kan koble til via SSH og skrive inn følgende:
sudo python /pi-baby-cooler.py
Dette vil kjøre skriptet på forespørsel, dette vil bare fungere så lenge det er en aktiv SSH -økt til PI. Den andre måten er å bruke skjermen, skjermen er ikke installert som standard tror jeg ikke, så en sudo apt installasjonsskjerm må brukes.
Her er en flott opplæring i hvordan du bruker skjermen riktig:
Screen eller GNU Screen er en terminal multiplexer. Med andre ord betyr det at du kan starte en skjermøkt og deretter åpne et hvilket som helst antall vinduer (virtuelle terminaler) inne i denne økten. Prosesser som kjører på skjermen fortsetter å kjøre når vinduet ikke er synlig, selv om du blir koblet fra.
Automatiserer for å kjøre på oppstart
Den andre måten er å redigere oppstartsfilen i /etc/rc.local for å gjøre denne bruken nano.
sudo nano /etc/rc.local
Hvis du redigerer denne filen, blir skriptet kjørt ved oppstart. betyr at den alltid vil kjøre når PI -en er på, dette er også hvordan jeg kjører 90% av skriptene mine på andre PI -er.
Hvis du har brukt rc.local, kan du kjøre kommandoen nedenfor for å se hva som kjører på PI -en. Dette er praktisk å feilsøke senere for å se om skriptet fungerer i det hele tatt eller ikke:
ps -aef | grep python
Trinn 6: Ferdig
Vel … Takk hvis du fortsatt er her og nådde dette punktet!
Beklager at det har vært ganske lenge, dette var min første noensinne som jeg kunne lære og var ikke helt sikker på hva jeg skulle skrive ned.
Som jeg nevnte i starten, har denne instruksjonsboken mange forskjellige applikasjoner som bruker varme for å utløse en smart plugg! du kan avkjøle ethvert rom i huset/leiligheten/leiligheten/garasjen/skuret. Du kan til og med endre IFTTT for å utløse enhver smartenhet som kan kontrolleres via IFTTT, det trenger ikke bare å være TP-link kasa-enheter.
Jeg vil gjerne høre om du har prøvd denne instruksen eller om du synes det var interessant, legg igjen en kommentar nedenfor!
Hvis du har spørsmål, må du la dem stå nedenfor, og jeg skal prøve mitt beste for å svare på dem!
Andreplass i sensorkonkurransen
Anbefalt:
Din egen smarte bil og utover HyperDuino+R V3.5R med Funduino/Arduino: 4 trinn
Din egen smarte bil og utover HyperDuino+R V3.5R med Funduino/Arduino: Dette er en direkte kopi av dette settet med instruksjoner HER. For mer informasjon, gå til HyperDuino.com. Med HyperDuino+R v4.0R kan du begynne en undersøkelsesbane i mange forskjellige retninger, fra å kontrollere motorer til å utforske elektronikk, fra
Slik gjør du smarte rullegardiner med SONOFF smarte brytere ?: 14 trinn
Slik gjør du smarte rullegardiner med SONOFF smarte brytere ?: Bruk låsemodus i SONOFF smarte brytere for å gjøre dine vanlige rullegardiner/persienner til smarte, om de fleste av dere er enige om at dette er en plikt at du trekker rullegardiner/persienner opp om morgenen og trekke den ned på kvelden? Uansett, jeg er
Få blind til å gjenkjenne ting ved å berøre ting rundt dem ved hjelp av MakeyMakey: 3 trinn
Gjør blinde gjenkjenne ting ved å berøre ting rundt dem ved hjelp av MakeyMakey: introduksjon Dette prosjektet tar sikte på å gjøre blindes liv lett ved å identifisere ting rundt dem gjennom berøringsfølelsen. Meg og min sønn Mustafa tenkte vi på å finne et verktøy for å hjelpe dem, og i perioden vi brukte MakeyMakey -maskinvaren til
Hold deg kjølig i sommer: PC Fan Mod: 4 trinn (med bilder)
Hold deg kul denne sommeren: PC Fan Mod: Hvem har ikke et dusin av disse PC -fanene? I denne bygningen vil jeg vise deg hvordan du bruker disse viftene til å produsere en fin justerbar bris i varme sommerdager. Og det går minst 4 timer med et vanlig 9V batteri
Skjul ting og data - Hold det trygt for verden: åtte trinn
Skjul ting og data - Hold det trygt for verden: Den vakre verden har alltid mange overraskelser. Jeg deler med deg litt av min erfaring for å holde meg selv og tingene mine trygge. Håper det vil hjelpe deg