Satura rādītājs:

1984 WeatherMan Pi: 7 soļi (ar attēliem)
1984 WeatherMan Pi: 7 soļi (ar attēliem)

Video: 1984 WeatherMan Pi: 7 soļi (ar attēliem)

Video: 1984 WeatherMan Pi: 7 soļi (ar attēliem)
Video: Nathan Evans - Wellerman (Sea Shanty) 2024, Novembris
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Šis pārnēsājamais kasešu atskaņotājs tagad ir apkārtējās vides IoT laika displejs ar 80. gadu sākuma stilu, parādot animāciju "pašreizējie apstākļi", ritinot temperatūru un lietus varbūtības grafiku. Kad laika apstākļi mainās, servo vadāmās austiņas augšpusē virmo uz priekšu un atpakaļ kā smalks brīdinājums.

Atverot funkcionālās lentes durvis, mēs redzam, ka putekļainās oriģinālās detaļas ir aizstātas ar Raspberry Pi Zero W, Pimoroni Unicorn Hat HD (LED Matrix) un nelielu servo. Laika apstākļu dati tiek iegūti, izmantojot Python skriptu, kas vaicā īpaši precīzu Dark Sky Weather API, kas pielāgota manai konkrētajai atrašanās vietai.

Tā ir vienkārša, bet jauka izskata un funkcionāla IoT konstrukcija, kas atrodas uz pretējā galda skaļruņa manam YouTube skaitītājam, klusi informējot mani par laika apstākļiem.

Piegādes

Raspberry Pi Zero

Pimoroni vienradzis Cepure HD

Mazs servo

1984 Hitachi SP-1 Personal Stereo & Austiņas

USB WiFi adapteris

2 mm vītņots stienis

Sugru (melns un pelēks)

GeoMag magnēts

1. darbība: noņemiet lenti

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

Mana vīramāte septembrī man uzdāvināja šo jauko veco kasešu atskaņotāju, un es uzreiz iemīlējos tās ikoniskajā izskatā un kuplajās pogās. Patiesais zīmējums tomēr bija tas lielais lentes logs - pēc tam, kad tas piederēja apmēram 15 sekundes, man bija lineāls, un es biju pārsteigts, konstatējot, ka tas līdz mm ir tāds pats kā standarta Raspberry Pi HAT (aparatūra pievienota augšpusē).

Ar šo atklājumu vien pietika, lai saspiestu manu dzeguzes pulksteņa projektu tālāk “darāmo lietu” sarakstā, un es sāku strādāt uzreiz, demontējot atskaņotāju.

Izjaukšana noritēja diezgan labi, un es galu galā strādāju ar trim atšķirīgiem gabaliem - man izdevās salauzt pāris plastmasas detaļas, bet nekas, ko nevarēja salīmēt kopā.

2. solis: Dark Sky Pi

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

Es kādu laiku savā tālrunī izmantoju Dark Sky un biju patiesi pārsteigts par prognožu precizitāti, tāpēc man bija prieks redzēt, ka tie piedāvā visaptverošu API, ko es varētu izmantot šajā projektā. Ir jauki un vienkārši iestatīt arī augšā!

Vispirms dodieties uz vietni https://darksky.net/dev un reģistrējieties bezmaksas kontam - izmēģinājuma konts ļauj jums veikt 1000 API pieprasījumus dienā, kas ir pietiekami atsvaidzināšanai ik pēc 1,5 minūtēm - pietiekami bieži pat manam kontam. Lielbritānijas laika apsēstības līmenis.

Kad esat reģistrējies, jūs saņemsiet slepeno atslēgu - tas ir tas, kas jums nepieciešams, lai piekļūtu datiem, un tas tiek izmantots Python skriptā, tāpēc glabājiet to pie rokas (un, jūs zināt, noslēpumā).

Sāku, pielāgojot skriptu, ko izmantoju YouTube abonentu skaitītāja būvē, kas izmanto Python pieprasījumu moduli, lai izgūtu API datus. Manis izmantotais skripts ir pieejams vietnē GitHub, jums vienkārši jāpievieno Dark Sky API atslēga un, protams, jāaizstāj savas Latitude & Longitude vērtības.

Bija diezgan vienkārši iegūt datus par pašreizējiem laika apstākļiem, un es nolēmu izmantot elementus "Ikona", "Nokrišņu varbūtība" un "Temperatūra".

3. darbība: kods

Kods
Kods

Ja vēlaties atkārtoti izmantot vai atspērot izmantoto kodu, tas atrodas WeatherMan krātuvē GitHub - klonējiet vai lejupielādējiet mapi "weather" savā Raspberry Pi mapē "pi".

Galvenās skripta funkcijas ir šādas:

sinoptiķis.py

Šis ir galvenais skripts, kas iegūst laika apstākļu datus no Dark Sky. Jums ir jāizveido Dark Sky konts vietnē https://darksky.net/dev un jāievieto slepenā atslēga skriptā, kur norādīts. Jums arī jāievada interesējošo laika apstākļu ģeogrāfiskais platums un garums - to var atrast pakalpojumā Google Maps, vienkārši ar peles labo pogu noklikšķiniet un atlasiet "Kas šeit ir?" un jūs saņemsiet uznirstošo logu, kurā parādīts atrašanās vietas lats/garums.

Pēc API datu izgūšanas weatherman.py nodod parametrus vairākiem mazākiem skriptiem, lai sāktu animācijas un austiņas.

Skripts ir iestatīts palaist startēšanas laikā, rediģējot startēšanas failu …

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

… Un pievienojot:

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

faila beigās.

icon.py

Šis skripts no skripta weatherman.py ņem parametru "pašreizējie apstākļi" un izmanto to, lai parādītu 16x16 laika animāciju - tie visi tiek glabāti mapē "ikonas" un ir daļa no standarta Unicorn HAT HD dokumentācijas. Jūs varat viegli rediģēt-p.webp

phones.py

Ja laika apstākļi ir mainījušies no pēdējā API pieprasījuma (vai tas ir jauns sāknēšanas sākums un nav sniega), tad šis skripts tiek izsaukts no weatherman.py un uzdod servo “kustēties” uz priekšu un atpakaļ, lai brīdinātu, ka apstākļi ir mainīts.

lietus.py

Šis skripts pieņem "nokrišņu varbūtības" parametru no weatherman.py un uz Unicorn HAT parāda zilas līnijas, kas attiecas uz varbūtības %. Ja 100% visas 16 rindas spīdēs zilā krāsā, ja 50% tikai 8 rindas utt.

temp.py

Vēl viens standarta Pimoroni skripts, šis paņem "temp" parametru no weatherman.py un parāda to ar ritināmu tekstu. Tas ir iestatīts izmantot Herkules truetype fontu (mapē "fonts"), bet, ja vēlaties, var izmantot standarta fontu. Jūs pat varētu to uzlabot, lai parādītais teksts mainītu krāsu atkarībā no temperatūras vērtības!

4. solis: vienradža cepure un servo

Vienradža cepure un servo
Vienradža cepure un servo
Vienradža cepure un servo
Vienradža cepure un servo
Vienradža cepure un servo
Vienradža cepure un servo

Spēja iegūt datus par laika apstākļiem bija lieliska, taču tagad man tie bija jāparāda vienradza cepurē. Es paskatījos dažādus laikapstākļu ikonu komplektus internetā un biju pusceļā tos pielāgojis, kad sapratu, ka Pimoroni dokumentācijā ir iekļauts laika apstākļu piemērs - un tas ietvēra laika animācijas!

Tas ietaupīja milzīgu darba apjomu, un es īsā laikā sāku darboties ar animētu ikonu pašreizējiem apstākļiem, nedaudz ritinošu tekstu par temperatūru un grafiku nokrišņu daudzumam (kas ietvēra dažus vieglus skaitļus). Es turēju skriptus atsevišķi un izmantoju Python apakšprocesa moduli, lai pārsūtītu parametrus turp un atpakaļ.

Servo pievienošana bija ideāls transportlīdzeklis šiem brīdinājumiem, jo tas radītu nelielu troksni un piesaistītu uzmanību, vienlaikus neesot pārāk kaitinošs. Tā kā HAT jau aizņem daudzas Pi tapas, es lodēju servo kabeļus tāfeles apakšpusē, izmantojot 17. tapu, lai kontrolētu servo kustību, izmantojot impulsa platuma modulāciju.

Servo ieslēgšana no Pi nebija ideāla, taču to kādreiz varētu izmantot tikai īslaicīgai kņadai, tāpēc precizitāte šeit nebija liela problēma. Tas tika savienots, kā parādīts diagrammā, ar brūnu kabeli līdz GND, sarkanu uz 5v un oranžu (vadības kabelis) ar GPIO17.

Visbeidzot, es rediģēju dažus laika animācijas failus GIMP, lai pievienotu savus personiskos pieskārienus, piemēram, sikspārņus uz mēness un smaidīgu seju saulē. Es arī pievienoju pielāgotu "Old Tech New Spec" kasešu riteņa animāciju, kas tiks atskaņota startēšanas laikā, tikai prieka pēc.

5. darbība: austiņu kustība

Austiņu kustība
Austiņu kustība
Austiņu kustība
Austiņu kustība
Austiņu džinkstēšana
Austiņu džinkstēšana
Austiņu džinkstēšana
Austiņu džinkstēšana

WeatherMan ideja bija tāda, ka tas pasīvi sēdēs uz mana galda skaļruņa, laiku pa laikam parādot laika apstākļus, bet es gribēju, lai tas darītu tikai nedaudz vairāk! Austiņas, kas bija līdzi, bija grauzdiņi, bet klasiski 80. gadi, tāpēc es nolēmu ar tām kaut ko darīt. Pēc visu kabeļu noņemšanas un salauztā karsta līmēšanas man palika trīs daļas, 3,5 mm spraudnis, rombveida poga un paši tālruņi uz elastīgās metāla lentes.

Man radās ideja, ka, ja es varētu atrast veidu, kā uzstādīt tālruņus ierīces augšpusē, es varētu likt tiem griezties uz priekšu un atpakaļ ar servo un izmantot to kā papildu paziņojumu.

Pirmkārt, es izurbju 3,5 mm kontaktdakšu un demontēju dimanta slēdzi, pēc tam noslīdēju uz vītņotā stieņa gabala. Tālāk es pielīmēju uzgriezni plastmasas savienotājam, lai stienis varētu droši (un taisni) sēdēt virs servo. Stieņa otrā galā es pievienoju citu riekstu. Visbeidzot, es izmantoju pelēko Sugru, lai savienotu stieņa augšdaļu ar austiņu joslu un arī aizsegtu uzgriezni montāžas apakšā. Ja neesat dzirdējuši par Sugru, tā ir veidojama līme, kas tiek piegādāta mazās krāsainās paciņās - tā veidojas kā Play -Doh, bet pielīp kā superlīme un sacietē kā plastmasa!

Ņemot vērā nesenos aukstos laikapstākļus, Sugru pilnībā nocietināja dažas dienas, taču austiņas un to statīvs drīz bija gatavi galīgajai montāžai.

6. darbība: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Pi, HAT un Servo strādāja labi uz soliņa, tāpēc nākamais uzdevums bija viņus iesaistīt lietā. Pirms ķerties pie lielajām sastāvdaļām, es izmantoju kādu pāri palikušu pelēko Sugru, lai fiksētu skaļuma pārslēgu, austiņu ligzdu un "metāla lentes" slēdzi, sakārtojot kosmētiku. Es arī pielīmēju oriģinālās Play, Stop, FF & Rew pogas pie plastmasas caurules gabala, lai tās paliktu īstajā vietā. Bija kauns šoreiz atkārtoti neizmantot nevienu pogu, taču nebija īsti ko kontrolēt!

Es izmantoju pēdējo no pelēkā Sugru, lai noturētu servo stāvoklī, ar vārpstu izbīdot caur palielināto austiņu ligzdu. Pārejot uz korpusa otro pusi, es pēc tam izmantoju kādu melnu Sugru, lai piestiprinātu HAT un Pi komplektu pie lentes durvīm, lai tās ar tām atvērtos. Man ļoti patika pēdējais mazais pieskāriens - fiksēšana GeoMag magnētā, lai durvis būtu cieši aizvērtas.

Divu pusīšu salikšana kopā bija nervozs bizness, jo baidījos, ka Pi & Servo sadursies savā starpā, bet galu galā manā grāmatā bija daudz milimetra, ko var rezervēt. Tā kā greznās atveramās durvis sniegtu pilnu piekļuvi interjeram turpmākai apkopei, es vienkārši karsti salīmēju abas puses kopā un pēc taukaino pirkstu nospiedumu noslaukšanas uzliku austiņu komplektu virsū - darīts!

7. solis: klusa apsēstība

Klusa apsēstība
Klusa apsēstība
Klusa apsēstība
Klusa apsēstība

Otrā balva atkārtotas izmantošanas konkursā

Ieteicams: