Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Tape nedrivning
- Trin 2: Dark Sky Pi
- Trin 3: Koden
- Trin 4: Unicorn HAT & Servo
- Trin 5: Jiggle med hovedtelefoner
- Trin 6: Montering
- Trin 7: Stille besættelse
Video: 1984 WeatherMan Pi: 7 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
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
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
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
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
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
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
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
Anden pris i genbrugskonkurrencen
Anbefalede:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores