- Sol Mate e-Paper Display एक प्रोजेक्ट है जो चुनी गई लोकेशन के मौजूदा मौसम और रोशनी की स्थिति को दर्शाने वाला इलस्ट्रेशन बनाता है और उसे Raspberry Pi से जुड़े Waveshare e-Paper स्क्रीन पर दिखाता है
- स्क्रिप्ट लोकेशन इनपुट लेकर मौसम प्राप्त करती है, और gpt-5-mini द्वारा बनाए गए प्रॉम्प्ट तथा gpt-image-1-mini का उपयोग करके हाई-क्वालिटी इमेज रेंडर करती है, इसलिए OpenAI API टोकन आवश्यक है
- इसमें केवल वास्तविक लोकेशन ही नहीं, बल्कि दोस्त की लोकेशन या काल्पनिक स्थान भी डाले जा सकते हैं; काल्पनिक स्थान के लिए GPT पृथ्वी पर सबसे मिलती-जुलती जगह के latitude/longitude मौसम सेवा को भेजता है
- हार्डवेयर Raspberry Pi 5 और Waveshare e-Paper 7.3" display पर आधारित है, और यदि किसी अन्य आकार के डिस्प्ले का उपयोग करना हो तो कोड में बदलाव करना होगा
control.py स्क्रीन पर दिखाना, लोकल प्रीव्यू और स्क्रीन साफ़ करना सपोर्ट करता है, और Waveshare की यह सिफारिश कि एक ही इमेज को बहुत देर तक न दिखाया जाए, साथ ही API लागत बढ़ने की संभावना—दोनों का ध्यान रखना चाहिए
Sol Mate e-Paper Display क्या करता है
- Sol Mate e-Paper Display Raspberry Pi और Waveshare e-Paper डिस्प्ले के लिए weather report image बनाकर दिखाने वाले कोड का संग्रह है
- इसे शुरुआत में ☀️ Sol Mate GPT के रूप में बनाया गया था, और बाद में यह जिज्ञासा हुई कि यह e-Paper डिस्प्ले पर कैसा दिखेगा, जिससे यह प्रोजेक्ट बना
- इनपुट लोकेशन के रूप में वास्तविक स्थान, दोस्त की लोकेशन, और काल्पनिक स्थान तक दिए जा सकते हैं
- उदाहरण के लिए, बारिश होने पर चित्र में छाता लिए लोग दिखाई दे सकते हैं, यानी मौजूदा मौसम इलस्ट्रेशन में झलकता है
- काल्पनिक स्थान डालने पर GPT अपने आकलन के आधार पर पृथ्वी पर सबसे मिलती-जुलती जगह के latitude/longitude मौसम सेवा को भेजता है
इमेज कैसे बनती है
- इलस्ट्रेशन gpt-image-1-mini मॉडल से रेंडर होता है
- इमेज प्रॉम्प्ट gpt-5-mini बनाता है, और हाई-क्वालिटी इमेज सेटिंग का उपयोग किया जाता है
- इस जनरेशन फ्लो की वजह से चलाने के लिए OpenAI API टोकन चाहिए
आवश्यक हार्डवेयर
चलाना और उपयोग
- प्रोजेक्ट को Raspberry Pi पर चलाने के लिए बनाया गया है
- Python environment मैनेजमेंट के लिए uv का उपयोग होता है
uv virtual environment को मैनेज करता है, इसलिए उसे मैन्युअली activate करने की ज़रूरत नहीं है
uv sync
- macOS या Linux के अलावा किसी development machine पर Raspberry Pi hardware library को डिफ़ॉल्ट रूप से skip कर दिया जाता है
OPENAI_API_KEY environment variable सेट करना होगा
- मौजूदा working directory की
.env फ़ाइल से environment variables पढ़े जा सकते हैं
OPENAI_API_KEY=... uv run python control.py show Barcelona
- लोकल में जल्दी जांचने के लिए iTerm2 image display का उपयोग करने वाला
preview कमांड चलाया जा सकता है
- डिफ़ॉल्ट रूप से यह system temporary directory में
sol-mate-preview-<timestamp>.png नाम से सेव होता है
OPENAI_API_KEY=... uv run python control.py preview "Barcelona"
स्क्रीन प्रबंधन और ऑटो अपडेट
- Waveshare सिफारिश करता है_Manual#Precautions>) कि एक ही इमेज को डिस्प्ले पर बहुत लंबे समय तक न छोड़ा जाए
- स्क्रीन साफ़ करने के लिए
clear कमांड का उपयोग करें
uv run python control.py clear
- उदाहरण कॉन्फ़िगरेशन
cron के जरिए दिन में दो बार इमेज अपडेट करती है और भोर में स्क्रीन साफ़ करती है
- पाथ को अपने इंस्टॉलेशन environment के अनुसार बदलना होगा
- बार-बार चलाने पर लागत कम नहीं हो सकती
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
बैकएंड और संदर्भ सामग्री
- मौसम लाने के लिए एक private API का उपयोग किया जा सकता है, लेकिन शर्त है कि उसे अत्यधिक बार कॉल न किया जाए
- यदि बड़े पैमाने पर उपयोग का विचार हो, तो self-hosting की सिफारिश की जाती है
- बैकएंड source code blixt/sol-mate में है
- अतिरिक्त फ़ोटो और बनाने की प्रक्रिया:
1 टिप्पणियां
Hacker News की राय
एक मिलते-जुलते प्रोजेक्ट में Inkplate 6Color इस्तेमाल कर रहा हूँ
इसमें ESP32 controller बिल्ट-इन है, इसलिए Pi की ज़रूरत नहीं पड़ती, और यह सिर्फ battery पर भी चल सकता है
अगर deep sleep/wake schedule ठीक से सेट किया जाए, तो एक बार charge पर कई हफ्तों तक चल सकता है
मुझे सबसे ज़्यादा पसंद ऑफिस के दरवाज़े पर लगा लाल On Air sign है; मीटिंग या recording के समय Mac पर shortcut चलाते ही status अपने-आप अपडेट हो जाता है और डिवाइस mute हो जाते हैं
weather display, news, और Google Calendar के लिए open source examples भी हैं
https://soldered.com/product/inkplate-6color-color-e-paper-b...
सस्ते electronic ink प्रोजेक्ट सच में मज़ेदार और उपयोगी होते हैं
Pi Zero से जुड़ा electronic ink display सिर्फ Yes/No दिखाता है कि अगले 3 घंटे में बारिश होगी या नहीं
अब सोचता हूँ तो शायद 7-color display तक की ज़रूरत नहीं होगी
जो display इस्तेमाल कर रहा हूँ वह https://shop.pimoroni.com/products/inky-impression-7-3?varia... है और यह ज़्यादा सस्ता लगता है
इतना मज़ेदार है कि मन करता है ऐसे screen घर भर में लगा दूँ
मैंने भी स्वतंत्र रूप से एक हफ्ते पहले उसी display के साथ लगभग यही चीज़ बनाई थी
https://imgz.org/iBLADkCU.jpg
यह एक frame है जो किसी खास location का current weather और time लाता है, और AI उस location को शामिल करते हुए एक photo generate करके दिखाता है
हैरानी होती है कि हम दोनों अलग-अलग काम करते हुए यहाँ तक कैसे पहुँच गए
शायद यह सबसे obvious use case था
नए founder के लिए यह अच्छा उदाहरण है कि उनका idea अकेला नहीं है, और सच कहें तो truly unique ideas बहुत कम होते हैं
असली बात execution है
electronic ink weather board दुनिया का Uber और Lyft जैसा लगता है, और HN पर मैंने इससे मिलती-जुलती चीज़ों को पहले भी tag किया है
समय मिला तो मैं भी एक बनाऊँगा, और यह सब ESP32 development और free/open source home automation के लिए प्रेरित करता है
hardware project और idea शानदार हैं, लेकिन हमेशा चालू रहने वाले device पर OpenAI API का इस्तेमाल मैं बिल्कुल नहीं करना चाहूँगा
अगर कभी मज़े के लिए बनाना हुआ, तो शायद OpenStreetMap और LAN पर host किए गए Stable Diffusion वाला version बना सकता हूँ, इसलिए इसे bookmark करने लायक मानता हूँ
ऐसा ही एक प्रोजेक्ट देखकर मैंने वही display दो खरीद लिए थे
शुरू में योजना थी कि उन दोनों उदाहरणों की तरह color photo display बनाऊँ, लेकिन यह application भी अच्छी लग रही है
उम्मीद है hacking अच्छी चले, और जल्द ही आपका बना प्रोजेक्ट यहाँ देखने को मिले
image में Barcelona 26°C और 2°C के रूप में दिख रहा है
मैं Barcelona कुछ बार जा चुका हूँ, लेकिन एक ही दिन में ये दोनों तापमान देखना कल्पना से बाहर लगता है
सोच रहा हूँ कि weather data भरोसेमंद है, या फिर सब hallucination है और बस animation का आनंद लेना चाहिए
या फिर शायद मुझे Barcelona के मौसम की उतनी समझ नहीं, और 26 डिग्री high तथा 2 डिग्री low संभव हो सकते हैं
2°C, 26°C से निकला हुआ hallucination ही है
क्योंकि यह hobby project है, इसलिए पारंपरिक तरीके से text render करने के बजाय हर बार text को अलग और अक्सर ज़्यादा artistic दिखने देने को प्राथमिकता दी गई
लेकिन अगर इसे गंभीर product बनाना हो, तो image generation model अभी इस उपयोग के लिए पर्याप्त नहीं हैं
मुझे यह जानने की जिज्ञासा है कि “एक ही image को display पर बहुत देर तक न छोड़ें” ऐसा क्यों कहा गया है
क्या यह color electronic ink की खास समस्या है?
असल में शायद यह इतनी बड़ी समस्या नहीं है, लेकिन अगर pixel बहुत लंबे समय तक active रहें, तो उनके अटक जाने का जोखिम हो सकता है
[1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
सामान्य black-and-white electronic ink के विपरीत, क्या display method में कोई ऐसा फ़र्क है जिसकी वजह से एक ही image को लंबे समय तक न छोड़ने की चेतावनी देनी पड़ती है?
अगर मुझे सही याद है, तो standard black-and-white electronic ink display में burn-in नहीं होता था
ताकि लोग और जानकारी लेकर खुद निर्णय कर सकें, मैं README में documentation link जोड़ दूँगा
[1]: https://www.waveshare.com/wiki/7.3inch_e-Paper_HAT_(F)_Manua...
यह जिज्ञासा होती है कि ऐसे प्रोजेक्ट्स में डिस्प्ले चलाने के लिए हमेशा Raspberry Pi जैसे छोटे और low-power कंप्यूटर को ही क्यों चुना जाता है
Debian GNU/Linux चलाने वाले सामान्य कंप्यूटर तो पहले से बहुत हैं
अगर उन कंप्यूटरों में से किसी एक पर इस कोड का इस्तेमाल करके सामान्य USB केबल से e-paper डिस्प्ले चलाना हो, तो क्या वह संभव नहीं है?
ऐसा नहीं लगता कि Raspberry Pi जैसा कुछ इस्तेमाल करना अनिवार्य है
बड़े कंप्यूटरों में भी अगर operating system से ऐसे peripherals इस्तेमाल किए जा सकें, तो वही काम किया जा सकता है
ऐसे छोटे कंप्यूटर आम होने से पहले, parallel port और छोटे प्रोग्राम की मदद से ऐसे ही low-level signals का उपयोग करके सीधे peripherals से communicate किया जा सकता था
Raspberry Pi पर bootstrap documents और code बहुत हैं, इसलिए Linux को थोड़ा-बहुत जानने वाला कोई भी व्यक्ति इसे चालू करके, packages install करके कुछ बना सकता है
समय और जानकारी हो तो बहुत छोटे microcontroller से भी यह किया जा सकता है
डिस्प्ले में कोई जादुई चीज़ नहीं होती, बस कभी-कभी उसे अजीब power voltages चाहिए होते हैं
ज़्यादा आम समस्या यह है कि ऐसे डिस्प्ले सीधे USB से communicate नहीं करते
pixels सेट करने के लिए ये SPI या parallel digital interface लेते हैं, इसलिए बीच में एक interface और स्क्रीन draw करने वाला software चाहिए
इसी वजह से लोग अक्सर Raspberry Pi जोड़ देते हैं और फिर उससे किसी ज़्यादा आम protocol में बात करते हैं
सिर्फ इस एक डिस्प्ले के लिए किसी सामान्य कंप्यूटर को लगातार चालू रखना inefficent है
बेहतरीन प्रोजेक्ट्स की तरह, यह भी किसी को customization की ओर बढ़ने के लिए प्रेरित करता है
hardware recommendations के अलावा, reference के लिए सिर्फ epaper.py[1] देखना भी अच्छा है
[1]: https://github.com/blixt/sol-mate-eink/blob/main/epaper.py
मौसम लाने के लिए AI का इस्तेमाल क्यों किया जा रहा है, यह ठीक से समझ नहीं आता
सीधे call की जा सकने वाली मुफ़्त weather APIs दर्जनों हैं
किसी मोहल्ले के बोलचाल वाले नाम को सटीक latitude/longitude में बदलना कुछ APIs किसी हद तक कर सकती हैं, लेकिन GPT जितनी accuracy देने वाली कोई मुफ़्त API मुझे नहीं पता
और अगर आप “Hogwarts” या “Tatooine” डालें, तो AI की वजह से वहाँ का मौसम भी ईमानदारी से बना देता है[1]
सबसे महत्वपूर्ण बात, यह वास्तविक मौसम की स्थिति, सूरज और चाँद आदि को ध्यान में रखकर image generate करने के लिए Dall-E prompt लिखता है
[1]: https://x.com/blixt/status/1724099967361462714