Innehållsförteckning:
- Tillbehör
- Steg 1: Konfigurera din Raspberry Pi
- Steg 2: Konfigurera din Enviro PHAT
- Steg 3: Ställa in ditt IFTTT -konto/anslutning
- Steg 4: Redigera manus
- Steg 5: Använda skriptet
- Steg 6: Avslutad
Video: Håll din baby sval i sommar - Kontrollera stumma fans med smarta saker !: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
För två veckor sedan när jag skrev detta blev jag pappa till en otrolig pojke!
Med årstiderna som förändras, dagarna blir längre och temperaturerna blir varmare, tänkte jag att det skulle vara bra att ha någon form av bildskärm i barnkammaren för att kontrollera hur varmt det blev där uppe!
Jag har inte pysslat med mycket pyton genom åren men ville komma tillbaka till det sedan mitt första år på universitetet för nästan 5 år sedan nu! På grund av detta trodde jag att det skulle vara bättre att dokumentera vad jag gjorde, för att hjälpa mig senare, också hjälpa alla andra som vill göra samma sak!
Med en Raspberry pi, Enviro pHAT och en smart TP-link kasa-kontakt kan du styra pluggarna med IFTTT-ramverket! det är verkligen enkelt att göra och du kan till och med ändra denna genomgång för att styra allt genom olika sensorer och olika enheter! Hoppas du tycker att det här är användbart. Om du gillar det här instruerbart, glöm inte att rösta på mitt bidrag i sensortävlingen!: D (förlåt för att jag frågade), det är första gången jag gör detta och skulle vilja ha en möjlig chans att vinna något för hela tiden jag lägger ner på detta
** EDIT ** Under de närmaste dagarna ska jag titta på att skicka dessa data till en Grafana -tavla, om du tycker att det här skulle vara bra, meddela det!: D
Låt oss gå in i det …
Tillbehör
- Alla Raspberry pi kommer att göra men jag valde Zero W eftersom det var vad jag var tvungen att lämna i min dragning, det har också den minsta formfaktorn också med WiFi aktiverat som standard! - Hallon PI Zero w
- SD -kort, alla har olika preferenser på dessa, men jag använde en av dessa! - Micro-SD-kort
- Om du har fastnat, här är den officiella dokumentationen som stöds för SD -kort -officiella SD -kort som stöds
- Bygeltrådar (kommer att förklara senare) - Bygeltrådar
- Enviro pHAT för alla härliga sensorer! - Envrio-pHAT
- En smart plug, jag har gått med TP-Link eftersom du inte behöver några snygga nav för att få det att fungera ur lådan! - Smart Plug!
- En dum fläkt att styra, du kan använda vilken fläkt som helst, jag hittade precis en fläkt på Amazon, men alla vägguttag kommer att fungera bra - Dum fläkt
- Ett lödkolv, men om du inte vill använda ett lödkolv kan du få inklickningsrubriker för din PI och pHAT-GPIO-hammer-header
För att en anslutning mellan TP-länkar kasa och IFTTT ska fungera måste du ha ett TP-link kasa och IFTTT-konto innan du startar denna instruerbara. När du får din TP-link smart plug kommer instruktionerna som medföljer smart pluggen att guida dig genom installationsprocessen inklusive hur du heter din plugg och dess grundläggande funktioner
När du har all din inköpslista är det dags att sätta ihop allt!
Steg 1: Konfigurera din Raspberry Pi
Imaging ditt micro-SD-kort Få den senaste och bästa Raspbian-bilden, lite-versionen kommer att fungera bra, om inte bättre för noll w! -
Skriv den här bilden till SD -kortet, du behöver en läsare för detta och en bildkamera, jag använder etsare -
Konfigurera Wifi (tillval) Om din PI har en inbyggd WIFI, varför inte ställa in den nu för att spara mycket krångel med konsoler senare!
När din pi har avbildats har enheten matats ut. Koppla bort och anslut SD -kortet så att det upptäcks av din maskin igen. En startpartition ska visas.
Skapa en tom fil som heter wpa_supplicant.confwith in boot partition of your pi, in here place the below in this new file:
nätverk = {
ssid = "YOUR_SSID" psk = "YOUR_WIFI_PASSWORD" key_mgmt = WPA-PSK}
Aktivera SSH på ditt valda PI (tillval)
Som standard har en ren Raspbian -bild ssh inaktiverad. Du måste starta systemet, ansluta ett tangentbord och en bildskärm till Pi och sedan aktivera ssh. Detta steg möjliggör ssh vid första uppstarten. I startpartitionen skapar du en ny fil som heter ssh. En tom fil med exakt det namnet.
Efter att ha genomfört dem två valfria steg, kommer din PI automatiskt att ansluta till din WIFI och ha SSH aktiverat som standard.
När du har avbildat och konfigurerat micro-SD-kortet kan du sedan sätta in det i din PI eller val och slå på det!
När du uppdaterar din PIONär du har startat din PI kan du hitta din IP -adress för din PI inom dina trådlösa routers inställningar. De flesta routrar är olika så det skulle vara svårt att skriva en guide för detta tyvärr!
När du har din IP för din PI, anslut via SSH och logga in med följande:
Användarnamn: pi
Lösenord: hallon
När du har en aktiv SSH -session med din PI vill du uppdatera den, helt enkelt köra nedanstående med motsvarande Y eller N under hela uppdateringen:
sudo apt-get uppdatering
sudo apt-get uppgradering
det är alltid bra att starta om en PI efter att några nya uppdateringar har installerats för att se till att det har körts på nytt med de senaste uppdateringarna, detta kan uppnås med
sudo reboot -n
Nu är det PI redo, dags att gå vidare till nästa steg!
Steg 2: Konfigurera din Enviro PHAT
Anslut din Enviro pHAT
När du har din pi helt uppdaterad kan du ansluta din Enviro pHAT till den valda PI!
*** För att du inte ska skada din PI eller din pHAT, se till att du stänger av den först ***
Här använde jag bygelkablarna eftersom du kan få termisk utspolning från att CPU: n blir varm under Enviro pHAT. Denna extra värme kan ändra temperaturavläsningarna som du skulle få senare. På grund av detta har jag använt fem bygelkablar på stiften nedan:
- Stift 3 - GPIO2 (SDA I2C)
- Stift 5 - GPIO3 (SCL I2C)
- Stift 7 - GPIO4
- Stift 6 - Jord
- Stift 4 - 5V
Kontrollera kopplingsschemat högst upp i detta steg för visuell referens eller länken nedan:
pinout.xyz/pinout/enviro_phat
(förlåt för det jobbiga målajobbet)
När du kopplar upp din pHAT, se till att du har den rätt inställd, annars kan du eventuellt skada den !!! För att göra detta hade jag min inställning så ANALOG IN -rubrikerna är mot SD -kortplatsen, detta har senare vändts om i mina bilder för att få det att passa in i min "bärare".
Installera beroenden
Sätt tillbaka din PI och SSH igen
När du är tillbaka i din PI kör du följande för att installera nödvändiga paket och programvara för din Enviro pHAT:
curl https://get.pimoroni.com/envirophat | våldsamt slag
Se till att slå Y eller N när det behövs.
När installationen är klar, se till att starta om din PI …
sudo reboot -n
Testar pHAT
För att säkerställa att din pHAT är ansluten rätt kan du släppa in i en python -modul och köra några kommandon genom att sätta tillbaka till din PI och skriva python, en gång i en python -modul skriver du nedan:
från envirophat import väder
print (weather.temerpature ())
Detta borde visa dig en avläsning som nedan:
>> från envirophat import väder
>> skriva ut (väder. temperatur ()) 24.0806166987
Felsökning
Om du får något i stil med ett fel nedan:
Traceback (senaste samtal senast): Fil "", rad 1, i fil "/usr/lib/python2.7/dist-packages/envirophat/bmp280.py", rad 134, i temperatur self.update () File " /usr/lib/python2.7/dist-packages/envirophat/bmp280.py ", rad 169, i uppdatering om self._read_byte (REGISTER_CHIPID) == 0x58: # check sensor id 0x58 = BMP280 File"/usr/lib/ python2.7/dist-packages/envirophat/bmp280.py ", rad 116, i _read_byte return self.i2c_bus.read_byte_data (self.addr, register) IOError: [Errno 121] Remote I/O-fel
Du kan sedan köra:
sudo i2cdetect -y 1
Detta kommer att köra en diagnostisk kontroll av dina anslutningar/ledningar och du skulle leta efter något som nedan:
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
Om inte, måste du gå tillbaka och kontrollera dina ledningar igen. Kontrollera kopplingsschemat och försök igen!
Installera skriptet pi-baby-cooler.py
Om allt är bra och du lyckades få en temperaturavläsning kan vi fortsätta och installera paketet baby-cooler.py!
På grund av hur instruktioner hanterar länkar har jag bifogat.py -skriptet i ovanstående steghuvud … För att kopiera detta till din PI rekommenderar jag att du använder något som WinSCP:
winscp.net/eng/download.php
WinSCP är en populär SFTP -klient och FTP -klient för Microsoft Windows! Kopiera fil mellan en lokal dator och fjärrservrar med hjälp av FTP, FTPS, SCP, SFTP, WebDAV eller S3 filöverföringsprotokoll.
WinSCP är enkel att använda, helt enkelt ansluta till din PI med hjälp av din PI: s IP -adress och dra och släpp.py -filen där du vill köra den från för mig, den här är från /home /pi.
Nu är.py -skriptet på din PI, det är dags att gå vidare till att konfigurera ditt IFTTT -konto / anslutningar
Steg 3: Ställa in ditt IFTTT -konto/anslutning
Därefter tittar vi på att skaffa en IFTTT -token, den kommer att användas när man kallar funktionen varm / kall i skriptet för att ansluta till kasa -kontakten och slå på / av fläkten.
Skapa Webhooks
Gå till https://ifttt.com/ och skapa ett konto om du inte redan har ett.
När du har loggat in, sök i sökfältet: TP-link kasa
När det har laddats, klicka på tjänster och sedan TP-länk kasa. Du måste då ansluta ditt kasa -konto till ditt IFTTT -konto, logga in på ditt kasa -konto via IFTTT för att upprätta en anslutning.
När du har länkat ditt konto klickar du på "Mina appleter" och sedan på ny applet, klickar sedan på "+detta" och söker i webhooks.
Klicka på "Ta emot en webbförfrågan", inom händelsens namn typ hot (detta kan vara vad du vill, men du måste uppdatera detta senare i pi-baby-coller.py-skriptet annars fungerar det inte, jag har använt hot för att vända fläkten på och kall för att stänga av fläkten. Klicka sedan på skapa trigger.
Därefter måste vi länka din nya utlösare till ditt Kasa-konto, klicka på "+det" och söka kasa, klicka på TP-länk kasa och klicka sedan på "slå på", välj sedan den enhet du vill slå på, klicka sedan på skapa handling. Granska åtgärden och klicka på Slutför om det är korrekt.
**********
Kom ihåg att om du har valt ett annat evenemangsnamn än "varmt" och "kallt" måste du anteckna dessa för senare och uppdatera manuset! Annars fungerar inte.py -skriptet
**********
Efter att vi har skapat vår första webbkrok, upprepa processen för "kall", men den här gången väljer du stäng av istället för att slå på när du väljer +den åtgärden.
När vi har två händelsewebhooks i ditt my applets -kontosektion, klicka på tjänster och sök på webhooks och klicka sedan på det. Här kommer du att se en dokumentationsknapp (högst upp till höger), klicka på den. Det är här du hittar din IFTTT -tokenyckel. medan du är här antecknar din nyckel (du kommer att behöva den senare), jag har redigerat min i bilden annars skulle någon kunna slå på eller stänga av mina smarta kontakter.
Testar webhooks
Nu har vi skapat två webhooks som är anslutna till vårt kasa -konto, vi kan testa om de fungerar eller inte!
I din PI kan du ange följande:
curl -X POST
Där det står "hett" måste du lägga till ditt evenemangsnamn, om du lämnade det som "hett" lämna det här. Där det står /du … måste du ersätta detta med din IFTTT -tokenyckel. Tryck på enter och du bör då höra klicket från dina smarta pluggar -relä som sätter på kontakten. Om du inte kunde höra det kan du kontrollera Kasa -appen för att kontrollera statusen för dina kontakter.
Nu har vi beroenden för vårt Enviro pHAT installerat och har nu IFTTT -installation, dags att avsluta med att ändra koden.
Steg 4: Redigera manus
Händelsens namn och IFTTT TOKENS Tillbaka på din pi, eskalera till platsen för ditt pi-baby-cooler.py-skript, för mig är det in /home /pi (min hemmapp) och redigera filen med nano:
nano pi-baby-cooler.py
Inom finder där det står def turn_off ()
def turn_off ():
# Ställ in ditt triggerord - t.ex. "kallt" - och IFTTT Webhook -token nedan. TRIGGER_WORD = "cold" TOKEN = "DITT IFTTT TOKEN GÅR HÄR" requests.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan off!"):
Detta är funktionen för att stänga av fläkten. Det gör detta genom att skicka en webhook till IFTTT som får tplink HS100 att stängas av. Om du har behållit utlösningsarbetet i ditt IFTTT -konto på samma sätt som "kallt" kan du lämna det kvar och bara byta ut token som du fick från webhooks -dokumentationen tidigare. Om du valde ett annat evenemangsnamn, byt ut det här ordet här.
Efter att ha klistrat in din IFTTT -token, gå till nästa avsnitt där det står def turn_on ()
def turn_on ():# Ställ in ditt triggerord - t.ex. "hot" - och IFTTT Webhook -token nedan. TRIGGER_WORD = "hot" TOKEN = "DITT IFTTT TOKEN GÅR HÄR" requests.post ("https://maker.ifttt.com/trigger/{trigger_word}/with/key/{token}".format (trigger_word = TRIGGER_WORD, token = TOKEN)) print ("Fan on!")
Denna funktion är baksidan av avstängd, den slår på TP-link smart plug!
Om du har behållit utlösningsarbetet inom ditt IFTTT -konto på samma sätt som "hett" kan du lämna det kvar och bara ersätta den token som du fick från webhooks -dokumentationen tidigare. Om du valde ett annat evenemangsnamn, byt ut det här ordet här.
Allt annat är redan kodat in, så du borde inte behöva göra några ändringar i koden, andra TRIGGER_WORD, TOKEN och några justeringar i temperaturer som är nästa!
Ändra temperaturer
Hitta sedan upp där det står # Lokala variabler.
prova: # Lokala variabler. tillstånd = 0 # Ställer in läget för omkopplaren lågt = 20 # Lågt värde för temperaturnivå (celcius). hög = 24 # Högt värde för temperaturnivå (celcius). period = 120 # Fördröjning, i sekunder, mellan samtalen.
Tillståndsvariabeln är hur pi vet om kontakten är på eller inte, detta uppdateras senare om det blir för varmt (24+*c då tillståndet ändras senare till 1), detta skulle också avfyra till webhooken och slå den smarta kontakten!
Den låga variabeln är hur coolt jag vill att rummet ska bli innan kontakten stängs av. Om du vill att rummet ska bli varmare ändrar du helt enkelt detta till ett högre värde. Om du vill ha det svalare, sänk värdet.
Den höga variabeln är den högsta temperatur jag vill att rummet ska få innan jag vill att fläkten ska sparka in och börja kyla rummet. Om du vill att fläkten tänds före detta, sänka helt enkelt värdet, eller om du vill att det ska vara varmare, högre värde.
Periodvariabeln är varaktigheten i sekunder mellan temperaturkontrollerna, om du vill att pi -skriptet ska kontrolleras sällan är det högre om du vill förkorta tiden, sänka antalet.
När du har gjort dina ändringar spara och avsluta nano
CTRL + x
Steg 5: Använda skriptet
Kör manuset lokalt
Det finns några sätt att köra detta skript, du kan ansluta via SSH och skriva följande:
sudo python /pi-baby-cooler.py
Detta kommer att köra skriptet på begäran, detta kommer bara att fungera så länge det finns en aktiv SSH -session till PI. Det andra sättet är att använda skärmen, skärmen är inte installerad som standard tror jag inte, så en sudo apt -installationsskärm måste användas.
Här är en bra handledning om hur du använder skärmen på rätt sätt:
Screen eller GNU Screen är en terminalmultiplexer. Med andra ord betyder det att du kan starta en skärmsession och sedan öppna valfritt antal fönster (virtuella terminaler) inuti den sessionen. Processer som körs på skärmen fortsätter att köras när deras fönster inte syns även om du kopplas bort.
Automatiseras för att köra på start
Det andra sättet är att redigera startfilen i /etc/rc.local för att göra den här användningen nano.
sudo nano /etc/rc.local
Om du redigerar den här filen körs skriptet vid start. vilket betyder att det alltid kommer att köras när PI: n är på, så är det också hur jag kör 90% av mina skript på andra PI: er.
Om du har använt rc.local kan du köra kommandot nedan för att se vad som för närvarande körs på PI: n. Detta är praktiskt att felsöka senare för att se om skriptet fungerar alls eller inte:
ps -aef | grep python
Steg 6: Avslutad
Tja … Tack om du fortfarande är här och nått denna punkt!
Tyvärr har det varit ganska länge, det här var min första instruerbara någonsin och var inte riktigt säker på vad jag skulle skriva ner.
Som jag nämnde i början har den här instruktionsboken många olika applikationer som använder värme för att utlösa en smart kontakt! du kan kyla alla rum i huset/lägenheten/lägenheten/garaget/skjulet. Du kan till och med ändra IFTTT för att utlösa alla smarta enheter som kan styras via IFTTT, det behöver inte bara vara TP-link kasa-enheter.
Jag skulle älska att höra om du har provat dessa instruktioner eller om du tyckte det var intressant, lämna mig en kommentar nedan!
Om du har några frågor, var noga med att lämna dem nedan och jag ska försöka mitt bästa för att svara på dem!
Tvåa i sensortävlingen
Rekommenderad:
Njut av din svala sommar med en M5StickC ESP32 -fläkt - Justerbar hastighet: 8 steg
Njut av din svala sommar med en M5StickC ESP32 -fläkt - Justerbar hastighet: I det här projektet kommer vi att lära oss att styra en fläkthastighet med ett M5StickC ESP32 -kort och L9110 fläktmodul
Hur gör man smarta rullgardiner med SONOFF smarta switchar ?: 14 steg
Hur gör man smarta rullgardiner med SONOFF smarta växlar?: Använd interlock -läge i SONOFF smarta omkopplare för att göra dina vanliga rullgardiner/persienner till smarta Oavsett om de flesta av er är överens om att det här är ett jobb att du drar rullgardinerna/persiennerna på morgonen och dra ner det på kvällen? Jag är i alla fall
Få blinda att känna igen saker genom att röra saker runt dem med MakeyMakey: 3 steg
Gör blinda igenkänna saker genom att röra saker runt dem genom att använda MakeyMakey: introduktion Detta projekt syftar till att göra blindas liv enkelt genom att identifiera saker runt dem genom beröringssinne. Jag och min son Mustafa funderade på att hitta ett verktyg för att hjälpa dem och under den period som vi använder MakeyMakeys hårdvara
Håll dig cool i sommar: PC Fan Mod: 4 steg (med bilder)
Håll dig cool i sommar: PC Fan Mod: Vem har inte ett dussin av de där PC -fläktarna? I detta bygge kommer jag att visa dig hur du använder dessa fläktar för att producera en fin justerbar bris under varma sommardagar. Och det går minst 4 timmar med ett vanligt 9V -batteri
Gör din egen smarta spegel för under $ 80 - Använda Raspberry Pi: 6 steg (med bilder)
Gör din egen smarta spegel för under $ 80 - Använda Raspberry Pi: I det här projektet kommer vi att bygga en smart spegel som visar dig användbar information medan du förbereder dig på morgonen. Det hela borde kosta under $ 80 vilket gör det anständigt överkomligt för de flesta människor. Denna guide lär dig bara