Mündəricat:

1984 WeatherMan Pi: 7 addım (şəkillərlə birlikdə)
1984 WeatherMan Pi: 7 addım (şəkillərlə birlikdə)

Video: 1984 WeatherMan Pi: 7 addım (şəkillərlə birlikdə)

Video: 1984 WeatherMan Pi: 7 addım (şəkillərlə birlikdə)
Video: The Giant Wave - The Perfect Storm (3/5) Movie CLIP (2000) HD 2024, Noyabr
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Bu portativ kaset pleyeri, 80 -ci illərin əvvəllərində "mövcud şərtlər" animasiyasını, sürüşmə temperaturunu və yağış ehtimalı qrafikini lent pəncərəsindən əks etdirən bir mühit IoT hava ekranıdır. Hava şəraiti dəyişdikdə, yuxarıdakı servo idarə olunan qulaqlıqlar incə bir xəbərdarlıq olaraq irəli-geri çalır.

Funksional lent qapısını açaraq görürük ki, tozlu orijinal komponentlər bir Raspberry Pi Zero W, Pimoroni Unicorn Hat HD (LED Matrix) və kiçik bir servo ilə əvəz edilmişdir. Hava məlumatları, xüsusi yerə uyğunlaşdırılmış ultra dəqiq Dark Sky Weather API-ni sorğu edən Python skriptindən istifadə olunur.

YouTube sayğacımın əks masası dinamikində oturan, məni sakitcə hava haqqında məlumatlandıran sadə, lakin sevimli görünüşlü və işlək bir IoT quruluşudur.

Təchizat

Moruq Pi Sıfır

Pimoroni Unicorn HAT HD

Kiçik Servo

1984 Hitachi SP-1 Şəxsi Stereo və Qulaqlıqlar

USB WiFi adapteri

2 mm yivli çubuq

Sugru (Qara və Boz)

GeoMag maqnit

Addım 1: Bant Yırtma

Bant Yırtma
Bant Yırtma
Bant Yırtma
Bant Yırtma
Bant Yırtma
Bant Yırtma

Sentyabr ayında qayınanam tərəfindən mənə bu sevimli köhnə kasetçini hədiyyə etdilər və dərhal simvolik görünüşünə və düymələrinə aşiq oldum. Əsl çəkiliş o böyük lentli pəncərə idi - təxminən 15 saniyə sahib olduqdan sonra bir hökmdar çıxartdım və standart Raspberry Pi HAT (Üstə Əlavə edilmiş Avadanlıq) ilə eyni ölçüdə olduğunu görəndə heyrətləndim.

Təkcə bu kəşf, kuku saatı layihəmi "etmək" siyahısında daha da aşağı salmaq üçün kifayət etdi və oyunçunu sökərək işə başladım.

Sökülmə olduqca yaxşı getdi və işləmək üçün üç fərqli parça ilə sona çatdım - bir neçə plastik hissəni sındırmağı bacardım, amma bir -birinə yapışdırıla bilməyən heç nə yoxdur.

Addım 2: Qaranlıq Göy Pi

Qaranlıq Göy Pi
Qaranlıq Göy Pi
Qaranlıq Göy Pi
Qaranlıq Göy Pi
Qaranlıq Göy Pi
Qaranlıq Göy Pi

Bir müddətdir telefonumda Dark Sky istifadə edirəm və proqnozların düzgünlüyünə heyran oldum, buna görə də bu layihədə istifadə edə biləcəyim hərtərəfli bir API təklif etdiklərini görəndə çox sevindim. yuxarı da!

Əvvəlcə https://darksky.net/dev saytına daxil olun və pulsuz bir hesab üçün qeydiyyatdan keçin - "sınaq" hesabı gündə 1000 API tələbi etməyə imkan verir ki, bu da hər 1,5 dəqiqədə bir yeniləmək üçün kifayətdir. İngilis hava səviyyəsi.

Qeydiyyatdan keçdikdən sonra "Gizli Açar" alacaqsınız - bu məlumatlara daxil olmaq üçün lazım olan şeydir və Python skriptində istifadə olunur, ona görə də əlinizdə saxlayın (və bildiyiniz kimi gizli).

API məlumatlarını əldə etmək üçün Python -dakı İstəklər modulundan istifadə edən YouTube Abunə Sayacı quruluşunda istifadə etdiyim bir skriptin uyğunlaşdırılması ilə başladım. İstifadə etdiyim skript GitHub -dadır, sadəcə Dark Sky API açarınızı əlavə etməlisiniz və əlbəttə ki, öz Enlem və Boylam dəyərlərinizi əvəz etməlisiniz.

Mövcud hava şəraiti haqqında məlumatları çıxarmaq olduqca sadə idi və "Simge", "Yağış Ehtimalları" və "Temperatur" elementlərindən istifadə etmək qərarına gəldim.

Addım 3: Kod

Kod
Kod

İstifadə etdiyim kodu yenidən istifadə etmək və ya tramplindən istifadə etmək istəyirsinizsə, GitHub -dakı WeatherMan deposundadır - klonlayın və ya "hava" qovluğunu Raspberry Pi -dəki "pi" qovluğuna yükləyin.

Əsas skript funksiyaları aşağıdakılardır:

weatherman.py

Qaranlıq Göydən hava məlumatlarını çıxaran əsas skriptdir. Https://darksky.net/dev ünvanından Dark Sky hesabı qurmalı və Gizli Açarınızı göstərildiyi yerə daxil etməlisiniz. Maraqlandığınız hava məkanının enini və uzunluğunu da daxil etməlisiniz - bu Google Xəritədə tapıla bilər, yalnız sağ vurun və "Burada nə var?" və yerin uzunluğunu göstərən bir pop-up alacaqsınız.

API məlumatlarını aldıqdan sonra weatherman.py, animasiyaların və qulaqlıqların çalmasını başlatmaq üçün parametrləri bir neçə kiçik skriptə keçir.

Skript, başlanğıc faylını düzəldərək başlanğıcda işə salınacaq …

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

… Və əlavə edir:

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

faylın sonunda.

icon.py

Bu skript, weatherman.py skriptindən "cari şərtlər" parametrini götürür və 16x16 hava animasiyasını göstərmək üçün istifadə edir - bunların hamısı "nişanlar" qovluğunda saxlanılır və standart Unicorn HAT HD sənədlərinin bir hissəsidir.-p.webp

telefonlar.py

Əgər hava şəraiti son API tələbindən dəyişibsə (və ya təzə çəkmədirsə və qar yağmırsa), bu skript weatherman.py -dən çağırılır və şərtlərin olduğunu bildirmək üçün servoya irəli -geri "çalmaq" əmrini verir. dəyişdi.

precip.py

Bu skript, weatherman.py -dən "yağıntı ehtimalı" parametrini qəbul edir və % ehtimala aid olan Unicorn HAT -da mavi rəngli xətləri göstərir. 100% bütün 16 satırlar mavi, 50% isə yalnız 8 satır və s.

temp.py

Başqa bir standart Pimoroni skriptidir, bu, weatherman.py -dən "temp" parametri götürür və sürüşdürmə mətni ilə göstərir. Herkules truetype şriftini ("şriftlər" qovluğunda) istifadə etmək üçün qurulmuşdur, ancaq istəsəniz standart şriftdən istifadə edə bilərsiniz. Hətta göstərə biləcəyiniz mətn temperatur dəyərindən asılı olaraq rəngini dəyişə bilər!

Addım 4: Unicorn HAT və Servo

Unicorn HAT və Servo
Unicorn HAT və Servo
Unicorn HAT və Servo
Unicorn HAT və Servo
Unicorn HAT və Servo
Unicorn HAT və Servo

Hava məlumatlarını tuta bilmək əla idi, amma indi onu Unicorn HAT -da göstərmək lazım idi. İnternetdəki müxtəlif hava nişanlar dəstinə baxdım və Pimoroni sənədlərində hava nümunəsi olduğunu və hava animasiyalarının da olduğunu anladığım zaman bunları uyğunlaşdırdım.

Bu, böyük miqdarda işdən xilas oldu və hazırkı şərait üçün cizgi simvolu, temperatur üçün bəzi sürüşmə mətni və yağıntıların % -i üçün bir qrafik (bir az yüngül riyaziyyatı ehtiva edən) ilə bir anda işə başladım. Skriptləri ayrı saxladım və parametrləri ora -bura ötürmək üçün Python -un Alt Prosess modulundan istifadə etdim.

Bir az səs-küy çıxaracağı və çox əsəbiləşmədən göz oxşayacağı üçün servoya əlavə edilməsi bu xəbərdarlıqlar üçün ideal vasitə idi. HAT artıq Pi sancaqlarının bir çoxunu götürdükdə, Pulse Width Modulation istifadə edərək servonun hərəkətini idarə etmək üçün Pin 17 -dən istifadə edərək servo kabelləri lövhənin altına lehimlədim.

Servodan Pi -dən istifadə etmək ideal deyildi, ancaq dəqiqəlik burada böyük bir şey olmadığından yalnız bir anlıq çırpıntı üçün istifadə ediləcəkdi. Diaqramda göstərildiyi kimi, Brown kabelini GND -yə, Qırmızını 5v -ə və Orange -ı (idarəetmə kabelini) GPIO17 -yə bağladı.

Nəhayət, aydakı yarasalar və günəşdəki gülümsəyən üzlər kimi şəxsi toxunuşlarımı əlavə etmək üçün GIMP -də bəzi hava animasiya sənədlərini düzəltdim. Başlanğıcda əylənmək üçün xüsusi "Old Tech New Spec" kaset təkər animasiyasını da əlavə etdim.

Addım 5: Qulaqcıqların çırpınması

Qulaqlıq Jiggle
Qulaqlıq Jiggle
Qulaqlıq Jiggle
Qulaqlıq Jiggle
Qulaqlıq Jiggle
Qulaqlıq Jiggle
Qulaqlıq Jiggle
Qulaqlıq Jiggle

WeatherMan -ın fikri, masamın dinamikində passiv şəkildə oturub havanı bəzən göstərməsi idi, amma bunun bir az daha çox olmasını istəyirdim! Qulaqlıqlar tost idi, amma 80 -ci illərin klassikləri idi, buna görə də onlarla bir şey etmək qərarına gəldim. Bütün kabelləri soyandan və qırılan parçanı isti yapışdırdıqdan sonra üç hissədən, 3,5 mm-lik fişdən, almaz şəkilli düymədən və telefonların özlərindən çevik metal bantla qaldım.

Fikir məni təəccübləndirdi ki, əgər telefonları vahidin üstünə quraşdırmağın bir yolunu tapa bilsəm, onları servo ilə irəli və irəli döndərə bilərəm və bundan əlavə bildiriş kimi istifadə edə bilərəm.

Əvvəlcə 3,5 mm -lik fişi qazdım və almaz açarını sökdüm, sonra bunları yivli çubuq parçasına sürüşdürdüm. Sonra çubuğun servonun üstündə etibarlı (və düz) oturmasını təmin etmək üçün plastik bir bağlayıcıya bir qoz yapışdırdım. Çubuğun digər ucuna başqa bir qoz əlavə etdim. Nəhayət, çubuğun üst hissəsini qulaqcıq bandına bağlamaq və montajın altındakı qozu örtmək üçün boz Sugru istifadə etdim. Sugru haqqında eşitməmisinizsə, kiçik rəngli çantalarda olan yuvarlaq bir yapışdırıcıdır - Play -Doh kimi qəliblənir, amma super yapışqan kimi yapışır və plastik kimi bərkdir!

Son soyuq hava ilə Sugru'nun tam sərtləşməsi bir neçə gün çəkdi, ancaq qulaqlıqlar və stend tezliklə son montaj üçün hazır idi.

Addım 6: Quraşdırma

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Pi, HAT və Servo hamısı dəzgahda yaxşı işləyirdi, buna görə də növbəti iş onları işə salmaq idi. Böyük komponentlərə başlamazdan əvvəl kosmetikanı çeşidləyərək, səs düyməsini, qulaqlıq yuvasını və "metal lent" açarını düzəltmək üçün bir az sol boz Sugru istifadə etdim. Orijinal Play, Stop, FF & Rew düymələrini də bir plastik boruya yapışdırdım ki, doğru yerdə qalsınlar. Bu dəfə heç bir düyməni təkrar istifadə etməmək ayıbdı, amma idarə edəcəkləri bir şey yox idi!

Gülü Sugru'nun sonundan istifadə edərək servonun mövqeyini tutmuşam, mili genişlənmiş qulaqlıq yuvasından keçir. Davanın digər yarısına keçərək HAT və Pi montajını lent qapısına bağlamaq üçün bir az qara Sugru istifadə etdim ki, onunla açılsınlar. Qapının möhkəm bağlanması üçün GeoMag maqnitinə düzəltməklə son kiçik toxunuşdan çox zövq aldım.

Pi və Servo -nun bir -birinə qarşı çıxacağından qorxduğum üçün iki yarıyı bir araya gətirmək əsəbi bir iş idi, amma sonda kitabımda bol millimetrə qədər ehtiyat qaldı. Funky açılış qapısı gələcək xidmət üçün interyerə tam giriş imkanı verdiyinə görə, iki yarısını bir -birinə isti yapışdırdım və yağlı barmaq izlərimi sildikdən sonra qulaqlıq dəstini yuxarıya bağladım - tamam!

Addım 7: Sakit Obsesyon

Sakit vəsvəsə
Sakit vəsvəsə
Sakit vəsvəsə
Sakit vəsvəsə

Yenidən Yarışmada İkinci Mükafat

Tövsiyə: