INHOUDSOPGAWE:

Multi -gebruiker slim spieël met Google Kalender: 10 stappe
Multi -gebruiker slim spieël met Google Kalender: 10 stappe

Video: Multi -gebruiker slim spieël met Google Kalender: 10 stappe

Video: Multi -gebruiker slim spieël met Google Kalender: 10 stappe
Video: 10 gewoontes om gelukkig te worden 2024, November
Anonim
Multi -gebruiker slim spieël met Google Kalender
Multi -gebruiker slim spieël met Google Kalender
Multi -gebruiker slim spieël met Google Kalender
Multi -gebruiker slim spieël met Google Kalender

In hierdie instruksies skep ons 'n slim spieël wat met Google Kalender geïntegreer is. Ek het hierdie projek gemaak, want ek vind slim spieëls baie gaaf; dit is 'n uiters geskenk in die oggend. Maar ek het besluit om self een van nul te maak, want al die ander het 1 fout. Hulle is te gevorderd en deurmekaar. Ek het besluit om dit eenvoudig te hou.

Voorrade

Voorheen

ons begin, dit is die dinge wat u beslis nodig het om 'n spieël soos myne te bou. Hierdie voorrade kos ongeveer 250 tot 350 euro, afhangende van u streek en huidige pryse.

Hardeware

Sensors

  • Een draad temperatuur sensor
  • RWCL 0516 (mikrogolfbewegingsensor)
  • Sagte potensiometer (Touchstrip van Sparkfun)

Rekenaar

en IC's

  • Luidspreker (3.2W by 4Ω OF 1.8W by 8Ω)
  • MCP3008
  • Adafruit I2S 3W Klas D versterker -uitbreek - MAX98357A
  • Framboos Pi 3 B+
  • SD -kaart (8 GB is goed)
  • Weerstand 4.7K Ohm

Verskeie

  • Jumperwires
  • Broodbord
  • Akriel tweerigting spieël (15% ligte transmissie)
  • IPS -monitor (grootte hang af van hoe groot u dit wil hê)
  • HDMI -kabel
  • Hout

Sagteware

  • PuTTY
  • Kode -redakteur (Notepad ++ is genoeg)
  • Win32 Disk Imager
  • Raspbian OS -beeld

Stap 1: Opstel

Om te begin, moet ons eers u Pi opstel vir die kode wat ek gemaak het.

U benodig twee dinge:

  • Win32 Disk Imager vanaf
  • Raspbian OS -beeld vanaf

Laai die zip -lêer af en pak dit uit waar u wil.

Die installasie

  1. Kies u prent via die vouer -ikoon
  2. Kies u SD -kaart via die keuselys
  3. Klik op skryf

Nou moet ons 'n paar ekstra instinkies doen, sodat ons toegang tot die Pi kan kry.

  1. Gaan na die opstartgids van die SD -kaart
  2. Maak die lêer "cmdline.txt" oop
  3. Voeg ip = 169.254.10.1 aan die einde van die lang teksreël met 'n spasie (op dieselfde reël) geskei.
  4. Stoor die lêer.
  5. Skep 'n lêer met die naam ssh sonder uitbreiding in dieselfde gids

Nou kan u die SD -kaart uitwerp en in u Pi sit.

Koppel

Nou moet ons die sagteware instel.

Sluit eers 'n LAN -kabel aan, die een kant op u lessenaar/skootrekenaar en die ander in u Pi.

Begin nou die Raspberry Pi.

  1. Installeer Putty vanaf
  2. Voer 169.254.10.1 in die IP -blokkie in.
  3. Maak seker dat SSH gekies is en dat poort 22 ingevul is.
  4. Klik oop
  5. Vul die gebruikersnaam in: pi
  6. Vul die wagwoord in: framboos

Raspi-konfig

Maak die Raspi-config-nut oop deur die volgende te gebruik:

sudo raspi-config

Aktiveer die volgende opsies in die kategorie koppelvlakke

  • 1-draad
  • SPI

Kies u WiFi -land via die lokaliseringskategorie.

Skakel dan die volgende opsies uit in die kategorie opstartopsies

Spatskerm

Stel laastens die Desktop/CLI -instelling in die kategorie opstartopsies op Desktop Autologin.

WiFi

Vir die spieël moet ons 'n wifi -verbinding hê, dus maak seker dat u wifi -inskrywings naby is.

Gaan na die wortelmodus

sudo -i

Plak hierdie reël, maar maak seker dat beide die SSID en die wagwoord ingevul is

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

Voer die WPA -kliënt in.

wpa_cli

Kies die koppelvlak

koppelvlak wlan0

Herlaai die konfig

herkonfigureer

Maak seker dat u korrek verbind is deur te tik …

ip a

… en kyk of u 'n IP op die WLAN0 -koppelvlakke het.

Pakkette

Noudat ons aan die internet gekoppel is, moet ons 'n paar pakkette installeer.

Eerstens moet ons die pakketlyste vir die nuutste een herlaai.

sudo apt -opdatering

Python

Ons sal Raspbian dwing om Python 3 te gebruik

update-alternatiewe-installeer/usr/bin/python python /usr/bin/python2.7 1

update-alternatiewe-installeer/usr/bin/python python/usr/bin/python3 2

MariaDB

Plak die volgende reël om die databasis te installeer.

sudo apt installeer mariadb-bediener

Dan moet ons ons installasie beveilig.

mysql_secure_installation

Dit sal ons vra vir die huidige wortelwagwoord, aangesien ons nie een het nie, druk net op enter.

Vervolgens word gevra of ons 'n root -wagwoordstipe in y wil hê, aangesien ons dit wil hê.

Tik Y vir die volgende vrae.

Laastens sal ons 'n gebruiker skep wat ons vir die spieël kan gebruik.

Voer die mysql -dop in deur die volgende te doen:

Verhoog onsself tot wortel

sudo -i

Voer die mysql -dop in

mysql

Vervang deur u eie gebruikersnaam en dieselfde met

verleen alle voorregte op spieël.* aan ''@'%' geïdentifiseer deur '';

Nou spoel ons die toestemmings tabel.

FLUSH VOORREGTE;

Apache webbediener

Om die webbediener te installeer, voer die onderstaande reël uit.

sudo apt installeer apache2 -y

Python pakkette

Ons gaan hierdie pakkette installeer

  • Fles
  • Fles-Kors
  • Fles-MySQL
  • Fles-SocketIO
  • PyMySQL
  • Kolf-talisman
  • Gevent
  • Gevent-websocket
  • Google-api-python-kliënt
  • Google-outeur
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Kalender
  • Evaluerings
  • Oauthlib
  • Python-socketio
  • Versoeke
  • Wsaccel
  • Ujson

Deur te doen

pip installeer Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL Flask-Talisman het gevent-webtasocket google-api-python-client google-auth google-auth-httplib2 google-auth-oauthlib httplib2 icalendar icalevents oauthlib python-socketio versoeke wsaccel

Opstelling van die luidspreker

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

Nou moet ons herlaai, druk op y.

Herhaal die draaiboek

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

Nou moet ons 'n tweede keer herlaai

sudo herlaai

Skerm (monitor)

Afhangende van hoe u die oriëntasie van u skerm wil hê, kan u die skerm draai.

Om die skerm te draai, moet ons toegang tot die opstartopsies verkry deur:

sudo nano /boot/config.txt

En plak dan een van hierdie reëls in die config -lêer:

display_rotate = 0

display_rotate = 1

display_rotate = 2

display_rotate = 3

Die eerste een, 0, is die normale opset. 1 Sal 90 grade wees, 2 is 180 grade en die laaste een sal 270 grade wees.

Herbegin dan.

sudo herlaai

Stap 2: Installeer die spieël

Die installering van die spieël
Die installering van die spieël

Nou sal ons 'n plek opstel om my kode af te laai.

cd/huis/pi/

git -kloon https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject

Nou kopieer ons 'n paar vouers na die regte bestemming

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

sudo cp -R frontend/dashboard//var/www/html/Sudo cp -R backend//home/pi/Mirror/

Die installering van die databasis is 'n noodsaaklike stap in die maak van die projek.

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

Stap 3: Konfigurasie

Die konfigurasie lêer is geleë op:

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

Voer die MYSQL -gebruiker en wagwoord in.

Dit moet die mysql -gebruiker wees wat ons pas gemaak het.

Die ander instellings waarna ons later gaan, sal dit instruksies wees.

Stap 4: API's

Nadat ons die Pi geïnstalleer het, bespreek ons 'n paar onderwerpe wat u moontlik wil doen.

Darksky

Skep 'n Darsky API -sleutel via

As u geregistreer het, sien u u API -sleutel op die dashboard.

Voer hierdie sleutel in die config -lêer in van die spieëlprojek wat u voorheen geïnstalleer het.

Die kalender

Standaard kan u slegs ical -URL's gebruik om u kalender te sien. Maar hierdie gedeelte gaan oor hoe u u spieël aan die Google -ekosisteem koppel. Dit is 'n oor die algemeen langer en pynliker proses.

Dinge wat jy beslis nodig het

'N Dominaam

Dit is die dinge wat ons tydens hierdie deel sal opstel

  • CloudFlare -rekening
  • Google -ontwikkelaarrekening
  • Google ontwikkelaarsprojek
  • Stel die Kalender -API op

Stap 5: Die kalender

Die kalender
Die kalender
Die kalender
Die kalender

Wolkflare

Stel 'n cloudflare -rekening op vanaf https://cloudflare.com en volg die towenaar om u domeinnaam na Cloudflare DNS oor te dra.

U hoef nie self 'n A -rekord te maak wat na die framboos -pi wys nie. My spieëlkode sal dit vir jou doen. Aangesien die IP's in die meeste huishoudelike wifi nie staties is nie, kan dit nie meer werk na herlaai nie. Om my kode outomaties op te dateer, moet u die API -sleutel van u rekening benodig.

  1. Klik op die knoppie Kry u API -sleutel op die paneelbord aan die regterkant. [Foto 1]
  2. Rol af en bekyk u Global API -sleutel. [Foto 2]

Voer hierdie sleutel in die config -lêer in van die spieëlprojek wat u voorheen geïnstalleer het.

SSL -sertifikaat skep

Google vereis dat ons 'n SSL -verbinding het. Om hierdie afdeling te begin, moet u seker maak dat u die Cloudflare DNS korrek opgestel het.

Voeg eers die bewaarplek by.

sudo add-apt-repository ppa: certbot/certbot

Dateer die pakketlys op.

sudo apt-get update

Installeer CertBot

sudo apt installeer python-certbot-apache

Begin met die skepping van die sertifikaat. U moet weer die regte domeinnaam invul.

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

Na die skepping sal dit u vra of dit alle verbindings na SSL moet herlei. Kies herleiding.

Nou sal dit u vertel dat dit 'n sertifikaat vir u domein suksesvol geskep het. Maak seker dat u die twee paaie wat u bied, stoor.

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

Gaan nou na die gids met die sertifikate in via:

Maak seker dat u example.com verander na die regte gasheer.

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

Kom ons kopieer die inhoud nou na ons projekmap.

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

En

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

Koppel Apache aan u domein

Om Apache korrek met u domein op te stel, moet ons 'n konfigurasielêer skep. Maak seker dat u u domeinnaam invul, byvoorbeeld funergydev.com.

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

Plak dit dan in die lêer. Vervang example.com met u domeinnaam.

Maak seker dat u sertifikaat en privaat sleutel die regte pad is. Stel hulle op die pad wat u vroeër gestoor het toe ons destyds via certbot geskep het.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Ander voorskrifte hier Opsies Indekse FollowSymLinks AllowOverride Alles Vereis alles toegestaan

Nou moet ons 'n paar wysigings moontlik maak en Apache dan dwing om die config te herlaai deur die volgende te doen:

sudo a2enmod ssl

sudo a2enmod herskryf

sudo systemctl herlaai apache2

Nou moet u via u domeinnaam na u pi kan gaan en die standaard apache -bladsy kan sien.

Stap 6: Google API

Google API
Google API
Google API
Google API
Google API
Google API

Gaan na die ontwikkelaarkonsole via

Deel 1

Skep u eerste projek deur langs die Google API -logo te klik en op die NUWE PROJEK -knoppie te klik. Vul die toepaslike projeknaam in en klik op die knoppie skep. [Foto1]

Deel 2

Nou kom u by hierdie bladsy. Klik op die knoppie biblioteek. [Foto2]

Dit is 'n groot lys van alle API's wat u kan gebruik, maar ons sal soek na die Google Kalender API. Klik daarop en druk ENABLE. [Foto3]

U kry dan 'n oorsig van die Kalender -API. Klik op die Google API's -logo om terug te keer na u projek. [Foto4]

Deel 3

Om alles korrek op te stel, klik op die kategorie geloofsbriewe en kies die oortjie Domeinverifikasie.

Hier moet u u domeinnaam verifieer.

  1. Klik op ADD DOMAIN
  2. Vul u domein in
  3. Dit sal dan vra om u domein te verifieer. Klik op voortgaan.
  4. Kies u domeinnaamverskaffer. [Foto5]
  5. Volg die proses
  6. Nou kan u dit so by die domeinverifikasielys op die Google API -konsole voeg. Maak seker dat u domein nagegaan is. [Foto6]

Deel 4

Kies nou die oortjie OAuth -toestemmingsskerm. [Foto7]

Vul die aansoeknaam in

Vervolgens sal ons omvang by die toestemmingsskerm voeg. Dit beteken dat ons die gebruiker op die toestemmingsskerm sal vra of hulle hul kalenderinligting met die spieël wil deel.

  1. Klik op voeg omvang by en soek na kalender.
  2. Gaan../auth/calendar.readonly na en druk add. [Foto8]

Vul 'n gemagtigde domein in. Dit moet die domein wees wat u pas geverifieer het. [Foto9]

Klik nou op die groot stoor -knoppie onder die vorm.

Deel 5

Laastens moet ons die geloofsbriewe skep. Omdat ons op die stoor -knoppie gedruk het, is ons na die oortuigings -oortjie herlei. Klik op skep geloofsbriewe en kies OAuth -kliënt -ID. [Foto10]

Kies Toepassingsoort: Webtoepassing en gee dit 'n naam.

Voer die volgende skakel in die gemagtigde herleiding -URI's in en vul die korrekte domein in.

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

Klik op skep. Dit sal u 'n pop -up wys, klik net op OK. Druk nou op die aflaai -knoppie op die geloofsbriewe wat u pas gemaak het

Deel 6

Maak nou die JSON -lêer oop en kopieer die inhoud.

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

Plak hulle hier in.

Deel 7

Nou moet ons ons domein in die config definieer deur:

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

Stap 7: Die spieëlontwerp

Die spieëlontwerp
Die spieëlontwerp
Die spieëlontwerp
Die spieëlontwerp
Die spieëlontwerp
Die spieëlontwerp
Die spieëlontwerp
Die spieëlontwerp

Die ontwerp van u spieël hang af van hoe u dit wil hê. Maak akkurate metings van die LCD en laat 'n gaping van 2 sentimeter aan die een kant van die spieël, aangesien die mikrogolfbewegingsensor daar sal sit. Dit kan nie agter enige metaal wees nie.

Ek het 4 planke hout aanmekaar gekoppel. Hierdie is gefrees om 'n mooi skoon voorkant van die spieël te hê. Bo -op het ek ook 'n paar gate geboor om die geluid van die luidspreker te laat deurgaan. Aan die teenoorgestelde kant van die spieël, die onderkant, het ek 'n klein reghoek gesny sodat ek maklik die elektriese bedrading kon doen. [Foto1]

Dit is 2 stukke goedkoop hout waarop die monitor kan beseer. Aangesien ek gesê het, benodig ons ongeveer 'n gaping van 2 sentimeter tussen die spieël en die kas. Ek het ook 3 stukkies hout bygevoeg en op die russtukke vasgeskroef. Die monitor bly dus op sy plek. [Foto2]

Uiteindelik het dit so gelyk. Ek het ongeveer 'n gaping van 3 mm tussen die russtukke en die voorkant van die spieëlkas gehad. Net genoeg sodat ek die 3 mm dik tweerigtingspieël kon insit. [Foto3]

Stap 8: Maak die bedrading

Die bedrading doen
Die bedrading doen
Die bedrading doen
Die bedrading doen
Die bedrading doen
Die bedrading doen

Maak seker dat u een van hierdie skemas behoorlik volg.

Sodra ek die bedrading gedoen het, het ek dit aan die agterkant van die skerm vasgemaak met dubbelzijdige band. Aangesien ek ooit die spieël wou demonteer en dit vir ander projekte wou gebruik, kon ek dit maklik verwyder. As u seker is, kan u 'n warm lijmpistool gebruik en dit aan die agterkant van die spieël plak.

Stap 9: Begin die kode

Begin die kode
Begin die kode
Begin die kode
Begin die kode
Begin die kode
Begin die kode

LXSessie

Laat ons eers 'n paar dopgehou skep

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

Nou sal ons 'n lêer skep waar ons 'n paar opstartparameters/opdragte sal spesifiseer.

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

Plak die volgende in die lêer.

@lxpanel --profiel LXDE-pi

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

Ons sal die skerm van die beginspieëlskerm opdateer om by ons gasheer te pas.

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

Kies localhost as u nie die Google -kalender en 'n domein gebruik nie.

#!/bin/bash

slaap 15 chroomblaaier-incognito-kiosk https:// localhost/mirror

Vul u gasheer in as u dit gebruik.

#!/bin/bash

slaap 15 chroomblaaier-incognito-kiosk

Diens

Nou stel ons in dat die Mirror -kode outomaties loop.

Ons sal 'n diens skep wat die kode outomaties vir ons begin.

Gaan na:

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

En plak dit in die lêer

[Eenheid]

Description = Mirror Backend After = network.target mariadb.service [Service] Type = simple User = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Installeer] WantedBy = multi-user.target

Nou moet ons die systemd -demoon herlaai deur die volgende te doen:

sudo systemctl daemon-herlaai

En ons sal die diens ook in staat stel om outomaties te begin tydens die opstart.

sudo systemctl aktiveer spieël

Nou skakel ons af.

sudo poweroff

Die finale instellings

Uiteindelik moet ons ons APIPA ip verwyder sodat dit slegs op WiFi werk.

  1. Gaan na die opstartgids van die SD -kaart op u rekenaar.
  2. Maak die lêer "cmdline.txt" oop
  3. Verwyder ip = 169.254.10.1 Aan die einde van die lang reël teks.

Stap 10: Begin die spieël

Draai die spieël
Draai die spieël
Draai die spieël
Draai die spieël
Draai die spieël
Draai die spieël
Draai die spieël
Draai die spieël

Besoek die ip wat op die spieëlskerm verskyn, of as u die Google -kalender opgestel het, vul die naam in.

Nou kan u u spieël opstel!

As u 'n SSL -fout op u spieël kry, wil u u sertifikate by die Chromium -sertifikaatwinkel voeg.

Aanbeveel: