- Sol Mate e-Paper Display adalah proyek yang membuat ilustrasi yang mencerminkan cuaca dan kondisi pencahayaan saat ini di lokasi yang ditentukan, lalu menampilkannya di layar Waveshare e-Paper yang terhubung ke Raspberry Pi
- Skrip menerima input lokasi, mengambil data cuaca, lalu merender gambar berkualitas tinggi menggunakan prompt yang dibuat oleh gpt-5-mini dan gpt-image-1-mini, sehingga memerlukan token OpenAI API
- Selain lokasi nyata, Anda juga bisa memasukkan lokasi teman atau tempat fiktif; untuk tempat fiktif, GPT akan meneruskan lintang dan bujur lokasi di Bumi yang paling mirip ke layanan cuaca
- Perangkat keras mengacu pada Raspberry Pi 5 dan Waveshare e-Paper 7.3" display; jika menggunakan display berukuran lain, kode perlu dimodifikasi
control.py mendukung penayangan di layar, pratinjau lokal, dan penghapusan tampilan; perlu mempertimbangkan rekomendasi Waveshare untuk tidak menampilkan gambar yang sama terlalu lama, serta kemungkinan kenaikan biaya API
Apa yang dilakukan Sol Mate e-Paper Display
- Sol Mate e-Paper Display adalah kumpulan kode yang membuat dan menampilkan gambar laporan cuaca menggunakan Raspberry Pi dan display Waveshare e-Paper
- Awalnya dibuat sebagai ☀️ Sol Mate GPT, lalu proyek ini dibuat karena penasaran bagaimana tampilannya di display e-Paper
- Lokasi input bisa berupa tempat nyata, lokasi teman, hingga tempat fiktif
- Jika hujan, cuaca saat ini tercermin dalam ilustrasi, misalnya dengan menambahkan orang-orang yang membawa payung
- Jika memasukkan tempat fiktif, GPT akan meneruskan lintang dan bujur tempat di Bumi yang dinilainya paling mirip ke layanan cuaca
Cara pembuatan gambar
- Ilustrasi dirender dengan model gpt-image-1-mini
- Prompt gambar dibuat oleh gpt-5-mini, dengan menggunakan pengaturan gambar berkualitas tinggi
- Karena alur pembuatan ini, proses eksekusi memerlukan token OpenAI API
Perangkat keras yang dibutuhkan
Menjalankan dan cara penggunaan
- Proyek ini diasumsikan berjalan di Raspberry Pi
- Pengelolaan environment Python menggunakan uv
- Karena
uv mengelola virtual environment, aktivasi manual tidak diperlukan
uv sync
- Pada mesin pengembangan selain macOS atau Linux, library perangkat keras Raspberry Pi secara default akan dilewati
- Variabel environment
OPENAI_API_KEY harus ditentukan
- Variabel environment dapat dibaca dari file
.env di direktori kerja saat ini
OPENAI_API_KEY=... uv run python control.py show Barcelona
- Untuk mengecek dengan cepat secara lokal, Anda bisa menjalankan perintah
preview yang menggunakan tampilan gambar iTerm2
- Secara default, gambar disimpan di direktori sementara sistem sebagai
sol-mate-preview-<timestamp>.png
OPENAI_API_KEY=... uv run python control.py preview "Barcelona"
Pengelolaan layar dan pembaruan otomatis
- Waveshare merekomendasikan_Manual#Precautions) agar gambar yang sama tidak dibiarkan terlalu lama di display
- Untuk menghapus tampilan layar, gunakan perintah
clear
uv run python control.py clear
- Contoh konfigurasi menggunakan
cron untuk memperbarui gambar dua kali sehari dan menghapus layar saat dini hari
- Path harus disesuaikan dengan lingkungan instalasi masing-masing
- Eksekusi berulang bisa menimbulkan biaya yang tidak kecil
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 dan referensi
- API privat dapat digunakan untuk mengambil cuaca, tetapi ada syarat untuk tidak memanggilnya secara berlebihan
- Jika memiliki ide penggunaan berskala besar, disarankan menggunakan cara hosting sendiri
- Kode sumber backend ada di blixt/sol-mate
- Foto tambahan dan proses pembuatan:
1 komentar
Opini Hacker News
Saya memakai Inkplate 6Color untuk proyek serupa
Kontroler ESP32 sudah tertanam, jadi tidak perlu Pi, dan bisa berjalan hanya dengan baterai
Kalau jadwal deep sleep/bangunnya diatur dengan baik, sekali isi daya bisa bertahan hingga beberapa minggu
Yang paling saya suka adalah tanda On Air merah yang saya gantung di pintu kantor; saat rapat atau rekaman, jika saya menjalankan Shortcut dari Mac, statusnya otomatis diperbarui dan perangkat-perangkat dibisukan
Ada juga contoh open source untuk tampilan cuaca, berita, dan Google Calendar
https://soldered.com/product/inkplate-6color-color-e-paper-b...
Proyek e-ink murah benar-benar menyenangkan dan berguna
Layar e-ink yang terhubung ke Pi Zero hanya menampilkan Yes/No apakah akan hujan dalam 3 jam ke depan
Dipikir-pikir, mungkin tidak perlu sampai layar 7 warna
Layar yang saya pakai adalah https://shop.pimoroni.com/products/inky-impression-7-3?varia... dan kelihatannya lebih murah
Begitu menyenangkan sampai membuat saya ingin menempelkan layar seperti ini di berbagai sudut rumah
Secara independen, seminggu lalu saya membuat sesuatu yang hampir sama dengan layar yang sama
https://imgz.org/iBLADkCU.jpg
Ini adalah bingkai foto yang mengambil cuaca dan waktu saat ini di lokasi tertentu, lalu AI membuat dan menampilkan foto yang memasukkan lokasi itu
Aneh juga bagaimana kami berdua secara independen sampai ke titik yang sama
Mungkin ini memang penggunaan yang paling jelas
Bagi pendiri startup baru, ini contoh bagus bahwa ide mereka tidak unik, dan pada praktiknya ide yang benar-benar unik hampir tidak ada
Yang penting adalah eksekusi
Rasanya seperti Uber dan Lyft di dunia papan cuaca e-ink; saya pernah menandai beberapa hal serupa di HN
Kalau ada waktu saya juga akan membuat satu, dan semuanya memberi inspirasi untuk pengembangan ESP32 serta otomasi rumah yang bebas dan open source
Proyek hardware dan idenya keren, tetapi saya sama sekali tidak mau menyentuh penggunaan OpenAI API pada perangkat yang selalu menyala
Kalau suatu saat membuatnya untuk iseng, mungkin saya akan membuat versi yang memakai OpenStreetMap dan Stable Diffusion yang di-host di LAN, jadi ini layak di-bookmark
Setelah melihat proyek serupa, saya membeli dua layar yang sama
Awalnya saya berencana membuatnya sebagai layar foto berwarna seperti dua contoh itu, tetapi aplikasi ini juga terlihat bagus
Semoga hacking-nya lancar, dan semoga proyek yang Anda buat bisa segera kami lihat di sini
Pada gambar, Barcelona ditampilkan dengan 26°C dan 2°C
Saya pernah beberapa kali ke Barcelona, tetapi sulit membayangkan kedua suhu itu tercapai dalam satu hari
Saya penasaran apakah data cuacanya bisa dipercaya, atau semuanya hanya halusinasi dan kita cukup menikmati animasinya
Atau mungkin saya tidak tahu cuaca Barcelona sebaik yang saya kira, dan suhu maksimum 26 derajat serta minimum 2 derajat memang mungkin
2°C hanyalah halusinasi dari 26°C
Karena ini proyek hobi, saya lebih memprioritaskan teks yang tampak unik setiap kali dan biasanya lebih artistik, daripada merender teks dengan cara tradisional
Namun jika dijadikan produk serius, model pembuatan gambar belum cukup baik untuk penggunaan ini
Saya penasaran kenapa “jangan biarkan gambar yang sama terlalu lama di layar”
Apakah ini masalah khas e-ink berwarna?
Dalam praktiknya saya rasa ini bukan masalah besar, tetapi mungkin ada risiko piksel tersangkut jika terlalu lama berada dalam keadaan aktif
[1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
Berbeda dari e-ink hitam-putih biasa, saya penasaran apakah ada perbedaan pada metode tampilan yang membuatnya perlu diberi peringatan jangan biarkan gambar yang sama terlalu lama
Kalau ingatan saya benar, layar e-ink hitam-putih standar tidak mengalami burn-in
Saya akan menambahkan tautan dokumentasi ke README agar orang bisa mengetahui lebih banyak dan menilai sendiri
[1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
Saya penasaran kenapa proyek seperti ini selalu secara spesifik memakai komputer kecil dan hemat daya seperti Raspberry Pi untuk menggerakkan display
Sudah ada banyak komputer biasa yang menjalankan Debian GNU/Linux
Kalau ingin memakai kode ini di salah satu komputer seperti itu untuk menggerakkan display e-paper lewat kabel USB biasa, bukankah itu memungkinkan?
Rasanya tidak ada alasan harus memakai sesuatu seperti Raspberry Pi
Di komputer besar pun, kalau sistem operasinya bisa memakai periferal seperti itu, penggunaannya akan sama saja
Sebelum komputer kecil seperti ini menjadi umum, kita bisa memakai sinyal level rendah yang sama dengan port paralel dan program kecil untuk berkomunikasi langsung dengan periferal
Raspberry Pi punya banyak dokumentasi bootstrap dan kode, jadi nyaman bagi orang yang pernah sedikit mengutak-atik Linux untuk menyalakannya, memasang paket, lalu melakukan sesuatu
Kalau punya waktu dan pengetahuan, ini juga bisa dilakukan dengan mikrokontroler yang sangat kecil
Tidak ada hal ajaib pada display itu sendiri, selain kadang membutuhkan tegangan daya yang aneh
Masalah yang lebih umum adalah display seperti ini tidak berkomunikasi langsung lewat USB
Untuk mengatur piksel, display menerima SPI atau antarmuka digital paralel, sehingga dibutuhkan antarmuka perantara dan perangkat lunak untuk menggambar layar
Karena itu orang sering kali tinggal memasang Raspberry Pi dan berbicara dengannya lewat protokol yang lebih umum
Menyalakan komputer biasa terus-menerus hanya untuk satu display ini tidak efisien
Proyek yang bagus, seperti biasa, membuat orang terdorong melakukan kustomisasi
Selain rekomendasi hardware, epaper.py[1] saja sudah bagus untuk dijadikan referensi
[1]: https://github.com/blixt/sol-mate-eink/blob/main/epaper.py
Saya kurang paham kenapa memakai AI untuk mengambil data cuaca
Ada puluhan API cuaca gratis yang bisa dipanggil langsung
Mengubah nama sehari-hari suatu lingkungan menjadi lintang dan bujur yang tepat mungkin bisa dilakukan sampai batas tertentu oleh API tertentu, tetapi saya tidak tahu ada API gratis yang seakurat GPT
Selain itu, kalau memasukkan “Hogwarts” atau “Tatooine”, berkat AI ia juga akan dengan tekun membuatkan cuaca di tempat itu[1]
Yang paling penting, AI menuliskan prompt untuk Dall-E yang akan menghasilkan gambar dengan mempertimbangkan kondisi cuaca sebenarnya, matahari, bulan, dan sebagainya
[1]: https://x.com/blixt/status/1724099967361462714