Kazalo:

1984 WeatherMan Pi: 7 korakov (s slikami)
1984 WeatherMan Pi: 7 korakov (s slikami)

Video: 1984 WeatherMan Pi: 7 korakov (s slikami)

Video: 1984 WeatherMan Pi: 7 korakov (s slikami)
Video: Unseen Early 80's Footage of Jimmy Savile Being A Perv 2024, November
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Ta prenosni kasetofon je zdaj zunanji IoT vremenski prikaz s slogom zgodnjih 80 -ih, ki prikazuje animacijo "trenutnih razmer", drsni grafikon temperature in verjetnosti dežja skozi okno traku. Ko se vremenske razmere spremenijo, se servo upravljane slušalke na vrhu premikajo naprej in nazaj kot subtilno opozorilo.

Ko odpremo vrata funkcionalnega traku, lahko vidimo, da so prašne originalne komponente zamenjali z Raspberry Pi Zero W, Pimoronijevim klobukom Unicorn HD (LED Matrix) in majhnim servo pogonom. Vremenski podatki se pridobivajo s skriptom Python, ki poizveduje po zelo natančnem API-ju Dark Sky Weather, prilagojenem moji določeni lokaciji.

To je preprosta, a lepa in funkcionalna zgradba interneta stvari, ki sedi na nasprotni namizni zvočniki na mojem pultu YouTube in me tiho obvešča o vremenu.

Zaloge

Raspberry Pi Zero

Pimoroni Unicorn HAT HD

Majhen servo

1984 Osebni stereo in slušalke Hitachi SP-1

USB WiFi adapter

2 mm navojna palica

Sugru (črno -siva)

Magnet GeoMag

1. korak: Odlepite trak

Odtrgan trak
Odtrgan trak
Odtrgan trak
Odtrgan trak
Odtrgan trak
Odtrgan trak

Tašča mi je septembra dala ta ljubki stari kasetofon in se takoj zaljubila v njegov ikonični videz in debele gumbe. Resnična poteza pa je bilo tisto veliko okno s trakom - po 15 -ih sekundah sem imel v lasti ravnilo in presenečen ugotovil, da je do mm enake velikosti kot standardni Raspberry Pi HAT (strojna oprema pritrjena na vrhu).

Že samo to odkritje je bilo dovolj, da je moj projekt s kukavičjo uro padel na seznam "opraviti" in takoj sem začel z razstavljanjem predvajalnika.

Odtrganje je šlo precej dobro in na koncu sem imel tri različne kose za delo - uspelo mi je zlomiti nekaj plastičnih delov, vendar ničesar, česar ni bilo mogoče zlepiti.

Korak: Dark Sky Pi

Temno nebo Pi
Temno nebo Pi
Temno nebo Pi
Temno nebo Pi
Temno nebo Pi
Temno nebo Pi

Dark Sky že nekaj časa uporabljam na telefonu in sem bil zelo navdušen nad natančnostjo napovedi, zato sem bil vesel, ko sem videl, da ponujajo celovit API, ki bi ga lahko uporabil v tem projektu. Lepo in preprosto je nastaviti tudi gor!

Najprej pojdite na https://darksky.net/dev in se prijavite za brezplačen račun - "poskusni" račun vam omogoča, da na dan vložite 1000 zahtev API, kar zadošča za osvežitev vsakih 1,5 minute - dovolj pogosto tudi za moje Britanska stopnja obsedenosti z vremenom.

Ko se prijavite, boste dobili "skrivni ključ" - to je tisto, kar potrebujete za dostop do podatkov in se uporablja v skriptu Python, zato naj bo pri roki (in veste, skrivnost).

Začel sem s prilagajanjem skripta, ki sem ga uporabil pri gradnji števca naročnikov v YouTubu, ki za pridobivanje podatkov API uporablja modul Zahteve v Pythonu. Skript, ki sem ga uporabil, je na GitHubu, dodati morate ključ API -ja Dark Sky in seveda zamenjati lastne vrednosti zemljepisne širine in dolžine.

Podatke o trenutnih vremenskih razmerah je bilo precej preprosto, zato sem se odločil uporabiti elemente "Ikona", "Verjetnost padavin" in "Temperatura".

3. korak: Koda

Kodeks
Kodeks

Če želite ponovno uporabiti ali odskočiti kodo, ki sem jo uporabil, je v skladišču WeatherMan na GitHubu - klonirajte ali prenesite mapo "vreme" v mapo "pi" na vašem Raspberry Pi.

Glavne funkcije skripta so naslednje:

weatherman.py

To je glavni skript, ki izvleče vremenske podatke iz Dark Sky. Račun za Dark Sky boste morali nastaviti na naslovu https://darksky.net/dev in svoj skrivni ključ vnesti v skript, kjer je to navedeno. Vnesti boste morali tudi zemljepisno širino in dolžino vremenske lokacije, ki vas zanima - to lahko najdete v Google Zemljevidih, z desno tipko miške kliknite in izberite »Kaj je tukaj?« in dobili boste pojavno okno, ki prikazuje širino/dolžino lokacije.

Po pridobivanju podatkov API -ja weatherman.py posreduje parametre več manjšim skriptom, da sproži animacije in premikanje slušalk.

Skript je nastavljen za zagon ob zagonu z urejanjem zagonske datoteke …

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

… in dodam:

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

na koncu datoteke.

icon.py

Ta skript vzame parameter "trenutne razmere" iz skripte weatherman.py in ga uporabi za prikaz vremenske animacije 16x16 - vsi so shranjeni v mapi "ikone" in so del standardne dokumentacije Unicorn HAT HD. Animacijske datoteke-p.webp

phones.py

Če so se vremenske razmere spremenile glede na zadnjo zahtevo API -ja (ali pa gre za svež zagon in ne sneži), se ta skript pokliče iz weatherman.py in naroči servo, da se "pomakne" naprej in nazaj, da vas opozori, da so razmere spremenil.

precip.py

Ta skript sprejme parameter "verjetnost padavin" iz weatherman.py in prikaže modre črte na Unicorn HAT -u, ki se nanašajo na % verjetnost. Če 100% vseh 16 vrstic zasveti modro, če 50% samo 8 vrstic itd.

temp.py

Še en standardni Pimoronijev skript, ta vzame parameter "temp" iz weatherman.py in ga prikaže z drsnim besedilom. Nastavljena je za uporabo pisave Herkules truetype (v mapi "pisave"), po želji pa lahko uporabite standardno pisavo. Lahko bi jo celo izboljšali, tako da prikazano besedilo spremeni barvo glede na temperaturno vrednost!

4. korak: Unicorn HAT & Servo

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

Zmožnost pridobivanja vremenskih podatkov je bila odlična, zdaj pa sem jih morala prikazati na Unicorn HAT. Pogledal sem različne nabore vremenskih ikon na internetu in sem jih na pol poti prilagodil, ko sem spoznal, da je v dokumentacijo o Pimoroniju vključen primer vremena - to je vključevalo tudi vremenske animacije!

To je prihranilo ogromno dela in v kratkem sem začel delovati z animirano ikono za trenutne razmere, nekaj drsnega besedila za temperaturo in grafom za % padavin (kar je vključevalo nekaj lahke matematike). Skripte sem ločil in uporabil podprocesni modul Pythona za posredovanje parametrov sem in tja.

Dodajanje servomotorja je bilo idealno vozilo za ta opozorila, saj bi povzročilo malo hrupa in bilo privlačno, ne da bi bilo preveč nadležno. Ker je HAT že prevzel številne Pi -jeve zatiče, sem servo kable spajkal na spodnjo stran plošče, s pomočjo Pin 17 za krmiljenje premikanja servomotorja s Pulse Width Modulation.

Napajanje servomotorja s Pi ni bilo idealno, vendar bi ga kdaj uporabili le za trenuten premik, zato natančnost tukaj ni velika stvar. Priključil se je, kot je prikazano na diagramu, z rjavim kablom na GND, rdečim na 5v in oranžnim (krmilni kabel) na GPIO17.

Nazadnje sem uredil nekaj datotek z vremensko animacijo v GIMP -ju, da dodam svoje osebne dotike, kot so netopirji na luni in nasmejan obraz na soncu. Dodal sem tudi animacijo kasete "Old Tech New Spec" po meri, ki jo je mogoče predvajati ob zagonu, samo za zabavo.

5. korak: Zmikanje slušalk

Slušanje slušalk
Slušanje slušalk
Slušanje slušalk
Slušanje slušalk
Slušanje slušalk
Slušanje slušalk
Slušanje slušalk
Slušanje slušalk

Ideja WeatherMan -a je bila, da bi pasivno sedel na zvočniku na mizi in občasno prikazal vreme, vendar sem hotel, da naredi le še malo več! Slušalke, ki so bile priložene, so bile opečene, a klasične 80., zato sem se odločil, da bom z njimi nekaj naredil. Ko sem slekel ves kabel in vroče zlepil pokvarjenega, so mi ostali trije deli, 3,5-milimetrski vtič, gumb v obliki diamanta in sami telefoni na prožnem kovinskem traku.

Zamislila se mi je ideja, da bi lahko, če bi našel način za namestitev telefonov na vrh enote, s pomočjo servomotorja vrteli naprej in nazaj in to uporabil kot dodatno obvestilo.

Najprej sem izvrtal 3,5 -milimetrski vtič in razstavil diamantno stikalo, nato pa jih zdrsnil na kos navojne palice. Nato sem na plastični konektor prilepil matico, tako da je palica lahko varno (in naravnost) nameščena na servo. Na drugem koncu palice sem dodal drugo matico. Nazadnje sem uporabil sivi Sugru, da sem vrh palice prilepil na trak za slušalke in tudi za prikrivanje matice na dnu sklopa. Če niste slišali za Sugru, je to lepilno lepilo, ki je na voljo v majhnih barvnih vrečkah - oblikuje se kot Play -Doh, vendar se drži kot superlepilo in trdno strdi kot plastika!

Zaradi nedavnega hladnega vremena je Sugru trajalo nekaj dni, da se popolnoma strdi, vendar so bile slušalke in stojalo kmalu pripravljene za končno montažo.

6. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Pi, HAT in Servo so na klopi dobro delovali, zato je bila naslednja naloga, da jih spravimo v ohišje. Preden sem začel z velikimi sestavnimi deli, sem uporabil nekaj preostalega sivega Sugruja, da sem popravil številčnico za glasnost, vtičnico za slušalke in stikalo za "kovinski trak" in razvrstil kozmetiko. Na kos plastične cevi sem prilepil tudi originalne gumbe Play, Stop, FF & Rew, da ostanejo na pravem mestu. Škoda, da tokrat niso ponovno uporabili nobenega od gumbov, vendar v resnici niso imeli ničesar za nadzor!

Zadnji od sivega Sugruja sem uporabil za držanje servomotorja, njegova gred pa je štrlela skozi povečano vtičnico za slušalke. Če sem se pomaknil na drugo polovico ohišja, sem nato uporabil nekaj črnega Sugruja, da sem pritrdil sklop HAT in Pi na vrata traku, tako da sta se z njimi odprla. Resnično sem užival v zadnjem dotiku - pritrditvi v magnet GeoMag, tako da so bila vrata trdno zaprta.

Sestavljanje obeh polovic je bilo živčno, saj sem se bal, da se bosta Pi & Servo spopadla, a na koncu je bilo v moji knjigi na voljo še kakšen milimeter. Ker bi funky odpiralna vrata omogočila popoln dostop do notranjosti za prihodnje servisiranje, sem dve polovici samo vroče zlepila skupaj in po brisanju mojih mastnih prstnih odtisov na vrhu namestila sklop slušalk - končano!

7. korak: Tiha obsedenost

Tiha obsedenost
Tiha obsedenost
Tiha obsedenost
Tiha obsedenost

Druga nagrada na natečaju za ponovno uporabo

Priporočena: