Sadržaj:
- Supplies
- Korak 1: Postavljanje
- Korak 2: Instaliranje ogledala
- 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: Pokrenite Mirror
Video: Pametni ogledalo za više korisnika s Google kalendarom: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
U ovom uputstvu ćemo stvoriti pametno ogledalo integrirano s Google kalendarom. Napravio sam ovaj projekt jer smatram da su pametna ogledala zaista cool, ujutro su božji dar. Ali sam odlučio da napravim jedan od nule jer svi ostali imaju 1 manu. Oni su previše napredni i pretrpani. Odlučio sam da ovo bude jednostavno.
Supplies
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 (Mikrotalasni senzor pokreta)
- Meki potenciometar (Touchstrip iz Sparkfun -a)
Računarstvo
i IC -ovi
- Zvučnik (3,2 W na 4Ω ILI 1,8 W na 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 Ohm
Various
- Jumperwires
- Breadboard
- Akrilno dvosmjerno ogledalo (15% propuštanja svjetlosti)
- IPS monitor (veličina zavisi od toga koliko ga želite)
- HDMI kabel
- Drvo
Softver
- PuTTY
- Uređivač koda (Notepad ++ je dovoljan)
- 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 sa
Preuzmite ZIP datoteku i ekstrahirajte je gdje god želite.
Instalacija
- Odaberite sliku putem ikone mape
- Odaberite svoju SD karticu putem padajućeg izbornika
- Kliknite na piši
Sada ćemo se morati dodatno pozabaviti nekim postavkama kako bismo mogli pristupiti Pi -u.
- Idite u direktorij za pokretanje SD kartice
- Otvorite datoteku "cmdline.txt"
- Dodajte ip = 169.254.10.1 Na kraju dugačkog reda teksta odijeljenog razmakom (u istom retku).
- Sačuvajte datoteku.
- Kreirajte 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 radnu površinu/prijenosno računalo, a drugi u vaš Pi.
Sada pokrenite Raspberry Pi.
- Instalirajte Putty sa
- Unesite 169.254.10.1 u okvir IP.
- Provjerite je li odabran SSH i je li port 22 popunjen.
- Kliknite otvoreno
- Popunite korisničko ime: pi
- Unesite 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-Wire
- 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 opcija 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 ovu liniju, ali provjerite jesu li ispunjeni i SSID i lozinka
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Unesite WPA klijenta.
wpa_cli
Odaberite sučelje
interfejs wlan0
Ponovo učitajte konfiguraciju
ponovo konfigurirati
Uvjerite se da ste pravilno povezani upisivanjem…
ip a
… i provjerite imate li IP na WLAN0 sučeljima.
Paketi
Sada kada smo spojeni na internet morat ćemo instalirati neke pakete.
Prvo ćemo morati osvježiti liste paketa za najnoviju.
sudo apt update
Python
Prisilićemo Raspbian da koristi Python 3
nadogradnje-alternative --install/usr/bin/python python /usr/bin/python2.7 1
update-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 ogledalo.
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 mirror.* na ''@'%' identificirano sa '';
Sada ispraznimo tablicu dozvola.
FLUSH PRIVILEGES;
Apache Webserver
Da biste instalirali Web server, pokrenite donju liniju.
sudo apt install apache2 -y
Python paketi
Instalirat ćemo ove pakete
- Flask
- Flask-Cors
- Flask-MySQL
- Flask-SocketIO
- PyMySQL
- Talisman
- Gevent
- Gevent-websocket
- Google-api-python-klijent
- Google-auth
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- 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 icaletion wycaclcc ucici
Podešavanje zvučnika
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Sada moramo ponovo pokrenuti sistem pa pritisnite y.
Ponovo pokrenite skriptu
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Sada moramo ponovo pokrenuti sistem
sudo reboot
Ekran (monitor)
U zavisnosti od toga kako želite orijentaciju ekrana, možda ćete želeti da rotirate ekran.
Za rotiranje ekrana moramo pristupiti opcijama 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 stepeni, 2 je 180 stepeni, a posljednji će biti 270 stepeni.
Zatim ponovo pokrenite sistem.
sudo reboot
Korak 2: Instaliranje ogledala
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 frontend/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 se nalazi na:
sudo nano /home/pi/Mirror/resources/config.ini
Unesite MYSQL korisnika i lozinku.
Ovo mora da je mysql korisnik koji smo upravo napravili.
Ostale postavke koje ćemo kasnije pregledati ove upute.
Korak 4: API -ji
Sada smo završili instalaciju Pi -a i pokriti ćemo neke teme koje biste htjeli napraviti.
Darksky
Kreirajte 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. Ali ovaj dio će biti o tome kako povezati svoje ogledalo s Google ekosistemom. Ovo je općenito duži i bolniji proces.
Stvari koje će vam definitivno trebati
Naziv domene
Ovo su stvari koje ćemo postaviti tokom ovog dijela
- CloudFlare račun
- Googleov račun programera
- Google Developer Project
- Postavite API kalendara
Korak 5: Kalendar
Cloudflare
Postavite cloudflare račun s https://cloudflare.com i slijedite čarobnjaka za prijenos naziva 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ćnih WiFi -ja 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 API ključ vašeg računa.
- Kliknite 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.
Kreiranje SSL certifikata
Google od nas traži da imamo SSL vezu. Za početak ovog odjeljka provjerite jeste li pravilno postavili Cloudflare DNS.
Prvo dodajte spremište.
sudo add-apt-repository ppa: certbot/certbot
Ažurirajte paketičara.
sudo apt-get update
Instalirajte CertBot
sudo apt install python-certbot-apache
Pokrenite kreiranje certifikata. Opet ćete morati unijeti ispravan naziv domene.
sudo certbot --apache -d example.com -d www.example.com
Nakon kreiranja će vas pitati treba li sve veze preusmjeriti na SSL. Odaberite preusmjeravanje.
Sada će vam reći da je uspješno kreirao certifikat za vašu domenu. Sačuvajte 2 putanje koje vam daje.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Sada idite u mapu sa certifikatima putem:
Svakako promijenite example.com u pravog domaćina.
cd /etc/letsencrypt/live/example.com/
Sada kopirajmo te sadržaje u našu fasciklu projekta.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
And
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Povežite Apache sa svojom domenom
Da bismo ispravno konfigurirali Apache sa vašom domenom, morat ćemo stvoriti konfiguracijsku datoteku. Obavezno 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.
Uvjerite se da su vaš cert i privatni ključ ispravna putanja. Postavite ih na putanju koju ste ranije spremili kada smo 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 DozvoliSideSrL Svi Zahtijevaju sve odobreno
Sada moramo omogućiti neke izmjene, a zatim prisiliti Apache da ponovo 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 programere putem
1. dio
Kreirajte svoj prvi projekt klikom na logotip Google API -ja i klikom na gumb NOVI PROJEKT. Unesite odgovarajući naziv projekta i kliknite na dugme za kreiranje. [Fotografija1]
Dio 2
Sada ćete preći na ovu stranicu. Kliknite na dugme biblioteka. [Fotografija2]
Ovo je velika lista svih API -ja koje možete koristiti, ali mi ćemo tražiti API Google kalendara. Kliknite na nju i pritisnite ENABLE. [Fotografija3]
Zatim ćete doći do pregleda API kalendara. Kliknite logotip Google API -ja da biste se vratili 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.
- Kliknite DODAJ DOMEN
- Popunite svoju domenu
- Tada će od vas tražiti da potvrdite svoju domenu. Pritisnite Nastavi.
- Odaberite dobavljača naziva domena. [Fotografija5]
- Pratite proces
- Sada ćete ga moći dodati na popis za provjeru domene na Google API konzoli ovako. Provjerite je li vaša domena provjerena. [Fotografija6]
4. dio
Sada odaberite karticu ekrana OAuth pristanak. [Fotografija7]
Popunite naziv aplikacije
Zatim ćemo dodati opsege na ekran za pristanak. To znači da ćemo pitati korisnika na ekranu za pristanak želi li podijeliti svoje podatke o kalendaru s ogledalom.
- Kliknite na dodavanje opsega i potražite kalendar.
- Samo provjerite../auth/calendar.read i pritisnite add. [Fotografija8]
Popunite ovlašteni domen. Ovo bi trebao biti domen koji ste upravo potvrdili. [Fotografija9]
Sada kliknite veliko dugme za spremanje ispod obrasca.
5. dio
Na kraju moramo stvoriti akreditive. Budući da smo pritisnuli dugme za spremanje, preusmjereni smo na karticu vjerodajnica. Kliknite na kreiranje vjerodajnica 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
Kliknite na Kreiraj. Ovo će vam prikazati skočni prozor samo kliknite U redu. Sada pritisnite dugme za preuzimanje na akreditivima koje ste upravo napravili
6. dio
Sada otvorite JSON datoteku 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 zavisi od toga kako želite. Napravite precizna mjerenja LCD -a i ostavite razmak od 2 centimetra na jednoj strani ogledala jer će tamo sjediti mikrovalni senzor pokreta. Ne može biti iza bilo kojeg metala.
Spojio sam 4 drvene daske zajedno. Ovi su izbrušeni kako bi imali lijepo i čisto prednje ogledalo. Na vrhu sam također izbušio nekoliko rupa kako bih propustio 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. Pošto sam rekao da će nam trebati oko 2 centimetra razmaka između ogledala i kućišta. Dodao sam i 3 mala komada drveta 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 prednje strane 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 ožičenje spojio, zalijepio sam ga na stražnju stranu ekrana dvostranom trakom. Budući da sam ikada želio rastaviti ogledalo i koristiti ga za druge projekte, mogao bih ga lako 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
Kreirajmo prvo 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 zrcala 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 svog domaćina.
#!/bin/bash
sleep 15 chromium-browser --incognito --kiosk
Service
Sada ćemo postaviti da se Mirror kod automatski pokreće.
Kreirat ćemo uslugu koja automatski pokreće kôd umjesto nas.
Idi:
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ženBy = višekorisnički.cilj
Sada ćemo morati ponovo 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 enable mirror
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čunaru.
- Otvorite datoteku "cmdline.txt"
- Uklonite ip = 169.254.10.1 Na kraju dugačkog retka teksta.
Korak 10: Pokrenite Mirror
Posjetite IP koji se nalazi na ogledalu ili ako ste postavili Google kalendar popunite naziv domene.
Sada ćete moći postaviti ogledalo!
Ako dobijete SSL grešku na ogledalu, možda ćete htjeti dodati svoje certifikate u Chromium spremište certifikata.
Preporučuje se:
Z80-mbc2 Z80 Šifra blica LED za korisnika: 3 koraka
Z80-mbc2 Z80 Flash Flash LED za korisnike: Ovo je primjer korisničkog LED programa napisanog u Z80 asembleru za računar z80-mbc2. Ovo sam uradio za mene test i revizija, ovo je moj prvi program Z80 za više od 35 godina. Uživajte
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na takmičenje Growing Beyond Earth, Maker, predano putem Instructables. Nisam mogao biti više uzbuđen što dizajniram za proizvodnju svemirskih biljaka i objavljujem svoj prvi Instructable. Za početak, takmičenje nas je zamolilo da
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje višestrukih štitova motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način kako izgraditi uređaj koji prevodi senzorni unos u vibracione stimulanse. Ti vibracijski stimulansi su p
Arduino kontrolni centar utičnice s Google kalendarom: 4 koraka
Arduino kontrolni centar utičnice sa Google kalendarom: U ovom uputstvu ćete naučiti kako izgraditi kontrolni centar za svoj dom pomoću Adapruit Power Relej modula sa 4 utičnice. Trebat će vam Arduino ploča s wifi modulom, poput Adafruit Feather Huzzaha i Adafruit Power Relej modula 4
Korisni kod za početnike korisnika računara .: 5 koraka
Korisni kôd za početnike korisnika računara. Je li vas korisnik računara početnika ikada pitao: "Je li moje računalo uključeno?" Ne bojte se više- ovaj Instructable će stati na kraj svemu " Provjerite treperi li malo svjetlo u kutu! &Quot; " Piše li 'Prijavi se?' " " Postoji li