Sadržaj:

Pametno ogledalo za više korisnika s Google kalendarom: 10 koraka
Pametno ogledalo za više korisnika s Google kalendarom: 10 koraka

Video: Pametno ogledalo za više korisnika s Google kalendarom: 10 koraka

Video: Pametno ogledalo za više korisnika s Google kalendarom: 10 koraka
Video: мастер-класс "Как уравновесить 7 эмоций, разрушающих позвоночник" 2024, Studeni
Anonim
Pametno ogledalo za više korisnika s Google kalendarom
Pametno ogledalo za više korisnika s Google kalendarom
Pametno ogledalo za više korisnika s Google kalendarom
Pametno ogledalo za više korisnika s Google kalendarom

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

  1. Odaberite svoju sliku putem ikone mape
  2. Odaberite svoju SD karticu putem padajućeg izbornika
  3. Kliknite na piši

Sada ćemo morati napraviti dodatna petljanja s nekim postavkama kako bismo mogli pristupiti Pi.

  1. Idite u direktorij za pokretanje SD kartice
  2. Otvorite datoteku "cmdline.txt"
  3. Dodajte ip = 169.254.10.1 Na kraju dugačkog retka teksta odijeljenog razmakom (u istom retku).
  4. Spremite datoteku.
  5. 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.

  1. Instalirajte Putty s
  2. Unesite 169.254.10.1 u IP okvir.
  3. Provjerite je li odabran SSH i je li port 22 ispunjen.
  4. Pritisnite otvoriti
  5. Ispunite korisničko ime: pi
  6. 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

Ugradnja ogledala
Ugradnja 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 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

Kalendar
Kalendar
Kalendar
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.

  1. Pritisnite gumb Get your API key na nadzornoj ploči s desne strane. [Fotografija 1]
  2. 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

Google API
Google API
Google API
Google API
Google API
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.

  1. Pritisnite DODAJ DOMENU
  2. Ispunite svoju domenu
  3. Tada će se od vas tražiti da potvrdite svoju domenu. Pritisnite Nastavi.
  4. Odaberite svog davatelja naziva domene. [Fotografija5]
  5. Pratite postupak
  6. 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.

  1. Pritisnite dodaj opseg i potražite kalendar.
  2. 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 ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
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

Izvođenje ožičenja
Izvođenje ožičenja
Izvođenje ožičenja
Izvođenje ožičenja
Izvođenje ožičenja
Izvođenje ožičenja

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

Pokretanje Kodeksa
Pokretanje Kodeksa
Pokretanje Kodeksa
Pokretanje Kodeksa
Pokretanje Kodeksa
Pokretanje Kodeksa

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.

  1. Idite u direktorij za pokretanje SD kartice na svom računalu.
  2. Otvorite datoteku "cmdline.txt"
  3. Uklonite ip = 169.254.10.1 Na kraju dugačkog retka teksta.

Korak 10: Pokretanje zrcala

Pokretanje ogledala
Pokretanje ogledala
Pokretanje ogledala
Pokretanje ogledala
Pokretanje ogledala
Pokretanje ogledala
Pokretanje ogledala
Pokretanje ogledala

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: