Turinys:

Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“: 9 žingsniai
Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“: 9 žingsniai

Video: Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“: 9 žingsniai

Video: Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“: 9 žingsniai
Video: Magiškas Veidrodis ir Pasipriešinimo Paleidimas 2024, Lapkritis
Anonim
Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“
Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“
Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“
Magiškas veidrodis su naujienomis, oru, aliarmu, laikmačiu ir „Todolist“

„Magic Mirror“yra specialus vienpusis veidrodis su ekranu už jo. Prie Raspberry Pi prijungtame ekrane rodoma tokia informacija kaip oras, kambario temperatūra, laikas, data, todolistas ir daug daugiau. Jūs netgi galite pridėti mikrofoną ir nustatyti išmanųjį asistentą. Galimybės yra begalinės.

Šis projektas gali būti gana brangus, žinoma, viena iš brangiausių dalių, kurios jums reikės, yra ekranas. Todėl perdirbau ekraną iš seno nešiojamojo kompiuterio. Tačiau aš rekomenduoju įsigyti didelį, ryškų ir didelio kontrasto ekraną šiam projektui įgyvendinti. Tai verta.

Mano sukurtas veidrodis turi šias savybes:

  • Naujienos iš vartotojo pasirinkto RSS kanalo
  • Orai
  • Vidinė temperatūra
  • Signalizacijos sistema
  • Laikmačio sistema
  • Todolistas
  • Keli vartotojai: LED juostos spalva ir naujienų šaltinis keičiasi pagal tai, kuris vartotojas yra pasirinktas.

Prekės

Norėdami sukurti šį stebuklingą veidrodį, jums reikės:

  • Vienpusis veidrodis
  • Mediena
  • Aviečių Pi
  • „Micro SD“kortelė (8+GB)
  • Duonos lenta
  • Du 20W garsiakalbiai
  • MAX9744 20W stiprintuvas garsiakalbiams maitinti
  • 1 m 30 LED WS2801 LED juostelė
  • DS18B20 1 laidų temperatūros jutiklis
  • HC-SR501 infraraudonųjų spindulių jutiklis
  • Rotacinis kodavimo įrenginys
  • Monitorius arba senas nešiojamojo kompiuterio ekranas

    Jei naudojate seną nešiojamojo kompiuterio ekraną, turėsite nusipirkti nešiojamojo kompiuterio ekrano adapterį. Juos galite gauti iš „AliExpress“, „Ebay“ar „Amazon“. Tiesiog ieškokite ekrano serijos numerio

Jums taip pat reikės šių mažų komponentų:

  • Diodas
  • 4,7 kΩ rezistorius
  • 470 omų rezistorius
  • Laidai, skirti jutikliams prijungti prie „Raspberry Pi“

Ir šie maitinimo šaltiniai:

  • 5V 2A maitinti LED juostą
  • 12V 2A maitinti ekraną
  • 12V 2A stiprintuvui maitinti
  • 5,1 V 3A maitinti „Raspberry Pi“(naudokite oficialų RPi maitinimo šaltinį)

1 veiksmas: „Raspbian“diegimas

Ekraną ir visus už veidrodžio esančius komponentus maitina „Raspberry Pi“. Į SD kortelę turėsite įdiegti „Raspbian“, numatytąją „Pi“operacinę sistemą.

  1. Atsisiųskite „Win32 Disk imager“. „Linux“ir „MacOS“vartotojai gali naudoti kažką panašaus į „Etcher“.
  2. Atsisiųskite naujausią „Raspbian“vaizdą iš „Raspberry Pi“svetainės. Pasirinkite parinktį „Raspbian Buster with desktop“
  3. Atidarykite „Win32 Disk Imager“ir įrašykite vaizdo failą į SD kortelę.

SD kortelė dabar beveik paruošta. Mes tiesiog turime įsitikinti, kad galime prisijungti prie „Raspberry Pi“nuotoliniu būdu:

  1. Eikite į SD kortelės įkrovos skaidinį naudodami sistemos failų naršyklę.
  2. Pridėkite failą pavadinimu „ssh“be plėtinio.
  3. Pridėkite „ip = 169.254.10.1“(be kabučių) pirmosios „cmdline.txt“eilutės pabaigoje.

Saugiai išimkite SD kortelę iš kompiuterio, įdėkite ją į „Raspberry Pi“ir paleiskite.

2 veiksmas: „WiFi“konfigūravimas

Norėdami nuskaityti „WiFi“tinklus, vykdykite šią komandą:

sudo iw dev wlan0 nuskaitymas | grep SSID

Pamatysite visų SSID, prie kurių „Raspberry Pi“gali prisijungti, sąrašą.

Sukurkite tinklo įrašą su užšifruotu slaptažodžiu, vykdydami šią komandą ir įvesdami tinklo slaptažodį:

wpa_passphrase "YOUR_NETWORK_SSID_HERE"

Dabar įklijuokite aukščiau pateiktos komandos išvestį į šį failą:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Dabar iš naujo paleiskite „Raspberry Pi“. Būsite prisijungę prie interneto.

3 veiksmas: programinės įrangos diegimas ir konfigūravimas

Šiam projektui į „Raspberry Pi“turėsite atsisiųsti šiuos paketus:

pip3 įdiegti „mysql-connector-python“kolbą-lizdo kolbą-cors gevent gevent-websocket adafruit-circuitpython-ws2801 adafruit-circuitpython-max9744

sudo apt įdiegti apache2 mariadb-server

Pridėkite šią eilutę prie /boot/config.txt apačios, kad įjungtumėte garsą per GPIO kaiščius 12 (kairėje) ir 13 (dešinėje):

dtoverlay = audremap

Naudokite raspi-config, kad nustatytumėte ekrano skiriamąją gebą ir įgalintumėte i2c, vieno laido ir SPI. Taip pat nustatykite įkrovos metodą „Desktop Autologin“.

Aplanke/etc/xdg/lxsession/LXDE-pi/autostart pridėkite:

@xset s išjungta@xset -dpms@xset s noblank@chromium -browser --kiosk 127.0.0.1/mirror.html # įkelkite chromą po įkrovos ir atidarykite svetainę viso ekrano režimu

Tai atveria naršyklę tinkamame puslapyje, kai įkeliama LXDE („Raspbian“darbalaukio aplinka). Taip pat pašalinkite arba komentuokite @xscreensaver eilutę, kad išjungtumėte ekrano užsklandą.

„Github“saugykla

Klonuokite mano „GitHub“saugyklą ir įdėkite „Frontend“aplanko turinį į/var/www/html. Vėliau mums reikės aplanko „Backend“.

4 žingsnis: duomenų bazė

Duomenų bazė
Duomenų bazė

Tai duomenų bazės schema, optimizuota iki 3NF. Jame saugomi visi aliarmai, naujienų šaltiniai, vartotojai, jutiklių duomenys, garsai ir todolist.

  1. Naudokite „MySQL Workbench“, kad pasiektumėte savo „pi“duomenų bazės serverį („mariadb“)
  2. Sukurkite duomenų bazę naudodami šią schemą ir įterpkite savo duomenis.
  3. Redaguokite config.py mano „GitHub“saugyklos vidiniame aplanke: pakeiskite duomenų bazės pavadinimą, pasirinktą vartotojo vardą ir slaptažodį.
  4. Redaguokite app.py ir pakeiskite „OpenWeatherMap“API URL į savo. (Sukurkite savo čia)

5 žingsnis: veidrodžio rėmo kūrimas

Veidrodžio rėmo kūrimas
Veidrodžio rėmo kūrimas
Veidrodžio rėmo kūrimas
Veidrodžio rėmo kūrimas
Veidrodžio rėmo kūrimas
Veidrodžio rėmo kūrimas

Aš pastatiau rėmą aplink veidrodį naudodami „Mitre“jungtis su metaliniais kampais. Mano naudojamos medinės lentos yra 18 mm storio ir 10 cm pločio. Nuotraukose galite pamatyti tikslius 45 cm x 60 cm veidrodžio išmatavimus. Už veidrodžio yra visa elektronika, todėl įsitikinkite, kad jūsų lentos yra pakankamai plačios, kad jas tilptų.

Garsiakalbius prie rėmo pritvirtinau metaliniais kabliukais. Tokiu būdu jie nesiremia į veidrodį, sumažindami vibracijos įtampą ant stiklo.

6 žingsnis: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Norėdami sukurti grandinę, vadovaukitės aukščiau pateiktomis schemomis. Naudojau juostelę, kad pritvirtinčiau elektroniką prie veidrodžio.

7 žingsnis: Elektronikos montavimas į rėmą

Elektronikos montavimas rėmelyje
Elektronikos montavimas rėmelyje
Elektronikos montavimas rėmelyje
Elektronikos montavimas rėmelyje

Pritvirtinę garsiakalbius prie metalinių kablių viršuje, pridėkite likusią elektronikos dalį prie veidrodžio. Aš taip pat įdėjau ploną medinę lentą tarp veidrodžio ir elektronikos, todėl užuot priklijavusi elektroniką prie veidrodžio, aš priklijavau elektroniką prie medinės lentos. Nešiojamojo kompiuterio ekranas yra baltas skydelis veidrodžio apačioje.

Kaip matote paveikslėliuose, visus maitinimo adapterius įkišau į kelių lizdų lizdą, todėl iš rėmo lieka tik vienas kabelis. Štai kodėl man reikėjo pakankamai plačių lentų (10 cm).

Aš išgręžiau 2 cm pločio skylę dešinėje veidrodžio pusėje, kad sukamasis kodavimo įrenginys tilptų. Tai leidžia lengvai pakeisti garsumą (pasukti) arba atmesti laikmačius ir signalus (stumti).

Aš išgręžiau dvi 8 mm skylutes abiejose veidrodžio pusėse, kad galėčiau nukreipti laidus juostoms.

8 žingsnis: Apdailos darbai

Apdailos darbai
Apdailos darbai
Apdailos darbai
Apdailos darbai
Apdailos darbai
Apdailos darbai

Prie veidrodžio galo pridėjau juodą audeklą, kad paslėpčiau elektroniką. Tai taip pat tamsina korpuso vidų, todėl daug sunkiau matyti laidus per veidrodį. Aš jį pritvirtinau velcro, kad prireikus būtų lengviau pasiekti elektroniką.

Nukopijuokite „Backend“aplanką iš mano „Github“saugyklos į vietą, kurią prisiminsite.

Pridėkite sisteminį vienetą, kad „python“scenarijus būtų paleistas paleidžiant:

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

[Vienetas]

Aprašymas = „magicmirror python“scenarijaus paslauga After = network.target [Paslauga] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/magicMirror/Backend StandardOutput = paveldėti StandardError = paveldėti Paleisti iš naujo = visada Vartotojas = pi [Įdiegti] WantedBy = multi-user.target

Pakeiskite „WorkingDirectory“į „Backend“katalogą ir pakeiskite „User“į savo vartotojo vardą.

9 veiksmas: sąveika su žiniatinklio programa

Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa
Sąveika su žiniatinklio programa

Naršykite IP adresą (kuris rodomas ekrane). Pamatysite svetainę, skirtą pirmiausia mobiliesiems, su šiomis funkcijomis:

  • Sąveikaujantis temperatūros matuoklis
  • Laikas. Kai laikmatis veikia, pačiame veidrodyje taip pat matysite atgalinę atskaitą.
  • Signalizacijos sistema
  • Nustatymų skirtukas, kuriame galite redaguoti naudotojus, naujienų šaltinius ir garsiakalbių garsumą.
  • Todolistas. Užduotys bus rodomos veidrodyje

„Mirror.html“yra puslapis, rodomas „Magic Mirror“. Aukščiau esančiuose paveikslėliuose pridėjau pavyzdį.

Rekomenduojamas: