Kazalo:

Pametno ogledalo za več uporabnikov z Google Koledarjem: 10 korakov
Pametno ogledalo za več uporabnikov z Google Koledarjem: 10 korakov

Video: Pametno ogledalo za več uporabnikov z Google Koledarjem: 10 korakov

Video: Pametno ogledalo za več uporabnikov z Google Koledarjem: 10 korakov
Video: Leap Motion SDK 2024, November
Anonim
Pametno ogledalo za več uporabnikov z Google Koledarjem
Pametno ogledalo za več uporabnikov z Google Koledarjem
Pametno ogledalo za več uporabnikov z Google Koledarjem
Pametno ogledalo za več uporabnikov z Google Koledarjem

V tem navodilu bomo ustvarili pametno ogledalo, integrirano z Google Koledarjem. Ta projekt sem naredil, ker se mi zdijo pametna ogledala res kul, zjutraj so božji dar. Odločil sem se, da bom enega naredil sam od nič, ker imajo vsi drugi 1 napako. So preveč napredni in neredni. Odločil sem se, da bom ostal preprost.

Zaloge

Prej

začeli bomo, to so stvari, ki jih boste zagotovo potrebovali za izdelavo ogledala, kot je moje. Te zaloge bodo stale okoli 250 do 350 evrov, odvisno od vaše regije in trenutnih cen.

Strojna oprema

Senzorji

  • Enožični temperaturni senzor
  • RWCL 0516 (Mikrovalovni senzor gibanja)
  • Mehki potenciometer (Touchstrip iz Sparkfun)

Računalništvo

in IC -ji

  • Zvočnik (3,2 W pri 4 OR OR 1,8 W pri 8 Ω)
  • MCP3008
  • Adapruit I2S 3W ojačevalnik razreda D - MAX98357A
  • Malina Pi 3 B+
  • Kartica SD (8 GB je v redu)
  • Upor 4,7K ohm

Različno

  • Jumperwires
  • Ogledna plošča
  • Akrilno dvosmerno ogledalo (15% prepustnost svetlobe)
  • Monitor IPS (velikost je odvisna od tega, kako velik želite)
  • HDMI kabel
  • Les

Programska oprema

  • PUTTY
  • Urejevalnik kode (dovolj je Notepad ++)
  • Win32 Disk Imager
  • Slika Raspbian OS

1. korak: Nastavitev

Za začetek moramo najprej nastaviti vaš Pi za kodo, ki sem jo naredil.

Potrebovali boste dve stvari:

  • Win32 Disk Imager iz
  • Slika Raspbian OS s

Prenesite datoteko ZIP in jo izvlecite, kamor koli želite.

Namestitev

  1. Sliko izberite z ikono mape
  2. V spustnem meniju izberite kartico SD
  3. Kliknite na piši

Zdaj bomo morali narediti nekaj dodatnega popravljanja z nekaterimi nastavitvami, da bomo lahko dostopali do Pi.

  1. Pojdite v zagonski imenik kartice SD
  2. Odprite datoteko "cmdline.txt"
  3. Dodajte ip = 169.254.10.1 Na koncu dolge vrstice besedila, ločenega s presledkom (v isti vrstici).
  4. Shranite datoteko.
  5. Ustvarite datoteko ssh brez razširitve v istem imeniku

Zdaj lahko odstranite kartico SD in jo vstavite v svoj Pi.

Povezovanje

Zdaj bomo morali nastaviti programsko opremo.

Najprej priključite kabel LAN, en konec na namizju/prenosnem računalniku, drugi pa na Pi.

Zdaj zaženite Raspberry Pi.

  1. Namestite Putty s spletnega mesta
  2. V polje IP vnesite 169.254.10.1.
  3. Prepričajte se, da je izbran SSH in da so vrata 22 izpolnjena.
  4. Kliknite odprto
  5. Izpolnite uporabniško ime: pi
  6. Izpolnite geslo: malina

Raspi-config

Odprite pripomoček Raspi-config z:

sudo raspi-config

V kategoriji vmesnikov omogočite naslednje možnosti

  • 1-žica
  • SPI

Izberite državo WiFi prek kategorije lokalizacije.

Nato onemogočite naslednje možnosti v kategoriji možnosti zagona

Začetni zaslon

Nazadnje nastavitev Namizje/CLI v kategoriji možnosti zagona nastavite na Samodejna prijava na namizje.

Wifi

Za ogledalo moramo imeti povezavo Wi -Fi, zato se prepričajte, da imate blizu poverilnice za WiFi.

Pojdite v korenski način

sudo -i

Prilepite to vrstico, vendar se prepričajte, da sta SSID in geslo izpolnjena

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

Vnesite odjemalca WPA.

wpa_cli

Izberite vmesnik

vmesnik wlan0

Znova naložite konfiguracijo

ponovno konfigurirati

Prepričajte se, da ste pravilno povezani, tako da vnesete…

ip a

… in preveriti, ali imate IP na vmesnikih WLAN0.

Paketi

Zdaj, ko smo povezani z internetom, bomo morali namestiti nekaj paketov.

Najprej bomo morali osvežiti sezname paketov za najnovejšega.

sudo apt posodobitev

Python

Raspbian bomo prisilili v uporabo Pythona 3

posodobitvene alternative --install/usr/bin/python python /usr/bin/python2.7 1

posodobitvene alternative --install/usr/bin/python python/usr/bin/python3 2

MariaDB

Za namestitev baze podatkov prilepite naslednjo vrstico.

sudo apt namestite strežnik mariadb

Nato moramo zagotoviti namestitev.

mysql_secure_installation

Vprašal nas bo za trenutno korensko geslo, saj ga nimamo, samo pritisnite enter.

Nato se sprašuje, ali želimo root geslo v y, saj ga želimo.

Za naslednja vprašanja vnesite Y.

Nazadnje bomo ustvarili uporabnika, ki ga bomo lahko uporabili za ogledalo.

Vnesite lupino mysql tako:

Dvignimo se v koren

sudo -i

Vnesite lupino mysql

mysql

Zamenjajte z lastnim uporabniškim imenom in enako z

podeli vse privilegije na ogledalu.* ''@'%', ki ga označi '';

Zdaj izpraznimo tabelo dovoljenj.

FLUSH PRIVILEGIJE;

Spletni strežnik Apache

Če želite namestiti spletni strežnik, zaženite spodnjo vrstico.

sudo apt namestite apache2 -y

Paketi Python

Namestili bomo te pakete

  • Bučka
  • Bučke
  • Flask-MySQL
  • Vtičnica za bučkoIO
  • PyMySQL
  • Steklenica-talisman
  • Gevent
  • Gevent-websocket
  • Odjemalec Google-api-python-client
  • Google-avt
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Zahteve
  • Wsaccel
  • Ujson

Z početjem

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendarh icalecen

Nastavitev zvočnikov

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Zdaj moramo znova zagnati, zato pritisnite y.

Znova zaženite skript

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash

Zdaj moramo drugič znova zagnati

sudo ponovni zagon

Zaslon (monitor)

Odvisno od tega, kako želite orientacijo zaslona, boste morda želeli zasukati zaslon.

Za vrtenje zaslona moramo do zagonskih možnosti dostopati tako:

sudo nano /boot/config.txt

In nato v konfiguracijsko datoteko prilepite eno od teh vrstic:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Prva, 0, je običajna konfiguracija. 1 bo 90 stopinj, 2 je 180 stopinj, zadnja pa 270 stopinj.

Nato znova zaženite.

sudo ponovni zagon

2. korak: Namestitev ogledala

Namestitev ogledala
Namestitev ogledala

Zdaj bomo nastavili mesto za prenos moje kode.

cd/home/pi/

git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

Zdaj bomo nekaj map kopirali na pravi naslov

sudo cp -R frontend/mirror//var/www/html/mirror/

sudo cp -R frontend/nadzorna plošča//var/www/html/Sudo cp -R backend//home/pi/Mirror/

Namestitev zbirke podatkov je nujen korak pri izdelavi projekta.

sudo mysql -u root -p << CREATEDATABASE.sql

3. korak: Konfiguracija

Konfiguracijska datoteka se nahaja na:

sudo nano /home/pi/Mirror/resources/config.ini

Vnesite uporabnika in geslo MYSQL.

To mora biti pravkar uporabnik mysql.

Druge nastavitve, ki jih bomo kasneje preučili, so opisana v navodilih.

4. korak: API -ji

Zdaj smo končali z namestitvijo Pi in pokrili bomo nekatere teme, ki jih boste morda želeli narediti.

Darksky

Ustvarite ključ API Darsky prek

Ko se registrirate, boste na nadzorni plošči videli svoj ključ API.

Ta ključ vnesite v konfiguracijsko datoteko zrcalnega projekta, ki ste ga namestili prej.

Koledar

Privzeto boste lahko uporabljali samo ical URL -je za ogled koledarja. Ta del pa bo govoril o tem, kako povezati ogledalo z Googlovim ekosistemom. To je na splošno daljši in bolj boleč proces.

Stvari, ki jih boste zagotovo potrebovali

Ime domene

To so stvari, ki jih bomo nastavili v tem delu

  • Račun CloudFlare
  • Google Račun za razvijalce
  • Googlov projekt za razvijalce
  • Nastavite API za koledar

5. korak: Koledar

Koledar
Koledar
Koledar
Koledar

Cloudflare

Nastavite račun cloudflare s spletnega mesta https://cloudflare.com in sledite čarovniku za prenos imena domene v DNS Cloudflare.

Ni vam treba ustvariti zapisa A, ki kaže na malinovo pi. Moja zrcalna koda bo to storila namesto vas. Ker v večini gospodinjstev wifi IP -ji niso statični, po ponovnem zagonu morda ne bo več deloval. Če želite, da moja koda samodejno posodobi ip, bo potreboval ključ API -ja za vaš račun.

  1. Na nadzorni plošči na desni strani kliknite gumb Pridobite ključ API. [Fotografija 1]
  2. Pomaknite se navzdol in si oglejte svoj ključ globalnega API -ja. [Fotografija 2]

Ta ključ vnesite v konfiguracijsko datoteko zrcalnega projekta, ki ste ga namestili prej.

Ustvarjanje SSL certifikata

Google od nas zahteva povezavo SSL. Če želite zagnati ta razdelek, se prepričajte, da ste pravilno nastavili DNS Cloudflare.

Najprej dodajte skladišče.

sudo add-apt-repository ppa: certbot/certbot

Posodobite paketa.

sudo apt-get posodobitev

Namestite CertBot

sudo apt namestite python-certbot-apache

Začnite ustvarjati potrdilo. Spet boste morali vnesti pravilno ime domene.

sudo certbot --apache -d example.com -d www.example.com

Po ustvarjanju vas bo vprašal, ali naj vse povezave preusmeri na SSL. Izberite preusmeritev.

Zdaj vam bo povedal, da je uspešno ustvaril potrdilo za vašo domeno. Shranite 2 poti, ki vam jih ponuja.

  • /etc/letsencrypt/live/example.com/cert.pem
  • /etc/letsencrypt/live/example.com/privkey.pem

Zdaj pojdite v mapo s potrdili prek:

Ne pozabite spremeniti example.com v desnega gostitelja.

cd /etc/letsencrypt/live/example.com/

Zdaj pa kopirajmo to vsebino v mapo projekta.

cp cert.pem /home/pi/Mirror/resources/certs/cert.pem

In

cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem

Povežite Apache s svojo domeno

Če želite pravilno konfigurirati Apache z vašo domeno, bomo morali ustvariti konfiguracijsko datoteko. Vnesite ime svoje domene, na primer funergydev.com.

sudo nano /etc/apache2/sites-enabled/example.com.conf

Nato to prilepite v datoteko. Zamenjajte example.com s svojim imenom domene.

Prepričajte se, da sta vaš certifikat in zasebni ključ pravilna pot. Nastavite jih na pot, ki ste jo shranili prej, ko smo ustvarili nato prek certbota.

DocumentRoot "/var/www/html/" SSLEngine na SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Druge direktive tukaj Možnosti Kazala DovoliSideSimr Vse Zahtevaj vse odobreno

Zdaj moramo omogočiti nekatere spremembe in nato prisiliti Apache, da znova naloži konfiguracijo, tako da:

sudo a2enmod ssl

sudo a2enmod prepisati

sudo systemctl ponovno naložite apache2

Zdaj bi morali iti prek imena svoje domene na pi in si ogledati privzeto stran apache.

6. korak: Googlov API

Googlov API
Googlov API
Googlov API
Googlov API
Googlov API
Googlov API

Pojdite na konzolo za razvijalce prek

1. del

Ustvarite svoj prvi projekt tako, da kliknete poleg logotipa Google API in kliknete gumb NOVI PROJEKT. Izpolnite ustrezno ime projekta in kliknite gumb za ustvarjanje. [Fotografija1]

2. del

Zdaj boste prišli na to stran. Kliknite gumb knjižnica. [Fotografija2]

To je velik seznam vseh API -jev, ki jih lahko uporabite, vendar bomo iskali API za Google Koledar. Kliknite nanjo in pritisnite ENABLE. [Fotografija3]

Nato boste dobili pregled API -ja za koledar. Kliknite logotip Googlovih API -jev, da se vrnete v svoj projekt. [Fotografija4]

3. del

Če želite vse pravilno nastaviti, kliknite kategorijo poverilnic in izberite zavihek Preverjanje domene.

Tu boste morali preveriti ime svoje domene.

  1. Kliknite DODAJ DOMENO
  2. Izpolnite svojo domeno
  3. Nato bo zahteval preverjanje vaše domene. Kliknite nadaljevanje.
  4. Izberite ponudnika domenskih imen. [Fotografija5]
  5. Sledite postopku
  6. Zdaj ga boste lahko tako dodali na seznam za preverjanje domene v konzoli Google API. Preverite, ali je vaša domena preverjena. [Fotografija6]

4. del

Zdaj izberite zavihek zaslona za soglasje OAuth. [Fotografija7]

Izpolnite ime aplikacije

Nato bomo na zaslon za soglasje dodali obsege. To pomeni, da bomo uporabnika na zaslonu za soglasje vprašali, ali želi svoje podatke o koledarju deliti z ogledalom.

  1. Kliknite dodaj obseg in poiščite koledar.
  2. Preverite../auth/calendar.readonly in samo pritisnite add. [Fotografija8]

Izpolnite pooblaščeno domeno. To bi morala biti domena, ki ste jo pravkar preverili. [Fotografija9]

Zdaj kliknite velik gumb za shranjevanje pod obrazcem.

5. del

Nazadnje moramo ustvariti poverilnice. Ker smo pritisnili gumb za shranjevanje, smo bili preusmerjeni na zavihek poverilnic. Kliknite ustvarjanje poverilnic in izberite ID odjemalca OAuth. [Fotografija10]

Izberite Vrsta aplikacije: Spletna aplikacija in ji dajte ime.

Vnesite naslednjo povezavo v URI pooblaščenega preusmeritve in vnesite pravilno domeno.

example.com:5000/api/v1/setup/calendar/response

Kliknite na Ustvari. To vam bo prikazalo pojavno okno, samo kliknite V redu. Zdaj pritisnite gumb za prenos na poverilnicah, ki ste jih pravkar naredili

6. del

Zdaj odprite datoteko JSON in kopirajte vsebino.

sudo nano /home/pi/Mirror/resources/credentials/credentials.json

Prilepite jih sem.

7. del

Zdaj moramo definirati svojo domeno v konfiguraciji tako:

sudo nano /home/pi/Mirror/resources/config.ini

7. korak: Zrcalna zasnova

Zrcalno oblikovanje
Zrcalno oblikovanje
Zrcalno oblikovanje
Zrcalno oblikovanje
Zrcalno oblikovanje
Zrcalno oblikovanje
Zrcalno oblikovanje
Zrcalno oblikovanje

Oblikovanje ogledala je odvisno od tega, kako ga želite. Naredite natančne meritve LCD -ja in pustite 2 centimetrsko vrzel na eni strani ogledala, saj bo tam mikrovalovni senzor gibanja. Ne more biti za nobeno kovino.

4 lesene deske sem povezal skupaj. Ti so bili brušeni, da imajo lepo in čisto sprednje ogledalo. Na vrhu sem izvrtal tudi nekaj lukenj, da bi zvok zvočnika šel skozi. Na nasprotni strani ogledala, na dnu, sem izrezal majhen pravokotnik, da sem z lahkoto izvedel električno napeljavo. [Fotografija1]

To sta 2 kosa poceni lesa, na katera se bo monitor naslonil. Ker sem rekel, da potrebujemo približno 2 centimetrsko vrzel med ogledalom in ohišjem. Dodal sem tudi 3 majhne koščke lesa in jih privijal na počivajoče kose. Tako bi monitor ostal na svojem mestu. [Fotografija2]

Na koncu je izgledalo tako. Med temi počivalnimi deli in sprednjo stranjo ogledala sem imel približno 3 mm vrzeli. Ravno toliko, da sem lahko vstavil 3 mm debelo dvosmerno ogledalo. [Fotografija3]

8. korak: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Upoštevajte eno od teh shem.

Ko sem opravil ožičenje, sem ga z dvostranskim trakom prilepil na zadnjo stran zaslona. Ker če bi kdaj želel razstaviti ogledalo in ga uporabiti za druge projekte, bi ga zlahka odstranil. Če ste prepričani, lahko uporabite pištolo za vroče lepilo in jo prilepite na zadnjo stran ogledala.

9. korak: Zagon kode

Začetek kodeksa
Začetek kodeksa
Začetek kodeksa
Začetek kodeksa
Začetek kodeksa
Začetek kodeksa

LXSession

Najprej ustvarimo nekaj map

mkdir -p /home/pi/.config/lxsession/LXDE-pi/

Zdaj bomo ustvarili datoteko, v kateri bomo podali nekaj zagonskih parametrov/ukazov.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

V datoteko prilepite naslednje.

@lxpanel --profile LXDE-pi

@pcmanfm --desktop --profil LXDE-pi @xscreensaver -no-splash @point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms

Skript začetnega zrcalnega zaslona bomo posodobili tako, da bo ustrezal našemu gostitelju.

sudo nano /home/pi/Mirror/init_mirror.sh

Izberite localhost, če ne uporabljate google koledarja in domene.

#!/bin/bash

sleep 15 chromium-browser --incognito --kiosk https:// localhost/mirror

Če ga uporabljate, vnesite gostitelja.

#!/bin/bash

spanje 15 brskalnik chromium --incognito --kiosk

Storitev

Zdaj bomo nastavili, da se koda Mirror samodejno zažene.

Ustvarili bomo storitev, ki samodejno zažene kodo.

Pojdi do:

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

In to prilepite v datoteko

[Enota]

Opis = Zrcalni zalednik Po = network.target mariadb.service [Storitev] Vrsta = preprost uporabnik = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Namestitev] WantedBy = multi-user.target

Zdaj bomo morali znova naložiti demona systemd tako:

sudo systemctl daemon-reload

Omogočili bomo tudi samodejni zagon storitve ob zagonu.

sudo systemctl omogoči ogledalo

Zdaj bomo izklopili.

sudo poweroff

Končne nastavitve

Nazadnje moramo odstraniti naš APIPA ip, tako da deluje samo na WiFi.

  1. Pojdite v zagonski imenik kartice SD v računalniku.
  2. Odprite datoteko "cmdline.txt"
  3. Odstrani ip = 169.254.10.1 Na koncu dolge vrstice besedila.

10. korak: Zaženite ogledalo

Zagon ogledala
Zagon ogledala
Zagon ogledala
Zagon ogledala
Zagon ogledala
Zagon ogledala
Zagon ogledala
Zagon ogledala

Obiščite IP, ki je na zrcalnem zaslonu, ali če ste nastavili Googlov koledar, vnesite ime domene.

Zdaj boste lahko nastavili ogledalo!

Če na ogledalu dobite napako SSL, boste morda želeli dodati svoja potrdila v shrambo potrdil Chromium.

Priporočena: