İçindekiler:
- Gereçler
- Adım 1: Raspbian'ı Kurmak
- 2. Adım: WiFi Yapılandırması
- Adım 3: Yazılım Kurulumu ve Konfigürasyonu
- Adım 4: Veritabanı
- Adım 5: Ayna Çerçevesini Oluşturma
- Adım 6: Elektronik
- Adım 7: Elektroniği Çerçeveye Yerleştirme
- Adım 8: Son Dokunuşlar
- 9. Adım: Webapp ile Etkileşim
Video: Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Sihirli Ayna, arkasında bir ekran bulunan özel bir tek yönlü aynadır. Bir Raspberry Pi'ye bağlı olan ekran, hava durumu, oda sıcaklığı, saat, tarih, bir todolist ve çok daha fazlası gibi bilgileri gösterir. Hatta bir mikrofon ekleyebilir ve bir akıllı asistan kurabilirsiniz. Olasılıklar sonsuzdur.
Bu proje oldukça pahalı olabilir, ihtiyacınız olan en pahalı parçalardan biri de tabii ki ekran. Bu yüzden eski bir dizüstü bilgisayardan bir ekranı geri dönüştürdüm. Ancak bu projeyi yapmak için geniş, parlak, yüksek kontrastlı bir ekran almanızı tavsiye ederim. Buna değer.
Yaptığım ayna şu özelliklere sahiptir:
- Kullanıcı tarafından seçilen bir RSS beslemesinden haberler
- Hava Durumu
- İç sıcaklık
- Bir alarm sistemi
- Bir zamanlayıcı sistemi
- bir todolist
- Birden çok kullanıcı: LED şeridi rengi ve haber kaynağı, hangi kullanıcının seçildiğine bağlı olarak değişir.
Gereçler
Bu Sihirli Aynayı oluşturmak için ihtiyacınız olacak:
- Tek yönlü ayna
- Odun
- Ahududu Pi
- Bir Mikro SD kart (8+GB)
- bir ekmek tahtası
- İki 20W hoparlör
- Hoparlörlere güç sağlamak için MAX9744 20W amplifikatör
- 1m 30-led WS2801 led şerit
- DS18B20 1 kablolu sıcaklık sensörü
- HC-SR501 Kızılötesi sensör
- Döner kodlayıcı
-
Bir monitör veya eski dizüstü bilgisayar ekranı
Eski bir dizüstü bilgisayar ekranı kullanıyorsanız, bir dizüstü bilgisayar ekran adaptörü satın almanız gerekir. Bunları AliExpress, Ebay veya Amazon'dan alabilirsiniz. Sadece ekranınızın seri numarasını arayın
Ayrıca aşağıdaki küçük bileşenlere de ihtiyacınız olacak:
- bir diyot
- 4.7k Ohm direnç
- 470 Ohm'luk bir direnç
- Sensörleri Raspberry Pi'ye bağlamak için teller
Ve bu güç kaynakları:
- LED şeridine güç sağlamak için 5V 2A
- Ekrana güç sağlamak için 12V 2A
- Amplifikatöre güç sağlamak için 12V 2A
- Raspberry Pi'ye güç sağlamak için 5.1V 3A (resmi bir RPI güç kaynağı kullanın)
Adım 1: Raspbian'ı Kurmak
Ekran ve aynanın arkasındaki tüm bileşenler, Raspberry Pi tarafından desteklenmektedir. Pi'nin varsayılan işletim sistemi olan Raspbian'ı SD karta yüklemeniz gerekecek.
- Win32 Disk görüntüleyiciyi indirin. Linux ve MacOS kullanıcıları Etcher gibi bir şey kullanabilir.
- Raspberry Pi web sitesinden en son Raspbian görüntüsünü indirin. 'Masaüstü ile Raspbian Buster' seçeneğini seçin
- Win32 Disk Imager'ı açın ve görüntü dosyasını SD karta yazın.
SD kart artık neredeyse hazır. Raspberry Pi'ye uzaktan bağlanabileceğimizden emin olmamız yeterli:
- Sisteminizin dosya gezginini kullanarak SD kartın 'önyükleme' bölümüne gidin.
- Uzantısı olmayan 'ssh' adlı bir dosya ekleyin.
- 'cmdline.txt' dosyasının ilk satırının sonuna 'ip=169.254.10.1' (tırnak işaretleri olmadan) ekleyin.
SD kartı bilgisayarınızdan güvenle çıkarın, Raspberry Pi'nize yerleştirin ve önyükleyin.
2. Adım: WiFi Yapılandırması
WiFi ağlarını taramak için aşağıdaki komutu yürütün:
sudo iw dev wlan0 taraması | grep SSID'si
Raspberry Pi'nizin bağlanabileceği tüm SSID'lerin listesini göreceksiniz.
Aşağıdaki komutu yürüterek ve ağınızın parolasını girerek şifreli bir parola ile bir ağ girişi oluşturun:
wpa_passphrase "SİZİN_AĞINIZ_SSID_HERE"
Şimdi yukarıdaki komutun çıktısını bu dosyaya yapıştırın:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Şimdi Raspberry Pi'yi yeniden başlatın. İnternete bağlanacaksınız.
Adım 3: Yazılım Kurulumu ve Konfigürasyonu
Bu proje için şu paketleri Raspberry Pi'nize indirmeniz gerekecek:
pip3 mysql-connector-python flask-socketio flask-cors kurulumu gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744
sudo apt apache2 mariadb sunucusunu kurun
GPIO pinleri 12 (sol) ve 13 (sağ) üzerinden sesi etkinleştirmek için /boot/config.txt dosyasının altına bu satırı ekleyin:
dtoverlay=audremap
Ekranınızın çözünürlüğünü ayarlamak ve i2c, Tek kablolu ve SPI'yi etkinleştirmek için raspi-config kullanın. Ayrıca önyükleme yöntemini 'Masaüstü Otomatik Oturum Açma' olarak ayarlayın.
/etc/xdg/lxsession/LXDE-pi/autostart içine aşağıdakileri ekleyin:
@xset s off@xset -dpms@xset s noblank@chromium-browser --kiosk 127.0.0.1/mirror.html # önyüklemeden sonra kromu yükleyin ve web sitesini tam ekran modunda açın
Bu, LXDE (Raspbian'ın masaüstü ortamı) yüklendiğinde tarayıcıyı doğru sayfada açar. Ayrıca ekran koruyucuyu devre dışı bırakmak için @xscreensaver satırını kaldırın veya yorum yapın.
Github deposu
GitHub depomu klonlayın ve Ön Uç klasörünün içeriğini /var/www/html içine koyun. Arka Uç klasörüne daha sonra ihtiyacımız olacak.
Adım 4: Veritabanı
Bu, 3NF'ye optimize edilmiş veritabanı şemasıdır. Tüm alarmları, haber kaynaklarını, kullanıcıları, sensör verilerini, sesleri ve todolist'i saklar.
- Pi'nizin veritabanı sunucusuna (mariadb) erişmek için MySQL Workbench'i kullanın
- Bu şemayı kullanarak bir veritabanı oluşturun ve kendi verilerinizi ekleyin.
- GitHub depomun Arka Uç klasöründe config.py'yi düzenleyin: veritabanı adını, seçtiğiniz kullanıcı adını ve şifreyi değiştirin.
- app.py dosyasını düzenleyin ve OpenWeatherMap API URL'sini kendinize göre değiştirin. (Burada kendinizinkini oluşturun)
Adım 5: Ayna Çerçevesini Oluşturma
Çerçeveyi metal köşeli Gönye bağlantılarını kullanarak aynanın çevresine yaptım. Kullandığım ahşap kalaslar 18mm kalınlığında ve 10cm genişliğinde. Resimlerde 45cm x 60cm aynanın tam ölçülerini görebilirsiniz. Aynanın arkasında tüm elektronik aksamlar var, bu yüzden tahtalarınızın sığacak kadar geniş olduğundan emin olun.
Hoparlörleri çerçeveye takmak için metal kancalar kullandım. Bu şekilde aynaya dayanmazlar ve camdaki titreşim stresini azaltırlar.
Adım 6: Elektronik
Devreyi oluşturmak için yukarıdaki şemaları izleyin. Elektroniği aynaya sabitlemek için bant kullandım.
Adım 7: Elektroniği Çerçeveye Yerleştirme
Hoparlörleri üst kısımdaki metal kancalara taktıktan sonra elektronik aksamın geri kalanını aynaya ekleyin. Ayrıca ayna ile elektronik aksam arasına ince bir tahta kalas koydum, bu yüzden elektroniği aynaya bantlamak yerine elektroniği tahta kalas üzerine bantladım. Dizüstü bilgisayar ekranı, aynanın altındaki beyaz paneldir.
Resimlerde de görebileceğiniz gibi, tüm güç adaptörlerini çok soketli bir prize taktım, böylece çerçeveden tek bir kablo çıkıyor. Bu yüzden yeterince geniş tahtalara (10cm) ihtiyacım vardı.
Döner kodlayıcının geçmesi için aynanın sağ tarafında 2 cm genişliğinde bir delik açtım. Bu, ses seviyesini kolayca değiştirmenize (dönüş) veya zamanlayıcıları ve alarmları kapatmanıza (itme) izin verir.
Led şeritler için kabloları yönlendirmek için aynanın her iki yanına iki adet 8 mm'lik delik açtım.
Adım 8: Son Dokunuşlar
Elektronikleri gizlemek için aynanın arkasına siyah bir bez ekledim. Ayrıca kasanın içini karartıyor, bu da telleri aynadan görmeyi çok daha zorlaştırıyor. Velcro ile bağladım, gerektiğinde elektroniklere erişmeyi kolaylaştırdım.
Arka Uç klasörünü Github depomdan hatırlayacağınız bir yere kopyalayın.
Python betiğinin açılışta çalışması için bir systemd birimi ekleyin:
sudo nano /etc/systemd/system/magicmirror.service
[Birim]
Description=magicmirror python betiği için hizmet After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=/home/pi/magicMirror/Backend StandardOutput=StandardError'ı devral=restart Restart=her zaman Kullanıcıyı devral =pi [Yükle] WantedBy=çok kullanıcılı.target
'WorkingDirectory' öğesini Backend dizinine değiştirin ve User'ı kendi kullanıcı adınızla değiştirin.
9. Adım: Webapp ile Etkileşim
IP adresine (ekranda olan) gidin. Aşağıdaki özelliklere sahip, mobil öncelikli bir web sitesi göreceksiniz:
- Etkileşimli bir sıcaklık grafiği
- Bir zaman. Zamanlayıcı çalışırken, aynanın kendisinde de bir geri sayım göreceksiniz.
- Bir alarm sistemi
- Kullanıcıları, haber kaynaklarını ve konuşmacı ses seviyesini düzenleyebileceğiniz bir ayarlar sekmesi.
- Bir todolist. Yapılacaklar öğeleri aynada görüntülenecek
Mirror.html, Magic Mirror'da görüntülenen sayfadır. Yukarıdaki resimlere bir örnek ekledim.
Önerilen:
Java'da BME280 ile Raspberry Pi Kullanan Kişisel Hava Durumu İstasyonu: 6 Adım
Java'da BME280 ile Raspberry Pi Kullanan Kişisel Hava Durumu İstasyonu: Kötü hava her zaman bir pencereden daha kötü görünür. Her zaman yerel hava durumunu ve pencereden ne gördüğümüzü izlemekle ilgilendik. Ayrıca ısıtma ve klima sistemimiz üzerinde daha iyi kontrol sağlamak istedik. Kişisel Hava Durumu İstasyonu inşa etmek harika bir
Hava Durumu İstasyonu: ESP8266, Derin Uyku, SQL, Flask&Plotly ile Grafik Oluşturma: 3 Adım
Hava Durumu İstasyonu: ESP8266 Derin Uyku, SQL, Flask&Plotly ile Grafik Oluşturma: Balkonunuzdaki sıcaklık, nem veya ışık yoğunluğunu bilmek eğlenceli olur mu? Yapacağımı biliyorum. Bu tür verileri toplamak için basit bir hava durumu istasyonu yaptım. Aşağıdaki bölümler, bir tane oluşturmak için attığım adımlardır. Haydi başlayalım
WiFi Saat, Zamanlayıcı ve Hava Durumu İstasyonu, Blynk Kontrollü: 5 Adım (Resimlerle)
WiFi Saati, Zamanlayıcı ve Hava Durumu İstasyonu, Blynk Kontrollü: Bu bir Morphing dijital saatidir (konsept ve geçiş kodu için Hari Wiguna'ya teşekkürler), aynı zamanda bir Analog saat, hava durumu raporlama istasyonu ve mutfak zamanlayıcısıdır. WiFi ile akıllı telefonunuzdaki Blynk uygulaması. Uygulama, size
Raspberry Pi'yi Python'da BME280 ile Kullanan Hava Durumu İstasyonu: 6 Adım
Ahududu Pi'yi Python'da BME280 ile Kullanan Hava İstasyonu: maith an scéalaí an aimir(Hava Durumu İyi Bir Öykü Anlatıcısıdır)Küresel ısınma ve iklim değişikliği sorunlarıyla birlikte, küresel hava durumu düzeni dünyamızda düzensiz hale gelmekte ve bu durum hava durumuyla ilgili bir dizi soruna yol açmaktadır. doğal afetler (kuraklık, aşırı
DHT11 ile ESP32 Tabanlı M5Stack M5stick C Hava Durumu Monitörü - DHT11 ile M5stick-C'de Sıcaklık Nem ve Isı İndeksini İzleme: 6 Adım
DHT11 ile ESP32 Tabanlı M5Stack M5stick C Hava Durumu Monitörü | DHT11 ile M5stick-C'de Sıcaklık Nem ve Isı İndeksini İzleme: Merhaba arkadaşlar, bu talimatta DHT11 sıcaklık sensörünün m5stick-C (m5stack tarafından geliştirilen bir geliştirme kartı) ile nasıl arayüzleneceğini ve m5stick-C ekranında nasıl görüntüleneceğini öğreneceğiz. Bu eğitimde sıcaklık, nem ve sıcaklık değerlerini okuyacağız; ısı ben