Daftar Isi:

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

Pemutar kaset portabel ini sekarang menjadi tampilan cuaca IoT ambient dengan gaya awal 80-an, menampilkan animasi "kondisi saat ini", suhu bergulir dan grafik probabilitas hujan melalui jendela kaset. Saat kondisi cuaca berubah, headphone yang dikontrol servo di bagian atas bergoyang maju mundur sebagai peringatan halus.

Membuka pintu pita fungsional kita dapat melihat bahwa 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 menanyakan API Cuaca Langit Gelap yang sangat akurat, yang disesuaikan dengan lokasi spesifik saya.

Ini adalah bangunan IoT yang sederhana namun tampak cantik dan fungsional yang terletak di speaker meja yang berlawanan dengan penghitung YouTube saya, secara diam-diam membuat saya tetap up to date dengan cuaca.

Perlengkapan

Raspberry Pi Nol

Pimoroni Unicorn HAT HD

Servo Kecil

Stereo & Headphone Pribadi Hitachi SP-1 1984

Adaptor Wi-Fi USB

Batang Berulir 2mm

Sugru (Hitam & Abu-abu)

Magnet GeoMag

Langkah 1: Tape Teardown

Pembongkaran Pita
Pembongkaran Pita
Pembongkaran Pita
Pembongkaran Pita
Pembongkaran Pita
Pembongkaran Pita

Saya diberi pemutar kaset tua yang indah ini oleh ibu mertua saya pada bulan September dan langsung jatuh cinta dengan tampilan ikonik dan kancing tebalnya. Yang menarik sebenarnya adalah jendela pita besar itu - setelah memilikinya sekitar 15 detik saya mengeluarkan penggaris, dan kagum menemukan bahwa itu, hingga mm, ukurannya sama dengan HAT Raspberry Pi standar (Perangkat Keras Terlampir di Atas).

Penemuan itu saja sudah cukup untuk mendorong proyek jam kukuk saya lebih jauh ke bawah daftar "yang harus dilakukan" dan saya langsung mulai bekerja, dengan membongkar pemutar.

Pembongkaran berjalan cukup baik dan saya berakhir dengan tiga bagian berbeda untuk dikerjakan - saya berhasil memecahkan beberapa bagian plastik, tetapi tidak ada yang tidak dapat direkatkan kembali.

Langkah 2: Pi Langit Gelap

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

Saya telah menggunakan Dark Sky di ponsel saya untuk sementara waktu dan sangat terkesan dengan keakuratan prakiraan, jadi saya senang melihat mereka menawarkan API komprehensif yang dapat saya gunakan dalam proyek ini. Pengaturannya bagus dan mudah naik juga!

Pertama buka https://darksky.net/dev dan daftar untuk mendapatkan akun gratis - akun "percobaan" memungkinkan Anda membuat 1000 permintaan API sehari, yang cukup untuk penyegaran setiap 1,5 menit - cukup sering bahkan untuk saya Obsesi cuaca tingkat Inggris.

Setelah mendaftar, Anda akan mendapatkan "Kunci Rahasia" - inilah yang Anda perlukan untuk mengakses data dan digunakan dalam skrip Python, jadi simpanlah itu (dan, Anda tahu, rahasia).

Saya mulai dengan mengadaptasi skrip yang saya gunakan dalam pembuatan Penghitung Pelanggan YouTube, yang menggunakan modul Permintaan dengan Python untuk mengambil data API. Skrip yang saya gunakan ada di GitHub, Anda hanya perlu menambahkan kunci API Dark Sky Anda dan, tentu saja, mengganti nilai Latitude & Longitude Anda sendiri.

Cukup mudah untuk menarik data tentang kondisi cuaca saat ini, dan saya memutuskan untuk menggunakan elemen "Ikon", "Probabilitas Curah Hujan" dan "Suhu".

Langkah 3: Kode

Kode
Kode

Jika Anda ingin menggunakan kembali atau melompati kode yang saya gunakan, itu ada di repositori WeatherMan di GitHub - klon atau unduh folder "cuaca" ke dalam folder "pi" di Raspberry Pi Anda.

Fungsi skrip utama adalah sebagai berikut:

cuaca.py

Ini adalah skrip utama yang mengekstrak data cuaca dari Dark Sky. Anda harus menyiapkan akun Langit Gelap di https://darksky.net/dev dan memasukkan Kunci Rahasia Anda ke dalam skrip yang ditunjukkan. Anda juga harus memasukkan garis lintang & bujur dari lokasi cuaca yang Anda minati - ini dapat ditemukan di Google Maps, cukup klik kanan dan pilih "What's Here?" dan Anda akan mendapatkan pop-up yang menunjukkan lat/long dari lokasi.

Setelah mengambil data API, weatherman.py meneruskan parameter ke beberapa skrip yang lebih kecil untuk memulai animasi dan goncangan headphone.

Script diatur untuk berjalan saat startup dengan mengedit file startup…

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

… dan menambahkan:

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

di akhir file.

icon.py

Skrip ini mengambil parameter "kondisi saat ini" dari skrip weatherman.py dan menggunakannya untuk menampilkan animasi cuaca 16x16 - ini semua disimpan di folder "ikon" dan merupakan bagian dari dokumentasi standar Unicorn HAT HD. Anda dapat mengedit file animasi-p.webp

telepon.py

Jika kondisi cuaca telah berubah dari permintaan API terakhir (atau ini adalah boot baru dan tidak turun salju) maka skrip ini dipanggil dari weatherman.py dan menginstruksikan servo untuk "bergoyang" bolak-balik untuk mengingatkan Anda bahwa kondisi telah berubah.

precip.py

Skrip ini menerima parameter "probabilitas presipitasi" dari weatherman.py dan menampilkan garis berwarna biru pada HAT Unicorn yang berkaitan dengan % probabilitas. Jika 100% semua 16 baris akan menyala biru, jika 50% hanya 8 baris dll.

temp.py

Skrip Pimoroni standar lainnya, yang satu ini mengambil parameter "temp" dari weatherman.py dan menampilkannya dengan teks bergulir. Ini diatur untuk menggunakan font truetype Herkules (dalam folder "font") tetapi bisa menggunakan font standar jika Anda mau. Anda bahkan dapat meningkatkannya sehingga teks yang ditampilkan berubah warna tergantung pada nilai suhu!

Langkah 4: Unicorn HAT & Servo

Topi & Servo Unicorn
Topi & Servo Unicorn
Topi & Servo Unicorn
Topi & Servo Unicorn
Topi & Servo Unicorn
Topi & Servo Unicorn

Mampu mendapatkan data cuaca sangat bagus, tetapi sekarang saya perlu menampilkannya di HAT Unicorn. Saya melihat berbagai set ikon cuaca di internet dan setengah jalan mengadaptasi ini ketika saya menyadari bahwa ada contoh cuaca yang disertakan dengan dokumentasi Pimoroni - dan ini termasuk animasi cuaca!

Ini menghemat banyak pekerjaan, dan saya bangun & berjalan dalam waktu singkat, dengan ikon animasi untuk kondisi saat ini, beberapa teks gulir untuk suhu dan grafik untuk % curah hujan (yang melibatkan beberapa matematika ringan). Saya memisahkan skrip dan menggunakan modul Subproses Python untuk meneruskan parameter ke sana kemari.

Menambahkan servo adalah kendaraan yang ideal untuk peringatan ini, karena akan membuat sedikit kebisingan dan menarik perhatian tanpa terlalu mengganggu. Dengan HAT sudah mengambil banyak pin Pi, saya menyolder kabel servo ke bagian bawah papan, menggunakan Pin 17 untuk mengontrol pergerakan servo menggunakan Modulasi Lebar Pulsa.

Menghidupkan servo dari Pi tidak ideal, tetapi itu hanya akan digunakan untuk goncangan sesaat sehingga presisi bukanlah masalah besar di sini. Itu terhubung seperti yang ditunjukkan pada diagram, dengan kabel Coklat ke GND, Merah ke 5v dan Oranye (kabel kontrol) ke GPIO17.

Terakhir saya mengedit beberapa file animasi cuaca di GIMP untuk menambahkan sentuhan pribadi saya, seperti kelelawar di bulan dan wajah tersenyum di matahari. Saya juga menambahkan animasi roda kaset "Old Tech New Spec" khusus untuk dimainkan saat startup, hanya untuk bersenang-senang.

Langkah 5: Headphone Goyang

Headphone Goyang
Headphone Goyang
Headphone Goyang
Headphone Goyang
Headphone Goyang
Headphone Goyang
Headphone Goyang
Headphone Goyang

Gagasan WeatherMan adalah bahwa ia akan secara pasif duduk di speaker meja saya, kadang-kadang menampilkan cuaca, tetapi saya ingin itu melakukan sedikit lebih banyak! Earphone yang disertakan adalah roti panggang tetapi klasik tahun 80-an, jadi saya memutuskan untuk melakukan sesuatu dengannya. Setelah menanggalkan semua kabel dan merekatkan yang rusak, saya memiliki tiga bagian, colokan 3,5 mm, tombol berbentuk berlian, dan telepon itu sendiri pada pita logam fleksibelnya.

Gagasan itu mengejutkan saya bahwa jika saya dapat menemukan cara untuk memasang telepon di atas unit maka saya dapat membuatnya berputar bolak-balik dengan servo, dan menggunakan ini sebagai pemberitahuan tambahan.

Pertama saya mengebor steker 3.5mm dan membongkar sakelar berlian, lalu menyelipkannya ke sepotong batang berulir. Selanjutnya saya menempelkan mur ke konektor plastik, sehingga batang dapat duduk dengan aman (dan lurus) di atas servo. Di ujung batang yang lain saya menambahkan mur lain. Akhirnya saya menggunakan Sugru abu-abu untuk mengikat bagian atas batang ke pita earphone dan juga untuk menutupi mur di bagian bawah rakitan. Jika Anda belum pernah mendengar tentang Sugru, itu adalah lem yang dapat dicetak yang tersedia dalam sachet berwarna kecil - itu dibentuk seperti Play-Doh tetapi menempel seperti lem super dan mengeras seperti plastik!

Dengan cuaca dingin baru-baru ini, Sugru membutuhkan waktu beberapa hari untuk mengeras sepenuhnya, tetapi headphone dan dudukannya segera siap untuk perakitan akhir.

Langkah 6: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Pi, HAT, dan Servo semuanya bekerja dengan baik di bangku cadangan sehingga pekerjaan selanjutnya adalah memasukkan mereka ke dalam kasing. Sebelum memulai komponen besar, saya menggunakan beberapa Sugru abu-abu yang tersisa untuk memperbaiki tombol volume, soket headphone, dan sakelar "pita logam", memilah kosmetik. Saya juga merekatkan tombol Play, Stop, FF & Rew asli ke sepotong saluran plastik sehingga mereka tetap berada di tempat yang tepat. Sayang sekali untuk tidak menggunakan kembali tombol apa pun kali ini, tetapi sebenarnya tidak ada yang bisa mereka kendalikan!

Saya menggunakan Sugru abu-abu terakhir untuk menahan servo pada posisinya, dengan porosnya menyembul melalui soket headphone yang diperbesar. Pindah ke bagian lain dari kasing saya kemudian menggunakan beberapa Sugru hitam untuk mengamankan rakitan HAT dan Pi ke pintu pita, sehingga mereka akan terbuka dengannya. Saya benar-benar menikmati sentuhan kecil terakhir - memasang magnet GeoMag sehingga pintu akan tertutup rapat.

Menempatkan dua bagian bersama-sama adalah bisnis gugup karena saya takut Pi & Servo akan bentrok satu sama lain, tetapi pada akhirnya ada sekitar satu milimeter untuk cadangan, banyak dalam buku saya. Karena pintu pembuka yang funky akan memberikan akses penuh ke interior untuk servis di masa mendatang, saya hanya menempelkan kedua bagiannya bersama-sama, dan setelah menyeka sidik jari saya yang berminyak memasang unit headphone di atas - selesai!

Langkah 7: Obsesi Tenang

Obsesi yang Tenang
Obsesi yang Tenang
Obsesi yang Tenang
Obsesi yang Tenang

Hadiah Kedua dalam Reuse Contest

Direkomendasikan: