Cuprins:

Oglindă magică cu știri, vreme, alarmă, temporizator și todolist: 9 pași
Oglindă magică cu știri, vreme, alarmă, temporizator și todolist: 9 pași
Anonim
Oglindă magică cu știri, vreme, alarmă, cronometru și todolist
Oglindă magică cu știri, vreme, alarmă, cronometru și todolist
Oglindă magică cu știri, vreme, alarmă, temporizator și Todolist
Oglindă magică cu știri, vreme, alarmă, temporizator și Todolist

O oglindă magică este o oglindă specială cu sens unic, cu un afișaj în spatele ei. Afișajul, care este conectat la un Raspberry Pi, afișează informații precum vremea, temperatura camerei, ora, data, un todolist și multe altele. Puteți chiar să adăugați un microfon și să configurați un asistent inteligent. Posibilitățile sunt nelimitate.

Acest proiect poate fi destul de scump, una dintre cele mai scumpe părți de care aveți nevoie este, desigur, afișajul. De aceea am reciclat un afișaj de pe un laptop vechi. Cu toate acestea, vă recomand să obțineți un ecran mare, luminos, cu contrast ridicat pentru a face acest proiect. Se merită.

Oglinda pe care am făcut-o are aceste caracteristici:

  • Știri dintr-un flux RSS ales de utilizator
  • Vreme
  • Temperatura interioară
  • Un sistem de alarmă
  • Un sistem de temporizare
  • Un todolist
  • Mai mulți utilizatori: culoarea ledstrip și schimbarea sursei de știri în funcție de utilizatorul selectat.

Provizii

Pentru a construi această oglindă magică, veți avea nevoie de:

  • O oglindă cu sens unic
  • Lemn
  • Un Raspberry Pi
  • Un card Micro SD (8 + GB)
  • O placă de măsurare
  • Două difuzoare de 20W
  • Amplificator MAX9744 20W pentru alimentarea difuzoarelor
  • 1m 30-led WS2801 ledstrip
  • Senzor de temperatură DS18B20 cu 1 fir
  • HC-SR501 Senzor infraroșu
  • Un codificator rotativ
  • Un monitor sau un ecran vechi pentru laptop

    Dacă utilizați un afișaj vechi pentru laptop, va trebui să cumpărați un adaptor pentru laptop. Le puteți obține de la AliExpress, Ebay sau Amazon. Căutați doar numărul de serie al afișajului

De asemenea, veți avea nevoie de următoarele componente mici:

  • O diodă
  • Un rezistor de 4,7 k Ohm
  • Un rezistor de 470 Ohm
  • Cabluri pentru conectarea senzorilor la Raspberry Pi

Și aceste surse de alimentare:

  • 5V 2A pentru alimentarea benzii led
  • 12V 2A pentru alimentarea afișajului
  • 12V 2A pentru alimentarea amplificatorului
  • 5.1V 3A pentru alimentarea Raspberry Pi (utilizați o sursă oficială de alimentare RPi)

Pasul 1: Instalarea Raspbian

Afișajul și toate componentele din spatele oglinzii sunt alimentate de Raspberry Pi. Va trebui să instalați Raspbian, sistemul de operare implicit al Pi, pe cardul SD.

  1. Descărcați Win32 Disk imager. Utilizatorii Linux și MacOS pot folosi ceva de genul Etcher.
  2. Descărcați cea mai recentă imagine Raspbian de pe site-ul web Raspberry Pi. Alegeți opțiunea „Raspbian Buster with desktop”
  3. Deschideți Win32 Disk Imager și scrieți fișierul imagine pe cardul SD.

Cardul SD este acum aproape gata. Trebuie doar să ne asigurăm că ne putem conecta la Raspberry Pi de la distanță:

  1. Accesați partiția „boot” a cardului SD utilizând exploratorul de fișiere al sistemului.
  2. Adăugați un fișier numit „ssh” fără o extensie.
  3. Adăugați „ip = 169.254.10.1” (fără ghilimele) la sfârșitul primei linii din „cmdline.txt”.

Scoateți în siguranță cardul SD de pe computer, puneți-l în Raspberry Pi și porniți-l.

Pasul 2: Configurare WiFi

Pentru a scana rețele WiFi, executați următoarea comandă:

sudo iw dev wlan0 scan | grep SSID

Veți vedea lista tuturor SSID-urilor la care vă puteți conecta Raspberry Pi.

Creați o intrare în rețea cu o parolă criptată executând următoarea comandă și introducând parola rețelei:

wpa_passphrase "YOUR_NETWORK_SSID_HERE"

Acum lipiți ieșirea comenzii de mai sus în acest fișier:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Acum reporniți Raspberry Pi. Veți fi conectat la internet.

Pasul 3: Instalare și configurare software

Pentru acest proiect, va trebui să descărcați aceste pachete pe Raspberry Pi:

pip3 instala mysql-connector-python flask-socketio flask-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt instalează apache2 mariadb-server

Adăugați această linie în partea de jos a /boot/config.txt pentru a activa sunetul prin pinii GPIO 12 (stânga) și 13 (dreapta):

dtoverlay = audremap

Utilizați raspi-config pentru a seta rezoluția afișajului și pentru a activa i2c, One-wire și SPI. De asemenea, setați metoda de pornire la „Desktop Autologin”.

În / etc / xdg / lxsession / LXDE-pi / autostart, adăugați următoarele:

@xset s off @ xset -dpms @ xset s noblank @ chromium-browser --kiosk 127.0.0.1/mirror.html # încărcați crom după pornire și deschideți site-ul web în modul ecran complet

Aceasta deschide browserul pe pagina corectă când se încarcă LXDE (mediul desktop Raspbian). De asemenea, eliminați sau comentați linia @xscreensaver pentru a dezactiva economizorul de ecran.

Depozit Github

Clonați depozitul meu GitHub și puneți conținutul folderului Frontend în / var / www / html. Vom avea nevoie de folderul Backend mai târziu.

Pasul 4: baza de date

Baza de date
Baza de date

Aceasta este schema bazei de date, optimizată la 3NF. Stochează toate alarmele, sursele de știri, utilizatorii, datele senzorilor, sunetele și lista totală.

  1. Utilizați MySQL Workbench pentru a accesa serverul de baze de date al dvs. pi (mariadb)
  2. Creați o bază de date folosind această schemă și introduceți propriile date.
  3. Editați config.py în folderul Backend al depozitului meu GitHub: schimbați numele bazei de date, numele de utilizator ales și parola.
  4. Editați app.py și schimbați adresa URL API OpenWeatherMap la a dvs. (Creați-vă aici)

Pasul 5: Construirea cadrului oglindă

Construirea cadrului oglinzii
Construirea cadrului oglinzii
Construirea cadrului oglinzii
Construirea cadrului oglinzii
Construirea cadrului oglinzii
Construirea cadrului oglinzii

Am construit cadrul în jurul oglinzii folosind îmbinări mitre cu colțuri metalice. Scândurile de lemn pe care le-am folosit au o grosime de 18 mm și o lățime de 10 cm. În imagini puteți vedea măsurătorile exacte pentru o oglindă de 45cm x 60cm. În spatele oglinzii se află toate componentele electronice, deci asigurați-vă că scândurile dvs. sunt suficient de late pentru a le potrivi.

Am folosit cârlige metalice pentru a atașa difuzoarele la cadru. Astfel nu se sprijină pe oglindă, reducând stresul de vibrație de pe sticlă.

Pasul 6: Electronica

Electronica
Electronica
Electronica
Electronica

Urmați schemele de mai sus pentru a construi circuitul. Am folosit bandă pentru a fixa electronica pe oglindă.

Pasul 7: Montarea electronice în cadru

Montarea electronice în cadru
Montarea electronice în cadru
Montarea electronice în cadru
Montarea electronice în cadru

După ce ați atașat difuzoarele la cârligele metalice din partea de sus, adăugați restul componentelor electronice la oglindă. De asemenea, am pus o scândură subțire de lemn între oglindă și electronică, așa că, în loc să lipesc electronica de oglindă, am lipit electronica de scândura de lemn. Afișajul laptopului este un panou alb în partea de jos a oglinzii.

După cum puteți vedea în imagini, am conectat toate adaptoarele de alimentare într-o priză cu mai multe prize, astfel încât să rămână un singur cablu din cadru. Acesta este motivul pentru care aveam nevoie de scânduri suficient de largi (10cm).

Am forat o gaură de 2 cm lățime în partea dreaptă a oglinzii pentru ca codificatorul rotativ să se potrivească. Acest lucru vă permite să modificați cu ușurință volumul (rotirea) sau să renunțați la cronometre și alarme (apăsare).

Am forat două găuri de 8 mm de ambele părți ale oglinzii pentru a direcționa cablurile pentru benzile led.

Pasul 8: Atingeri de finisare

Finisaje
Finisaje
Finisaje
Finisaje
Finisaje
Finisaje

Am adăugat o cârpă neagră în spatele oglinzii pentru a ascunde electronica. De asemenea, întunecă interiorul carcasei, ceea ce face mult mai greu să vezi firele prin oglindă. L-am atașat cu velcro, facilitând accesul la electronice atunci când este nevoie.

Copiați folderul Backend din depozitul meu Github într-un loc pe care îl veți aminti.

Adăugați o unitate systemd astfel încât scriptul python să ruleze la boot:

sudo nano /etc/systemd/system/magicmirror.service

[Unitate]

Descriere = Serviciul pentru scriptul magicmirror python După = network.target [Service] ExecStart = / usr / bin / python3 -u app.py WorkingDirectory = / home / pi / magicMirror / Backend StandardOutput = eredita StandardError = eredita Restart = întotdeauna Utilizator = pi [Instalare] WantedBy = multi-user.target

Schimbați „WorkingDirectory” în directorul Backend și schimbați User cu propriul dvs. nume de utilizator.

Pasul 9: interacțiunea cu aplicația Web

Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web
Interacțiunea cu aplicația Web

Navigați la adresa IP (care este pe afișaj). Veți vedea un site web primul mobil cu următoarele caracteristici:

  • Un grap de temperatură interactiv
  • O vreme. Când cronometrul funcționează, veți vedea, de asemenea, o numărătoare inversă pe oglindă.
  • Un sistem de alarmă
  • O filă de setări, unde puteți edita utilizatorii, sursele de știri și volumul difuzoarelor.
  • Un todolist. Articolele Todo vor fi afișate pe oglindă

Mirror.html este pagina care este afișată pe Magic Mirror. Am adăugat un exemplu în imaginile de mai sus.

Recomandat: