Turinys:

Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi: 10 žingsnių
Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi: 10 žingsnių

Video: Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi: 10 žingsnių

Video: Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi: 10 žingsnių
Video: Išmanusis veidrodis | HiMirror Plus+ | Unbox Ring || Laisvės TV X 2024, Lapkritis
Anonim
Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi
Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi
Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi
Kelių vartotojų išmanusis veidrodis su „Google“kalendoriumi

Šioje instrukcijoje mes sukursime išmanųjį veidrodį, integruotą su „Google“kalendoriumi. Aš sukūriau šį projektą, nes man atrodo, kad išmanieji veidrodžiai yra tikrai šaunūs, jie yra dievobaimė ryte. Bet aš nusprendžiau padaryti vieną iš nulio, nes visi kiti turi 1 trūkumą. Jie per daug pažengę ir netvarkingi. Aš nusprendžiau išlaikyti tai paprasta.

Prekės

Prieš

pradėsime tai yra dalykai, kurių jums tikrai reikės norint sukurti tokį veidrodį kaip mano. Šios prekės kainuos apie 250–350 eurų, priklausomai nuo jūsų regiono ir dabartinių kainų.

Techninė įranga

Jutikliai

  • Vieno laido temperatūros jutiklis
  • RWCL 0516 (mikrobangų judesio jutiklis)
  • Minkštas potenciometras (jutiklinė juosta iš „Sparkfun“)

Kompiuterija

ir IC

  • Garsiakalbis (3,2 W esant 4Ω arba 1,8 W esant 8Ω)
  • MCP3008
  • Adafruit I2S 3W D klasės stiprintuvas Breakout - MAX98357A
  • Raspberry Pi 3 B+
  • SD kortelė (tinka 8 GB)
  • Rezistorius 4,7K omų

Įvairūs

  • Džemperiai
  • Bandomoji Lenta
  • Akrilo dviejų krypčių veidrodis (15% šviesos pralaidumas)
  • IPS monitorius (dydis priklauso nuo to, kokio dydžio norite)
  • HDMI kabelis
  • Mediena

Programinė įranga

  • PuTTY
  • Kodo redaktorius (pakanka „Notepad ++“)
  • „Win32“disko vaizdavimo priemonė
  • Raspbian OS vaizdas

1 veiksmas: sąranka

Norėdami pradėti, pirmiausia turėsime nustatyti jūsų Pi pagal mano sukurtą kodą.

Jums reikės dviejų dalykų:

  • „Win32 Disk Imager“iš
  • Raspbian OS vaizdas iš

Atsisiųskite ZIP failą ir išskleiskite jį ten, kur norite.

Įrengimas

  1. Pasirinkite vaizdą naudodami aplanko piktogramą
  2. Išskleidžiamajame meniu pasirinkite SD kortelę
  3. Spustelėkite rašyti

Dabar turėsime šiek tiek papildomai atlikti tam tikrus nustatymus, kad galėtume pasiekti „Pi“.

  1. Eikite į SD kortelės įkrovos katalogą
  2. Atidarykite failą „cmdline.txt“
  3. Pridėkite ip = 169.254.10.1 Ilgos teksto eilutės pabaigoje, atskirtą tarpais (toje pačioje eilutėje).
  4. Išsaugokite failą.
  5. Tame pačiame kataloge sukurkite failą pavadinimu ssh be plėtinio

Dabar galite išimti SD kortelę ir įdėti ją į „Pi“.

Jungiamasi

Dabar turėsime nustatyti programinę įrangą.

Pirmiausia prijunkite LAN kabelį, vieną galą į darbalaukį/nešiojamąjį kompiuterį, o kitą - į „Pi“.

Dabar paleiskite „Raspberry Pi“.

  1. Įdiekite „Putty“iš
  2. IP laukelyje įveskite 169.254.10.1.
  3. Įsitikinkite, kad pasirinktas SSH ir užpildytas 22 prievadas.
  4. Spustelėkite atidaryti
  5. Įveskite vartotojo vardą: pi
  6. Įveskite slaptažodį: aviečių

Raspi-config

Atidarykite „Raspi-config“įrankį naudodami:

sudo raspi-config

Įjunkite šias sąsajų kategorijos parinktis

  • 1 laidas
  • SPI

Pasirinkite savo „WiFi“šalį per lokalizacijos kategoriją.

Tada išjunkite šias parinktis įkrovos parinkčių kategorijoje

Ekrano užsklanda

Galiausiai nustatykite darbalaukio/CLI nustatymą įkrovos parinkčių kategorijoje į „Desktop Autologin“.

Bevielis internetas

Norėdami veidrodžio, turime turėti „Wi -Fi“ryšį, todėl įsitikinkite, kad jūsų „Wi -Fi“prisijungimo duomenys yra uždaryti.

Eikite į šakninį režimą

sudo -i

Įklijuokite šią eilutę, tačiau įsitikinkite, kad abu SSID ir slaptažodis yra užpildyti

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

Įveskite WPA klientą.

wpa_cli

Pasirinkite sąsają

sąsaja wlan0

Iš naujo įkelti konfigūraciją

perkonfigūruoti

Įveskite, kad įsitikintumėte, jog prisijungėte teisingai …

ip a

… ir pamatyti, ar turite IP WLAN0 sąsajose.

Paketai

Dabar, kai esame prisijungę prie interneto, turėsime įdiegti kai kuriuos paketus.

Pirmiausia turime atnaujinti naujausių paketų sąrašus.

sudo apt atnaujinimas

Python

Mes priversime „Raspbian“naudoti „Python 3“

update-alternatives-install/usr/bin/python python /usr/bin/python2.7 1

atnaujinimo alternatyvos-įdiegti/usr/bin/python python/usr/bin/python3 2

MariaDB

Norėdami įdiegti duomenų bazę, įklijuokite šią eilutę.

sudo apt įdiegti mariadb-server

Tada turėsime apsaugoti savo diegimą.

mysql_secure_installation

Jis paprašys mūsų dabartinio pagrindinio slaptažodžio, nes jo neturime, tiesiog paspauskite „Enter“.

Toliau klausiama, ar norime įvesti pagrindinio slaptažodžio tipą y, nes mes jo norime.

Norėdami gauti kitų klausimų, tiesiog įveskite Y.

Galiausiai sukursime naudotoją, kurį galėsime naudoti veidrodžiui.

Įveskite „mysql“apvalkalą atlikdami šiuos veiksmus:

Pakelkime save į šaknis

sudo -i

Įveskite „mysql“apvalkalą

mysql

Pakeiskite savo vartotojo vardu ir tą patį su

suteikti visas privilegijas veidrodžiui.* iki ''@'%' pažymėtas '';

Dabar mes išplauname leidimų lentelę.

PLŪŠIMO PRIVILEGIJOS;

„Apache“žiniatinklio serveris

Norėdami įdiegti tinklalapio serverį, vykdykite žemiau esančią eilutę.

sudo apt įdiegti apache2 -y

Python paketai

Mes ketiname įdiegti šiuos paketus

  • Kolba
  • Kolbos-kamšteliai
  • Kolba-MySQL
  • Kolba-lizdasIO
  • „PyMySQL“
  • Kolbinis-talismanas
  • Geventas
  • Gevent-websocket
  • „Google-api-python-client“
  • „Google“aut
  • „Google-auth-httplib2“
  • „Google-auth-oauthlib“
  • Httplib2
  • Icalendar
  • Icalevents
  • Oauthlib
  • „Python-socketio“
  • Prašymai
  • Wsaccel
  • Ujsonas

Darant

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL kolba-talismanas gevent gevent-websocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlib užklausos

Garsiakalbių sąranka

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | mušti

Dabar turime paleisti iš naujo, todėl paspauskite y.

Pakartokite scenarijų

curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | mušti

Dabar turime iš naujo paleisti antrą kartą

sudo perkraukite

Ekranas (monitorius)

Priklausomai nuo to, kaip norite ekrano išdėstymo, galite pasukti ekraną.

Norėdami pasukti ekraną, turime pasiekti įkrovos parinktis atlikdami šiuos veiksmus:

sudo nano /boot/config.txt

Tada įklijuokite vieną iš šių eilučių konfigūracijos faile:

rodymo_sukimas = 0

rodymo_sukimas = 1

rodymo_sukimas = 2

rodymo_sukimas = 3

Pirmasis, 0, yra įprasta konfigūracija. 1 Bus 90 laipsnių, 2 yra 180 laipsnių, o paskutinis bus 270 laipsnių.

Tada paleiskite iš naujo.

sudo perkraukite

2 žingsnis: veidrodžio montavimas

Veidrodžio montavimas
Veidrodžio montavimas

Dabar sukursime vietą, kur atsisiųsti mano kodą.

cd/home/pi/

git klonas https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

Dabar nukopijuosime kai kuriuos aplankus į teisingą paskirties vietą

sudo cp -R frontend/mirror//var/www/html/mirror/

sudo cp -R frontend/prietaisų skydelis//var/www/html/Sudo cp -R backend//home/pi/Mirror/

Duomenų bazės įdiegimas yra būtinas žingsnis kuriant projektą.

sudo mysql -u root -p << CREATEDATABASE.sql

3 žingsnis: konfigūravimas

Konfigūracijos failas yra:

sudo nano /home/pi/Mirror/resources/config.ini

Įveskite MYSQL vartotoją ir slaptažodį.

Tai turi būti ką tik sukurtas „mysql“vartotojas.

Kiti nustatymai, kuriuos vėliau apžvelgsime, yra instrukcija.

4 žingsnis: API

Dabar baigėme „Pi“diegimą, apimsime keletą temų, kurias galbūt norėsite padaryti.

Tamsus dangus

Sukurkite „Darsky“API raktą per

Kai užsiregistruosite, prietaisų skydelyje pamatysite savo API raktą.

Įveskite šį raktą prieš tai įdiegto veidrodinio projekto konfigūracijos faile.

Kalendorius

Pagal numatytuosius nustatymus kalendoriui peržiūrėti galėsite naudoti tik URL. Tačiau ši dalis bus apie tai, kaip susieti veidrodį su „Google“ekosistema. Paprastai tai ilgesnis ir skausmingesnis procesas.

Dalykai, kurių jums tikrai reikės

Domeno vardas

Tai yra dalykai, kuriuos nustatysime šios dalies metu

  • „CloudFlare“paskyra
  • „Google“kūrėjo paskyra
  • „Google“kūrėjų projektas
  • Nustatykite kalendoriaus API

5 veiksmas: kalendorius

Kalendorius
Kalendorius
Kalendorius
Kalendorius

„Cloudflare“

Nustatykite „cloudflare“paskyrą iš https://cloudflare.com ir vykdykite vedlį, kad perkeltumėte savo domeno vardą į „Cloudflare“DNS.

Nereikia patiems susikurti A įrašo, rodančio į aviečių pi. Mano veidrodinis kodas tai padarys už jus. Kadangi daugelyje namų ūkių „Wi -Fi“IP nėra statiški, todėl iš naujo paleidus jis gali nebeveikti. Kad mano kodas automatiškai atnaujintų IP, jums reikės paskyros API rakto.

  1. Dešinėje pusėje esančiame prietaisų skydelyje spustelėkite mygtuką Gauti API raktą. [1 nuotrauka]
  2. Slinkite žemyn ir peržiūrėkite „Global API“raktą. [2 nuotrauka]

Įveskite šį raktą prieš tai įdiegto veidrodinio projekto konfigūracijos faile.

SSL sertifikato kūrimas

„Google“reikalauja, kad turėtume SSL ryšį. Norėdami pradėti šį skyrių, įsitikinkite, kad teisingai nustatėte „Cloudflare“DNS.

Pirmiausia pridėkite saugyklą.

sudo add-apt-saugykla ppa: certbot/certbot

Atnaujinkite paketų sąrašą.

sudo apt-get atnaujinimas

Įdiekite „CertBot“

sudo apt įdiegti python-certbot-apache

Pradėkite kurti sertifikatą. Dar kartą turėsite užpildyti teisingą domeno pavadinimą.

sudo certbot --apache -d example.com -d www.example.com

Po sukūrimo jis paklaus, ar jis turėtų peradresuoti visus ryšius į SSL. Pasirinkite peradresavimą.

Dabar jis jums pasakys, kad sėkmingai sukūrė jūsų domeno sertifikatą. Būtinai išsaugokite 2 jo pateiktus kelius.

  • /etc/letsencrypt/live/example.com/cert.pem
  • /etc/letsencrypt/live/example.com/privkey.pem

Dabar eikite į aplanką su sertifikatais:

Būtinai pakeiskite example.com į tinkamą prieglobą.

cd /etc/letsencrypt/live/example.com/

Dabar nukopijuokime šį turinį į mūsų projekto aplanką.

cp cert.pem /home/pi/Mirror/resources/certs/cert.pem

Ir

cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem

Prijunkite „Apache“prie savo domeno

Norėdami teisingai sukonfigūruoti „Apache“su savo domenu, turėsime sukurti konfigūracijos failą. Būtinai įveskite savo domeno pavadinimą, pavyzdžiui, funergydev.com.

sudo nano /etc/apache2/sites-enabled/example.com.conf

Tada įklijuokite jį į failą. Pakeiskite example.com savo domeno pavadinimu.

Įsitikinkite, kad sertifikatas ir privatus raktas yra teisingas kelias. Nustatykite juos tuo keliu, kurį išsaugojote anksčiau, kai kūrėme, tada naudodami „certbot“.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Kitos direktyvos čia Parinktys Indeksai SekiteSymLink AllowOver Visi Reikalauti viską

Dabar turime įjungti kai kuriuos pakeitimus ir priversti „Apache“iš naujo įkelti konfigūraciją atlikdami šiuos veiksmus:

sudo a2enmod ssl

sudo a2enmod perrašyti

sudo systemctl iš naujo įkelti apache2

Dabar turėtumėte turėti galimybę per savo domeno pavadinimą pereiti prie savo pi ir pamatyti numatytąjį apache puslapį.

6 veiksmas: „Google“API

„Google“API
„Google“API
„Google“API
„Google“API
„Google“API
„Google“API

Eikite į kūrėjų pultą apsilankę

1 dalis

Sukurkite savo pirmąjį projektą spustelėdami šalia „Google“API logotipo ir spustelėdami mygtuką NAUJAS PROJEKTAS. Įveskite tinkamą projekto pavadinimą ir spustelėkite mygtuką „Sukurti“. [1 nuotrauka]

2 dalis

Dabar pateksite į šį puslapį. Spustelėkite bibliotekos mygtuką. [2 nuotrauka]

Tai didelis sąrašas visų API, kurias galėtumėte naudoti, bet mes ieškosime „Google“kalendoriaus API. Spustelėkite jį ir paspauskite ĮJUNGTI. [3 nuotrauka]

Tada pasieksite kalendoriaus API apžvalgą. Spustelėkite „Google“API logotipą, kad grįžtumėte prie savo projekto. [4 nuotrauka]

3 dalis

Norėdami viską teisingai nustatyti, spustelėkite įgaliojimų kategoriją ir pasirinkite skirtuką Domeno patvirtinimas.

Čia turėsite patvirtinti savo domeno vardą.

  1. Spustelėkite PRIDĖTI DOMENĄ
  2. Užpildykite savo domeną
  3. Tada jis paprašys patvirtinti jūsų domeną. Spustelėkite tęsti.
  4. Pasirinkite savo domeno vardo teikėją. [5 nuotrauka]
  5. Sekite procesą
  6. Dabar jį galėsite pridėti prie „Google“API pulto domeno patvirtinimo sąrašo. Įsitikinkite, kad jūsų domenas yra patikrintas. [6 nuotrauka]

4 dalis

Dabar pasirinkite „OAuth“sutikimo ekrano skirtuką. [7 nuotrauka]

Užpildykite programos pavadinimą

Toliau prie sutikimo ekrano pridėsime apimtis. Tai reiškia, kad sutikimo ekrane paklausime vartotojo, ar jis nori bendrinti savo kalendoriaus informaciją su veidrodžiu.

  1. Spustelėkite pridėti apimtį ir ieškokite kalendoriaus.
  2. Tik patikrinkite../auth/calendar.readonly ir paspauskite add. [8 nuotrauka]

Užpildykite įgaliotą domeną. Tai turėtų būti domenas, kurį ką tik patvirtinote. [9 nuotrauka]

Dabar spustelėkite didelį išsaugojimo mygtuką po forma.

5 dalis

Galiausiai turime sukurti įgaliojimus. Kadangi paspaudėme išsaugojimo mygtuką, buvome peradresuoti į kredencialų skirtuką. Spustelėkite sukurti prisijungimo duomenis ir pasirinkite „OAuth“kliento ID. [10 nuotrauka]

Pasirinkite Programos tipas: žiniatinklio programa ir suteikite jai pavadinimą.

Įgaliotame peradresavimo URI įveskite šią nuorodą ir užpildykite teisingą domeną.

example.com:5000/api/v1/setup/calendar/response

Spustelėkite sukurti. Tai parodys iššokantįjį langą, tiesiog spustelėkite Gerai. Dabar paspauskite ką tik atliktų įgaliojimų atsisiuntimo mygtuką

6 dalis

Dabar atidarykite JSON failą ir nukopijuokite turinį.

sudo nano /home/pi/Mirror/resources/credentials/credentials.json

Įklijuokite juos čia.

7 dalis

Dabar turime apibrėžti savo domeną konfigūracijoje atlikdami šiuos veiksmus:

sudo nano /home/pi/Mirror/resources/config.ini

7 žingsnis: veidrodžio dizainas

Veidrodžio dizainas
Veidrodžio dizainas
Veidrodžio dizainas
Veidrodžio dizainas
Veidrodžio dizainas
Veidrodžio dizainas
Veidrodžio dizainas
Veidrodžio dizainas

Veidrodžio dizainas priklauso nuo to, kaip norite. Atlikite tikslius LCD matavimus ir palikite 2 centimetrų tarpą vienoje veidrodžio pusėje, nes ten sėdės mikrobangų judesio jutiklis. Jis negali būti už jokio metalo.

Sujungiau 4 medines lentas. Jie buvo sumalti, kad veidrodžio priekis būtų gražus. Viršuje taip pat išgręžiau keletą skylių, kad garsiakalbio garsas skleistųsi. Priešingoje veidrodžio pusėje, apačioje, supjaustiau mažą stačiakampį, kad galėčiau lengvai atlikti elektros instaliaciją. [1 nuotrauka]

Tai yra 2 pigios medienos gabalai, kuriuose bus įjungtas monitorius. Kadangi sakiau, kad mums reikės maždaug 2 centimetrų tarpo tarp veidrodžio ir korpuso. Aš taip pat pridėjau 3 mažus medžio gabalus ir prisukiau juos prie tų poilsio dalių. Taigi monitorius liktų vietoje. [2 nuotrauka]

Galų gale tai atrodė taip. Aš turėjau apie 3 mm tarpą tarp tų poilsio dalių ir veidrodžio korpuso priekio. Tik tiek, kad galėčiau įdėti 3 mm storio dvipusį veidrodį. [Nuotrauka3]

8 žingsnis: laidų sujungimas

Atliekant laidus
Atliekant laidus
Atliekant laidus
Atliekant laidus
Atliekant laidus
Atliekant laidus

Būtinai laikykitės vienos iš šių schemų.

Atlikęs laidus, priklijavau jį ekrano gale dvipuse juosta. Kadangi, jei kada norėčiau išardyti veidrodį ir panaudoti jį kitiems projektams, galėčiau jį lengvai nuimti. Jei esate tikri, galite naudoti karšto klijų pistoletą ir priklijuoti jį prie veidrodžio galo.

9 veiksmas: kodo paleidimas

Kodo pradžia
Kodo pradžia
Kodo pradžia
Kodo pradžia
Kodo pradžia
Kodo pradžia

LXSesija

Pirmiausia sukurkime porą aplankų

mkdir -p /home/pi/.config/lxsession/LXDE-pi/

Dabar sukursime failą, kuriame nurodysime kelis paleidimo parametrus/komandas.

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

Į failą įklijuokite šiuos duomenis.

@lxpanel-profilis LXDE-pi

@pcmanfm --desktop --profile LXDE-pi @xscreensaver -no-splash @point-rpi @sh /home/pi/Mirror/init_mirror.sh @xset s noblank @xset s off @xset -dpms

Atnaujinsime pradžios veidrodžio ekrano scenarijų, kad jis atitiktų mūsų šeimininką.

sudo nano /home/pi/Mirror/init_mirror.sh

Pasirinkite „localhost“, jei nenaudojate „Google“kalendoriaus ir domeno.

#!/bin/bash

miego 15 chromium naršyklė-inkognito --kiosk https:// localhost/mirror

Jei jį naudojate, užpildykite savo prieglobą.

#!/bin/bash

miego 15 chromium naršyklė-inkognito --kiosk

Paslauga

Dabar nustatysime, kad veidrodinis kodas būtų paleistas automatiškai.

Mes sukursime paslaugą, kuri automatiškai paleidžia kodą.

Eiti į:

sudo nano /etc/systemd/system/mirror.service

Ir įklijuokite tai į failą

[Vienetas]

Aprašymas = Veidrodinė vidinė programa po = network.target mariadb.service [Paslauga] Tipas = paprastas Vartotojas = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Įdiegti] WantedBy = multi-user.target

Dabar turėsime iš naujo įkelti sisteminį demoną atlikdami šiuos veiksmus:

sudo systemctl demonas iš naujo

Taip pat įgalinsime paslaugą automatiškai paleisti paleidus.

sudo systemctl įjungti veidrodį

Dabar mes išjungsime energiją.

sudo išjungimas

Galutiniai nustatymai

Galiausiai turime pašalinti savo APIPA ip, kad jis veiktų tik naudojant „WiFi“.

  1. Eikite į SD kortelės įkrovos katalogą savo kompiuteryje.
  2. Atidarykite failą „cmdline.txt“
  3. Pašalinkite ip = 169.254.10.1 Ilgos teksto eilutės pabaigoje.

10 žingsnis: paleiskite veidrodį

Veikia veidrodis
Veikia veidrodis
Veikia veidrodis
Veikia veidrodis
Veikia veidrodis
Veikia veidrodis
Veikia veidrodis
Veikia veidrodis

Apsilankykite veidrodiniame ekrane esančiame IP arba, jei nustatėte „Google“kalendorių, užpildykite domeno pavadinimą.

Dabar galėsite nustatyti veidrodį!

Jei veidrodyje rodoma SSL klaida, galbūt norėsite pridėti sertifikatus prie „Chromium“sertifikatų saugyklos.

Rekomenduojamas: