Master class: Oglindă magică pentru o prințesă. Oglindă magică electronică (Magic Mirror) cu propriile mâini Cum să faci o oglindă magică

15.12.2020 Secretele lumii

Pe Internet, puteți vedea cum producătorii de electronice prezintă multe dispozitive interesante pentru casa inteligentă. Unul dintre aceste dispozitive este o „oglindă magică” electronică inteligentă (Magic Mirror), care afișează informațiile necesare, precum și fotografii, videoclipuri și multe altele. Însă viitorul îți poate bate astăzi casa și poți face o astfel de oglindă magică cu propriile mâini.

În scurt timp, Dylan Pierce și-a asamblat „oglinda magică” care, pe lângă fața sa, arată ora, data, prognoza meteo animată, fluxul de știri. Și, de asemenea, pentru persoanele care doresc să obțină emoții pozitive și reîncărcarea energiei în partea de jos a oglinzii magice, complimentele sunt afișate într-un mod aleatoriu, de exemplu, ca „Arăți uimitor astăzi”.

Pentru a realiza o „oglindă magică” cu propriile mâini, avem nevoie de:

  • Oglindă semitransparentă;
  • Monitor subțire;
  • Raspberry Pi mini computer de bord unic;
  • Scânduri de lemn;
  • A picta.

Cum se face o „oglindă magică” electronică, instrucțiuni pas cu pas:

Pasul 1: Oglindire.

O oglindă obișnuită nu va funcționa aici, ar trebui să fie translucidă, mai exact: ar trebui să se comporte ca o oglindă atunci când ecranul monitorului din spatele oglinzii este negru și ar trebui să se comporte aproape ca o sticlă obișnuită atunci când informațiile sunt afișate pe ecran.

Acesta este același efect ca și oglinda folosită în camerele de interogare ale poliției. Când una dintre cele două camere este mai ușoară, atunci sticla se comportă ca o oglindă, când în două camere este ușoară, atunci această oglindă devine transparentă.

Prin urmare, în primul rând, trebuie să obțineți o astfel de oglindă translucidă, puteți găsi astfel de oglinzi pe Internet, dacă doriți, sau poate că sunt în orașul dvs.

Pasul 2: monitorizează.

În primul rând, m-am întrebat care monitor ar putea fi potrivit pentru crearea unui proiect „oglindă magică”. Dacă este un monitor folosit sau nou, ce diagonală ar trebui să fie, cât de subțire poate fi, este posibil să mutați butoanele de control într-un alt loc, în timp ce monitorul ar trebui să fie suficient de luminos.

După câteva gândiri și măsurători, prin lipirea benzii pe perete, am stabilit că aveam nevoie de un monitor de 24 de inci, în timp ce majoritatea afișajelor cu această diagonală sunt 1080P, care este exact rezoluția pe care am vrut să o folosesc pentru acest proiect.

Cu aceasta, am mers la magazinele locale și majoritatea monitoarelor pe care le-am găsit au fost respinse de mine, deoarece aveau un panou de control cu \u200b\u200bconectori pe spate și am nevoie să fie pe una dintre laturile sale.

La final, am descoperit monitoarele iiyama, erau perfecte pentru „oglinda magică”. Sunt relativ ieftine, au rame înguste în față, butoane tactile simple și locația conectorilor din partea dreaptă a monitorului. Ca rezultat, monitorul 24 ″ iiyama E2481HS-B1 a fost selectat și comandat.

Dezasamblând monitorul, am constatat că controlerul afișajului (electronica într-o cutie metalică) ocupă puțin spațiu și lasă suficient spațiu în jurul său pentru restul componentelor electronice necesare pentru „animarea” oglinzii magice, lăsând monitorul la fel de subțire pe cât este.

Grosimea reală a panoului de afișare este de numai 9 mm și are o ramă mică de 10 mm. Împreună cu controlerul afișajului, dimensiunile erau: 556 mm x 323 mm x 46 mm (+ 6 mm oglindă). Aceste dimensiuni vor servi drept bază pentru noua cutie din lemn.

Pasul 3: Creați un corpus.

După măsurarea dimensiunilor necesare pentru noul caz, începe distracția. Utilizarea unui material precum pinul va crea un cadru robust și stabil. Pentru rama care va ține oglinda și monitorul pe loc, am folosit plinte de lemn pentru podea. Motivul este că au dimensiunea ideală (30 mm lățime) și au o jantă rotunjită. Tăiem plăcile de lungimea necesară pentru corp, le strângem împreună în colțuri cu șuruburi sau șuruburi autofiletante, ungând suprafețele adiacente cu adeziv pentru rezistență.

Deoarece monitorul generează o anumită cantitate de căldură, este necesar să faceți găuri de ventilație în pereții laterali ai carcasei.
Spoiler mic: Produsul final cântărește 6,5 kg.

În plus, în partea de jos a carcasei, am creat un mic slot prin care va ieși cablul de alimentare.

Acum trebuie să acoperiți crăpăturile, să mărunțiți și să pictați totul, l-am vopsit în 2 straturi, s-a dovedit lin și frumos. Gata, corpul pentru „oglinda magică” este gata!

Pentru a fixa monitorul și oglinda pe cadru, am făcut 4 blocuri de montare dintr-o șină:

Am terminat cu lucrările de tâmplărie pe „oglinda magică”, acum să trecem la instalarea hardware-ului.

Pasul 4: Instalare hardware.

„Oglinda magică” a început să prindă contur. Am comandat o oglindă, am găsit monitorul dorit de mine și am ajuns cu un corp alb elegant. Este timpul să începeți instalarea hardware-ului.

Până în acest moment, aveam deja părți de genul acesta:

  • Monitor;
  • Raspberry Pi;
  • Cablu HDMI (pentru conectarea Raspberry Pi la un monitor);
  • Cablu adaptor USB la micro-USB (pentru alimentarea Raspberry Pi);
  • Cablu de alimentare pentru alimentarea monitorului.

În timp ce căutam un monitor, am uitat complet să verific dacă acest monitor are un port USB pentru a alimenta microcomputerul Raspberry Pi prin intermediul acestuia. Am presupus că toate monitoarele moderne sunt echipate în mod implicit cu un port USB. Dar m-am înșelat. Acest monitor nu are intrare USB. Dar nu vreau să înmulțesc multe fire, vreau ca „oglinda magică” să fie alimentată de un singur cablu de alimentare.

Pentru a face acest lucru, am instalat o priză dublă în interiorul carcasei, la care vor fi conectați un cablu standard pentru alimentarea monitorului și un cablu de alimentare mai subțire (de la un magnetofon), care se conectează la adaptorul de alimentare preluat de pe iPad și de la acesta un cablu USB de +5 V merge la Raspberry Pi. Acum este timpul să instalați software-ul.

Pasul 5: Instalarea software-ului Raspberry Pi.

Așadar, acum că tot hardware-ul este instalat, este timpul să instalăm sistemul de operare pe Raspberry Pi. Pentru a satisface toate nevoile de instalare a sistemului, sunt necesare următoarele funcții:

  • Conexiune Wi-Fi;
  • Rotiți ecranul cu 90 de grade pentru a se potrivi cu orientarea portret a ecranului;
  • Server web local pentru găzduirea interfeței;
  • Browserul trebuie să fie în modul ecran complet pentru a afișa informații.

Din acest link (http://michaelteeuw.nl/post/142629029062/magicmirror2-a-huge-announcement) puteți descărca cea mai recentă versiune a interfeței, precum și instalatorul și serverul web încorporat.

Alegerea sistemului de operare pentru Raspberry Pi a căzut pe Raspbian deoarece este open source și are mult sprijin comunitar. După descărcarea imaginii, este timpul să o scrieți pe cardul SD, să o introduceți în zmeura noastră și să începeți instalarea.

Deoarece copierea unei imagini durează mult, avem 3 opțiuni:

  • Puteți utiliza metoda RDISK, care este descrisă în documentația Raspberry;
  • Puteți lua o ceașcă de cafea, puteți sta pe spate și vă puteți bucura de aportul de cofeină în timp ce așteptați;
  • Ambele sunt deasupra.

Aleg articolul 3. Odată ce s-a făcut acest lucru, am descărcat zmeură, m-am conectat și am început să configurez Wizzard tastând sudo raspi-config pe linia de comandă. În această configurație, există mai multe elemente importante care trebuie configurate:
- Asigurați-vă că sistemul încarcă desktopul (în loc de linia de comandă);

- Reglați fusul orar astfel încât „Oglinda magică” să arate ora corectă;

- În secțiunea „Opțiuni avansate”, asigurați-vă că memoria video este împărțită la 128 MB.

Încercați să vă amestecați cu alți parametri, dar amintiți-vă, dacă stricați totul, atunci faceți provizii de o altă ceașcă de cafea și reinstalați sistemul de operare.

Conexiune Wi-Fi.

Deoarece nu vreau cabluri suplimentare pentru Magic Mirror, folosesc WiFi pentru a-l conecta la Internet. Configurarea WiFi depinde de dongle-ul conectat la dongle USB Wi-Fi Raspberry Pi și depinde de marca și tipul acestuia. Prin urmare, este inutil să descriem această instalare aici. Utilizați căutarea pe google introducând în bara de căutare: setare wifi raspberry pi. Pentru a fi sincer, această parte ocupă de cele mai multe ori în timpul instalării. Dar după ce l-ați configurat o dată, funcționează fără cusur în continuare.

Rotația ecranului.

Oglinda magică este concepută pentru utilizarea portretului. Prin urmare, trebuie să rotiți ecranul cu 90 de grade în sensul acelor de ceasornic.

Setările BIOS sunt stocate în partiția de boot a sistemului „/ boot”. Această secțiune conține un fișier config.txt cu toate setările. Pentru a roti toate datele afișate pe monitor, adăugați următoarea linie în acest fișier:

display_rotate \u003d 1

Pentru o conexiune mai fiabilă la monitor, am o linie necomentată care permite metoda conexiunii HDMI:

Server web.

Pentru a găzdui interfața (care este doar o pagină web obișnuită), aveam nevoie de un server web Apache pentru a rula pe Raspberry Pi. Deoarece aceasta este una dintre cele mai comune metode în Rasberry, instalarea Apache este foarte ușoară.

Mai întâi, trebuia să mă asigur că am instalată cea mai recentă versiune a software-ului sistemului, executând următoarea comandă:

sudo apt-get update && apt-get upgrade –y

Ei bine, acum este momentul să instalați de fapt Apache:

sudo apt-get install apache2 apache2-doc apache2-utils

Terminat! Dar pentru a mă asigura că pot folosi unele scripturi PHP pe serverul web (mai multe despre asta mai târziu) am terminat suportul PHP:

sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache

Terminat! Reporniți și acum serverul web este în funcțiune! Am scăpat fișierul index.php în folderul / var / www și am îndreptat adresa IP către browserul meu Raspberry. Și totul a funcționat!

Mod chiosc.

Acum, pentru a mă asigura că Raspberry Pi afișează de fapt o pagină web, voi folosi browserul Chromium în modul chioșc pentru a face acest lucru.

Din nou, este destul de ușor de instalat:

sudo apt-get install chromium x11-xserver-utils unclutter

Acum trebuie să faceți câteva setări suplimentare, pentru aceasta dezactivăm ecranul de pornire și pornim automat în modul chioșc. Pentru a face acest lucru, am editat / etc / xdg / lxsession / LXDE / autostart (pentru o versiune mai nouă a Raspian utilizați următorul fișier: / etc / xdg / lxsession / LXDE-pi / autostart) și am adăugat # înainte:

@xscreensaver -no-splash

@chromium —kiosk —incognito http: // localhost

Acest lucru vă va ajuta să dezactivați complet toate funcționalitățile de pornire și să vă asigurați că Chrome începe imediat ce sistemul de operare pornește și încarcă pagina de pe serverul web în modul ecran complet.
Salvați fișierul și reporniți Raspberry Pi pentru a vedea dacă totul funcționează conform așteptărilor. Raspberry Pi nu este cel mai rapid computer și a durat ceva timp pentru a porni, dar în cele din urmă a apărut pe ecran un site de testare cu o orientare de 90 de grade, totul a funcționat!

Pasul 6: Dezvoltarea interfeței.

Așadar, am găsit tipul corect de oglindă, am cumpărat un monitor, am construit o carcasă nouă, am instalat hardware-ul și am configurat Raspberry Pi. Acum este timpul pentru partea finală a proiectului: dezvoltarea interfeței.

Când am început proiectul, am decis pentru mine că interfața nu ar trebui să accepte interacțiunea directă folosind o oglindă. Întrucât îmi va păta și murdări oglinda strălucitoare și curată, există dispozitive mult mai bune pentru utilizator. Am vrut ca Oglinda Magică să fie o sursă pur pasivă de informații.

Și mai important este faptul că oglinda magică trebuie să fie în primul rând o oglindă obișnuită și, prin urmare, nu ar trebui să fie complet umplută cu informații (inutile), doar marginile oglinzii sunt rezervate pentru aceasta. Lăsând suficient spațiu pentru a te admira.

M-am gândit și am făcut o listă cu tot ceea ce ar trebui să fie afișat pe ecran:

- Compliment. Ce modalitate mai bună de a-ți începe ziua cu un compliment frumos?

- Vremea. Înainte de a ieși afară, trebuie să știți din timp ce se întâmplă pe stradă pentru a vă îmbrăca pe vreme.

- Ceas și calendar. Pentru a nu întârzia o întâlnire sau o muncă importantă în timp ce te admiri în oglindă.

- Fluxuri de stiri. Să fii mereu conștient de evenimentele importante din lume.

Desigur, există multe alte posibilități pentru umplerea oglinzii magice cu conținut. Dar, deocamdată, această listă va fi suficientă.

Setări de bază.

Așa cum am menționat mai devreme, interfața nu este o aplicație pentru sistemul de operare, ci doar o pagină din browser deschisă pe ecran complet. Dar pentru a-l formata, trebuie doar să folosesc HTML, CSS și Javascript. Și, ca bonus suplimentar, îmi permite să proiectez și să testez interfața pe Mac, apoi să o trimit în oglinda magică.

În plus față de codul pe care l-am scris eu, folosesc mai multe biblioteci open source pentru a accelera lucrurile:

Ca aproape orice site, Magic Mirror folosește Jquery pentru a facilita manipularea DOM. Perfect pentru leneși ca mine.

Moment.js

Mă ajută să manipulez cu ușurință marca de timp. Economisește foarte mult timp atunci când aveți de-a face cu data și ora.

FeedToJson

Mod convenabil de a converti fluxurile RSS în javascript în format JSON.

iCal Parser

Convertește datele din iCal în JSON. Din păcate, această bibliotecă nu este foarte lustruită, deci este necesară o lucrare suplimentară.

Aceste biblioteci, combinate cu propriul meu cod HTML și Javascript, sunt suficiente pentru a face oglinda cu adevărat magică.

Proiecta.

Desigur, oglinda mea magică are nevoie de un design strălucitor. Cum realizezi acest lucru? Tipografie elegantă și frumoasă cu font Helvetica Neue și iconografie adecvată pentru informații despre vreme.

Deoarece oglinda va funcționa ca o oglindă numai atunci când nu există lumină în spatele ei, este important să folosiți un fundal negru. Și pentru un contrast mai bun cu fundalul, conținutul informativ ar trebui să fie alb, cu unele nuanțe de gri.

Pentru a obține datele necesare, pe care vreau să le afișez pe oglindă, folosesc fluxurile unor API-uri deschise și fluxuri de știri. Pentru cei dintre voi care nu știu ce este un API, consultați Wikipedia pentru o descriere excelentă.

Openweathermap.org

Openweathermap este o resursă gratuită cu un API excelent pentru obținerea condițiilor meteorologice și a datelor de prognoză. Aici iau date despre vremea actuală și prognoza meteo pentru următoarele zile.

calendar iCal

ICloud vă permite să partajați calendarul utilizând formatul iCal, deoarece știți că javascript nu vă permite să trimiteți cereri direct. Trebuie să deschid aceste date cu proxy PHP folosind doar 3 linii de cod:

$ url \u003d 'https://p01-calendarws.icloud.com/ca/subscribe/1/mysupersecreticloudhash';

echo file_get_contents ($ url);

Acest lucru va face ca calendarul să fie pe același server ca și frontendul doar cu requestingcalendar.php.

Parserul iCal menționat anterior mă ajută să transform datele în informații utile. Din păcate, iCloud folosește câteva etichete standard care sunt de neegalat în listele lor de discuții, așa că am adăugat câteva linii de transformare suplimentare în fișierul meu JavaScript.

Feed de știri NOS

Fluxul de știri este pur și simplu fluxul RSS al difuzării serviciului public olandez. Din păcate, nu acceptă JSON, așa că folosesc pluginul FeedToJson pentru a converti datele RSS în JSON.

Toate celelalte materiale, cum ar fi data și ora curente, și complimentele sunt scripturi JavaScript simple pe care le-am scris.

Actualizare automata

Pentru a obține hash-ul curent pe serverul web, care este verificat în mod constant și dacă acest hash nu se potrivește, browserul se reîncarcă pentru a afișa noile informații, am folosit următorul cod PHP:

echo json_encode (array ('gitHash' \u003d\u003e trim (`git rev-parse HEAD`)));

Comparația se face în fișierul principal JavaScript. Dar acest lucru este posibil numai dacă fișierul HTML are același hash ca și versiunea curentă: