Obsah:

WeatherMan Pi 1984: 7 krokov (s obrázkami)
WeatherMan Pi 1984: 7 krokov (s obrázkami)

Video: WeatherMan Pi 1984: 7 krokov (s obrázkami)

Video: WeatherMan Pi 1984: 7 krokov (s obrázkami)
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

Tento prenosný kazetový prehrávač je teraz displejom počasia IoT v štýle začiatku 80. rokov, ktorý v okne kazety zobrazuje animáciu „aktuálnych podmienok“, posúvanie teploty a graf pravdepodobnosti dažďa. Keď sa poveternostné podmienky zmenia, slúchadlá ovládané servomotorom na vrchu sa chvejú dopredu a dozadu ako jemné upozornenie.

Po otvorení dvierok funkčnej pásky vidíme, že zaprášené pôvodné komponenty boli nahradené Raspberry Pi Zero W, Pimoroni Unicorn Hat HD (LED Matrix) a malým servom. Údaje o počasí sa získavajú pomocou skriptu Python, ktorý sa pýta na ultrapresné API Dark Sky Weather, prispôsobené mojej konkrétnej polohe.

Je to jednoduchá, ale krásne vyzerajúca a funkčná zostava internetu vecí, ktorá sedí na opačnom stolnom reproduktore ako môj pult na YouTube, a ticho ma udržiava v obraze o počasí.

Zásoby

Raspberry Pi Zero

Klobúk Pimoroni Unicorn HAT HD

Malé servo

1984 Osobné stereo a slúchadlá Hitachi SP-1

USB WiFi adaptér

2 mm závitová tyč

Sugru (čierna a sivá)

Magnet GeoMag

Krok 1: Roztrhnutie pásky

Roztrhnutie pásky
Roztrhnutie pásky
Roztrhnutie pásky
Roztrhnutie pásky
Roztrhnutie pásky
Roztrhnutie pásky

V septembri mi moja svokra dala tento krásny starý kazetový prehrávač a okamžite som si zamiloval jeho ikonický vzhľad a robustné gombíky. Skutočnou kresbou však bolo veľké okno s páskou - po asi 15 sekundách vlastníctva som mal vytiahnuté pravítko a s úžasom som zistil, že je na milimetre rovnakej veľkosti ako štandardný Raspberry Pi HAT (hardvér pripevnený na vrchu).

Tento samotný objav stačil na to, aby narazil na môj projekt s kukačkovými hodinami nižšie v zozname „robiť“a hneď som začal pracovať, demontovaním prehrávača.

Trhanie išlo celkom dobre a skončil som s tromi odlišnými kusmi, s ktorými som pracoval - podarilo sa mi rozbiť pár plastových dielov, ale nič, čo by sa nedalo zlepiť dohromady.

Krok 2: Dark Sky Pi

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

Na svojom telefóne už nejaký čas používam Dark Sky a presnosť predpovedí na mňa urobila veľký dojem, takže som bol potešený, keď som zistil, že ponúkajú komplexné API, ktoré by som mohol v tomto projekte použiť. Je pekné a jednoduché nastaviť aj hore!

Najprv prejdite na https://darksky.net/dev a zaregistrujte si bezplatný účet - „skúšobný“účet vám umožní podať 1 000 požiadaviek API denne, čo stačí na obnovenie každých 1,5 minúty - dosť často dokonca aj na moje Britská úroveň posadnutosti počasím.

Po registrácii získate „tajný kľúč“- to je to, čo potrebujete na prístup k údajom a ktoré sa používa v skripte Python, takže ho majte poruke (a viete, že je tajný).

Začal som prispôsobením skriptu, ktorý som použil v zostave počítadla predplatiteľov YouTube, ktorá používa modul požiadaviek v Pythone na získavanie údajov API. Skript, ktorý som použil, je na GitHub, budete musieť pridať kľúč API Dark Sky a samozrejme nahradiť svoje vlastné hodnoty zemepisnej šírky a dĺžky.

Získanie údajov o aktuálnych poveternostných podmienkach bolo celkom jednoduché a rozhodol som sa použiť prvky „Ikona“, „Pravdepodobnosť zrážok“a „Teplota“.

Krok 3: Kód

Kód
Kód

Ak chcete znova použiť alebo odraziť kód, ktorý som použil, je to v úložisku WeatherMan na GitHub - klonujte alebo si stiahnite priečinok „počasie“do priečinka „pi“na svojom Raspberry Pi.

Hlavné funkcie skriptu sú nasledujúce:

weatherman.py

Toto je hlavný skript, ktorý extrahuje údaje o počasí z Dark Sky. Budete si musieť vytvoriť účet Dark Sky na https://darksky.net/dev a do skriptu vložiť svoj tajný kľúč, ak je to uvedené. Budete tiež musieť zadať zemepisnú šírku a dĺžku miesta, o ktoré sa zaujímate - to nájdete v Mapách Google, kliknite pravým tlačidlom myši a zvoľte „Čo je tu?“a zobrazí sa vyskakovacie okno so zemepisnou šírkou/dĺžkou polohy.

Po načítaní údajov z API Weatherman.py odovzdá parametre niekoľkým menším skriptom, aby spustili animácie a chvenie v slúchadlách.

Skript je nastavený na spustenie pri spustení úpravou štartovacieho súboru …

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

… a dodáva:

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

na konci súboru.

icon.py

Tento skript preberá parameter „aktuálne podmienky“zo skriptu weatherman.py a používa ho na zobrazenie animácie počasia s rozmermi 16 x 16 - všetky sú uložené v priečinku „ikony“a sú súčasťou štandardnej dokumentácie Unicorn HAT HD. Súbory animácie-p.webp

telefony.py

Ak sa poveternostné podmienky od poslednej požiadavky API zmenili (alebo je to nový boot a nesneží), tento skript sa zavolá zo servera weatherman.py a dá servu pokyn, aby „kmitalo“tam a späť, aby vás upozornilo, že podmienky majú zmenené.

zrážka.py

Tento skript akceptuje parameter "pravdepodobnosť zrážok" zo súboru weatherman.py a na čiare Unicorn HAT zobrazuje čiary modrej farby súvisiace s percentuálnou pravdepodobnosťou. Ak je 100%, všetkých 16 riadkov bude svietiť namodro, ak 50% iba 8 riadkov atď.

temp.py

Ďalší štandardný skript Pimoroni, tento preberá parameter „temp“z webu Weatherman.py a zobrazuje ho s posúvajúcim sa textom. Je nastavené na používanie písma Herkules truetype (v priečinku „písma“), ale ak chcete, môžete použiť štandardné písmo. Môžete ho dokonca vylepšiť tak, aby zobrazovaný text zmenil farbu v závislosti od hodnoty teploty!

Krok 4: Klobúk Unicorn a servo

Klobúk Unicorn a servo
Klobúk Unicorn a servo
Klobúk Unicorn a servo
Klobúk Unicorn a servo
Klobúk Unicorn a servo
Klobúk Unicorn a servo

Schopnosť získať údaje o počasí bola skvelá vec, ale teraz som ich potreboval zobraziť na Unicorn HAT. Pozrel som sa na rôzne sady ikon počasia na internete a v polovici ich prispôsobovania som zistil, že v dokumentácii k Pimoroni je zahrnutý príklad počasia - a to vrátane animácií počasia!

To ušetrilo obrovské množstvo práce a onedlho som bol v prevádzke, s animovanou ikonou aktuálnych podmienok, nejakým posúvajúcim sa textom teploty a grafom % zrážok (čo zahŕňalo niekoľko ľahkých matematických výpočtov). Skripty som nechal oddelené a používal som modul Subprocess v Pythone na prenos parametrov sem a tam.

Pridanie serva bolo ideálnym prostriedkom pre tieto výstrahy, pretože by vydávalo malý hluk a bolo pútavé bez toho, aby bolo príliš otravné. Keďže HAT už zaberal mnoho pinov Pi, spájkoval som servopohony na spodnú stranu dosky a pomocou kolíka 17 som riadil pohyb serva pomocou modulácie šírky impulzov.

Napájanie serva z Pi nebolo ideálne, ale použilo by sa iba na chvíľkové chvenie, takže s presnosťou tu nehralo veľkú úlohu. Pripojil sa podľa schémy s hnedým káblom na GND, červeným na 5v a oranžovým (ovládací kábel) na GPIO17.

Nakoniec som upravil niektoré súbory s animáciou počasia v GIMPe, aby som pridal svoje vlastné osobné prvky, ako napríklad netopiere na mesiaci a smajlík na slnku. Tiež som pridal vlastnú animáciu kazetových koliesok „Old Tech New Spec“, ktorá sa má hrať pri štarte, len tak pre zábavu.

Krok 5: Kolísanie slúchadiel

Jiggle slúchadiel
Jiggle slúchadiel
Jiggle slúchadiel
Jiggle slúchadiel
Jiggle slúchadiel
Jiggle slúchadiel
Jiggle slúchadiel
Jiggle slúchadiel

Myšlienka WeatherManu bola, že bude pasívne sedieť na mojom stolnom reproduktore a príležitostne zobrazuje počasie, ale chcel som, aby toho zvládol o niečo viac! Slúchadlá, ktoré boli dodané s nimi, boli toastové, ale klasické 80. roky, a tak som sa rozhodol s nimi niečo urobiť. Po odstránení všetkých káblov a lepení zlomeného za horúca mi zostali tri časti, 3,5 mm konektor, tlačidlo v tvare diamantu a samotné telefóny na pružnom kovovom páse.

Napadlo ma, že ak nájdem nejaký spôsob upevnenia telefónov na vrch jednotky, môžem ich nechať otáčať sem a tam pomocou serva a použiť to ako dodatočné upozornenie.

Najprv som vyvŕtal 3,5 mm vidlicu a demontoval diamantový spínač a potom som ich navliekol na kus závitovej tyče. Potom som nalepil maticu na plastový konektor, aby tyč mohla bezpečne (a rovno) sedieť na vrchu serva. Na druhý koniec tyče som pridal ďalší orech. Nakoniec som použil sivý Sugru na pripevnenie hornej časti tyče k pásmu slúchadiel a tiež na zakrytie matice v spodnej časti zostavy. Ak ste o Sugru nepočuli, je to tvarovateľné lepidlo, ktoré sa dodáva v malých farebných vreckách - formuje sa ako Play -Doh, ale lepí sa ako superlepidlo a tvrdne ako plast!

Vzhľadom na nedávne chladné počasie trvalo Sugruovi niekoľko dní, kým úplne stvrdlo, ale slúchadlá a ich stojan boli čoskoro pripravené na konečnú montáž.

Krok 6: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Pi, HAT a Servo na lavičke fungovali dobre, takže ďalšou úlohou bolo dostať ich do prípadu. Predtým, ako som sa pustil do veľkých komponentov, použil som zvyšný sivý Sugru, aby som opravil v ovládači hlasitosti, zásuvke pre slúchadlá a vypínači „kovová páska“a triedil kozmetiku. Tiež som nalepil pôvodné tlačidlá Play, Stop, FF & Rew na kus plastového potrubia, aby zostali na správnom mieste. Bola to škoda, tentoraz znova nepoužiť žiadne z tlačidiel, ale v skutočnosti nebolo nič, čo by mohli ovládať!

Použil som posledný zo sivého Sugru, aby som udržal servo na mieste, pričom jeho hriadeľ trčal cez zväčšenú zásuvku pre slúchadlá. Presunul som sa do druhej polovice puzdra a potom som použil čierny Sugru, aby som pripevnil zostavu HAT a Pi k páskovým dverám, aby sa s nimi otvorili. Posledný malý dotyk - upevnenie v magnete GeoMag tak, aby boli dvere pevne zatvorené, som si veľmi užil.

Spojenie týchto dvoch polovíc bolo nervózne, pretože som sa obával, že sa Pi & Servo stretnú proti sebe, ale nakoniec bolo v mojej knihe veľa milimetra. Pretože funky otváracie dvere poskytnú plný prístup do interiéru pre budúcu údržbu, obidve polovice som za tepla zlepil a po utretí mastných odtlačkov prstov namontoval zostavu slúchadiel navrch - hotovo!

Krok 7: Tichá posadnutosť

Tichá posadnutosť
Tichá posadnutosť
Tichá posadnutosť
Tichá posadnutosť

Druhá cena v súťaži o opätovné použitie

Odporúča: