Isi kandungan:

1984 WeatherMan Pi: 7 Langkah (dengan Gambar)
1984 WeatherMan Pi: 7 Langkah (dengan Gambar)

Video: 1984 WeatherMan Pi: 7 Langkah (dengan Gambar)

Video: 1984 WeatherMan Pi: 7 Langkah (dengan Gambar)
Video: Bob Dylan - Subterranean Homesick Blues (Official HD Video) 2024, November
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Pemain kaset mudah alih ini kini menjadi paparan cuaca IoT ambien dengan gaya awal 80-an, memaparkan animasi "keadaan semasa", suhu bergulir dan grafik kebarangkalian hujan melalui tingkap pita. Apabila keadaan cuaca mengubah fon kepala yang dikendalikan servo di atas bergoyang-goyang ke belakang sebagai amaran halus.

Membuka pintu pita berfungsi kita dapat melihat bahawa komponen asli yang berdebu telah diganti dengan Raspberry Pi Zero W, Pimoroni Unicorn Hat HD (LED Matrix) dan servo kecil. Data cuaca bersumber menggunakan skrip Python yang meminta API Dark Sky Weather yang sangat tepat, disesuaikan dengan lokasi khusus saya.

Ia adalah binaan IoT yang ringkas tetapi cantik dan berfungsi yang terletak di pembesar suara meja bertentangan dengan kaunter YouTube saya, dengan senyap-senyap menjaga saya dengan cuaca.

Bekalan

Raspberry Pi Zero

Pimoroni Unicorn HAT HD

Servo Kecil

1984 Stereo & Headphone Peribadi Hitachi SP-1

Penyesuai WiFi USB

Batang Berulir 2mm

Sugru (Hitam & Kelabu)

Magnet GeoMag

Langkah 1: Tape Teardown

Pita Teardown
Pita Teardown
Pita Teardown
Pita Teardown
Pita Teardown
Pita Teardown

Saya diberi pemain kaset lama yang indah ini oleh ibu mertua saya pada bulan September dan langsung jatuh cinta dengan penampilan ikonik dan butang chunky. Kekurangan sebenarnya adalah tetingkap pita besar itu - setelah memilikinya kira-kira 15 saat, saya mempunyai penguasa keluar, dan kagum apabila mendapati ukurannya sama dengan ukuran Raspberry Pi HAT (Hardware Attached on Top).

Penemuan itu sahaja sudah cukup untuk membongkar projek jam cuckoo saya lebih jauh dari senarai "yang harus dilakukan" dan saya mula bekerja dengan segera, dengan membongkar pemain itu.

Teardown berjalan lancar dan akhirnya saya dapat bekerja dengan tiga kepingan yang berbeza - saya berjaya memecahkan beberapa bahagian plastik, tetapi tidak ada yang tidak dapat dilekatkan bersama.

Langkah 2: Dark Sky Pi

Pi Langit Gelap
Pi Langit Gelap
Pi Langit Gelap
Pi Langit Gelap
Pi Langit Gelap
Pi Langit Gelap

Saya telah menggunakan Dark Sky di telefon saya untuk sekian lama dan sangat kagum dengan ketepatan ramalan, jadi saya gembira melihat mereka menawarkan API komprehensif yang dapat saya gunakan dalam projek ini. Ia bagus dan mudah untuk disiapkan naik juga!

Mula-mula pergi ke https://darksky.net/dev dan daftar untuk akaun percuma - akaun "percubaan" membolehkan anda membuat 1000 permintaan API sehari, yang cukup untuk penyegaran setiap 1.5 minit - cukup kerap bahkan untuk saya Tahap obsesi cuaca di Britain.

Setelah mendaftar, anda akan mendapat "Rahsia Kunci" - inilah yang anda perlukan untuk mengakses data dan ia digunakan dalam skrip Python, jadi pastikan ia berguna (dan, anda tahu, rahsia).

Saya bermula dengan mengadaptasi skrip yang saya gunakan dalam build Counter Subscriber YouTube, yang menggunakan modul Requests di Python untuk mengambil data API. Skrip yang saya gunakan ada di GitHub, anda hanya perlu menambahkan kunci Dark Sky API anda dan, tentu saja, menggantikan nilai Latitud & Bujur anda sendiri.

Cukup mudah untuk mengumpulkan data mengenai keadaan cuaca semasa, dan saya memutuskan untuk menggunakan elemen "Ikon", "Kebarangkalian Kerpasan" dan "Suhu".

Langkah 3: Kodnya

Kod tersebut
Kod tersebut

Sekiranya anda ingin menggunakan semula atau melonjak dari kod yang saya gunakan, itu ada di repositori WeatherMan di GitHub - klon atau muat turun folder "cuaca" ke dalam folder "pi" pada Raspberry Pi anda.

Fungsi skrip utama adalah seperti berikut:

Weatherman.py

Ini adalah skrip utama yang mengekstrak data cuaca dari Dark Sky. Anda perlu menyediakan akaun Dark Sky di https://darksky.net/dev dan memasukkan Kunci Rahsia anda dalam skrip yang dinyatakan. Anda juga perlu memasukkan garis lintang & garis bujur lokasi cuaca yang anda minati - ini boleh didapati di Peta Google, cukup klik kanan dan pilih "Apa Sini?" dan anda akan mendapat pop timbul yang menunjukkan lat / panjang lokasi.

Setelah mengambil data API, Weatherman.py meneruskan parameter ke beberapa skrip yang lebih kecil untuk memulakan animasi dan gegaran fon kepala.

Skrip ditetapkan untuk dijalankan pada permulaan dengan mengedit fail permulaan…

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

… dan menambah:

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

di akhir fail.

icon.py

Skrip ini mengambil parameter "keadaan semasa" dari skrip weatherman.py dan menggunakannya untuk memaparkan animasi cuaca 16x16 - semuanya disimpan dalam folder "ikon" dan merupakan sebahagian daripada dokumentasi Unicorn HAT HD standard. Anda boleh mengedit fail animasi-p.webp

telefon.py

Sekiranya keadaan cuaca telah berubah dari permintaan API terakhir (atau ini adalah but baru dan tidak turun salji) maka skrip ini dipanggil dari weatherman.py dan memerintahkan servo untuk "jiggle" bolak-balik untuk memberitahu anda bahawa keadaan telah berubah.

end.py

Skrip ini menerima parameter "kebarangkalian curah hujan" dari weatherman.py dan memaparkan garis dengan warna biru pada Unicorn HAT yang berkaitan dengan% kebarangkalian. Sekiranya 100% semua 16 baris akan bersinar biru, jika 50% hanya 8 baris dll.

temp.py

Skrip Pimoroni standard lain, yang ini mengambil parameter "temp" dari weatherman.py dan memaparkannya dengan menatal teks. Ini ditetapkan untuk menggunakan font truetype Herkules (dalam folder "font") tetapi boleh menggunakan font standard jika anda mahu. Anda bahkan boleh memperbaikinya sehingga teks yang dipaparkan berubah warna bergantung pada nilai suhu!

Langkah 4: HAT & Servo Unicorn

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

Mampu mengetahui data cuaca sangat bagus, tetapi sekarang saya perlu memaparkannya di Unicorn HAT. Saya melihat pelbagai set ikon cuaca di internet dan sudah lama menyesuaikannya ketika menyedari bahawa ada contoh cuaca yang disertakan dengan dokumentasi Pimoroni - dan ini termasuk animasi cuaca!

Ini menjimatkan sejumlah besar pekerjaan, dan saya tidak aktif dalam masa yang singkat, dengan ikon animasi untuk keadaan semasa, beberapa teks bergulir untuk suhu dan grafik untuk% curah hujan (yang melibatkan beberapa matematik ringan). Saya memisahkan skrip dan menggunakan modul Subprocess Python untuk meneruskan parameter ke sana kemari.

Menambah servo adalah kenderaan yang sesuai untuk amaran ini, kerana ia akan membuat sedikit kebisingan dan menarik perhatian tanpa terlalu menjengkelkan. Dengan HAT sudah menggunakan banyak pin Pi, saya memasangkan kabel servo ke bahagian bawah papan, menggunakan Pin 17 untuk mengawal pergerakan servo menggunakan Modulasi Lebar Lebar.

Menghidupkan servo dari Pi tidak ideal, tetapi hanya akan digunakan untuk jiggle seketika sehingga ketepatan bukan masalah besar di sini. Ia tersambung seperti yang ditunjukkan dalam rajah, dengan kabel Brown ke GND, Merah hingga 5v dan Orange (kabel kawalan) ke GPIO17.

Terakhir saya mengedit beberapa fail animasi cuaca di GIMP untuk menambahkan sentuhan peribadi saya sendiri, seperti kelelawar di bulan dan wajah tersenyum di bawah sinar matahari. Saya juga menambahkan animasi roda kaset "Old Tech New Spec" khusus untuk dimainkan semasa permulaan, hanya untuk bersenang-senang.

Langkah 5: Jiggle Headphone

Jiggle Fon Kepala
Jiggle Fon Kepala
Jiggle Fon Kepala
Jiggle Fon Kepala
Jiggle Fon Kepala
Jiggle Fon Kepala
Jiggle Fon Kepala
Jiggle Fon Kepala

Idea WeatherMan adalah bahawa ia akan duduk secara pasif di pembesar suara meja saya, kadang-kadang memaparkan cuaca, tetapi saya mahu ia berlaku sedikit lagi! Fon telinga yang disertakan dengannya adalah roti bakar tetapi klasik 80-an, jadi saya memutuskan untuk melakukan sesuatu dengan mereka. Setelah menanggalkan semua kabel dan melekatkan yang patah, saya tinggal dengan tiga bahagian, palam 3.5mm, butang berlian dan telefon bimbit mereka sendiri pada jalur logam fleksibel mereka.

Idea itu menunjukkan kepada saya bahawa jika saya dapat mencari cara memasang telefon di bahagian atas unit maka saya boleh menjadikannya berputar berulang-alik dengan servo, dan menggunakannya sebagai pemberitahuan tambahan.

Mula-mula saya menggerakkan palam 3.5mm dan melepas suis berlian, kemudian memasukkannya ke sekeping batang berulir. Seterusnya saya menempelkan kacang ke penyambung plastik, supaya rod dapat duduk dengan aman (dan lurus) di atas servo. Di hujung batang yang lain saya tambah kacang lain. Akhirnya saya menggunakan Sugru kelabu untuk mengikat bahagian atas rod ke pita fon telinga dan juga untuk menutup kacang di bahagian bawah pemasangan. Sekiranya anda belum pernah mendengar tentang Sugru, ia adalah gam yang boleh dibentuk yang terdapat dalam sachet berwarna kecil - ia membentuk seperti Play-Doh tetapi melekat seperti superglue dan keras seperti plastik!

Dengan cuaca sejuk baru-baru ini, Sugru mengambil masa beberapa hari untuk mengeras sepenuhnya, tetapi fon kepala dan pendiriannya segera siap untuk pemasangan akhir.

Langkah 6: Perhimpunan

perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan
perhimpunan

Pi, HAT dan Servo semuanya bekerja dengan baik di bangku simpanan sehingga tugas berikutnya adalah memasukkan mereka ke dalam kes itu. Sebelum memulakan komponen besar saya menggunakan Sugru abu-abu yang tersisa untuk memperbaiki dail kelantangan, soket fon kepala dan suis "pita logam", menyusun kosmetik. Saya juga menempelkan butang Play, Stop, FF & Rew yang asli ke sebatang saluran plastik sehingga mereka berada di tempat yang tepat. Sayang sekali tidak menggunakan butang kali ini tetapi sebenarnya tidak ada yang dapat mereka kendalikan!

Saya menggunakan Sugru abu-abu yang terakhir untuk menahan servo pada kedudukannya, dengan porosnya menerobos soket fon kepala yang diperbesar. Beralih ke bahagian lain dari kes itu, saya kemudian menggunakan beberapa Sugru hitam untuk mengikat pemasangan HAT dan Pi ke pintu pita, supaya mereka dapat membukanya. Saya benar-benar menikmati sentuhan akhir yang sedikit dalam magnet GeoMag supaya pintu dapat ditutup dengan kuat.

Menggabungkan kedua-dua bahagian adalah perniagaan yang gementar kerana saya khuatir Pi & Servo akan bertembung antara satu sama lain, tetapi pada akhirnya ada sekitar satu milimeter yang tersisa, banyak dalam buku saya. Sebagai pintu pembuka yang funky akan memberikan akses penuh ke bahagian dalam untuk servis di masa depan, saya hanya menempelkan kedua bahagian itu bersama-sama, dan setelah saya mengelap cap jari berminyak saya, pasangkan pemasangan fon kepala di atas - selesai!

Langkah 7: Obsesi Tenang

Obsesi Tenang
Obsesi Tenang
Obsesi Tenang
Obsesi Tenang

Hadiah Kedua dalam Peraduan Penggunaan Semula

Disyorkan: