Sadržaj:
- Pribor
- Korak 1: Postavljanje
- Korak 2: Instaliranje zrcala
- Korak 3: Konfiguracija
- Korak 4: API -ji
- Korak 5: Kalendar
- Korak 6: Google API
- Korak 7: Dizajn ogledala
- Korak 8: Ožičenje
- Korak 9: Pokretanje koda
- Korak 10: Pokretanje zrcala
Video: Pametno ogledalo za više korisnika s Google kalendarom: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U ovom uputstvu stvorit ćemo pametno ogledalo integrirano s Google kalendarom. Napravio sam ovaj projekt jer smatram da su pametna zrcala jako cool, ujutro su božji dar. No, odlučio sam napraviti jedan sam od nule jer svi ostali imaju 1 manu. Previše su napredni i pretrpani. Odlučio sam ovo držati jednostavnim.
Pribor
Prije
počet ćemo ovo su stvari koje će vam definitivno trebati da napravite ogledalo poput mog. Ove zalihe koštat će oko 250 do 350 eura, ovisno o vašoj regiji i trenutnim cijenama.
Hardver
Senzori
- Senzor temperature jedne žice
- RWCL 0516 (Mikrovalni osjetnik pokreta)
- Meki potenciometar (Touchstrip iz Sparkfun -a)
Računarstvo
i IC -ove
- Zvučnik (3,2 W pri 4Ω ILI 1,8 W pri 8 Ω)
- MCP3008
- Adafruit I2S 3W pojačalo pojačala klase D - MAX98357A
- Malina Pi 3 B+
- SD kartica (8 GB je u redu)
- Otpornik 4,7K ohma
Razne
- Žice za spajanje
- Oglasna ploča
- Akrilno dvosmjerno ogledalo (15% propuštanja svjetlosti)
- IPS monitor (veličina ovisi o tome koliko ga želite)
- HDMI kabel
- Drvo
Softver
- Kit
- Uređivač koda (dovoljan je Notepad ++)
- Win32 Disk Imager
- Slika Raspbian OS -a
Korak 1: Postavljanje
Za početak ćemo prvo morati postaviti vaš Pi za kôd koji sam napravio.
Trebat će vam dvije stvari:
- Win32 Disk Imager sa
- Slika Raspbian OS -a s
Preuzmite ZIP datoteku i raspakirajte je gdje god želite.
Instalacija
- Odaberite svoju sliku putem ikone mape
- Odaberite svoju SD karticu putem padajućeg izbornika
- Kliknite na piši
Sada ćemo morati napraviti dodatna petljanja s nekim postavkama kako bismo mogli pristupiti Pi.
- Idite u direktorij za pokretanje SD kartice
- Otvorite datoteku "cmdline.txt"
- Dodajte ip = 169.254.10.1 Na kraju dugačkog retka teksta odijeljenog razmakom (u istom retku).
- Spremite datoteku.
- Izradite datoteku ssh bez proširenja u istom direktoriju
Sada možete izvaditi SD karticu i staviti je u svoj Pi.
Povezivanje
Sada ćemo morati postaviti softver.
Prvo priključite LAN kabel, jedan kraj na stolno računalo/prijenosno računalo, a drugi na vaš Pi.
Sada pokrenite Raspberry Pi.
- Instalirajte Putty s
- Unesite 169.254.10.1 u IP okvir.
- Provjerite je li odabran SSH i je li port 22 ispunjen.
- Pritisnite otvoriti
- Ispunite korisničko ime: pi
- Ispunite lozinku: malina
Raspi-config
Otvorite uslužni program Raspi-config pomoću:
sudo raspi-config
Omogućite sljedeće opcije u kategoriji sučelja
- 1-žica
- SPI
Odaberite svoju WiFi državu putem kategorije lokalizacije.
Zatim onemogućite sljedeće opcije u kategoriji mogućnosti pokretanja
Splash screen
Na kraju postavite postavku Desktop/CLI u kategoriji mogućnosti pokretanja na Automatsko prijavljivanje na radnu površinu.
WiFi
Za ogledalo moramo imati wifi vezu pa provjerite imate li blizu svoje vjerodajnice za wifi.
Idite u root način
sudo -i
Zalijepite ovaj redak, ali provjerite jesu li ispunjeni SSID i Lozinka
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Unesite WPA klijenta.
wpa_cli
Odaberite sučelje
sučelje wlan0
Ponovno učitajte konfiguraciju
ponovno konfigurirati
Uvjerite se da ste ispravno povezani upisivanjem …
ip a
… i vidjeti imate li IP na sučeljima WLAN0.
Paketi
Sada kada smo spojeni na internet morat ćemo instalirati neke pakete.
Prvo ćemo morati osvježiti popise paketa za najnoviji.
sudo apt ažuriranje
Piton
Prisilit ćemo Raspbian da koristi Python 3
nadogradnje-alternative --install/usr/bin/python python /usr/bin/python2.7 1
nadogradnje-alternative --install/usr/bin/python python/usr/bin/python3 2
MariaDB
Zalijepite sljedeći redak za instaliranje baze podataka.
sudo apt install mariadb-server
Tada ćemo morati osigurati našu instalaciju.
mysql_secure_installation
Od nas će se tražiti trenutna root lozinka jer je nemamo, samo pritisnite enter.
Zatim se pita želimo li vrstu root lozinke u y budući da je želimo.
Za sljedeća pitanja samo unesite Y.
Na kraju ćemo stvoriti korisnika kojeg ćemo moći koristiti za zrcalo.
Unesite ljusku mysql na sljedeći način:
Uzdignimo se do korijena
sudo -i
Unesite ljusku mysql
mysql
Zamijenite vlastitim korisničkim imenom i isto sa
dodijelite sve privilegije na ogledalu.* za ''@'%' identificirano sa '';
Sada ispiremo tablicu dopuštenja.
FLUSH PRIVILEGIJE;
Apache web poslužitelj
Za instaliranje web poslužitelja pokrenite donju liniju.
sudo apt install apache2 -y
Python paketi
Instalirat ćemo ove pakete
- Boca
- Flask-Cors
- Flask-MySQL
- Utičnica za utičnicuIO
- PyMySQL
- Flaš-talisman
- Gevent
- Gevent-websocket
- Google-api-python-klijent
- Google-auth
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Ikalendar
- Icalevents
- Oauthlib
- Python-socketio
- Zahtjevi
- Wsaccel
- Ujson
Radeći
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 icaleciosons wicaleccancev wicaleccancev wicaleccancev
Postavljanje zvučnika
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Sada se moramo ponovno pokrenuti pa pritisnite y.
Ponovno pokrenite skriptu
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Sada moramo ponovno pokrenuti sustav drugi put
sudo ponovno podizanje sustava
Zaslon (monitor)
Ovisno o tome kako želite orijentaciju zaslona, možda ćete htjeti zakrenuti zaslon.
Za rotiranje zaslona moramo pristupiti mogućnostima pokretanja na sljedeći način:
sudo nano /boot/config.txt
A zatim zalijepite jedan od ovih redaka u konfiguracijsku datoteku:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
Prva, 0, je normalna konfiguracija. 1 će biti 90 stupnjeva, 2 je 180 stupnjeva, a posljednji će biti 270 stupnjeva.
Zatim ponovno pokrenite sustav.
sudo ponovno podizanje sustava
Korak 2: Instaliranje zrcala
Sada ćemo postaviti mjesto za preuzimanje mog koda.
cd/home/pi/
git clone https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Sada ćemo kopirati neke mape na ispravno odredište
sudo cp -R frontend/mirror//var/www/html/mirror/
sudo cp -R sučelje/nadzorna ploča//var/www/html/Sudo cp -R pozadina//home/pi/Ogledalo/
Instaliranje baze podataka neophodan je korak u izradi projekta.
sudo mysql -u root -p << CREATEDATABASE.sql
Korak 3: Konfiguracija
Konfiguracijska datoteka nalazi se na:
sudo nano /home/pi/Mirror/resources/config.ini
Unesite MYSQL korisnika i lozinku.
Ovo mora biti mysql korisnik koji smo upravo stvorili.
Ostale postavke koje ćemo kasnije pregledati ove upute.
Korak 4: API -ji
Sada smo dovršili instalaciju Pi, pokriti ćemo neke teme koje biste htjeli napraviti.
Tamno nebo
Izradite Darsky API ključ putem
Kada se registrirate, vidjet ćete svoj API ključ na nadzornoj ploči.
Unesite ovaj ključ u konfiguracijsku datoteku zrcalnog projekta koji ste prethodno instalirali.
Kalendar
Prema zadanim postavkama moći ćete koristiti samo ical URL -ove za pregled kalendara. No, ovaj dio bit će o tome kako povezati svoje ogledalo s Google ekosustavom. Ovo je općenito duži i bolniji proces.
Stvari koje će vam zasigurno trebati
Naziv domene
Ovo su stvari koje ćemo postaviti tijekom ovog dijela
- CloudFlare račun
- Googleov račun razvojnog programera
- Googleov projekt za programere
- Postavite API kalendara
Korak 5: Kalendar
Cloudflare
Postavite cloudflare račun s https://cloudflare.com i slijedite čarobnjaka za prijenos svoje domene na Cloudflare DNS.
Nema potrebe da sami stvarate zapis A koji upućuje na pi maline. Moj Mirror kod će to učiniti umjesto vas. Budući da u većini kućanstava wifi IP -ovi nisu statični pa nakon ponovnog pokretanja možda više neće raditi. Da bi moj kôd automatski ažurirao IP, trebat će vam ključ API ključa.
- Pritisnite gumb Get your API key na nadzornoj ploči s desne strane. [Fotografija 1]
- Pomaknite se prema dolje i pogledajte svoj globalni API ključ. [Fotografija 2]
Unesite ovaj ključ u konfiguracijsku datoteku zrcalnog projekta koji ste prethodno instalirali.
Izrada SSL certifikata
Google zahtijeva da imamo SSL vezu. Za početak ovog odjeljka provjerite jeste li ispravno postavili Cloudflare DNS.
Prvo dodajte spremište.
sudo add-apt-repository ppa: certbot/certbot
Ažurirajte paketičara.
sudo apt-get ažuriranje
Instalirajte CertBot
sudo apt install python-certbot-apache
Pokrenite izradu certifikata. Opet ćete morati unijeti ispravan naziv domene.
sudo certbot --apache -d example.com -d www.example.com
Nakon stvaranja, pitat će vas treba li sve veze preusmjeriti na SSL. Odaberite preusmjeravanje.
Sada će vam reći da je uspješno stvorio certifikat za vašu domenu. Spremite 2 puta koje vam daje.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Sada idite u mapu s certifikatima putem:
Promijenite example.com na pravog domaćina.
cd /etc/letsencrypt/live/example.com/
Kopirajmo sada taj sadržaj u našu mapu projekta.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
I
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Povežite Apache sa svojom domenom
Za ispravno konfiguriranje Apachea s vašom domenom morat ćemo stvoriti konfiguracijsku datoteku. Svakako unesite naziv svoje domene, na primjer funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Zatim zalijepite ovo u datoteku. Zamijenite example.com svojim imenom domene.
Provjerite jesu li vaš cert i privatni ključ ispravan put. Postavite ih na put koji ste ranije spremili kada smo ga kreirali, a zatim putem certbota.
DocumentRoot "/var/www/html/" SSLEngine na SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Ostale direktive ovdje Opcije Indeksi AllowSider Svi Zahtijevaju sve odobreno
Sada moramo omogućiti neke izmjene, a zatim prisiliti Apache da ponovno učita konfiguraciju na sljedeći način:
sudo a2enmod ssl
sudo a2enmod prepisati
sudo systemctl ponovno učitavanje apache2
Sada biste trebali moći preko svog domena otići na svoj pi i vidjeti zadanu apache stranicu.
Korak 6: Google API
Idite na konzolu za razvojne programere putem
1. dio
Izradite svoj prvi projekt klikom na logotip Google API -ja i klikom na gumb NOVI PROJEKT. Ispunite odgovarajući naziv projekta i kliknite gumb za stvaranje. [Fotografija1]
2. dio
Sada ćete doći na ovu stranicu. Pritisnite gumb knjižnica. [Fotografija2]
Ovo je veliki popis svih API -ja koje biste mogli koristiti, ali mi ćemo tražiti API za Google kalendar. Kliknite na nju i pritisnite ENABLE. [Fotografija3]
Zatim ćete doći do pregleda API kalendara. Kliknite logotip Google API -ja za povratak na svoj projekt. [Fotografija4]
3. dio
Da biste sve pravilno postavili, kliknite kategoriju vjerodajnica i odaberite karticu Provjera domene.
Ovdje ćete morati potvrditi naziv svoje domene.
- Pritisnite DODAJ DOMENU
- Ispunite svoju domenu
- Tada će se od vas tražiti da potvrdite svoju domenu. Pritisnite Nastavi.
- Odaberite svog davatelja naziva domene. [Fotografija5]
- Pratite postupak
- Sada ćete ga moći ovako dodati na popis za provjeru domene na Google API konzoli. Provjerite je li vaša domena provjerena. [Fotografija6]
4. dio
Sada odaberite karticu zaslona OAuth pristanak. [Fotografija7]
Ispunite naziv aplikacije
Zatim ćemo dodati opsege na zaslon za pristanak. To znači da ćemo pitati korisnika na ekranu za pristanak želi li svoje podatke kalendara podijeliti s ogledalom.
- Pritisnite dodaj opseg i potražite kalendar.
- Samo provjerite../auth/calendar.read i pritisnite add. [Fotografija8]
Ispunite ovlaštenu domenu. Ovo bi trebala biti domena koju ste upravo potvrdili. [Fotografija9]
Sada kliknite veliki gumb za spremanje ispod obrasca.
5. dio
Na kraju moramo stvoriti vjerodajnice. Budući da smo pritisnuli gumb za spremanje, preusmjereni smo na karticu vjerodajnica. Pritisnite Stvori vjerodajnice i odaberite OAuth Client ID. [Fotografija10]
Odaberite Vrsta aplikacije: Web aplikacija i dajte joj ime.
Unesite sljedeću vezu u URI ovlaštenog preusmjeravanja i ispunite ispravnu domenu.
example.com:5000/api/v1/setup/calendar/response
Pritisnite stvoriti. Ovo će vam pokazati skočni prozor samo kliknite U redu. Sada pritisnite gumb za preuzimanje na vjerodajnicama koje ste upravo napravili
6. dio
Sada otvorite datoteku JSON i kopirajte sadržaj.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Zalijepite ih ovdje.
7. dio
Sada moramo definirati svoju domenu u konfiguraciji na sljedeći način:
sudo nano /home/pi/Mirror/resources/config.ini
Korak 7: Dizajn ogledala
Dizajn vašeg ogledala ovisi o tome kako ga želite. Napravite točna mjerenja LCD -a i ostavite razmak od 2 centimetra na jednoj strani ogledala jer će ondje sjediti mikrovalni senzor pokreta. Ne može biti iza bilo kojeg metala.
Spojio sam 4 drvene daske zajedno. Ovi su brušeni da imaju lijepo i čisto prednje ogledalo. Na vrhu sam također izbušio nekoliko rupa kako bih pustio zvuk zvučnika. Na suprotnoj strani ogledala, pri dnu, izrezao sam mali pravokutnik kako bih lako mogao izvesti električno ožičenje. [Fotografija1]
Ovo su 2 komada jeftinog drveta na koje će se monitor osloniti. Budući da sam rekao da će nam trebati oko 2 centimetra razmaka između zrcala i kućišta. Dodao sam i 3 mala komada drva i pričvrstio ih na te komade za odmor. Tako bi monitor ostao na mjestu. [Fotografija2]
Na kraju je to izgledalo ovako. Imao sam razmak od 3 mm između tih komada za odmor i prednjeg dijela kućišta ogledala. Taman toliko da mogu staviti dvosmjerno ogledalo debljine 3 mm. [Fotografija3]
Korak 8: Ožičenje
Pravilno slijedite jednu od ovih shema.
Nakon što sam obavio ožičenje, zalijepio sam ga na stražnju stranu ekrana dvostranom trakom. Budući da sam ikada htio rastaviti ogledalo i koristiti ga za druge projekte, lako bih ga mogao ukloniti. Ako ste sigurni, možete upotrijebiti pištolj za vruće ljepilo i zalijepiti ga na stražnju stranu ogledala.
Korak 9: Pokretanje koda
LXSession
Prvo stvorimo nekoliko mapa
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Sada ćemo stvoriti datoteku u kojoj ćemo navesti nekoliko parametara/naredbi za pokretanje.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Zalijepite sljedeće u datoteku.
@lxpanel --profil 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
Ažurirat ćemo skriptu početnog zrcalnog zaslona tako da odgovara našem domaćinu.
sudo nano /home/pi/Mirror/init_mirror.sh
Odaberite localhost ako ne koristite google kalendar i domenu.
#!/bin/bash
sleep 15 chromium-browser --incognito --kiosk https:// localhost/mirror
Ako ga koristite, popunite domaćina.
#!/bin/bash
sleep 15 chromium-browser --incognito --kiosk
Servis
Sada ćemo postaviti da se Mirror kôd automatski pokreće.
Stvorit ćemo uslugu koja automatski pokreće kôd umjesto nas.
Ići:
sudo nano /etc/systemd/system/mirror.service
I zalijepite ovo u datoteku
[Jedinica]
Opis = Zrcalna pozadina Nakon = mrežni.cilj mariadb.service [Usluga] Vrsta = jednostavan korisnik = korijenski ExecStart =/bin/sh /home/pi/Mirror/init.sh [Instaliraj] TraženoBy = višekorisnički.cilj
Sada ćemo morati ponovno učitati demon systemd na sljedeći način:
sudo systemctl daemon-reload
Također ćemo omogućiti uslugu automatskog pokretanja pri pokretanju.
sudo systemctl omogućiti ogledalo
Sada ćemo isključiti napajanje.
sudo poweroff
Konačne postavke
Na kraju moramo ukloniti naš APIPA ip kako bi radio samo na WiFi.
- Idite u direktorij za pokretanje SD kartice na svom računalu.
- Otvorite datoteku "cmdline.txt"
- Uklonite ip = 169.254.10.1 Na kraju dugačkog retka teksta.
Korak 10: Pokretanje zrcala
Posjetite IP koji se nalazi na zrcalnom zaslonu ili ako ste postavili Google kalendar popunite naziv domene.
Sada ćete moći postaviti svoje ogledalo!
Ako dobijete SSL pogrešku na zrcalu, možda ćete htjeti dodati svoje certifikate u Chromium spremište certifikata.
Preporučeni:
C.Q: DIY Pametno ogledalo: 5 koraka
C.Q: DIY Smart Mirror: Mi smo Katrina Concepcion i Adil Qaiser, obje studentice druge godine na WBASD STEM akademiji. Ovo je projekt s kojim bismo surađivali i radili ga za ovogodišnju najbolju nagradu. Kad smo odlučili napraviti ovaj projekt, imali smo na umu "što bi bilo najviše
Kako stvoriti prijenosno pametno ogledalo/kombiniranu kutiju za šminkanje: 8 koraka
Kako izraditi prijenosno pametno ogledalo/kombiniranu šminku: Kao posljednji projekt za moj glavni kamen u Davisu & Na koledžu Elkins, krenuo sam dizajnirati i stvoriti make -up kutiju za putovanja, zajedno s većim zrcalom i korištenjem maline pi i softverske platforme za čarobno zrcalo, koja bi funkcionirala kao priključak
Kako izgraditi pametno ogledalo pomoću Raspberry Pi koraka 4: 10
Kako izgraditi pametno ogledalo s Raspberry Pi 4: U ovom vodiču ćemo vidjeti kako izgraditi pametno ogledalo koristeći reciklirane dijelove poput okvira za slike, starog monitora i stakla za slike. Za elektroničke komponente koje sam kupio ovdje www.lcsc .com
Pametno ogledalo: 5 koraka
Pametno ogledalo: Ovo uputstvo će vas naučiti kako stvoriti Pametno ogledalo koje prikazuje vašu pristiglu poštu, najnovije vijesti i ažuriranja iz New York Timesa te datum i vrijeme u pozadini iz programa Unsplash. Veza koja radi: Potrebne zalihe: Okvir za
Arduino kontrolni centar utičnice s Google kalendarom: 4 koraka
Arduino kontrolni centar utičnice s Google kalendarom: U ovom ćete uputstvu naučiti kako izgraditi kontrolni centar za svoj dom pomoću Adapruit Power Relej modula s 4 utičnice. Trebat će vam Arduino ploča s wifi modulom, kao što je Adafruit Feather Huzzah i Adafruit Power relejni modul 4