İçindekiler:
- Gereçler
- 1. Adım: Bant Yırtma
- 2. Adım: Karanlık Gökyüzü Pi
- Adım 3: Kod
- Adım 4: Unicorn HAT & Servo
- Adım 5: Kulaklık Sarsıntısı
- Adım 6: Montaj
- 7. Adım: Sessiz Takıntı
Video: 1984 WeatherMan Pi: 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu taşınabilir kaset çalar, artık 80'lerin başı stiline sahip bir ortam IoT hava durumu ekranıdır ve bant penceresinden "mevcut koşullar" animasyonu, kaydırma sıcaklığı ve yağmur olasılığı grafiği görüntüler. Hava durumu değiştiğinde, üstteki servo kontrollü kulaklıklar, ince bir uyarı olarak ileri geri sallanır.
İşlevsel bant kapağını açtığımızda, tozlu orijinal bileşenlerin bir Raspberry Pi Zero W, bir Pimoroni Unicorn Hat HD (LED Matrix) ve küçük bir servo ile değiştirildiğini görebiliriz. Hava durumu verileri, özel konumuma göre uyarlanmış ultra hassas Dark Sky Hava Durumu API'sini sorgulayan bir Python betiği kullanılarak elde edilir.
YouTube tezgahımın karşısındaki masa hoparlöründe oturan ve beni sessizce hava durumundan haberdar eden basit ama hoş görünümlü ve işlevsel bir IoT yapısı.
Gereçler
Ahududu Pi Sıfır
Pimoroni Unicorn HAT HD
Küçük Servo
1984 Hitachi SP-1 Kişisel Stereo ve Kulaklıklar
USB WiFi Adaptörü
2mm Dişli Çubuk
Sugru (Siyah & Gri)
GeoMag mıknatısı
1. Adım: Bant Yırtma
Eylül ayında kayınvalidem tarafından bana bu sevimli eski kasetçalar verildi ve ikonik görünümüne ve tıknaz düğmelerine anında aşık oldum. Asıl önemli olan, o büyük bant penceresiydi - yaklaşık 15 saniye sahip olduktan sonra bir cetvel çıkardım ve mm'ye kadar standart bir Raspberry Pi HAT (Donanım Üste Takılı) ile aynı boyutta olduğunu bulmak beni şaşırttı.
Tek başına bu keşif, guguklu saat projemi "yapılacaklar" listesinin daha da aşağılarına indirmem için yeterliydi ve hemen oynatıcıyı sökerek çalışmaya başladım.
Sökme işlemi oldukça iyi gitti ve üzerinde çalışabileceğim üç farklı parça buldum - birkaç plastik parçayı kırmayı başardım ama hiçbir şey tekrar yapıştırılamadı.
2. Adım: Karanlık Gökyüzü Pi
Telefonumda bir süredir Dark Sky kullanıyorum ve tahminlerin doğruluğundan gerçekten etkilendim, bu yüzden bu projede kullanabileceğim kapsamlı bir API sunduklarını görmek beni çok mutlu etti. Ayarlaması güzel ve basit yukarı da!
Öncelikle https://darksky.net/dev adresine gidin ve ücretsiz bir hesap için kaydolun - "deneme" hesabı, günde 1000 API isteğinde bulunmanıza izin verir; bu, her 1,5 dakikada bir yenileme için yeterlidir - sık sık benim için bile yeterli. İngiliz hava durumu takıntısı seviyesi.
Kaydolduktan sonra bir "Gizli Anahtar" alacaksınız - verilere erişmek için ihtiyacınız olan şey budur ve Python betiğinde kullanılır, bu yüzden elinizin altında bulundurun (ve bilirsiniz, gizli).
API verilerini almak için Python'daki İstekler modülünü kullanan YouTube Abone Sayacı derlemesinde kullandığım bir komut dosyasını uyarlayarak başladım. Kullandığım komut dosyası GitHub'da, sadece Dark Sky API anahtarınızı eklemeniz ve elbette kendi Enlem ve Boylam değerlerinizi değiştirmeniz gerekecek.
Mevcut hava koşullarına ilişkin verileri almak oldukça kolaydı ve "Simge", "Yağış Olasılığı" ve "Sıcaklık" öğelerini kullanmaya karar verdim.
Adım 3: Kod
Kullandığım kodu yeniden kullanmak veya sıçramak istiyorsanız, GitHub'daki WeatherMan deposunda - "hava durumu" klasörünü Raspberry Pi'nizdeki "pi" klasörüne kopyalayın veya indirin.
Ana komut dosyası işlevleri aşağıdaki gibidir:
hava durumu.py
Bu, Dark Sky'dan hava durumu verilerini çıkaran ana komut dosyasıdır. https://darksky.net/dev adresinde bir Dark Sky hesabı oluşturmanız ve Gizli Anahtarınızı belirtilen yere komut dosyasına koymanız gerekir. Ayrıca ilgilendiğiniz hava durumu konumunun enlem ve boylamını da girmeniz gerekir - bu, Google Haritalar'da bulunabilir, sağ tıklayın ve "Burada Ne Var?" öğesini seçin. ve konumun enlem/boylamını gösteren bir açılır pencere göreceksiniz.
API verilerini aldıktan sonra weatherman.py, animasyonları ve kulaklık dalgalanmalarını başlatmak için parametreleri birkaç küçük komut dosyasına iletir.
Komut dosyası, başlangıç dosyasını düzenleyerek başlangıçta çalışacak şekilde ayarlandı…
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
…ve ekliyorum:
@python3 /home/pi/weather/weatherman.py &
dosyanın sonunda.
simge.py
Bu komut dosyası, weatherman.py komut dosyasından bir "geçerli koşullar" parametresi alır ve bunu 16x16 hava durumu animasyonunu görüntülemek için kullanır - bunların tümü "simgeler" klasöründe depolanır ve standart Unicorn HAT HD belgelerinin bir parçasıdır.-p.webp
telefonlar.py
Son API isteğinden sonra hava koşulları değiştiyse (veya yeni bir önyüklemeyse ve kar yağmıyorsa), bu komut dosyası weatherman.py'den çağrılır ve servoya, koşulların gerçekleştiği konusunda sizi uyarmak için ileri geri "titreme" talimatını verir. değişti.
precip.py
Bu komut dosyası, weatherman.py'den bir "yağış olasılığı" parametresini kabul eder ve Unicorn HAT'ta % olasılık ile ilgili mavi satırları görüntüler. %100 ise 16 satırın tümü mavi yanar, %50 ise yalnızca 8 satır vb.
temp.py
Başka bir standart Pimoroni betiği, bu, weatherman.py'den bir "temp" parametresi alır ve onu kayan metinle görüntüler. Herkules truetype yazı tipini ("fontlar" klasöründe) kullanacak şekilde ayarlanmıştır, ancak isterseniz standart bir yazı tipi de kullanabilir. Hatta bunu geliştirerek görüntülenen metnin sıcaklık değerine bağlı olarak renk değiştirmesini sağlayabilirsiniz!
Adım 4: Unicorn HAT & Servo
Hava durumu verilerini elde edebilmek harikaydı ama şimdi onu Unicorn HAT'ta göstermem gerekiyordu. İnternetteki çeşitli hava durumu simgelerine baktım ve Pimoroni belgelerinde bir hava durumu örneği olduğunu fark ettiğimde bunları uyarlamanın yarısındaydım - ve buna hava durumu animasyonları da dahildi!
Bu, büyük miktarda iş kurtardı ve mevcut koşullar için animasyonlu bir simge, sıcaklık için bazı kayan metinler ve yağış yüzdesi için bir grafik (biraz hafif matematik dahil) ile hemen çalışmaya başladım. Komut dosyalarını ayrı tuttum ve parametreleri ileri geri iletmek için Python'un Alt İşlem modülünü kullandım.
Servo eklemek bu uyarılar için ideal bir araçtı çünkü biraz ses çıkaracak ve fazla rahatsız etmeden göz alıcı olacaktı. HAT zaten Pi'nin birçok pinini kaplıyorken, Pulse Width Modulation kullanarak servonun hareketini kontrol etmek için Pin 17'yi kullanarak servo kablolarını kartın alt tarafına lehimledim.
Servoyu Pi'den çalıştırmak ideal değildi, ancak yalnızca anlık bir sallanma için kullanılacaktı, bu nedenle hassasiyet burada çok önemli değildi. Kahverengi kablo ile GND'ye, Kırmızı'dan 5v'ye ve Turuncu (kontrol kablosu) GPIO17'ye şemada gösterildiği gibi bağlandı.
Son olarak, aydaki yarasalar ve güneşte gülen yüz gibi kendi kişisel dokunuşlarımı eklemek için GIMP'deki bazı hava durumu animasyon dosyalarını düzenledim. Ayrıca, yalnızca eğlence için başlangıçta oynatılacak özel bir "Old Tech New Spec" kaset tekerleği animasyonu ekledim.
Adım 5: Kulaklık Sarsıntısı
WeatherMan'in fikri, pasif bir şekilde masamın hoparlörüne oturması ve ara sıra hava durumunu göstermesiydi, ama ben onun biraz daha fazlasını yapmasını istedim! Yanında gelen kulaklıklar klasik 80'lerden kalmaydı, bu yüzden onlarla bir şeyler yapmaya karar verdim. Tüm kabloları çıkardıktan ve kırılanı sıcak yapıştırdıktan sonra, üç parça, 3,5 mm fiş, elmas şeklindeki düğme ve esnek metal bantlarında telefonların kendileri kaldı.
Telefonları ünitenin üstüne monte etmenin bir yolunu bulabilirsem, onları bir servo ile ileri geri döndürebileceğim ve bunu ek bir bildirim olarak kullanabileceğim fikri beni etkiledi.
Önce 3,5 mm'lik tapayı deldim ve elmas anahtarı söktüm, sonra bunları bir parça dişli çubuğa yerleştirdim. Daha sonra, çubuğun servonun üzerine güvenli bir şekilde (ve düz bir şekilde) oturabilmesi için plastik bir konektöre bir somun yapıştırdım. Çubuğun diğer ucuna başka bir somun ekledim. Son olarak, çubuğun üst kısmını kulaklık bandına yapıştırmak ve ayrıca tertibatın altındaki somunu kapatmak için gri Sugru kullandım. Sugru'yu duymadıysanız, küçük renkli poşetlerde gelen kalıplanabilir bir yapıştırıcıdır - Play-Doh gibi kalıplanır, ancak süper yapıştırıcı gibi yapışır ve plastik gibi sertleşir!
Son zamanlardaki soğuk hava ile Sugru'nun tamamen sertleşmesi birkaç gün sürdü, ancak kulaklıklar ve standları kısa sürede son montaj için hazırdı.
Adım 6: Montaj
Pi, HAT ve Servo yedek kulübesinde gayet iyi çalışıyordu, bu yüzden sıradaki iş onları kasaya almaktı. Büyük bileşenlere başlamadan önce, ses seviyesi kadranı, kulaklık soketi ve "metal bant" anahtarına sabitlemek için biraz arta kalan gri Sugru kullandım ve kozmetikleri ayırdım. Ayrıca orijinal Oynat, Durdur, FF ve Geri düğmelerini bir parça plastik boruya yapıştırdım, böylece tam olarak doğru yerde kalacaklardı. Bu sefer düğmelerin hiçbirini tekrar kullanmamak utanç vericiydi ama kontrol edebilecekleri hiçbir şey yoktu!
Servoyu yerinde tutmak için gri Sugru'nun sonunu, şaftı genişletilmiş kulaklık soketinden içeri sokarken kullandım. Kasanın diğer yarısına geçerken, HAT ve Pi düzeneğini bant kapısına sabitlemek için siyah Sugru kullandım, böylece açılacaklar. Son küçük dokunuştan gerçekten keyif aldım - kapı sıkıca kapalı tutulacak şekilde bir GeoMag mıknatısına sabitlemek.
Pi & Servo'nun birbiriyle çatışacağından korktuğum için iki yarıyı bir araya getirmek gergin bir işti, ancak sonunda kitabımda bol miktarda yedek bir milimetre vardı. Korkunç açılan kapı, gelecekteki servisler için iç kısma tam erişim sağlayacağından, iki yarıyı birbirine sıcak yapıştırdım ve yağlı parmak izlerimi sildikten sonra kulaklık tertibatını üste yerleştirdim - bitti!
7. Adım: Sessiz Takıntı
Yeniden Kullanım Yarışmasında İkincilik Ödülü
Önerilen:
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: 7 Adım (Resimlerle)
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: Bu Rapsberry PI'yi blogumda bir sürü eğlenceli projede kullanmayı planlıyorum. Kontrol etmekten çekinmeyin. Raspberry PI'mi kullanmaya geri dönmek istedim ama yeni konumumda Klavye veya Farem yoktu. Ahududu kurduğumdan beri bir süre geçti
Adım Sayacı Nasıl Yapılır?: 3 Adım (Resimlerle)
Adım Sayacı Nasıl Yapılır?: Yürümek, koşmak, bisiklete binmek, badminton oynamak gibi birçok sporda iyi performans gösterirdim. Binmeyi çok uzun zaman önce dolaşmak için seviyorum. Pekala, iri göbeğime bakın……Her neyse, egzersize yeniden başlamaya karar verdim. Hangi ekipmanı hazırlamalıyım?
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
Kolay Adımlar ve Resimlerle Bilgisayar Nasıl Sökülür: 13 Adım (Resimlerle)
Kolay Adımlar ve Resimlerle Bir Bilgisayar Nasıl Sökülür: Bu, bir PC'nin nasıl söküleceği hakkında bir talimattır. Temel bileşenlerin çoğu modülerdir ve kolayca çıkarılabilir. Ancak bu konuda organize olmanız önemlidir. Bu, parçaları kaybetmenize ve aynı zamanda yeniden birleştirmeyi kolaylaştırmaya yardımcı olacaktır
Adım Adım Ciclop 3d Tarayıcı My Way: 16 Adım (Resimlerle)
Adım Adım Ciclop 3d Tarayıcı Adım Adım: Merhabalar, ünlü Ciclop 3D tarayıcıyı gerçekleştireceğim. Orijinal projede iyi açıklanan tüm adımlar mevcut değil. Öncelikle işlemi basitleştirmek için bazı düzeltmeler yaptım. Tabanı yazdırıyorum ve PCB'yi yeniden sterilize ediyorum, ama devam et