Kazalo:
- Zaloge
- 1. korak: Nastavitev
- 2. korak: Namestitev ogledala
- 3. korak: Konfiguracija
- 4. korak: API -ji
- 5. korak: Koledar
- 6. korak: Googlov API
- 7. korak: Zrcalna zasnova
- 8. korak: Ožičenje
- 9. korak: Zagon kode
- 10. korak: Zaženite ogledalo
Video: Pametno ogledalo za več uporabnikov z Google Koledarjem: 10 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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
- Sliko izberite z ikono mape
- V spustnem meniju izberite kartico SD
- Kliknite na piši
Zdaj bomo morali narediti nekaj dodatnega popravljanja z nekaterimi nastavitvami, da bomo lahko dostopali do Pi.
- Pojdite v zagonski imenik kartice SD
- Odprite datoteko "cmdline.txt"
- Dodajte ip = 169.254.10.1 Na koncu dolge vrstice besedila, ločenega s presledkom (v isti vrstici).
- Shranite datoteko.
- 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.
- Namestite Putty s spletnega mesta
- V polje IP vnesite 169.254.10.1.
- Prepričajte se, da je izbran SSH in da so vrata 22 izpolnjena.
- Kliknite odprto
- Izpolnite uporabniško ime: pi
- 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
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
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.
- Na nadzorni plošči na desni strani kliknite gumb Pridobite ključ API. [Fotografija 1]
- 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
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.
- Kliknite DODAJ DOMENO
- Izpolnite svojo domeno
- Nato bo zahteval preverjanje vaše domene. Kliknite nadaljevanje.
- Izberite ponudnika domenskih imen. [Fotografija5]
- Sledite postopku
- 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.
- Kliknite dodaj obseg in poiščite koledar.
- 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
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
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
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 --kioskStoritev
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.
- Pojdite v zagonski imenik kartice SD v računalniku.
- Odprite datoteko "cmdline.txt"
- Odstrani ip = 169.254.10.1 Na koncu dolge vrstice besedila.
10. korak: Zaženite ogledalo
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:
C.Q: DIY pametno ogledalo: 5 korakov
C.Q: DIY Smart Mirror: Mi smo Katrina Concepcion in Adil Qaiser, oba drugošolca na WBASD STEM Academy. To je projekt, s katerim bi sodelovali in ga izvedli za letošnjo nagrado za najboljše. Ko smo se odločili za ta projekt, smo imeli v mislih " kaj bi bilo najbolj e
Kako ustvariti prenosno pametno ogledalo/kombinacijo šminke: 8 korakov
Kako ustvariti prenosno pametno ogledalo/kombinirano šminko: Kot zadnji projekt za moj glavni kamen v Davisu & Na kolidžu Elkins sem se odločil za oblikovanje in ustvarjanje potovalne škatle za ličenje, skupaj z večjim ogledalom in uporabo maline pi ter programsko platformo čarobno ogledalo, ki bi delovala kot pristanišče
Kako zgraditi pametno ogledalo z Raspberry Pi 4: 10 korakov
Kako zgraditi pametno ogledalo z Raspberry Pi 4: V tem priročniku bomo videli, kako sestaviti pametno ogledalo z uporabo recikliranih kosov, kot so okvir za slike, star monitor in slikovno steklo. Za elektronske komponente, ki sem jih kupil tukaj www.lcsc .com
Gojenje več solate v manj prostora ali gojenje solate v vesolju, (več ali manj) .: 10 korakov
Gojenje več solate na manj prostora ali … Gojenje solate v vesolju, (več ali manj) .: To je profesionalna oddaja natečaja Growing Beyond Earth, Maker, poslanega prek Instructables. Ne bi mogel biti bolj navdušen nad oblikovanjem za pridelavo vesoljskih pridelkov in objavo prvega Instructable -a. Za začetek nas je natečaj prosil, da
Arduino Outlet Box Control Center z Google Koledarjem: 4 koraki
Nadzorni center Arduino Outlet Box z Google Koledarjem: V tem navodilu se boste naučili, kako zgraditi nadzorni center za vaš dom s 4-vtičnico Adafruit Power Relay Module. Potrebovali boste ploščo Arduino z wifi modulom, kot sta Adafruit Feather Huzzah in Adafruit Power Relay Module 4