Sadržaj:

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

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

Video: Pametni ogledalo za više korisnika s Google kalendarom: 10 koraka
Video: КИТАЙЦЫ, ЧТО ВЫ ТВОРИТЕ??? 35 СУПЕР ТОВАРОВ ДЛЯ АВТОМОБИЛЯ С ALIEXPRESS 2024, Novembar
Anonim
Pametni ogledalo za više korisnika s Google kalendarom
Pametni ogledalo za više korisnika s Google kalendarom
Pametni ogledalo za više korisnika s Google kalendarom
Pametni ogledalo za više korisnika s Google kalendarom

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

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

Sada ćemo se morati dodatno pozabaviti nekim postavkama kako bismo mogli pristupiti Pi -u.

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

  1. Instalirajte Putty sa
  2. Unesite 169.254.10.1 u okvir IP.
  3. Provjerite je li odabran SSH i je li port 22 popunjen.
  4. Kliknite otvoreno
  5. Popunite korisničko ime: pi
  6. 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

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

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

  1. Kliknite 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.

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

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

  1. Kliknite DODAJ DOMEN
  2. Popunite svoju domenu
  3. Tada će od vas tražiti da potvrdite svoju domenu. Pritisnite Nastavi.
  4. Odaberite dobavljača naziva domena. [Fotografija5]
  5. Pratite proces
  6. 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.

  1. Kliknite na dodavanje opsega i potražite kalendar.
  2. 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 ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
Dizajn ogledala
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

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
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

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

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.

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

Korak 10: Pokrenite Mirror

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

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: