Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Opsætning
- Trin 2: Installation af spejlet
- Trin 3: Konfiguration
- Trin 4: API'er
- Trin 5: Kalenderen
- Trin 6: Google API
- Trin 7: Spejldesignet
- Trin 8: Gør ledningerne
- Trin 9: Start af koden
- Trin 10: Kørsel af spejlet
Video: Multi -bruger smart spejl med Google Kalender: 10 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I denne instruks skaber vi et smart spejl integreret med Google Kalender. Jeg lavede dette projekt, fordi jeg finder smarte spejle virkelig fede, de er en gave fra morgenen. Men jeg besluttede at lave en selv fra nul, fordi alle de andre har 1 fejl. De er for avancerede og rodede. Jeg besluttede at holde det enkelt.
Forbrugsvarer
Før
vi begynder, det er de ting, du helt sikkert skal bruge til at bygge et spejl som mit. Disse forsyninger koster omkring 250 til 350 euro afhængigt af din region og aktuelle priser.
Hardware
Sensorer
- En tråd temperatur sensor
- RWCL 0516 (Mikrobølge bevægelsessensor)
- Blødt potentiometer (Touchstrip fra Sparkfun)
Computing
og IC’er
- Højttaler (3,2W ved 4Ω ELLER 1,8W ved 8Ω)
- MCP3008
- Adafruit I2S 3W klasse D forstærker breakout - MAX98357A
- Raspberry Pi 3 B+
- SD -kort (8 GB er fint)
- Modstand 4,7K Ohm
Forskellige
- Jumperwires
- Brødbræt
- Akryl tovejsspejl (15% lysoverførsel)
- IPS -skærm (størrelsen afhænger af, hvor stor du vil have den)
- HDMI -kabel
- Træ
Software
- PuTTY
- Kodeditor (Notesblok ++ er nok)
- Win32 Disk Imager
- Raspbian OS -billede
Trin 1: Opsætning
For at komme i gang skal vi først konfigurere din Pi til den kode, jeg lavede.
Du skal bruge to ting:
- Win32 Disk Imager fra
- Raspbian OS -billede fra
Download ZIP -filen, og udpak den, hvor du vil.
Installationen
- Vælg dit billede via mappeikonet
- Vælg dit SD -kort via rullemenuen
- Klik på skriv
Nu bliver vi nødt til at lave lidt ekstra puslespil med nogle indstillinger, så vi får adgang til Pi.
- Gå til SD -kortets startmappe
- Åbn filen "cmdline.txt"
- Tilføj ip = 169.254.10.1 I slutningen af den lange tekstlinje adskilt med et mellemrum (på samme linje).
- Gem filen.
- Opret en fil med navnet ssh uden udvidelse i det samme bibliotek
Nu kan du skubbe SD -kortet ud og sætte det i din Pi.
Tilslutning
Nu skal vi konfigurere softwaren.
Tilslut først et LAN -kabel, den ene ende på din stationære/bærbare computer og den anden i din Pi.
Start nu Raspberry Pi.
- Installer Putty fra
- Indtast 169.254.10.1 i feltet IP.
- Sørg for, at SSH er valgt, og at port 22 er udfyldt.
- Klik på Åbn
- Udfyld brugernavnet: pi
- Udfyld adgangskoden: hindbær
Raspi-konfiguration
Åbn Raspi-config-værktøjet ved hjælp af:
sudo raspi-config
Aktiver følgende indstillinger i kategorien grænseflader
- 1-Wire
- SPI
Vælg dit WiFi -land via lokaliseringskategorien.
Deaktiver derefter følgende muligheder i kategorien bootindstillinger
Stænk skærm
Indstil endelig Desktop/CLI -indstillingen i kategorien bootindstillinger til Desktop Autologin.
Trådløst internet
Til spejlet skal vi have en wifi -forbindelse, så sørg for at have dine wifi -legitimationsoplysninger tæt på.
Gå ind i rodtilstand
sudo -i
Indsæt denne linje, men sørg for, at SSID og adgangskode begge er udfyldt
wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf
Indtast WPA -klienten.
wpa_cli
Vælg grænsefladen
grænseflade wlan0
Genindlæs konfigurationen
omkonfigurere
Sørg for, at du er tilsluttet korrekt ved at skrive …
ip a
… og se om du har en IP på WLAN0 -grænsefladerne.
Pakker
Nu hvor vi har forbindelse til internettet, skal vi installere nogle pakker.
Først skal vi opdatere pakkelisterne til den nyeste.
sudo apt opdatering
Python
Vi tvinger Raspbian til at bruge Python 3
opdateringsalternativer-install/usr/bin/python python /usr/bin/python2.7 1
opdateringsalternativer-install/usr/bin/python python/usr/bin/python3 2
MariaDB
Indsæt følgende linje for at installere databasen.
sudo apt installer mariadb-server
Derefter skal vi sikre vores installation.
mysql_secure_installation
Det vil bede os om det nuværende root -kodeord, da vi ikke har et, bare tryk på enter.
Dernæst spørger det, om vi vil have en root -adgangskode i y, da vi vil have en.
Indtast Y for de næste spørgsmål.
Endelig opretter vi en bruger, som vi kan bruge til spejlet.
Indtast mysql -skallen ved at gøre:
Løft os selv til rod
sudo -i
Indtast mysql -skallen
mysql
Erstat med dit eget brugernavn og det samme med
give alle privilegier på spejl.* til ''@'%' identificeret med '';
Nu skyller vi tilladelsestabellen.
FLUSH -PRIVILEGER;
Apache webserver
Kør linjen herunder for at installere webserveren.
sudo apt installere apache2 -y
Python pakker
Vi skal installere disse pakker
- Kolbe
- Kolbe-Cors
- Kolbe-MySQL
- Kolbe-SocketIO
- PyMySQL
- Kolbe-talisman
- Gevent
- Gevent-websocket
- Google-api-python-klient
- Google-godkendelse
- Google-auth-httplib2
- Google-auth-oauthlib
- Httplib2
- Icalendar
- Icalevents
- Oauthlib
- Python-socketio
- Anmodninger
- Wsaccel
- Ujson
Ved at gøre
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 icalendar icalevents oauthlib python-socketio requests wsaccel
Opsætning af højttaler
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Nu skal vi genstarte, så tryk på y.
Gentag scriptet
curl -sS https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/i2samp.sh | bash
Nu skal vi genstarte anden gang
sudo genstart
Skærm (skærm)
Afhængigt af hvordan du vil have orienteringen på din skærm, kan du rotere skærmen.
For at rotere skærmen skal vi få adgang til opstartsmulighederne ved at gøre:
sudo nano /boot/config.txt
Og derefter indsætte en af disse linjer i konfigurationsfilen:
display_rotate = 0
display_rotate = 1
display_rotate = 2
display_rotate = 3
Den første, 0, er den normale konfiguration. 1 Bliver 90 grader, 2 er 180 grader og den sidste vil være 270 grader.
Genstart derefter.
sudo genstart
Trin 2: Installation af spejlet
Nu opsætter vi et sted, hvor jeg kan downloade min kode.
cd/home/pi/
git -klon https://github.com/nielsdewulf/Mirror MirrorProject cd MirrorProject
Nu kopierer vi nogle mapper til den korrekte destination
sudo cp -R frontend/mirror//var/www/html/mirror/
sudo cp -R frontend/dashboard//var/www/html/Sudo cp -R backend//home/pi/Mirror/
Installation af databasen er et nødvendigt trin i projektet.
sudo mysql -u root -p << CREATEDATABASE.sql
Trin 3: Konfiguration
Konfigurationsfilen findes på:
sudo nano /home/pi/Mirror/resources/config.ini
Indtast MYSQL -bruger og adgangskode.
Dette må være den mysql -bruger, vi lige har lavet.
De andre indstillinger vil vi gå over senere dette instruerbare.
Trin 4: API'er
Nu er vi færdige med installationen af Pi, vi vil dække nogle emner, du måske vil gøre.
Darksky
Opret en Darsky API -nøgle via
Når du har registreret, vil du se din API -nøgle på instrumentbrættet.
Indtast denne nøgle i konfigurationsfilen til det spejlprojekt, du installerede før.
Kalenderen
Som standard vil du kun kunne bruge ical urls til at se din kalender fra. Men denne del handler om, hvordan du forbinder dit spejl med Google -økosystemet. Dette er en generelt længere og mere smertefuld proces.
Ting du helt sikkert skal bruge
Et domænenavn
Dette er de ting, vi opsætter i løbet af denne del
- CloudFlare -konto
- Google -udviklerkonto
- Google Developer Project
- Opsæt kalender -API'en
Trin 5: Kalenderen
Cloudflare
Opret en cloudflare -konto fra https://cloudflare.com, og følg guiden for at overføre dit domænenavn til Cloudflare DNS.
Ingen grund til selv at oprette en A -plade, der peger på hindbærpi. Min spejlkode vil gøre det for dig. Da IP'erne i de fleste husholdnings wifi ikke er statiske, så efter genstart fungerer det muligvis ikke længere. For at få min kode til automatisk at opdatere ip'en, skal den bruge din kontos API -nøgle.
- Klik på knappen Få din API -nøgle på instrumentbrættet i højre side. [Foto 1]
- Rul ned og se din globale API -nøgle. [Foto 2]
Indtast denne nøgle i konfigurationsfilen til det spejlprojekt, du installerede før.
Oprettelse af SSL -certifikat
Google kræver, at vi har en SSL -forbindelse. For at starte dette afsnit skal du sørge for, at du har konfigureret Cloudflare DNS korrekt.
Tilføj først depotet.
sudo add-apt-repository ppa: certbot/certbot
Opdater pakkelisten.
sudo apt-get opdatering
Installer CertBot
sudo apt installere python-certbot-apache
Start oprettelsen af certifikatet. Igen skal du udfylde det korrekte domænenavn.
sudo certbot --apache -d eksempel.com -d www.exempel.com
Efter oprettelsen vil den spørge dig, om den skal omdirigere alle forbindelser til SSL. Vælg omdirigering.
Nu vil det fortælle dig, at det med succes har oprettet et certifikat til dit domæne. Sørg for at gemme de 2 stier, det giver dig.
- /etc/letsencrypt/live/example.com/cert.pem
- /etc/letsencrypt/live/example.com/privkey.pem
Gå nu til mappen med certifikaterne i via:
Sørg for at ændre example.com til den rigtige vært.
cd /etc/letsencrypt/live/example.com/
Lad os nu kopiere dette indhold til vores projektmappe.
cp cert.pem /home/pi/Mirror/resources/certs/cert.pem
Og
cp privkey.pem /home/pi/Mirror/resources/certs/privkey.pem
Forbind Apache med dit domæne
For at konfigurere Apache korrekt med dit domæne skal vi oprette en konfigurationsfil. Sørg for at udfylde dit domænenavn for eksempel funergydev.com.
sudo nano /etc/apache2/sites-enabled/example.com.conf
Indsæt derefter dette i filen. Erstat example.com med dit domænenavn.
Sørg for, at din cert og private nøgle er den rigtige vej. Indstil dem til den sti, du gemte tidligere, da vi oprettede den derefter via certbot.
DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Andre direktiver her Valg Indekser FølgSymLinks TilladOverride Alle Kræver alt givet
Nu skal vi aktivere nogle ændringer og derefter tvinge Apache til at genindlæse konfigurationen ved at gøre:
sudo a2enmod ssl
sudo a2enmod omskriv
sudo systemctl genindlæs apache2
Nu skulle du være i stand til at gå via dit domænenavn til din pi og se standard apache -siden.
Trin 6: Google API
Gå til udviklerkonsollen via
Del 1
Opret dit første projekt ved at klikke ud for Google API -logoet og klikke på knappen NYT PROJEKT. Udfyld et passende projektnavn, og klik på knappen Opret. [Foto1]
Del 2
Nu kommer du til denne side. Klik på biblioteksknappen. [Foto2]
Dette er en stor liste over alle API'er, du kan bruge, men vi vil søge efter Google Kalender API. Klik på den, og tryk på ENABLE. [Foto3]
Du får derefter en oversigt over Kalender -API. Klik på Google API -logoet for at gå tilbage til dit projekt. [Foto4]
Del 3
For at konfigurere alt korrekt skal du klikke på kategorien legitimationsoplysninger og vælge fanen Domænebekræftelse.
Her skal du bekræfte dit domænenavn.
- Klik på TILFØJ DOMAIN
- Udfyld dit domæne
- Det vil derefter bede om at bekræfte dit domæne. Klik på Fortsæt.
- Vælg din domænenavneudbyder. [Foto5]
- Følg processen
- Nu kan du tilføje det til domæneverifikationslisten på Google API -konsollen på denne måde. Sørg for, at dit domæne er markeret. [Foto6]
Del 4
Vælg nu fanen OAuth -samtykke. [Foto7]
Udfyld ansøgningsnavnet
Dernæst tilføjer vi omfang til samtykkeskærmen. Det betyder, at vi vil spørge brugeren på samtykkeskærmen, om de vil dele deres kalenderoplysninger med spejlet.
- Klik på tilføj omfang og søg efter kalender.
- Kontroller../auth/calendar.readonly og tryk på tilføj. [Foto8]
Udfyld et autoriseret domæne. Dette burde være det domæne, du lige har bekræftet. [Foto9]
Klik nu på den store gem -knap under formularen.
Del 5
Endelig skal vi oprette legitimationsoplysninger. Fordi vi trykkede på gem -knappen, blev vi omdirigeret til fanen Legitimationsoplysninger. Klik på Opret legitimationsoplysninger, og vælg OAuth -klient -id. [Foto10]
Vælg Programtype: Webapplikation, og giv det et navn.
Indtast følgende link i de autoriserede omdirigerings -URI'er, og udfyld det korrekte domæne.
eksempel.com:5000/api/v1/setup/calendar/response
Klik på Opret. Dette viser dig en popup, bare klik på OK. Tryk nu på download -knappen på de legitimationsoplysninger, du lige har oprettet
Del 6
Åbn nu JSON -filen og kopier indholdet.
sudo nano /home/pi/Mirror/resources/credentials/credentials.json
Indsæt dem her.
Del 7
Nu skal vi definere vores domæne i konfigurationen ved at gøre:
sudo nano /home/pi/Mirror/resources/config.ini
Trin 7: Spejldesignet
At designe dit spejl afhænger af, hvordan du vil have det. Foretag nøjagtige målinger af LCD'et, og lad et mellemrum på 2 centimeter være på den ene side af spejlet, da mikrobølgebevægelsessensoren sidder der. Det kan ikke ligge bag noget metal.
Jeg forbandt 4 planker af træ sammen. Disse blev fræset for at have en pæn ren front af spejlet. På toppen borede jeg også et par huller for at lade lyden fra højttaleren gå igennem. Den modsatte side af spejlet, bunden, jeg skar et lille rektangel, så jeg let kunne lave de elektriske ledninger. [Foto1]
Disse er 2 stykker billigt træ, hvor skærmen vil rive på. Siden jeg sagde, ville vi have brug for en afstand på 2 centimeter mellem spejlet og kabinettet. Jeg tilføjede også 3 små træstykker og skruede dem fast på de hvilende stykker. Så skærmen ville blive på sin plads. [Foto2]
Til sidst så det sådan ud. Jeg havde omkring et 3 mm mellemrum mellem disse hvilestykker og forsiden af spejlkassen. Lige nok til at jeg kunne sætte det 3 mm tykke tovejsspejl i. [Photo3]
Trin 8: Gør ledningerne
Sørg for korrekt at følge en af disse ordninger.
Når jeg lavede ledningerne, stak jeg den på bagsiden af skærmen med dobbeltsidet tape. Siden hvis jeg nogensinde ville demontere spejlet og bruge det til andre projekter, kunne jeg nemt fjerne det. Hvis du er sikker, kan du bruge en varm limpistol og lime den på bagsiden af spejlet.
Trin 9: Start af koden
LXSession
Lad os først oprette et par mapper
mkdir -p /home/pi/.config/lxsession/LXDE-pi/
Nu opretter vi en fil, hvor vi angiver et par opstartsparametre/kommandoer.
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Indsæt følgende i filen.
@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
Vi opdaterer startspejlskærmens script til at matche vores vært.
sudo nano /home/pi/Mirror/init_mirror.sh
Vælg localhost, hvis du ikke bruger google kalender og et domæne.
#!/bin/bash
sove 15 chrom-browser-inkognito-kiosk https:// localhost/mirror
Hvis du bruger det, skal du udfylde din vært.
#!/bin/bash
sove 15 chrom-browser-inkognito-kiosk
Service
Nu konfigurerer vi, at spejlkoden automatisk kører.
Vi opretter en service, der automatisk starter koden for os.
Gå til:
sudo nano /etc/systemd/system/mirror.service
Og indsæt dette i filen
[Enhed]
Beskrivelse = Mirror Backend After = network.target mariadb.service [Service] Type = simple User = root ExecStart =/bin/sh /home/pi/Mirror/init.sh [Install] WantedBy = multi-user.target
Nu skal vi genindlæse systemd -dæmonen ved at gøre:
sudo systemctl daemon-reload
Og vi vil også gøre det muligt for tjenesten at starte automatisk ved opstart.
sudo systemctl aktiver spejl
Nu slukker vi.
sudo poweroff
De sidste indstillinger
Endelig skal vi fjerne vores APIPA ip, så den kun fungerer på WiFi.
- Gå til SD -kortets startmappe på din pc.
- Åbn filen "cmdline.txt"
- Fjern ip = 169.254.10.1 I slutningen af den lange tekstlinje.
Trin 10: Kørsel af spejlet
Besøg den ip, der er på spejlskærmen, eller hvis du har konfigureret Google -kalenderen, skal du udfylde domænenavnet.
Nu kan du konfigurere dit spejl!
Hvis du får en SSL -fejl på dit spejl, kan du tilføje dine certifikater til Chromium -certifikatlageret.
Anbefalede:
Sådan bygger du et smart spejl med Raspberry Pi 4: 10 -trin
Sådan opbygges et smart spejl med Raspberry Pi 4: I denne vejledning vil vi se, hvordan du opbygger et smartmirror ved hjælp af genbrugsstykker som f.eks. En billedramme, en gammel skærm og et billedglas. Til de elektroniske komponenter, jeg købte herfra www.lcsc .com
Sådan laver du et DIY smart spejl: 12 trin (med billeder)
Sådan laver du et DIY smart spejl: Et " Smart spejl " er et tovejsspejl med et display bag, der typisk bruges til at vise nyttige oplysninger som tid og dato, vejret, din kalender og alle mulige andre ting! Folk bruger dem til alle slags formål
Flydende smart magisk spejl fra gammel bærbar computer med Alexa stemmegenkendelse: 6 trin (med billeder)
Flydende smart magisk spejl fra gammel bærbar computer med Alexa stemmegenkendelse: Tilmeld dig mit 'Elektronik i en nøddeskal' kursus her: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARK Tjek også min youtube -kanal her for flere projekter og elektronikundervisning: https://www.youtube.com/channel/UCelOO
Ikke-så-smart-men-meget-sundt-alligevel-lidt uhyggeligt spejl: 5 trin (med billeder)
Ikke-så-smart-men-meget-sundt-alligevel-lidt uhyggeligt spejl: Har du brug for et spejl, men ikke er villig til at tilføje endnu en smart genstand til dit hjem? Så er dette ikke-så-smart-men-meget-sunde-alligevel-lidt-uhyggeligt spejl lige det rigtige for dig
Smart spejl ved hjælp af ødelagt Android -tablet: 5 trin (med billeder)
Smart Mirror Brug af ødelagt Android -tablet: For et stykke tid siden tabte jeg ved et uheld min Android -tablet på ansigtet. Glasset gik i stykker, men resten fungerede stadig fint. Med risiko for at blive kaldt en hoarder af min partner igen, satte jeg det uafgjort i håb om, at jeg en dag ville finde en brug for det. At