Innholdsfortegnelse:

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

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

Video: 1984 WeatherMan Pi: 7 trinn (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

Denne bærbare kassettspilleren er nå en IoT -værdisplay i omgivelsene med stil fra begynnelsen av 80 -tallet, som viser en "nåværende forhold" -animasjon, rulletemperatur og regn sannsynlighetsgraf gjennom båndvinduet. Når værforholdene endrer seg, jiggler de servostyrte hodetelefonene på toppen frem og tilbake som et subtilt varsel.

Ved å åpne den funksjonelle tapedøren kan vi se at de støvete originalkomponentene er byttet ut med en Raspberry Pi Zero W, en Pimoroni Unicorn Hat HD (LED Matrix) og en liten servo. Værdataene hentes ved hjelp av et Python-skript som spør etter det ultra-nøyaktige Dark Sky Weather API, skreddersydd for min spesifikke plassering.

Det er en enkel, men nydelig og funksjonell IoT-konstruksjon som sitter på den motsatte skrivebordshøyttaleren til min YouTube-teller, og holder meg rolig oppdatert om været.

Rekvisita

Raspberry Pi Zero

Pimoroni Unicorn HAT HD

Liten servo

1984 Hitachi SP-1 personlig stereo og hodetelefoner

USB WiFi -adapter

2 mm gjengestang

Sugru (svart og grå)

GeoMag magnet

Trinn 1: Tape Teardown

Tape Teardown
Tape Teardown
Tape Teardown
Tape Teardown
Tape Teardown
Tape Teardown

Jeg fikk denne flotte gamle kassettspilleren av min svigermor tilbake i september og ble umiddelbart forelsket i det ikoniske utseendet og de tunge knappene. Den virkelige trekningen var imidlertid det store tapevinduet - etter å ha eid det i omtrent 15 sekunder hadde jeg en linjal ute, og ble overrasket over å finne at den er i mm, samme størrelse som en vanlig Raspberry Pi HAT (Hardware Attached On Top).

Denne oppdagelsen alene var nok til å støte mitt gjøkurprosjekt lenger ned på «å gjøre» -listen, og jeg begynte å jobbe med en gang ved å demontere spilleren.

Nedrivningen gikk ganske bra, og jeg endte opp med tre forskjellige stykker å jobbe med - jeg klarte å bryte et par av plastdelene, men ingenting som ikke kunne limes sammen igjen.

Trinn 2: Dark Sky Pi

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

Jeg har brukt Dark Sky på telefonen min en stund og har vært veldig imponert over nøyaktigheten til prognosene, så jeg var glad for å se at de tilbyr en omfattende API som jeg kan bruke i dette prosjektet. Det er fint og greit å sette opp til!

Gå først til https://darksky.net/dev og registrer deg for en gratis konto - en "prøve" -konto lar deg lage 1000 API -forespørsler om dagen, noe som er nok til en oppdatering hvert 1,5 minutt - ofte nok for selv min Britisk nivå av værbesettelse.

Når du har registrert deg, får du en "hemmelig nøkkel" - dette er hva du trenger for å få tilgang til dataene, og de brukes i Python -skriptet, så hold den hendig (og, du vet, hemmelig).

Jeg begynte med å tilpasse et skript jeg brukte i YouTube Subscriber Counter -bygningen, som bruker forespørselsmodulen i Python for å hente API -data. Skriptet jeg brukte er på GitHub, du trenger bare å legge til Dark Sky API -nøkkelen din og selvfølgelig erstatte dine egne Latitude & Longitude -verdier.

Det var ganske greit å trekke ned data om gjeldende værforhold, og jeg bestemte meg for å bruke elementene "Ikon", "Nedbørssannsynlighet" og "Temperatur".

Trinn 3: Koden

Koden
Koden

Hvis du vil gjenbruke eller springe av koden jeg brukte, ligger den i WeatherMan -depotet på GitHub - klon eller last ned "weather" -mappen til "pi" -mappen på Raspberry Pi.

De viktigste skriptfunksjonene er som følger:

weatherman.py

Dette er hovedmanuset som trekker ut værdataene fra Dark Sky. Du må sette opp en Dark Sky -konto på https://darksky.net/dev og sette din hemmelige nøkkel i skriptet der det er angitt. Du må også angi breddegrad og lengdegrad for værstedet du er interessert i - dette finner du på Google Maps, bare høyreklikk og velg "Hva er her?" og du får en pop-up som viser lat/lengden på stedet.

Etter å ha hentet API -dataene, sender weatherman.py parametere til flere mindre skript for å starte animasjonene og hodetelefonjiggles.

Skriptet er satt til å kjøre ved oppstart ved å redigere oppstartsfilen …

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

… og legger til:

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

på slutten av filen.

ikon. py

Dette skriptet tar en parameter "nåværende forhold" fra scriptet weatherman.py og bruker det til å vise en 16x16 væranimasjon - disse er alle lagret i "ikoner" -mappen og er en del av standard Unicorn HAT HD -dokumentasjon. Du kan enkelt redigere-p.webp

telefoner.py

Hvis værforholdene har endret seg fra den siste API -forespørselen (eller det er en ny støvel og det ikke snør), blir dette skriptet ringt fra weatherman.py og instruerer servoen om å "jiggle" frem og tilbake for å varsle deg om at forholdene har endret.

precip.py

Dette skriptet godtar en "nedbørs sannsynlighet" parameter fra weatherman.py og viser linjer i blått på Unicorn HAT knyttet til % sannsynlighet. Hvis 100% vil alle 16 radene lyse blått, hvis 50% bare 8 rader osv.

temp.py

Et annet standard Pimoroni -skript, dette tar en "temp" -parameter fra weatherman.py og viser det med rulletekst. Den er satt til å bruke Herkules -truetype -skriften (i mappen "fonter"), men kan bruke en standard skrift hvis du foretrekker det. Du kan til og med forbedre den slik at den viste teksten endrer farge avhengig av temperaturverdien!

Trinn 4: Unicorn HAT & Servo

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

Å kunne få tak i værdataene var flott, men nå måtte jeg vise det på Unicorn HAT. Jeg så på forskjellige sett med værikon på internett og var halvveis i å tilpasse disse da jeg skjønte at det var et væreksempel inkludert i Pimoroni -dokumentasjonen - og dette inkluderte væranimasjoner!

Dette sparte enormt mye arbeid, og jeg var i gang på et blunk, med et animert ikon for de nåværende forholdene, litt rulletekst for temperaturen og en graf for % nedbør (som involverte litt lett matematikk). Jeg holdt skriptene adskilt og brukte delprosessmodulen til Python for å sende parametere frem og tilbake.

Å legge inn servoen var det ideelle kjøretøyet for disse varslene, da det ville lage litt støy og være iøynefallende uten å være for irriterende. Da HATEN allerede tok opp mange av Pi -pinnene, loddet jeg servokablene til undersiden av brettet, ved hjelp av pinne 17 for å kontrollere servoens bevegelse ved hjelp av pulsbreddemodulasjon.

Det var ikke ideelt å drive servoen fra Pi, men den ville bare noen gang bli brukt for en liten jiggle, så presisjon var ikke så farlig her. Den koblet til som vist i diagrammet, med brun kabel til GND, rød til 5v og oransje (kontrollkabelen) til GPIO17.

Til slutt redigerte jeg noen av væranimasjonsfilene i GIMP for å legge til mine egne personlige detaljer, som flaggermus på månen og et smilefjes på solen. Jeg har også lagt til i en egendefinert "Old Tech New Spec" kassett -animasjon som skal spilles av ved oppstart, bare for moro skyld.

Trinn 5: Jiggle med hodetelefoner

Hodetelefoner Jiggle
Hodetelefoner Jiggle
Hodetelefoner Jiggle
Hodetelefoner Jiggle
Hodetelefoner Jiggle
Hodetelefoner Jiggle
Hodetelefoner Jiggle
Hodetelefoner Jiggle

Tanken med WeatherMan var at den passivt skulle sitte på skrivebordshøyttaleren min, av og til vise været, men jeg ville at den skulle gjøre litt mer! Høretelefonene som fulgte med var toast, men klassiske 80 -tall, så jeg bestemte meg for å gjøre noe med dem. Etter å ha fjernet all kabel og varmlimt den ødelagte, satt jeg igjen med tre deler, 3,5 mm pluggen, den diamantformede knappen og telefonene selv på det fleksible metallbåndet.

Ideen slo meg at hvis jeg kunne finne en måte å montere telefonene på toppen av enheten, så kunne jeg få dem til å rotere frem og tilbake med en servo, og bruke dette som en ekstra melding.

Først boret jeg ut 3,5 mm pluggen og demonterte diamantbryteren, og la dem deretter over på et stykke gjengestang. Deretter limte jeg en mutter til en plastkontakt, slik at stangen kunne sitte sikkert (og rett) på toppen av servoen. I den andre enden av stangen la jeg til en annen mutter. Til slutt brukte jeg grå Sugru for å feste toppen av stangen til øretelefonbåndet og også for å dekke til mutteren i bunnen av enheten. Hvis du ikke har hørt om Sugru, er det et formbart lim som kommer i små fargede poser - det former seg som Play -Doh, men fester seg som superlim og setter seg hardt som plast!

Med det siste kalde været tok Sugru noen dager å stivne helt, men hodetelefonene og stativet deres var snart klare for endelig montering.

Trinn 6: Montering

montering
montering
montering
montering
montering
montering
montering
montering

Pi, HAT og Servo fungerte bra på benken, så neste jobb var å få dem inn i saken. Før jeg begynte på de store komponentene, brukte jeg litt grå Sugru til overs for å fikse volumhjulet, hodetelefonkontakten og "metal tape" -bryteren, og sorterte ut kosmetikken. Jeg limte også de originale Play, Stop, FF & Rew -knappene til et stykke plastrør, slik at de skulle forbli på rett sted. Det var synd å ikke bruke noen av knappene igjen denne gangen, men det var egentlig ikke noe for dem å kontrollere!

Jeg brukte den siste av den grå Sugruen til å holde servoen på plass, med akselen stikkende gjennom den forstørrede hodetelefonkontakten. Når jeg flyttet over til den andre halvdelen av saken brukte jeg litt svart Sugru for å feste HAT og Pi -enheten til bånddøren, slik at de kunne åpne den. Jeg likte den siste lille touchen - å fikse i en GeoMag -magnet slik at døren holdes godt lukket.

Å sette de to halvdelene sammen var en nervøs virksomhet da jeg fryktet at Pi & Servo ville støte mot hverandre, men til slutt var det rundt en millimeter til overs, mye i boken min. Siden den funky åpningsdøren ville gi full tilgang til interiøret for fremtidig service, limte jeg bare de to halvdelene sammen, og etter å ha tørket av, monterte mine fete fingeravtrykk hodetelefonene på toppen - ferdig!

Trinn 7: Stille besettelse

Stille besettelse
Stille besettelse
Stille besettelse
Stille besettelse

Andre pris i gjenbrukskonkurransen

Anbefalt: