Isi kandungan:
- Bekalan
- Langkah 1: Tape Teardown
- Langkah 2: Dark Sky Pi
- Langkah 3: Kodnya
- Langkah 4: HAT & Servo Unicorn
- Langkah 5: Jiggle Headphone
- Langkah 6: Perhimpunan
- Langkah 7: Obsesi Tenang
Video: 1984 WeatherMan Pi: 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
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
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
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
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
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
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
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
Hadiah Kedua dalam Peraduan Penggunaan Semula
Disyorkan:
Pemegang gambar dengan pembesar suara terbina dalam: 7 Langkah (dengan gambar)
Pemegang Gambar Dengan Pembesar Suara Built-In: Berikut adalah projek yang hebat untuk dilaksanakan pada hujung minggu, jika anda ingin menjadikan anda pembesar suara yang boleh menyimpan gambar / kad pos atau bahkan senarai tugas anda. Sebagai sebahagian daripada pembangunan, kami akan menggunakan Raspberry Pi Zero W sebagai nadi projek, dan
Cara: Memasang Raspberry PI 4 Tanpa Kepala (VNC) Dengan Imej dan Gambar Rpi: 7 Langkah (dengan Gambar)
Howto: Memasang Raspberry PI 4 Headless (VNC) Dengan Imej dan Gambar Rpi: Saya merancang untuk menggunakan Rapsberry PI ini dalam sekumpulan projek yang menyeronokkan di blog saya. Jangan ragu untuk melihatnya. Saya ingin kembali menggunakan Raspberry PI saya tetapi saya tidak mempunyai Papan Kekunci atau Tetikus di lokasi baru saya. Sudah lama saya menyediakan Raspberry
Lancarkan Tayangan Tayangan Gambar Percutian Anda Dengan Sentuhan Sihir!: 9 Langkah (dengan Gambar)
Lancarkan Tayangan Tayangan Gambar Percutian Anda Dengan Sentuhan Sihir!: Selama bertahun-tahun, saya telah membiasakan diri untuk mengambil patung kecil dengan saya semasa dalam perjalanan: Saya sering membeli artoy kosong (seperti gambar dalam gambar) dan cat ia sesuai dengan bendera dan tema negara yang saya lawati (dalam kes ini, Sisilia). T
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: Ini arahan mengenai cara membongkar PC. Sebilangan besar komponen asas adalah modular dan mudah dikeluarkan. Walau bagaimanapun, adalah penting untuk anda mengaturnya. Ini akan membantu mengelakkan anda kehilangan bahagian, dan juga dalam membuat pemasangan semula
Cara Pixellate Gambar - Dengan Mudah: 3 Langkah (dengan Gambar)
Cara Pixellate Gambar - Mudah: Yang cepat ini adalah teknik untuk menggunakan penapisan piksel untuk mengekalkan anonim, martabat dan lain-lain pada gambar digital. Anda hanya memerlukan penyunting gambar sederhana seperti MS Paint, saya menggunakan MS Paint. Untuk alternatif, lihat ini Boleh diajar