Inhaltsverzeichnis:

Smart Mirror für mehrere Benutzer mit Google Kalender - Gunook
Smart Mirror für mehrere Benutzer mit Google Kalender - Gunook

Video: Smart Mirror für mehrere Benutzer mit Google Kalender - Gunook

Video: Smart Mirror für mehrere Benutzer mit Google Kalender - Gunook
Video: SMART MIRROR | Calendar Setup 2024, November
Anonim
Smart Mirror für mehrere Benutzer mit Google Kalender
Smart Mirror für mehrere Benutzer mit Google Kalender
Smart Mirror für mehrere Benutzer mit Google Kalender
Smart Mirror für mehrere Benutzer mit Google Kalender

In diesem anweisbaren erstellen wir einen intelligenten Spiegel, der in Google Kalender integriert ist. Ich habe dieses Projekt gemacht, weil ich intelligente Spiegel wirklich cool finde, sie sind ein Glücksfall am Morgen. Aber ich habe mich entschieden, selbst einen aus Null zu machen, weil alle anderen 1 Fehler haben. Sie sind zu fortschrittlich und überladen. Ich beschloss, dies einfach zu halten.

Lieferungen

Vor

Wir fangen an, dies sind die Dinge, die Sie auf jeden Fall benötigen, um einen Spiegel wie meinen zu bauen. Diese Lieferungen kosten je nach Region und aktuellen Preisen etwa 250 bis 350 Euro.

Hardware

Sensoren

  • Eindraht-Temperatursensor
  • RWCL 0516 (Mikrowellen-Bewegungsmelder)
  • Softpotentiometer (Touchstrip von Sparkfun)

Computer

und IC´s

  • Lautsprecher (3,2 W bei 4 ODER 1,8 W bei 8)
  • MCP3008
  • Adafruit I2S 3W Klasse D Verstärker Breakout - MAX98357A
  • Raspberry Pi 3 B+
  • SD-Karte (8 GB ist in Ordnung)
  • Widerstand 4.7K Ohm

Verschieden

  • Überbrückungsdrähte
  • Steckbrett
  • Zwei-Wege-Spiegel aus Acryl (15% Lichtdurchlässigkeit)
  • IPS-Monitor (Größe hängt davon ab, wie groß Sie es wollen)
  • HDMI Kabel
  • Holz

Software

  • Kitt
  • Code-Editor (Notepad++ reicht)
  • Win32 Disk Imager
  • Raspbian OS-Image

Schritt 1: Einrichtung

Um zu beginnen, müssen wir zuerst Ihren Pi für den von mir erstellten Code einrichten.

Sie benötigen zwei Dinge:

  • Win32 Disk Imager von
  • Raspbian OS-Image von

Laden Sie die ZIP-Datei herunter und entpacken Sie sie an einen beliebigen Ort.

Die Installation

  1. Wählen Sie Ihr Bild über das Ordnersymbol aus
  2. Wählen Sie Ihre SD-Karte über das Dropdown-Menü aus
  3. Klicke auf schreiben

Jetzt müssen wir noch an einigen Einstellungen herumbasteln, damit wir auf den Pi zugreifen können.

  1. Gehen Sie in das Boot-Verzeichnis der SD-Karte
  2. Öffnen Sie die Datei "cmdline.txt"
  3. Fügen Sie ip=169.254.10.1 Am Ende der langen Textzeile mit einem Leerzeichen getrennt (in derselben Zeile) hinzu.
  4. Speicher die Datei.
  5. Erstellen Sie eine Datei namens ssh ohne Erweiterung im selben Verzeichnis

Jetzt können Sie die SD-Karte auswerfen und in Ihren Pi stecken.

Anschließen

Jetzt müssen wir die Software einrichten.

Stecken Sie zuerst ein LAN-Kabel ein, ein Ende in Ihren Desktop/Laptop und das andere in Ihren Pi.

Starten Sie nun den Raspberry Pi.

  1. Installieren Sie Putty von
  2. Geben Sie 169.254.10.1 in das IP-Feld ein.
  3. Stellen Sie sicher, dass SSH ausgewählt und Port 22 ausgefüllt ist.
  4. Klicken Sie auf Öffnen
  5. Geben Sie den Benutzernamen ein: pi
  6. Geben Sie das Passwort ein: Himbeere

Raspi-config

Öffnen Sie das Dienstprogramm Raspi-config mit:

sudo raspi-config

Aktivieren Sie die folgenden Optionen in der Kategorie Schnittstellen

  • 1-Draht
  • SPI

Wählen Sie Ihr WLAN-Land über die Lokalisierungskategorie aus.

Als nächstes deaktivieren Sie die folgenden Optionen in der Kategorie Boot-Optionen

Begrüßungsbildschirm

Setzen Sie zuletzt die Desktop/CLI-Einstellung in der Kategorie Boot-Optionen auf Desktop Autologin.

W-lan

Für den Spiegel benötigen wir eine WLAN-Verbindung, also stellen Sie sicher, dass Sie Ihre WLAN-Anmeldeinformationen in der Nähe haben.

Gehe in den Root-Modus

sudo -i

Fügen Sie diese Zeile ein, aber stellen Sie sicher, dass sowohl die SSID als auch das Passwort ausgefüllt sind

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

Geben Sie den WPA-Client ein.

wpa_cli

Wählen Sie die Schnittstelle

Schnittstelle wlan0

Konfiguration neu laden

neu konfigurieren

Stellen Sie sicher, dass Sie richtig verbunden sind, indem Sie Folgendes eingeben…

ip a

…und sehen, ob Sie eine IP auf den WLAN0-Schnittstellen haben.

Pakete

Nachdem wir nun mit dem Internet verbunden sind, müssen wir einige Pakete installieren.

Zuerst müssen wir die Paketlisten für die neueste aktualisieren.

sudo apt-Update

Python

Wir werden Raspbian zwingen, Python 3 zu verwenden

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

update-alternatives --install /usr/bin/python python /usr/bin/python3 2

MariaDB

Fügen Sie die folgende Zeile ein, um die Datenbank zu installieren.

sudo apt installieren mariadb-server

Dann müssen wir unsere Installation sichern.

mysql_secure_installation

Es wird uns nach dem aktuellen Root-Passwort fragen, da wir keins haben, drücken Sie einfach die Eingabetaste.

Als nächstes wird gefragt, ob wir ein Root-Passwort möchten, geben Sie y ein, da wir eines haben möchten.

Für die nächsten Fragen einfach Y eingeben.

Zuletzt erstellen wir einen Benutzer, den wir für den Spiegel verwenden können.

Rufen Sie die MySQL-Shell auf, indem Sie Folgendes tun:

Erhebe uns, um Wurzeln zu schlagen

sudo -i

Betreten Sie die MySQL-Shell

mysql

Ersetzen Sie durch Ihren eigenen Benutzernamen und dasselbe mit

erteilen Sie alle Privilegien auf mirror.* an ''@'%' identifiziert durch '';

Jetzt leeren wir die Berechtigungstabelle.

Flush-Privilegien;

Apache-Webserver

Um den Webserver zu installieren, führen Sie die folgende Zeile aus.

sudo apt install apache2 -y

Python-Pakete

Wir werden diese Pakete installieren

  • Flasche
  • Kolben-Cors
  • Flask-MySQL
  • Kolben-SockelIO
  • PyMySQL
  • Flaschen-Talisman
  • Gevent
  • Gevent-Websocket
  • Google-API-Python-Client
  • Google-Authentifizierung
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Kalender
  • Icalevents
  • OAuthlib
  • Python-Socketio
  • Anfragen
  • Wsaccel
  • Ujson

Indem du tust

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 oauthockj ucel u

Lautsprecher-Setup

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

Jetzt müssen wir neu starten, also drücken Sie y.

Führen Sie das Skript erneut aus

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

Jetzt müssen wir ein zweites Mal neu starten

sudo neu starten

Bildschirm (Monitor)

Je nachdem, wie Sie Ihren Bildschirm ausrichten möchten, können Sie den Bildschirm drehen.

Um den Bildschirm zu drehen, müssen wir auf die Boot-Optionen zugreifen, indem wir Folgendes tun:

sudo nano /boot/config.txt

Und fügen Sie dann eine dieser Zeilen in die Konfigurationsdatei ein:

display_rotate=0

display_rotate=1

display_rotate=2

display_rotate=3

Die erste, 0, ist die normale Konfiguration. 1 ist 90 Grad, 2 ist 180 Grad und der letzte ist 270 Grad.

Dann neu starten.

sudo neu starten

Schritt 2: Installieren des Spiegels

Installieren des Spiegels
Installieren des Spiegels

Jetzt richten wir einen Ort zum Herunterladen meines Codes ein.

cd /home/pi/

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

Jetzt kopieren wir einige Ordner an das richtige Ziel

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 Installation der Datenbank ist ein notwendiger Schritt bei der Erstellung des Projekts.

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

Schritt 3: Konfiguration

Die Konfigurationsdatei befindet sich unter:

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

Geben Sie den MySQL-Benutzer und das Kennwort ein.

Dies muss der MySQL-Benutzer sein, den wir gerade erstellt haben.

Die anderen Einstellungen werden wir später über dieses instructable gehen.

Schritt 4: APIs

Nachdem wir die Installation des Pi abgeschlossen haben, werden wir einige Themen behandeln, die Sie möglicherweise durchführen möchten.

Dunkler Himmel

Erstellen Sie einen Darsky-API-Schlüssel über

Wenn Sie sich registriert haben, sehen Sie Ihren API-Schlüssel im Dashboard.

Tragen Sie diesen Schlüssel in die Konfigurationsdatei des zuvor installierten Spiegelprojekts ein.

Der Kalender

Standardmäßig können Sie nur ical-URLs verwenden, um Ihren Kalender anzuzeigen. In diesem Teil geht es jedoch darum, wie Sie Ihren Spiegel mit dem Google-Ökosystem verknüpfen. Dies ist im Allgemeinen ein längerer und schmerzhafter Prozess.

Dinge, die Sie auf jeden Fall brauchen werden

Ein Domainname

Dies sind die Dinge, die wir in diesem Teil einrichten werden

  • CloudFlare-Konto
  • Google-Entwicklerkonto
  • Google-Entwicklerprojekt
  • Einrichten der Kalender-API

Schritt 5: Der Kalender

Der Kalender
Der Kalender
Der Kalender
Der Kalender

Wolkenflare

Richten Sie ein Cloudflare-Konto von https://cloudflare.com ein und folgen Sie dem Assistenten, um Ihren Domainnamen an Cloudflare DNS zu übertragen.

Sie müssen nicht selbst einen A-Datensatz erstellen, der auf den Himbeer-Pi verweist. Mein Mirror-Code erledigt das für Sie. Da in den meisten Haushalts-WLANs die IPs nicht statisch sind, funktioniert es nach einem Neustart möglicherweise nicht mehr. Damit mein Code die IP automatisch aktualisiert, ist Ihr Konto-API-Schlüssel erforderlich.

  1. Klicken Sie im Dashboard auf der rechten Seite auf die Schaltfläche API-Schlüssel abrufen. [Foto 1]
  2. Scrollen Sie nach unten und sehen Sie sich Ihren globalen API-Schlüssel an. [Foto 2]

Tragen Sie diesen Schlüssel in die Konfigurationsdatei des zuvor installierten Spiegelprojekts ein.

Erstellung von SSL-Zertifikaten

Google verlangt von uns eine SSL-Verbindung. Um diesen Abschnitt zu starten, stellen Sie sicher, dass Sie das Cloudflare-DNS richtig eingerichtet haben.

Fügen Sie zuerst das Repository hinzu.

sudo add-apt-repository ppa:certbot/certbot

Aktualisieren Sie die Paketliste.

sudo apt-get update

CertBot installieren

sudo apt installiere python-certbot-apache

Starten Sie die Zertifikatserstellung. Auch hier müssen Sie den richtigen Domainnamen eingeben.

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

Nach der Erstellung werden Sie gefragt, ob alle Verbindungen auf SSL umgeleitet werden sollen. Wählen Sie Weiterleitung.

Jetzt wird Ihnen mitgeteilt, dass ein Zertifikat für Ihre Domain erfolgreich erstellt wurde. Stellen Sie sicher, dass Sie die 2 Pfade speichern, die es Ihnen bietet.

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

Gehen Sie nun in den Ordner mit den Zertifikaten über:

Stellen Sie sicher, dass example.com auf den richtigen Host geändert wird.

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

Kopieren wir nun diese Inhalte in unseren Projektordner.

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

Und

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

Verbinden Sie Apache mit Ihrer Domain

Um Apache korrekt mit Ihrer Domain zu konfigurieren, müssen wir eine Konfigurationsdatei erstellen. Stellen Sie sicher, dass Sie Ihren Domainnamen eingeben, zum Beispiel funergydev.com.

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

Fügen Sie diese dann in die Datei ein. Ersetzen Sie example.com durch Ihren Domainnamen.

Stellen Sie sicher, dass Ihr Zertifikat und Ihr privater Schlüssel der richtige Pfad sind. Setzen Sie sie auf den Pfad, den Sie zuvor bei der Erstellung gespeichert haben, dann über certbot.

DocumentRoot "/var/www/html/" SSLEngine on SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Andere Direktiven hier Optionen Indizes FollowSymLinks AllowOverride Alle Benötigen alle gewährt

Jetzt müssen wir einige Änderungen aktivieren und dann Apache zwingen, die Konfiguration neu zu laden, indem wir Folgendes tun:

sudo a2enmod ssl

sudo a2enmod umschreiben

sudo systemctl reload apache2

Jetzt sollten Sie über Ihren Domainnamen zu Ihrem Pi gehen und die Standard-Apache-Seite sehen können.

Schritt 6: Google-API

Google-API
Google-API
Google-API
Google-API
Google-API
Google-API

Rufen Sie die Entwicklerkonsole über https://console.developers.google.com auf.

Teil 1

Erstellen Sie Ihr erstes Projekt, indem Sie neben dem Google API-Logo auf die Schaltfläche NEUES PROJEKT klicken. Geben Sie einen geeigneten Projektnamen ein und klicken Sie auf die Schaltfläche Erstellen. [Foto1]

Teil 2

Sie gelangen nun zu dieser Seite. Klicken Sie auf die Schaltfläche Bibliothek. [Foto2]

Dies ist eine große Liste aller APIs, die Sie verwenden könnten, aber wir werden nach der Google Kalender-API suchen. Klicken Sie darauf und drücken Sie ENABLE. [Foto3]

Sie gelangen dann zu einer Übersicht über die Kalender-API. Klicken Sie auf das Google APIs-Logo, um zu Ihrem Projekt zurückzukehren. [Foto4]

Teil 3

Um alles richtig einzurichten, klicken Sie auf die Kategorie der Anmeldeinformationen und wählen Sie die Registerkarte Domänenüberprüfung.

Hier müssen Sie Ihren Domainnamen bestätigen.

  1. Klicken Sie auf DOMAIN HINZUFÜGEN
  2. Geben Sie Ihre Domain ein
  3. Anschließend werden Sie aufgefordert, Ihre Domain zu bestätigen. Klicken Sie auf Weiter.
  4. Wählen Sie Ihren Domainnamen-Anbieter. [Foto5]
  5. Folgen Sie dem Prozess
  6. Jetzt können Sie es wie folgt zur Domain-Bestätigungsliste in der Google API-Konsole hinzufügen. Stellen Sie sicher, dass Ihre Domain aktiviert ist. [Foto6]

Teil 4

Wählen Sie nun die Registerkarte OAuth-Zustimmungsbildschirm aus. [Foto7]

Geben Sie den Anwendungsnamen ein

Als Nächstes fügen wir dem Zustimmungsbildschirm Bereiche hinzu. Das bedeutet, dass wir den Benutzer auf dem Zustimmungsbildschirm fragen, ob er seine Kalenderinformationen mit dem Spiegel teilen möchte.

  1. Klicken Sie auf Bereich hinzufügen und suchen Sie nach Kalender.
  2. Überprüfen Sie../auth/calendar.readonly und drücken Sie Hinzufügen. [Foto8]

Geben Sie eine autorisierte Domäne ein. Dies sollte die Domain sein, die Sie gerade bestätigt haben. [Foto9]

Klicken Sie nun auf den großen Speichern-Button unter dem Formular.

Teil 5

Als letztes müssen wir die Zugangsdaten erstellen. Da wir den Speichern-Button gedrückt haben, wurden wir zur Registerkarte "Anmeldeinformationen" weitergeleitet. Klicken Sie auf Anmeldeinformationen erstellen und wählen Sie OAuth-Client-ID. [Foto10]

Wählen Sie Anwendungstyp: Webanwendung und geben Sie ihr einen Namen.

Geben Sie den folgenden Link in die Authorized Redirect URIs ein und geben Sie die richtige Domain ein.

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

Klicken Sie auf Erstellen. Dies zeigt Ihnen ein Popup, klicken Sie einfach auf OK. Drücken Sie nun den Download-Button der soeben erstellten Zugangsdaten

Teil 6

Öffnen Sie nun die JSON-Datei und kopieren Sie den Inhalt.

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

Fügen Sie sie hier ein.

Teil 7

Jetzt müssen wir unsere Domain in der Konfiguration definieren, indem wir Folgendes tun:

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

Schritt 7: Das Spiegeldesign

Das Spiegeldesign
Das Spiegeldesign
Das Spiegeldesign
Das Spiegeldesign
Das Spiegeldesign
Das Spiegeldesign
Das Spiegeldesign
Das Spiegeldesign

Die Gestaltung Ihres Spiegels hängt davon ab, wie Sie ihn haben möchten. Machen Sie genaue Messungen des LCD und lassen Sie auf einer Seite des Spiegels einen Abstand von 2 Zentimetern, da der Mikrowellen-Bewegungssensor dort sitzt. Es kann nicht hinter jedem Metall sein.

Ich habe 4 Holzbretter miteinander verbunden. Diese wurden gefräst, um eine schöne saubere Vorderseite des Spiegels zu haben. Auf der Oberseite habe ich auch ein paar Löcher gebohrt, um den Klang des Lautsprechers durchzulassen. Auf der gegenüberliegenden Seite des Spiegels, der Unterseite, schneide ich ein kleines Rechteck, damit ich die elektrische Verkabelung leicht vornehmen kann. [Foto1]

Dies sind 2 Stück billiges Holz, auf denen der Monitor ruht. Da ich gesagt habe, bräuchten wir ca. 2cm Abstand zwischen Spiegel und Gehäuse. Ich habe auch 3 kleine Holzstücke hinzugefügt und sie auf diese ruhenden Stücke geschraubt. Der Monitor würde also an Ort und Stelle bleiben. [Foto2]

Am Ende sah es so aus. Ich hatte ungefähr einen Abstand von 3 mm zwischen diesen ruhenden Teilen und der Vorderseite des Spiegelgehäuses. Gerade genug, damit ich den 3 mm dicken Zwei-Wege-Spiegel einsetzen konnte. [Foto3]

Schritt 8: Die Verdrahtung durchführen

Die Verkabelung durchführen
Die Verkabelung durchführen
Die Verkabelung durchführen
Die Verkabelung durchführen
Die Verkabelung durchführen
Die Verkabelung durchführen

Stellen Sie sicher, dass Sie eines dieser Schemata richtig befolgen.

Sobald ich die Verkabelung gemacht habe, klebte ich sie mit doppelseitigem Klebeband auf die Rückseite des Bildschirms. Denn wenn ich den Spiegel jemals zerlegen und für andere Projekte verwenden wollte, könnte ich ihn leicht entfernen. Wenn Sie sicher sind, können Sie eine Heißklebepistole verwenden und sie auf die Rückseite des Spiegels kleben.

Schritt 9: Starten des Codes

Code starten
Code starten
Code starten
Code starten
Code starten
Code starten

LXSession

Lassen Sie uns zuerst ein paar Ordner erstellen

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

Jetzt erstellen wir eine Datei, in der wir einige Startparameter/Befehle angeben.

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

Fügen Sie Folgendes in die Datei ein.

@lxpanel --profile 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

Wir aktualisieren das Start-Mirror-Screen-Skript, damit es unserem Host entspricht.

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

Wählen Sie localhost, wenn Sie keinen Google-Kalender und keine Domain verwenden.

#!/bin/bash

sleep 15 chrom-browser --incognito --kiosk

Wenn Sie es verwenden, geben Sie Ihren Host ein.

#!/bin/bash

sleep 15 chrom-browser --incognito --kiosk

Service

Jetzt richten wir ein, dass der Mirror-Code automatisch ausgeführt wird.

Wir werden einen Dienst erstellen, der den Code automatisch für uns startet.

Gehe zu:

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

Und füge dies in die Datei ein

[Einheit]

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

Jetzt müssen wir den systemd-Daemon neu laden, indem wir Folgendes tun:

sudo systemctl daemon-reload

Außerdem aktivieren wir den automatischen Start des Dienstes beim Booten.

sudo systemctl Spiegel aktivieren

Jetzt schalten wir aus.

sudo ausschalten

Die letzten Einstellungen

Schließlich müssen wir unsere APIPA-IP entfernen, damit sie nur über WLAN funktioniert.

  1. Gehen Sie auf Ihrem PC in das Boot-Verzeichnis der SD-Karte.
  2. Öffnen Sie die Datei "cmdline.txt"
  3. Entfernen Sie ip=169.254.10.1 Am Ende der langen Textzeile.

Schritt 10: Ausführen des Spiegels

Den Spiegel ausführen
Den Spiegel ausführen
Den Spiegel ausführen
Den Spiegel ausführen
Den Spiegel ausführen
Den Spiegel ausführen
Ausführen des Spiegels
Ausführen des Spiegels

Besuchen Sie die IP auf dem Spiegelbildschirm oder geben Sie den Domainnamen ein, wenn Sie den Google-Kalender eingerichtet haben.

Jetzt können Sie Ihren Spiegel einrichten!

Wenn auf Ihrem Spiegel ein SSL-Fehler auftritt, möchten Sie Ihre Zertifikate vielleicht zum Chromium-Zertifikatsspeicher hinzufügen.

Empfohlen: