İçindekiler:

Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror: 9 Adım
Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror: 9 Adım

Video: Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror: 9 Adım

Video: Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror: 9 Adım
Video: Neel 51 Trimaran Atlantic Crossing, ARC Regatta - Ep.2/5 2024, Kasım
Anonim
Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror
Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror
Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror
Haber, Hava Durumu, Alarm, Zamanlayıcı ve Todolist ile Magic Mirror

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.

  1. Win32 Disk görüntüleyiciyi indirin. Linux ve MacOS kullanıcıları Etcher gibi bir şey kullanabilir.
  2. Raspberry Pi web sitesinden en son Raspbian görüntüsünü indirin. 'Masaüstü ile Raspbian Buster' seçeneğini seçin
  3. 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:

  1. Sisteminizin dosya gezginini kullanarak SD kartın 'önyükleme' bölümüne gidin.
  2. Uzantısı olmayan 'ssh' adlı bir dosya ekleyin.
  3. '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ı

Veritabanı
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.

  1. Pi'nizin veritabanı sunucusuna (mariadb) erişmek için MySQL Workbench'i kullanın
  2. Bu şemayı kullanarak bir veritabanı oluşturun ve kendi verilerinizi ekleyin.
  3. 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.
  4. 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

Ayna Çerçevesini Oluşturma
Ayna Çerçevesini Oluşturma
Ayna Çerçevesini Oluşturma
Ayna Çerçevesini Oluşturma
Ayna Çerçevesini Oluşturma
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

Elektronik
Elektronik
Elektronik
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

Elektroniği Çerçeveye Takma
Elektroniği Çerçeveye Takma
Elektroniği Çerçeveye Takma
Elektroniği Çerçeveye Takma

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

Son Dokunuşlar
Son Dokunuşlar
Son Dokunuşlar
Son Dokunuşlar
Son Dokunuşlar
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

Webapp ile Etkileşim
Webapp ile Etkileşim
Webapp ile Etkileşim
Webapp ile Etkileşim
Webapp ile Etkileşim
Webapp ile Etkileşim
Webapp ile Etkileşim
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: