2 puan yazan GN⁺ 2024-06-09 | 1 yorum | WhatsApp'ta paylaş
  • Sol Mate e-Paper Display, belirtilen konumdaki güncel hava durumunu ve ışık koşullarını yansıtan bir illüstrasyon üretip bunu Raspberry Pi’ye bağlı Waveshare e-Paper ekranında gösteren bir proje
  • Betik, konumu girdi olarak alıp hava durumunu getiriyor; gpt-5-mini tarafından oluşturulan prompt ve gpt-image-1-mini ile yüksek kaliteli görüntü render ettiği için OpenAI API token’ı gerekiyor
  • Yalnızca gerçek konumlar değil, bir arkadaşın konumu veya kurgusal yerler de girilebiliyor; kurgusal yerlerde GPT, yeryüzünde en çok benzeyen yerin enlem ve boylamını hava durumu servisine iletiyor
  • Donanım olarak Raspberry Pi 5 ve Waveshare e-Paper 7.3" display temel alınıyor; farklı boyutta ekran kullanmak için kodda değişiklik yapılması gerekiyor
  • control.py ekranda gösterme, yerel önizleme ve ekranı temizlemeyi destekliyor; Waveshare’in aynı görüntüyü uzun süre ekranda bırakmama önerisi ve API maliyetlerinin artma olasılığı birlikte dikkate alınmalı

Sol Mate e-Paper Display ne yapıyor?

  • Sol Mate e-Paper Display, Raspberry Pi ve Waveshare e-Paper ekranıyla hava durumu raporu görseli üreten ve gösteren bir kod koleksiyonudur
  • Başlangıçta ☀️ Sol Mate GPT ile oluşturuldu; daha sonra bunun e-Paper ekranda nasıl görüneceği merak edilince bu proje ortaya çıktı
  • Girdi konumu gerçek bir yer, bir arkadaşın konumu veya kurgusal bir yer olabilir
    • Yağmur yağıyorsa illüstrasyona şemsiye taşıyan insanların eklenmesi gibi, güncel hava durumu görsele yansıtılır
    • Kurgusal bir yer girildiğinde GPT, yeryüzünde ona en çok benzediğine karar verdiği yerin enlem ve boylamını hava durumu servisine gönderir

Görüntü üretim yöntemi

  • İllüstrasyonlar gpt-image-1-mini modeliyle render edilir
  • Görüntü prompt’u gpt-5-mini tarafından oluşturulur ve yüksek kaliteli görüntü ayarları kullanılır
  • Bu üretim akışı nedeniyle çalıştırmak için OpenAI API token’ı gerekir

Gerekli donanım

Çalıştırma ve kullanım

  • Proje, Raspberry Pi üzerinde çalışacak şekilde tasarlanmıştır
  • Python ortam yönetimi için uv kullanılır
    • uv sanal ortamı yönettiği için elle etkinleştirme gerekmez
uv sync
  • macOS veya Linux olmayan geliştirme makinelerinde Raspberry Pi donanım kütüphanesi varsayılan olarak atlanır
  • OPENAI_API_KEY ortam değişkeni belirtilmelidir
    • Ortam değişkenleri geçerli çalışma dizinindeki .env dosyasından okunabilir
OPENAI_API_KEY=... uv run python control.py show Barcelona
  • Yerelde hızlı kontrol için iTerm2 görüntü gösterimini kullanan preview komutu çalıştırılabilir
    • Varsayılan olarak sistemin geçici dizinine sol-mate-preview-<timestamp>.png adıyla kaydedilir
OPENAI_API_KEY=... uv run python control.py preview "Barcelona"

Ekran yönetimi ve otomatik güncelleme

  • Waveshare, aynı görüntünün ekranda çok uzun süre bırakılmamasını öneriyor_Manual#Precautions)
  • Ekranı temizlemek için clear komutu kullanılır
uv run python control.py clear
  • Örnek ayar, cron ile görüntüyü günde iki kez günceller ve şafak vakti ekranı temizler
    • Yollar, herkesin kendi kurulum ortamına göre değiştirilmelidir
    • Tekrarlı çalıştırmanın azımsanmayacak bir maliyeti olabilir
0 8 * * * cd ~/src/sol-mate-eink && OPENAI_API_KEY=... uv run python control.py show Barcelona
0 18 * * * cd ~/src/sol-mate-eink && OPENAI_API_KEY=... uv run python control.py show Barcelona
0 2 * * * cd ~/src/sol-mate-eink && uv run python control.py clear

Backend ve referanslar

1 yorum

 
GN⁺ 2024-06-09
Hacker News yorumları
  • Benzer bir projede Inkplate 6Color kullanıyorum
    ESP32 denetleyici dahili olduğu için Pi gerekmiyor ve yalnızca pille de çalışabiliyor
    Derin uyku/uyanma zamanlamasını iyi ayarlarsanız tek şarjla birkaç haftaya kadar dayanabiliyor
    En sevdiğim kullanım, ofis kapısına astığım kırmızı On Air tabelası; toplantı veya kayıt sırasında Mac’te bir Kestirme çalıştırınca durum otomatik güncelleniyor ve cihazlar sessize alınıyor
    Hava durumu gösterimi, haberler ve Google Calendar için açık kaynak örnekleri de var
    https://soldered.com/product/inkplate-6color-color-e-paper-b...
    Ucuz e-mürekkep projeleri gerçekten eğlenceli ve kullanışlı

    • Benzer bir proje yaptım
      Pi Zero’ya bağlı bir e-mürekkep ekran, önümüzdeki 3 saat içinde yağmur yağıp yağmayacağını yalnızca Yes/No olarak gösteriyor
      Yeniden düşününce 7 renkli ekrana kadar gerek olmayabilir
      Kullandığım ekran https://shop.pimoroni.com/products/inky-impression-7-3?varia... ve daha ucuz görünüyor
    • Kullanımı zekice ve güzel
      Bu tür ekranları evin çeşitli yerlerine asmak isteyecek kadar eğlenceli
    • Gereken koşulların hepsini karşılayan bir şey olmasına şaşırdım, fiyatına da ayrıca şaşırdım
  • Bağımsız olarak, bir hafta önce aynı ekranla neredeyse birebir aynısını yaptım
    https://imgz.org/iBLADkCU.jpg
    Belirli bir konumun mevcut hava durumunu ve saatini alıp, yapay zekanın o konumu içeren bir fotoğraf üretmesini sağlayarak gösteren bir çerçeve
    İkimizin de bağımsız olarak buraya kadar gelmiş olması ilginç
    Muhtemelen en bariz kullanım alanı buydu

    • Fikirlerin ortalıkta dolaştığı bir durum
      Yeni bir girişimciye fikrinin benzersiz olmadığını gösteren iyi bir örnek; gerçekten benzersiz fikirler zaten çok az
      Önemli olan uygulama becerisi
      E-mürekkep hava durumu panosu dünyasının Uber ve Lyft’i gibi; HN’de benzer birkaç şeyi daha etiketlemiştim
      Zaman bulursam ben de bir tane yapacağım; hepsi ESP32 geliştirmesi ve özgür/açık kaynak ev otomasyonundan ilham alıyor
  • Donanım projesi ve fikir güzel, ama sürekli açık bir cihazda OpenAI API kullanmaya kesinlikle bulaşmak istemem
    Eğlencesine yapacak olursam OpenStreetMap ve LAN’da barındırılan Stable Diffusion kullanan bir sürüm yapabilirim; bu yüzden yer imlerine eklemeye değer

    • OpenAI API ile sürekli açık bir cihazın birleşiminin neden sorun olduğunu merak ediyorum
  • Benzer bir proje gördükten sonra aynı ekrandan iki tane aldım

    • "A WiFi color eInk picture frame" https://news.ycombinator.com/item?id=35689706
    • "Color E-Ink Display Photo Frame Pranks [Mom]" https://news.ycombinator.com/item?id=26977747
      Aslında bu iki örnekteki gibi renkli fotoğraf ekranı yapmayı planlıyordum, ama bu uygulama da iyi görünüyor
    • İkinci yazıda ekran değişirken çekilmiş bir mikroskop yakın planı da var, bu hoşuma gitti
      Hack’lemede bol şans; yakında yaptığın projeyi burada görebilmeyi umarım
  • Görselde Barcelona 26°C ve 2°C olarak gösterilmiş
    Barcelona’ya birkaç kez gittim ama bir günde bu iki sıcaklığın da görülmesini hayal etmek zor
    Hava durumu verisinin güvenilir olup olmadığını, yoksa hepsinin halüsinasyon olup animasyonun tadını çıkarmamız mı gerektiğini merak ediyorum
    Ya da Barcelona havasını düşündüğüm kadar iyi bilmiyorumdur ve en yüksek 26, en düşük 2 derece mümkün olabilir

    • Bu, Dall-E’nin yazıları düzgün yazamaması durumu
      2°C, yalnızca 26°C’den kaynaklanan bir halüsinasyon
      Hobi projesi olduğu için metni geleneksel yöntemle render etmek yerine, her seferinde metnin benzersiz ve genelde daha sanatsal görünmesini önceliklendirdim
      Ama ciddi bir ürüne dönüştürmek gerekirse, görsel üretim modelleri bu kullanım için henüz yeterli değil
  • “Aynı görüntüyü ekranda çok uzun süre bırakmayın” denmesinin nedenini merak ediyorum
    Renkli e-mürekkebe özgü bir sorun mu?

    • Waveshare’in önerisi “en az 24 saatte bir yenileme”[1]
      Gerçekte o kadar büyük bir sorun olmayabilir, ama pikseller çok uzun süre etkin durumda kalırsa takılı kalma riski olabilir
      [1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
    • Bunun burn-in yüzünden mi, yoksa renklerin solması yüzünden mi olduğunu merak ediyorum
  • Normal siyah-beyaz e-mürekkepten farklı olarak aynı görüntüyü uzun süre bırakmayın uyarısını gerektiren bir görüntüleme yöntemi farkı olup olmadığını merak ediyorum
    Doğru hatırlıyorsam standart siyah-beyaz e-mürekkep ekranlarda burn-in yoktu

  • Bu tür projelerde ekranı sürmek için neden hep özellikle Raspberry Pi gibi küçük ve düşük güç tüketimli bilgisayarlar kullanıldığını merak ediyorum
    Debian GNU/Linux çalıştıran sıradan bilgisayarlardan zaten çok var
    Bu bilgisayarlardan birinde bu kodu kullanıp sıradan bir USB kablosuyla e-paper ekranı sürmek mümkün değil mi?
    Raspberry Pi gibi bir şey kullanmak zorunda olmak için bir neden varmış gibi görünmüyor

    • Raspberry Pi gibi küçük bilgisayarlar, bu küçük ekranın kullandığı SPI gibi düşük seviyeli çevre birimlerine ve GPIO'ya erişimi kolaylaştırıyor
      Büyük bilgisayarlarda da işletim sistemi bu tür çevre birimlerini kullanabiliyorsa aynı şekilde kullanılabilir
      Bu küçük bilgisayarlar yaygınlaşmadan önce, paralel port ve küçük bir programla aynı düşük seviyeli sinyaller kullanılarak çevre birimleriyle doğrudan iletişim kurulabiliyordu
    • Hiç de böyle bir zorunluluk yok
      Raspberry Pi için çok sayıda başlangıç dokümanı ve kod var; Linux'la biraz uğraşmış birinin cihazı açıp paketleri kurduktan sonra bir şeyler yapması kolay
      Zamanınız ve bilginiz varsa çok küçük bir mikrodenetleyici ile de yapılabilir
      Ekranın kendisinde, ara sıra garip besleme gerilimleri gerektirmesi dışında sihirli bir şey yok
      Daha yaygın sorun, bu tür ekranların USB üzerinden doğrudan iletişim kurmaması
      Pikselleri ayarlamak için SPI ya da paralel dijital arayüz aldıklarından, arada bir arayüz ve ekranı çizen yazılım gerekiyor
      Bu yüzden insanlar çoğu zaman sadece bir Raspberry Pi bağlayıp onunla daha yaygın bir protokol üzerinden konuşuyor
    • Ucuz olduğu ve pille uzun süre dayandığı için
      Sadece bu ekranı açık tutmak için sıradan bir bilgisayarı sürekli açık bırakmak verimsiz
  • Harika projeler, her zamanki gibi, birilerinin özelleştirme yoluna gitmesini sağlıyor
    Donanım önerilerinin yanı sıra referans olarak yalnızca epaper.py[1]'ye bakmak bile iyi olur
    [1]: https://github.com/blixt/sol-mate-eink/blob/main/epaper.py

  • Hava durumunu almak için neden AI kullandığını pek anlayamıyorum
    Doğrudan çağrılabilecek onlarca ücretsiz hava durumu API'si var

    • Ücretsiz API'lerle yapılması zor birkaç şey için AI kullanılıyor
      Bir semtin günlük dildeki adını doğru enlem-boylama çevirmek işini bazı API'ler bir ölçüde yapar ama GPT kadar doğru ücretsiz bir API'yi pek bilmiyorum
      Üstelik “Hogwarts” ya da “Tatooine” yazarsanız AI sayesinde oranın hava durumunu da özenle uyduruyor[1]
      En önemlisi, gerçek hava koşullarını ve güneşi/ayı vb. yansıtarak görüntü oluşturacak Dall-E için prompt yazıyor
      [1]: https://x.com/blixt/status/1724099967361462714
    • CV'ye koymak için çok iyi bir satır oluyor
    • Sadece pencereden dışarı bakmak da yeterli