Indholdsfortegnelse:

1984 WeatherMan Pi: 7 trin (med billeder)
1984 WeatherMan Pi: 7 trin (med billeder)

Video: 1984 WeatherMan Pi: 7 trin (med billeder)

Video: 1984 WeatherMan Pi: 7 trin (med billeder)
Video: Новый год в реальной жизни. Страшные истории про Рождество. Ужасы. Мистика 2024, November
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Denne bærbare kassetteafspiller er nu en omgivende IoT -vejrvisning i begyndelsen af 80'erne, der viser en "aktuelle forhold" animation, rulletemperatur og regn sandsynlighedsgraf gennem båndvinduet. Når vejrforholdene ændrer sig, jiggler de servostyrede hovedtelefoner på toppen frem og tilbage som en subtil advarsel.

Ved at åbne den funktionelle tapedør kan vi se, at de støvede originale komponenter er blevet erstattet med en Raspberry Pi Zero W, en Pimoroni Unicorn Hat HD (LED Matrix) og en lille servo. Vejrdataene hentes ved hjælp af et Python-script, der spørger efter den ultra-præcise Dark Sky Weather API, der er skræddersyet til min specifikke placering.

Det er en enkel, men dejlig og funktionel IoT-bygning, der sidder på den modsatte skrivebordshøjttaler til min YouTube-tæller og holder mig stille og roligt opdateret om vejret.

Forbrugsvarer

Hindbær Pi Zero

Pimoroni Unicorn HAT HD

Lille servo

1984 Hitachi SP-1 personlig stereo og hovedtelefoner

USB WiFi adapter

2 mm gevindstang

Sugru (sort og grå)

GeoMag magnet

Trin 1: Tape nedrivning

Tape nedrivning
Tape nedrivning
Tape nedrivning
Tape nedrivning
Tape nedrivning
Tape nedrivning

Jeg fik denne dejlige gamle kassette-afspiller af min svigermor tilbage i september og blev øjeblikkeligt forelsket i dens ikoniske look og store knapper. Den virkelige tegning var dog det store tapevindue - efter at have ejet det i cirka 15 sekunder havde jeg en lineal ude, og var forbløffet over at finde ud af, at den er i mm, den samme størrelse som en standard Raspberry Pi HAT (hardware fastgjort ovenpå).

Denne opdagelse alene var nok til at støde mit gøgurprojekt længere ned på "to do" -listen, og jeg begyndte at arbejde med det samme ved at afmontere spilleren.

Nedrivningen gik ret godt, og jeg endte med tre forskellige stykker at arbejde med - jeg nåede at bryde et par af plastdelene, men intet, der ikke kunne limes sammen igen.

Trin 2: Dark Sky Pi

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

Jeg har brugt Dark Sky på min telefon i et stykke tid og har virkelig været imponeret over prognosernes nøjagtighed, så jeg var glad for at se, at de tilbyder en omfattende API, som jeg kunne bruge i dette projekt. Det er rart og ligetil at indstille også op!

Gå først til https://darksky.net/dev, og tilmeld dig en gratis konto - en "prøve" -konto lader dig lave 1000 API -anmodninger om dagen, hvilket er nok til en opdatering hvert 1,5 minut - ofte nok til selv min Britisk niveau af vejrbesættelse.

Når du har tilmeldt dig, får du en "hemmelig nøgle" - det er det, du har brug for for at få adgang til dataene, og de bruges i Python -scriptet, så hold dem ved hånden (og, du ved, hemmelig).

Jeg begyndte med at tilpasse et script, jeg brugte i YouTube Subscriber Counter build, som bruger Requests -modulet i Python til at hente API -data. Det script, jeg brugte, er på GitHub, du skal bare tilføje din Dark Sky API -nøgle og naturligvis erstatte dine egne Latitude & Longitude -værdier.

Det var ret ligetil at trække data om de aktuelle vejrforhold ned, og jeg besluttede at gøre brug af elementerne "Ikon", "Nedbørssandsynlighed" og "Temperatur".

Trin 3: Koden

Koden
Koden

Hvis du vil genbruge eller springe den kode, jeg brugte, af, er det i WeatherMan -depotet på GitHub - klon eller download "vejret" -mappen til "pi" -mappen på din Raspberry Pi.

De vigtigste scriptfunktioner er som følger:

vejrmand.py

Dette er det vigtigste script, der udtrækker vejrdataene fra Dark Sky. Du skal oprette en Dark Sky -konto på https://darksky.net/dev og sætte din hemmelige nøgle i scriptet, hvor det er angivet. Du skal også angive breddegrad og længdegrad for det vejrsted, du er interesseret i - dette kan findes på Google Maps, bare højreklik og vælg "Hvad er her?" og du får en pop op, der viser placeringens længde/længde.

Efter at have hentet API -dataene sender weatherman.py parametre til flere mindre scripts for at starte animationerne og hovedtelefonjiggles.

Scriptet er indstillet til at køre ved opstart ved at redigere startfilen …

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

… og tilføjer:

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

i slutningen af filen.

ikon.py

Dette script tager en "aktuelle betingelser" -parameter fra weatherman.py -scriptet og bruger det til at vise en vejranimation 16x16 - disse er alle gemt i "ikoner" -mappen og er en del af standard Unicorn HAT HD -dokumentationen. Du kan nemt redigere-p.webp

telefoner.py

Hvis vejrforholdene har ændret sig fra den sidste API -anmodning (eller det er en ny støvle, og det ikke sneer), kaldes dette script fra weatherman.py og instruerer servoen om at "jiggle" frem og tilbage for at advare dig om, at forholdene har ændret.

præcip.py

Dette script accepterer en "nedbørs sandsynlighed" parameter fra weatherman.py og viser linjer i blåt på Unicorn HAT vedrørende % sandsynligheden. Hvis 100% alle 16 rækker lyser blåt, hvis 50% kun 8 rækker osv.

temp.py

Et andet standard Pimoroni -script, dette tager en "temp" -parameter fra weatherman.py og viser det med rulletekst. Det er indstillet til at bruge Herkules -truetype -skrifttypen (i mappen "skrifttyper"), men kan bruge en standard skrifttype, hvis du foretrækker det. Du kan endda forbedre det, så den viste tekst ændrer farve afhængigt af temperaturværdien!

Trin 4: Unicorn HAT & Servo

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

At kunne få styr på vejrdataene var fantastisk, men nu var jeg nødt til at vise dem på Unicorn HAT. Jeg kiggede på forskellige sæt vejrikoner på internettet og var halvvejs med at tilpasse disse, da jeg indså, at der var et vejreksempel inkluderet i Pimoroni -dokumentationen - og dette inkluderede vejranimationer!

Dette sparede en enorm mængde arbejde, og jeg var i gang på ingen tid med et animeret ikon for de aktuelle forhold, lidt rulletekst for temperaturen og en graf for % nedbør (hvilket involverede nogle lette matematik). Jeg holdt scripts adskilt og brugte Pythons subprocessmodul til at sende parametre frem og tilbage.

Tilføjelse af servoen var det ideelle køretøj til disse advarsler, da det ville lave lidt støj og være iøjnefaldende uden at være for irriterende. Da HAT'en allerede optog mange af Pi's pins, lodde jeg servokablerne til bordets underside og brugte Pin 17 til at styre servoens bevægelse ved hjælp af Pulse Width Modulation.

At drive servoen fra Pi var ikke ideel, men den ville kun nogensinde blive brugt til en kortvarig jiggle, så præcision var ikke en stor ting her. Det sluttede som vist i diagrammet med brunt kabel til GND, rødt til 5v og orange (kontrolkablet) til GPIO17.

Endelig redigerede jeg nogle af vejr -animationsfilerne i GIMP for at tilføje mine egne personlige præg, som flagermus på månen og et smiley på solen. Jeg tilføjede også en brugerdefineret "Old Tech New Spec" -kassettehjul -animation til afspilning ved opstart, bare for sjov.

Trin 5: Jiggle med hovedtelefoner

Hovedtelefon Jiggle
Hovedtelefon Jiggle
Hovedtelefon Jiggle
Hovedtelefon Jiggle
Hovedtelefon Jiggle
Hovedtelefon Jiggle
Hovedtelefon Jiggle
Hovedtelefon Jiggle

Ideen med WeatherMan var, at den passivt ville sidde på min skrivebordshøjttaler og lejlighedsvis vise vejret, men jeg ville have, at den skulle gøre lidt mere! Høretelefonerne, der fulgte med, var toast, men klassiske 80'ere, så jeg besluttede at gøre noget med dem. Efter at have fjernet alt kabel og varmlimet den ødelagte, stod jeg tilbage med tre dele, 3,5 mm stikket, den diamantformede knap og telefonerne selv på deres fleksible metalbånd.

Ideen slog mig, at hvis jeg kunne finde en måde at montere telefonerne oven på enheden, så kunne jeg få dem til at rotere frem og tilbage med en servo og bruge dette som en ekstra meddelelse.

Først borede jeg 3,5 mm -stikket af og demonterede diamantkontakten, og smed dem derefter på et stykke gevindstang. Derefter limede jeg en møtrik til et plastikstik, så stangen kunne sidde sikkert (og lige) oven på servoen. I den anden ende af stangen tilføjede jeg en anden møtrik. Endelig brugte jeg grå Sugru til at binde toppen af stangen til øretelefonbåndet og også til at dække møtrikken i bunden af samlingen. Hvis du ikke har hørt om Sugru, er det en formbar lim, der kommer i små farvede poser - den former sig som Play -Doh, men klæber som superlim og sætter sig hårdt som plast!

Med det seneste kolde vejr tog Sugru et par dage at hærde fuldstændigt, men hovedtelefonerne og deres stativ var snart klar til endelig samling.

Trin 6: Montering

montage
montage
montage
montage
montage
montage
montage
montage

Pi, HAT og Servo fungerede alle fint på bænken, så det næste job var at få dem ind i sagen. Inden jeg begyndte på de store komponenter, brugte jeg nogle grå Sugru tilovers til at fastgøre lydstyrkehjulet, hovedtelefonstikket og "metal tape" -kontakten og sortere kosmetikken. Jeg limede også de originale Play, Stop, FF & Rew -knapper til et stykke plastrør, så de ville blive på det rigtige sted. Det var en skam ikke at genbruge nogen af knapperne denne gang, men der var ikke rigtig noget for dem at kontrollere!

Jeg brugte den sidste af den grå Sugru til at holde servoen på plads, med akslen stikkende gennem den forstørrede hovedtelefonstik. Når jeg flyttede til den anden halvdel af sagen, brugte jeg derefter noget sort Sugru til at fastgøre HAT og Pi -samlingen til tapedøren, så de ville åbne med den. Jeg nød virkelig den sidste lille berøring - fastgørelse i en GeoMag -magnet, så døren holdes godt lukket.

At sætte de to halvdele sammen var en nervøs forretning, da jeg frygtede, at Pi & Servo ville støde mod hinanden, men i sidste ende var der omkring en millimeter til overs, masser i min bog. Da den funky åbningsdør ville give fuld adgang til interiøret til fremtidig service, limede jeg lige de to halvdele sammen, og efter at have tørret mine fedtede fingeraftryk monteret hovedtelefonmodulet oven på - færdig!

Trin 7: Stille besættelse

Stille besættelse
Stille besættelse
Stille besættelse
Stille besættelse

Anden pris i genbrugskonkurrencen

Anbefalede: