Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Opsætning af din Raspberry Pi
- Trin 2: Opsætning af din Enviro PHAT
- Trin 3: Indstilling af din IFTTT -konto/forbindelse
- Trin 4: Redigering af scriptet
- Trin 5: Brug af scriptet
- Trin 6: Færdig
Video: Hold din baby kølig denne sommer - Styring af stumme fans med smarte ting !: 6 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
For to uger siden, da jeg skrev dette, blev jeg far til en utrolig lille dreng!
Da årstiderne skiftede, dagene blev længere og temperaturerne blev varmere, tænkte jeg, at det ville være godt at have en slags skærm i vuggestuen for at kontrollere, hvor varmt det var at komme derop!
Jeg har ikke puslet med meget python gennem årene, men ville gerne komme tilbage til det siden mit første år på universitetet for næsten 5 år siden nu! På grund af dette tænkte jeg, at det ville være bedre at dokumentere, hvad jeg gjorde, for at hjælpe mig senere, også hjælpe alle andre, der ønsker at gøre det samme!
Ved hjælp af en Raspberry pi, Enviro pHAT og et smart TP-link kasa-stik kan du styre propperne ved hjælp af IFTTT-rammerne! det er virkelig enkelt at gøre, og du kan endda ændre denne gennemgang for at styre alt via forskellige sensorer og forskellige enheder! Håber du finder dette nyttigt. Hvis du kan lide dette instruerbart, så glem ikke at stemme på min indsendelse i sensorkonkurrencen!: D (undskyld for at spørge), det er første gang jeg gør dette og vil gerne have en mulig chance for at vinde noget for al den tid jeg har lagt i dette
** EDIT ** I løbet af de næste par dage vil jeg se på at skubbe disse data til et Grafana -bord, hvis du synes, at dette ville være godt, lad os vide det!: D
Lad os komme ind i det…
Forbrugsvarer
- Enhver Raspberry pi vil gøre, men jeg valgte Zero W, da det var det, jeg måtte aflevere i min lodtrækning, den har også den mindste formfaktor med WiFi aktiveret som standard! - Hindbær PI Zero m
- SD -kort, alle har forskellige præferencer på disse, men jeg brugte en af disse! - Micro-SD-kort
- Hvis du sidder fast, er her den officielle understøttede dokumentation for SD -kort -officielt understøttede SD -kort
- Jumperwires (forklarer senere) - Jumperwires
- Enviro pHAT til alle de herlige sensorer! - Envrio-pHAT
- Et smart stik, jeg er gået med TP-Link, da du ikke behøver nogen smarte hubs for at få det til at fungere ud af boksen! - Smart stik!
- En dum blæser til at styre, du kan bruge enhver blæser, jeg har lige fundet en blæser på amazon, men enhver ventilator til vægstik fungerer fint - Dum blæser
- Et loddejern, men hvis du ikke ønsker at bruge et loddejern, kan du få klik i overskrifter til din PI og pHAT-GPIO-hammer-header
For at en forbindelse mellem TP-links kasa og IFTTT fungerer, skal du have en TP-link kasa- og IFTTT-konto oprettet, før du kan starte denne instruerbare. Når du modtager dit TP-link-smartstik, vil instruktionerne, der følger med smartstikket, guide dig gennem opsætningsprocessen, herunder hvordan du navngiver dit stik og dets grundlæggende funktioner
Når du har alle dine indkøbslister, er det tid til at samle det hele!
Trin 1: Opsætning af din Raspberry Pi
Imaging dit micro-SD-kort Få det nyeste og bedste Raspbian-billede, lite versionen vil klare sig fint, hvis ikke bedre for nul w! -
Skriv dette billede til SD -kortet, du skal bruge en læser til dette og en billedkamera, jeg bruger etser -
Opsætning Wifi (valgfrit) Hvis din PI har en indbygget WIFI, hvorfor ikke konfigurere den nu for at spare en masse rod med konsoller senere!
Når din pi er blevet afbildet, er drevet skubbet ud. Afbryd og tilslut SD -kortet, så det bliver registreret af din maskine igen. En bootpartition skal vises.
Opret en tom fil kaldet wpa_supplicant.confin boot -partitionen på dit pi, inden her placeres nedenstående i denne nye fil:
netværk = {
ssid = "YOUR_SSID" psk = "YOUR_WIFI_PASSWORD" key_mgmt = WPA-PSK}
Aktivering af SSH på dit PI efter eget valg (valgfrit)
Som standard vil et rent Raspbian -billede have ssh deaktiveret. Du skulle starte systemet, tilslutte et tastatur og en skærm til Pi og derefter aktivere ssh. Dette trin aktiverer ssh ved første opstart. I bootpartitionen skal du oprette en ny fil kaldet ssh. En tom fil med præcis det navn.
Efter at have gennemført dem to valgfrie trin, vil din PI automatisk oprette forbindelse til dit WIFI og have SSH aktiveret som standard.
Når du har afbildet og konfigureret micro-SD-kortet, kan du derefter indsætte det i dit PI eller valg og tænde det!
Når du opdaterer din PIO Når du har startet din PI, kan du finde din IP -adresse på din PI inden for dine trådløse routers indstillinger. De fleste routere er forskellige, så det ville være svært at skrive en vejledning til dette desværre!
Når du har din IP på din PI, skal du oprette forbindelse via SSH og logge ind med følgende:
Brugernavn: pi
Adgangskode: hindbær
Når du har en aktiv SSH -session med din PI, vil du gerne opdatere den, bare køre nedenstående med den tilsvarende Y eller N under hele opdateringen:
sudo apt-get opdatering
sudo apt-get opgradering
det er altid godt at genstarte en PI, efter at der er installeret nye opdateringer for at sikre, at det er kørt forfra med de seneste opdateringer, dette kan opnås med
sudo genstart -n
Nu er PI klar, tid til at gå videre til næste trin!
Trin 2: Opsætning af din Enviro PHAT
Tilslutning af din Enviro pHAT
Når du har din pi helt opdateret, kan du slutte din Enviro pHAT til den valgte PI!
*** For at sikre, at du ikke beskadiger dit PI eller dit pHAT, skal du først slukke det ***
Her brugte jeg jumperkablerne, fordi du kan få termisk udvaskning fra CPU'en, der bliver varm under Enviro pHAT. Denne ekstra varme kan ændre de temperaturmålinger, du senere vil få. På grund af dette har jeg brugt 5 jumperledninger på nedenstående stifter:
- Pin 3 - GPIO2 (SDA I2C)
- Pin 5 - GPIO3 (SCL I2C)
- Pin 7 - GPIO4
- Pin 6 - Jord
- Pin 4 - 5V
Se venligst ledningsdiagrammet øverst i dette trin for visuel reference eller nedenstående link:
pinout.xyz/pinout/enviro_phat
(undskyld det dårlige malerarbejde)
Når du tilslutter din pHAT, skal du sørge for at have den indstillet den rigtige vej, ellers kan du muligvis beskadige den !!! For at gøre dette havde jeg min opsætning, så ANALOG IN -overskrifterne er mod SD -kortsporet, dette er senere blevet vendt om i mine billeder for at få det til at passe tæt ind i min "bærer".
Installation af afhængigheder
Tænd din PI igen og SSH igen
Når du er tilbage i din PI, skal du køre følgende for at installere nødvendige pakker og software til din Enviro pHAT:
krølle https://get.pimoroni.com/envirophat | bash
Sørg for at trykke på Y eller N, når det er nødvendigt.
Når installationen er fuldført, skal du sørge for at genstarte dit PI …
sudo genstart -n
Test af pHAT
For at sikre, at din pHAT er korrekt forbundet, kan du slippe ind i et python -modul og køre et par kommandoer ved at sætte tilbage til din PI og skrive python, en gang i et python -modul skal du skrive nedenstående:
fra envirophat import vejr
print (weather.temerpature ())
Dette skulle vise dig en aflæsning som nedenfor:
>> fra envirophat import vejr
>> print (vejr. temperatur ()) 24.0806166987
Fejlfinding
Hvis du får noget i retning af en fejl nedenfor:
Traceback (seneste opkald sidste): Fil "", linje 1, i File "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", linje 134, i temperatur self.update () File " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py ", linje 169, i opdatering 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] Fjern I/O fejl
Du kan derefter køre:
sudo i2cdetect -y 1
Dette vil udføre en diagnostisk kontrol af dine forbindelser/ledninger, og du vil være på udkig efter noget 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, skal du gå tilbage og kontrollere dine ledninger igen. Kontroller ledningsdiagrammet og prøv igen!
Installation af pi-baby-cooler.py-scriptet
Hvis alt er godt, og det lykkedes dig at få en temperaturaflæsning, kan vi gå videre og installere pakken baby-cooler.py!
På grund af hvordan instruktører håndterer links, har jeg vedhæftet.py -scriptet i ovenstående trinoverskrift … For at kopiere dette til din PI anbefaler jeg at bruge noget som WinSCP:
winscp.net/eng/download.php
WinSCP er en populær SFTP -klient og FTP -klient til Microsoft Windows! Kopier fil mellem en lokal computer og eksterne servere ved hjælp af FTP, FTPS, SCP, SFTP, WebDAV eller S3 filoverførselsprotokoller.
WinSCP er enkel at bruge, du skal blot oprette forbindelse til dit PI ved hjælp af din PI's IP -adresse, og derefter trække og slippe.py -filen til det sted, hvor du gerne vil køre den, for mig er dette fra /home /pi.
Nu.py -scriptet er på din PI, er det tid til at gå videre til opsætning af din IFTTT -konto / forbindelser
Trin 3: Indstilling af din IFTTT -konto/forbindelse
Dernæst vil vi se på at få et IFTTT -token, dette vil blive brugt, når du kalder hot / cold -funktionen i scriptet for at oprette forbindelse til kasa -stikket og tænde / slukke blæseren.
Oprettelse af Webhooks
Gå til https://ifttt.com/ og opret en konto, hvis du ikke allerede har en.
Når du har logget ind, søges i søgelinjen: TP-link kasa
Når det er indlæst, skal du klikke på services og derefter TP-link kasa. Du skal derefter forbinde din kasa -konto til din IFTTT -konto, logge ind på din kasa -konto via IFTTT for at oprette forbindelse.
Når du har linket din konto, skal du klikke på "Mine appletter" og derefter på den nye applet, derefter klikke på "+dette" og søge i webhooks.
Klik på "Modtag en webanmodning" inden for hændelsesnavnetypen hot (dette kan være alt hvad du ønsker, men du skal opdatere dette senere i pi-baby-coller.py-scriptet, ellers fungerer det ikke, jeg har brugt hot til at slå blæseren tændt og kold for at slukke blæseren. Klik derefter på Opret trigger.
Dernæst skal vi linke din nye trigger til din Kasa-konto, klik på "+that" og søg i kasa, klik på TP-link kasa, klik derefter på "tænd", vælg derefter den enhed, du vil tænde, klik derefter på create handling. Gennemgå handlingen, og klik på Afslut, hvis den er korrekt.
**********
Husk, at hvis du har valgt et andet begivenhedsnavn end "varmt" og "koldt", skal du notere disse til senere og opdatere scriptet! Ellers fungerer.py -scriptet ikke
**********
Når vi har oprettet vores første webkrog, skal du gentage processen for "kold", men denne gang vælger du sluk i stedet for at tænde, når du vælger +den handling.
Når vi har to hændelser -webhooks i din my applets -kontosektion, skal du klikke på tjenester og søge i webhooks, og derefter klikke på det. Herinde vil du se en dokumentationsknap (øverst til højre), klik på den. Det er her, du finder din IFTTT -tokenøgle. mens jeg herinde noterer din nøgle (du får brug for det senere), har jeg redigeret mit inden for billedet, ellers ville enhver kunne tænde eller slukke mine smarte stik.
Test af webhooks
Nu har vi oprettet to webhooks, der er forbundet til vores kasa -konto, vi kan teste, om de virker eller ej!
I din PI kan du indtaste følgende:
curl -X POST
Hvor der står "hot", skal du tilføje dit begivenhedsnavn, hvis du forlod det som "hot", lad dette være. Hvor det siger /dig … skal du erstatte dette med din IFTTT -tokenøgle. Tryk på enter, og du skal derefter høre klikket på dine smarte stikrelæer, der tænder stikket. Hvis du ikke kunne høre det, kan du kontrollere Kasa -appen for at kontrollere status for dine stik.
Nu har vi afhængighederne for vores Enviro pHAT installeret og har nu IFTTT -opsætning, tid til at afslutte med at ændre koden.
Trin 4: Redigering af scriptet
Begivenhedsnavn og IFTTT TOKENS Tilbage på din pi, eskalerer til placeringen af dit pi-baby-cooler.py script, for mig er det in /home /pi (min hjemmemappe) og rediger filen ved hjælp af nano:
nano pi-baby-cooler.py
Inden finder hvor der står def turn_off ()
def turn_off ():
# Indstil dit triggerord - f.eks. "kold" - og IFTTT Webhook -tokenet herunder. TRIGGER_WORD = "cold" TOKEN = "DIT IFTTT TOKEN GÅR HER" requests.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Ventilator slukket!"):
Dette er funktionen til at slukke blæseren. Det gør dette ved at sende et webhook til IFTTT, som får tplink HS100 til at slukke. Hvis du har beholdt udløseren i din IFTTT -konto på samme måde som "kold", kan du lade det stå tilbage og bare erstatte det token, du fik fra webhooks -dokumentationen tidligere. Hvis du valgte et andet hændelsesnavn, skal du erstatte dette ord her.
Efter at have indsat i dit IFTTT -token, skal du gå til det næste afsnit, hvor der står def turn_on ()
def turn_on ():# Indstil dit triggerord - f.eks. "hot" - og IFTTT Webhook -tokenet herunder. TRIGGER_WORD = "hot" TOKEN = "DIT IFTTT TOKEN GÅR HER" requests.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan på!")
Denne funktion er bagsiden af slukket, den tænder TP-link smart-stikket!
Hvis du har beholdt udløseren i din IFTTT -konto på samme måde som "hot", kan du lade det stå og bare erstatte det token, du fik fra webhooks -dokumentationen tidligere. Hvis du valgte et andet hændelsesnavn, skal du erstatte dette ord her.
Alt andet er allerede kodet ind, så du skulle ikke skulle foretage nogen ændringer til koden andre TRIGGER_WORD, TOKEN og et par justeringer i temperaturer, der er næste!
Ændring af temperaturerne
Find derefter op, hvor der står # Lokale variabler.
prøv: # Lokale variabler. tilstand = 0 # Indstiller tilstanden for kontakten lav = 20 # Lav værdi for temperaturniveau (celcius). høj = 24 # Høj værdi for temperaturniveau (celcius). periode = 120 # Forsinkelse, i sekunder, mellem opkald.
Tilstandsvariablen er, hvordan pi ved, om stikket er tændt eller ej, dette opdateres senere, hvis det bliver for varmt (24+*c, derefter ændres tilstanden senere til 1), dette ville også starte til webhook og tænde det smarte stik!
Den lave variabel er, hvor sejt jeg vil have rummet til at blive, før stikket slukkes. Hvis du vil have rummet varmere, skal du blot ændre dette til en højere værdi. Hvis du vil have det køligere, skal du sænke værdien.
Den høje variabel er den maksimale temperatur, jeg vil have, at rummet får, før jeg vil have blæseren til at sparke ind og begynde at køle rummet ned. Hvis du vil have blæseren til at tænde før dette, skal du blot sænke værdien, eller hvis du vil have, at den skal være varmere, så højere værdien.
Periodevariablen er varigheden i sekunder mellem temperaturkontrollerne. Hvis du vil have pi -scriptet til at kontrollere sjældnere, så er tallet højere, hvis du vil forkorte tiden, sænk tallet.
Når du har foretaget dine ændringer, gem og afslut nano
CTRL + x
Trin 5: Brug af scriptet
Kører scriptet lokalt
Der er et par måder, du kan køre dette script på. Du kan oprette forbindelse via SSH og skrive følgende:
sudo python /pi-baby-cooler.py
Dette vil køre scriptet efter behov, dette vil kun fungere, så længe der er en aktiv SSH -session til PI. Den anden måde er at bruge skærmen, skærmen er ikke installeret som standard tror jeg ikke, så en sudo apt installeringsskærm skal bruges.
Her er en god tutorial om, hvordan du bruger skærmen korrekt:
Skærm eller GNU -skærm er en terminal multiplexer. Med andre ord betyder det, at du kan starte en skærmsession og derefter åbne et vilkårligt antal vinduer (virtuelle terminaler) inde i denne session. Processer, der kører på skærmen, fortsætter med at køre, når deres vindue ikke er synligt, selvom du bliver afbrudt.
Automatiserer til at køre på boot
Den anden måde er at redigere boot -filen i /etc/rc.local for at gøre denne brug nano.
sudo nano /etc/rc.local
Redigering af denne fil får scriptet til at køre ved opstart. hvilket betyder, at det altid vil køre, når PI'en er på, det er også sådan, jeg kører 90% af mine scripts på andre PI'er.
Hvis du har brugt rc.local, kan du køre kommandoen herunder for at se, hvad der i øjeblikket kører på PI'en. Dette er praktisk til fejlfinding senere for at se, om scriptet overhovedet fungerer eller ej:
ps -aef | grep python
Trin 6: Færdig
Nå … Tak, hvis du stadig er her og nåede dette punkt!
Beklager, det har været ret længe, dette var min første nogensinde instruerbare og var ikke helt sikker på, hvad jeg skulle skrive ned.
Som jeg nævnte i starten, har disse instruktører mange forskellige applikationer, der bruger varme til at udløse et smart stik! du kunne køle ethvert værelse i huset/lejligheden/lejligheden/garagen/skuret. Du kan endda ændre IFTTT for at udløse enhver smart enhed, der kan kontrolleres via IFTTT, det behøver ikke bare at være TP-link kasa-enheder.
Jeg ville elske at høre, om du har prøvet disse instruktører, eller selv hvis du fandt det interessant, efterlad mig en kommentar herunder!
Hvis du har spørgsmål, skal du sørge for at forlade dem herunder, og jeg vil prøve mit bedste at besvare dem!
Nummer to i sensorkonkurrencen
Anbefalede:
Få blind til at genkende ting ved at røre ved ting omkring dem ved hjælp af MakeyMakey: 3 trin
Få blind til at genkende ting ved at røre ved tingene omkring dem ved hjælp af MakeyMakey: introduktion Dette projekt har til formål at gøre blindes liv let ved at identificere ting omkring dem gennem følesansen. Mig og min søn Mustafa tænkte vi på at finde et værktøj til at hjælpe dem og i den periode, hvor vi bruger MakeyMakey -hardware til
Bliv cool denne sommer: PC Fan Mod: 4 trin (med billeder)
Bliv kølig i sommer: PC Fan Mod: Hvem har ikke et dusin af disse PC Fans liggende? I denne build vil jeg vise dig, hvordan du bruger disse fans til at producere en dejlig justerbar brise i varme sommerdage. Og det kører mindst 4 timer med et almindeligt 9V batteri
Fest sikker denne sommer med en Arduino blodalkoholreaktiv LED-kop: 10 trin
Fest sikkert denne sommer med en Arduino blodalkoholreaktiv LED-kop: Projektniveau Vanskelighed: Mellemliggende Behov:- Læsning og replikering af et diagram- Lodning, hvis du ikke vælger at købe forlodede dele Projektindledning I USA og i hele verden har alkohol udgjorde alvorlige sundhedstrusler, da
Begynder: Lær IOT med en kølig fiskeføder: 9 trin (med billeder)
Begynder: Lær IOT med en kølig fiskeføder: Dette projekt handler mere om en guide til at starte med en lille lavbudget IOT -enhed og hvad du kan gøre med det. Hvad er IOT? Fik fra Google: IoT er en forkortelse for Internet of Things. Internet of Things refererer til det stadigt voksende netværk af
Ultra bærbar USB -oplader med kølig kabinet: 3 trin (med billeder)
Ultra bærbar USB -oplader med kølig kabinet: Jeg er lige begyndt at geocache for nylig og har brugt min garmin bilgps. Det fungerer ganske godt, bortset fra at en lang dag (eller nat) kan dræbe batteriet. Jeg blev inspireret af denne instruerbare: DIY mere effektiv langvarig USB eller ENHVER oplader nu