Innehållsförteckning:

1984 WeatherMan Pi: 7 steg (med bilder)
1984 WeatherMan Pi: 7 steg (med bilder)

Video: 1984 WeatherMan Pi: 7 steg (med bilder)

Video: 1984 WeatherMan Pi: 7 steg (med bilder)
Video: The Giant Wave - The Perfect Storm (3/5) Movie CLIP (2000) HD 2024, November
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Denna bärbara kassettspelare är nu en omgivande IoT -väderdisplay med tidig 80 -talsstil, som visar en "nuvarande förhållanden" -animation, rullningstemperatur och regnsannolikhetsgraf genom bandfönstret. När väderförhållandena ändras, servrar de servostyrda hörlurarna på toppen upp och tillbaka som en subtil varning.

När vi öppnar den funktionella banddörren kan vi se att de dammiga originalkomponenterna har ersatts med en Raspberry Pi Zero W, en Pimoroni Unicorn Hat HD (LED Matrix) och en liten servo. Väderdata kommer från ett Python-skript som frågar efter det ultra-exakta Dark Sky Weather API, skräddarsytt efter min specifika plats.

Det är en enkel men härlig och funktionell IoT-byggnad som sitter på den motsatta skrivbordshögtalaren till min YouTube-räknare och tyst håller mig uppdaterad om vädret.

Tillbehör

Hallon Pi Zero

Pimoroni Unicorn HAT HD

Liten servo

1984 Hitachi SP-1 personlig stereo och hörlurar

USB WiFi -adapter

2 mm gängstång

Sugru (svart och grå)

GeoMag magnet

Steg 1: Rivning av tejp

Rivning av tejp
Rivning av tejp
Rivning av tejp
Rivning av tejp
Rivning av tejp
Rivning av tejp

Jag fick den här underbara gamla kassettspelaren av min svärmor redan i september och blev genast kär i sitt ikoniska utseende och tjocka knappar. Den verkliga dragningen var dock det stora tejpfönstret - efter att ha ägt det i cirka 15 sekunder hade jag en linjal ute och blev förvånad över att upptäcka att den är i mm, samma storlek som en vanlig Raspberry Pi HAT (Hardware Attached On Top).

Bara denna upptäckt var tillräckligt för att stöta mitt gökprojekt längre ner på "att göra" -listan och jag började arbeta direkt genom att demontera spelaren.

Nedrivningen gick ganska bra och jag slutade med tre distinkta bitar att arbeta med - jag lyckades bryta ett par av plastdelarna, men inget som inte kunde limmas ihop igen.

Steg 2: Dark Sky Pi

Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi

Jag har använt Dark Sky på min telefon ett tag och har verkligen blivit imponerad av prognosernas noggrannhet, så jag var glad att se att de erbjuder ett omfattande API som jag kan använda i det här projektet. Det är trevligt och enkelt att ställa in upp också!

Gå först till https://darksky.net/dev och registrera dig för ett gratis konto - ett "test" -konto låter dig göra 1000 API -begäranden om dagen, vilket är tillräckligt för en uppdatering var 1,5: e minut - tillräckligt ofta för även min Brittisk nivå av väderbesatthet.

När du har registrerat dig får du en "hemlig nyckel" - det här är vad du behöver för att komma åt data och den används i Python -skriptet, så behåll den (och, du vet, hemlig).

Jag började med att anpassa ett skript som jag använde i YouTube Subscriber Counter -build, som använder modulen Requests i Python för att hämta API -data. Skriptet jag använde finns på GitHub, du behöver bara lägga till din Dark Sky API -nyckel och naturligtvis ersätta dina egna Latitude & Longitude -värden.

Det var ganska enkelt att dra ner data om de aktuella väderförhållandena, och jag bestämde mig för att använda elementen "Ikon", "Nederbördssannolikhet" och "Temperatur".

Steg 3: Koden

Koden
Koden

Om du vill återanvända eller hoppa av koden jag använde finns den i WeatherMan -förvaret på GitHub - klona eller ladda ner "väder" -mappen till "pi" -mappen på din Raspberry Pi.

De viktigaste skriptfunktionerna är följande:

weatherman.py

Detta är huvudskriptet som extraherar väderdata från Dark Sky. Du måste skapa ett Dark Sky -konto på https://darksky.net/dev och placera din hemliga nyckel i skriptet där det anges. Du måste också ange latitud och longitud för den väderplats du är intresserad av - det finns på Google Maps, bara högerklicka och välj "Vad är här?" och du får en popup som visar platsens lat/längd.

Efter att ha hämtat API -data skickar weatherman.py parametrar till flera mindre skript för att starta animeringarna och hörlurar.

Skriptet är inställt för att köras vid start genom att redigera startfilen …

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

… och lägger till:

@python3 /home/pi/weather/weatherman.py &

i slutet av filen.

ikon. py

Detta skript tar en "aktuella förhållanden" -parameter från scriptet weatherman.py och använder den för att visa en 16x16 väderanimation - dessa lagras alla i "ikoner" -mappen och ingår i standard Unicorn HAT HD -dokumentation. Du kan enkelt redigera-p.webp

telefoner.py

Om väderförhållandena har ändrats från den senaste API -begäran (eller om det är en ny start och det inte snöar), kallas detta skript från weatherman.py och instruerar servon att "jiggla" fram och tillbaka för att varna dig om att förhållandena har ändrats.

precip.py

Det här skriptet accepterar en "nederbördssannolikhet" -parameter från weatherman.py och visar linjer i blått på Unicorn -hatten som rör % probabilty. Om 100% lyser alla 16 raderna blå, om 50% bara 8 rader etc.

temp.py

Ett annat standard Pimoroni -skript, det här tar en "temp" -parameter från weatherman.py och visar det med rullande text. Den är inställd på att använda Herkules -typsnittet (i mappen "typsnitt") men kan använda ett standardteckensnitt om du föredrar det. Du kan till och med förbättra det så att den visade texten ändrar färg beroende på temperaturvärdet!

Steg 4: Unicorn HAT & Servo

Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo
Unicorn HAT & Servo

Att få tag på väderdata var bra, men nu behövde jag visa den på Unicorn HAT. Jag tittade på olika uppsättningar av väderikoner på internet och var halvvägs med att anpassa dessa när jag insåg att det fanns ett väderexempel med Pimoroni -dokumentationen - och detta inkluderade väderanimationer!

Detta sparade en hel del arbete, och jag var igång på nolltid, med en animerad ikon för de aktuella förhållandena, lite rullande text för temperaturen och en graf för % nederbörd (vilket involverade lite lätt matematik). Jag höll skripten åtskilda och använde Pythons delprocessmodul för att skicka parametrar fram och tillbaka.

Att lägga till i servon var det perfekta fordonet för dessa varningar, eftersom det skulle göra lite ljud och vara iögonfallande utan att vara för irriterande. Eftersom hatten redan tog upp många av Pi -stiften lödde jag servokablarna på undersidan av brädet, med hjälp av stift 17 för att styra servos rörelse med hjälp av pulsbreddsmodulering.

Att driva servon från Pi var inte idealisk, men den skulle bara någonsin användas för en tillfällig jiggle så precision var ingen stor sak här. Den kopplades upp som visas i diagrammet, med brun kabel till GND, röd till 5v och orange (kontrollkabel) till GPIO17.

Slutligen redigerade jag några av väderanimationsfilerna i GIMP för att lägga till mina egna personliga detaljer, som fladdermöss på månen och ett leende på solen. Jag har också lagt till i en anpassad "Old Tech New Spec" -kassetthjulanimation som ska spelas vid start, bara för skojs skull.

Steg 5: Hörlurar Jiggle

Hörlurar Jiggle
Hörlurar Jiggle
Hörlurar Jiggle
Hörlurar Jiggle
Hörlurar Jiggle
Hörlurar Jiggle
Hörlurar Jiggle
Hörlurar Jiggle

Tanken med WeatherMan var att den passivt skulle sitta på min skrivbordshögtalare och ibland visa vädret, men jag ville att den skulle göra lite mer! Hörlurarna som följde med var rostade men klassiska 80 -tal, så jag bestämde mig för att göra något med dem. Efter att ha tagit bort all kabel och varmlimt den trasiga stod jag kvar med tre delar, 3,5 mm-kontakten, den diamantformade knappen och själva telefonerna på sitt flexibla metallband.

Tanken slog mig att om jag kunde hitta något sätt att montera telefonerna ovanpå enheten så kunde jag få dem att rotera fram och tillbaka med en servo och använda detta som en extra avisering.

Först borrade jag ut 3,5 mm -kontakten och demonterade diamantbrytaren och drog dem sedan på en bit gängad stång. Därefter limmade jag en mutter på en plastkontakt, så att stången skulle kunna sitta säkert (och rakt) ovanpå servon. I andra änden av stången tillsatte jag i en annan mutter. Slutligen använde jag grå Sugru för att fästa toppen av stången till hörlursbandet och även för att täcka över muttern i botten av enheten. Om du inte har hört talas om Sugru är det ett formbart lim som kommer i små färgade påsar - det formar som Play -Doh men fastnar som superlim och stelnar som plast!

Med det senaste kalla vädret tog Sugru några dagar att härda helt, men hörlurarna och deras stativ var snart redo för slutmontering.

Steg 6: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Pi, HAT och Servo fungerade alla bra på bänken så nästa jobb var att få dem in i fallet. Innan jag började på de stora komponenterna använde jag lite grå Sugru som fanns kvar för att fixa i volymratten, hörlursuttaget och "metalltejp" -brytaren för att reda ut kosmetiken. Jag limmade också de ursprungliga Play, Stop, FF & Rew -knapparna på en bit plaströr så att de skulle stanna på rätt plats. Det var synd att inte återanvända någon av knapparna den här gången men det fanns egentligen inget för dem att kontrollera!

Jag använde den sista av den grå Sugru för att hålla servon på plats, med axeln som sticker genom det förstorade hörlursuttaget. När jag flyttade till den andra halvan av fodralet använde jag sedan lite svart Sugru för att fästa HAT och Pi -enheten till banddörren, så att de skulle öppna med den. Jag gillade verkligen den sista lilla touchen - fixering i en GeoMag -magnet så att dörren skulle hållas ordentligt stängd.

Att sätta ihop de två halvorna var en nervös affär eftersom jag fruktade att Pi & Servo skulle kollidera mot varandra, men i slutändan fanns det ungefär en millimeter kvar, gott om i min bok. Eftersom den funky öppningsdörren skulle ge full åtkomst till interiören för framtida service, limde jag precis ihop de två halvorna och efter att ha torkat av mina feta fingeravtryck monterade jag hörlurarna ovanpå - klart!

Steg 7: Tyst besatthet

Tyst besatthet
Tyst besatthet
Tyst besatthet
Tyst besatthet

Andra pris i återanvändningstävlingen

Rekommenderad: