Table des matières:

Miroir intelligent multi-utilisateurs avec Google Calendar : 10 étapes
Miroir intelligent multi-utilisateurs avec Google Calendar : 10 étapes

Vidéo: Miroir intelligent multi-utilisateurs avec Google Calendar : 10 étapes

Vidéo: Miroir intelligent multi-utilisateurs avec Google Calendar : 10 étapes
Vidéo: Impossible que tu connaisses cette astuce Samsung 2024, Novembre
Anonim
Miroir intelligent multi-utilisateurs avec Google Calendar
Miroir intelligent multi-utilisateurs avec Google Calendar
Miroir intelligent multi-utilisateurs avec Google Calendar
Miroir intelligent multi-utilisateurs avec Google Calendar

Dans cette instructable, nous allons créer un miroir intelligent intégré à Google Calendar. J'ai fait ce projet parce que je trouve les miroirs intelligents vraiment cool, ils sont une aubaine le matin. Mais j'ai décidé d'en faire un moi-même à partir de zéro car tous les autres ont 1 défaut. Ils sont trop avancés et encombrés. J'ai décidé de garder cela simple.

Fournitures

Avant

nous allons commencer ce sont les choses dont vous aurez certainement besoin pour construire un miroir comme le mien. Ces fournitures coûteront environ 250 à 350 euros selon votre région et les prix en vigueur.

Matériel

Capteurs

  • Capteur de température à un fil
  • RWCL 0516 (Capteur de mouvement à micro-ondes)
  • Potentiomètre souple (Touchstrip de Sparkfun)

L'informatique

et IC

  • Haut-parleur (3,2W à 4Ω OU 1,8W à 8Ω)
  • MCP3008
  • Adafruit I2S 3W Classe D Amplificateur Breakout - MAX98357A
  • Framboise Pi 3 B+
  • Carte SD (8 Go c'est bien)
  • Résistance 4.7K Ohm

Divers

  • Cavaliers
  • Planche à pain
  • Miroir bidirectionnel en acrylique (15% de transmission de lumière)
  • Moniteur IPS (la taille dépend de la taille que vous voulez)
  • câble HDMI
  • Bois

Logiciel

  • Mastic
  • Éditeur de code (Notepad++ suffit)
  • Imageur de disque Win32
  • Image du système d'exploitation Raspbian

Étape 1: configuration

Pour commencer, nous devons d'abord configurer votre Pi pour le code que j'ai créé.

Vous aurez besoin de deux choses:

  • Imageur de disque Win32 de
  • Image du système d'exploitation Raspbian de

Téléchargez le fichier ZIP et extrayez-le où vous le souhaitez.

L'installation

  1. Sélectionnez votre image via l'icône du dossier
  2. Sélectionnez votre carte SD via le menu déroulant
  3. Cliquez sur écrire

Maintenant, nous devrons faire un peu plus de bricolage avec certains paramètres afin que nous puissions accéder au Pi.

  1. Allez dans le répertoire de démarrage de la carte SD
  2. Ouvrez le fichier "cmdline.txt"
  3. Ajouter ip=169.254.10.1 À la fin de la longue ligne de texte séparée par un espace (sur la même ligne).
  4. Enregistrez le fichier.
  5. Créez un fichier nommé ssh sans extension dans le même répertoire

Vous pouvez maintenant éjecter la carte SD et la mettre dans votre Pi.

De liaison

Maintenant, nous devons configurer le logiciel.

Branchez d'abord un câble LAN, une extrémité dans votre ordinateur de bureau/ordinateur portable et l'autre dans votre Pi.

Maintenant, démarrez le Raspberry Pi.

  1. Installez Putty à partir de
  2. Entrez 169.254.10.1 dans la zone IP.
  3. Assurez-vous que SSH est sélectionné et que le port 22 est rempli.
  4. Cliquez sur ouvrir
  5. Remplissez le nom d'utilisateur: pi
  6. Renseignez le mot de passe: framboise

Raspi-config

Ouvrez l'utilitaire Raspi-config en utilisant:

sudo raspi-config

Activez les options suivantes dans la catégorie interfaces

  • 1 fil
  • SPI

Choisissez votre pays WiFi via la catégorie de localisation.

Ensuite, désactivez les options suivantes dans la catégorie des options de démarrage

Écran de démarrage

Enfin, définissez le paramètre Desktop/CLI dans la catégorie des options de démarrage sur Desktop Autologin.

Wifi

Pour le miroir, nous devons disposer d'une connexion wifi, alors assurez-vous d'avoir vos informations d'identification wifi à proximité.

Passer en mode racine

sudo -i

Collez cette ligne mais assurez-vous que le SSID et le mot de passe sont tous les deux renseignés

wpa_passphrase "SSID" "MOT DE PASSE" >> /etc/wpa_supplicant/wpa_supplicant.conf

Entrez le client WPA.

wpa_cli

Sélectionnez l'interface

interface wlan0

Recharger la config

reconfigurer

Assurez-vous que vous êtes correctement connecté en tapant…

IP un

… et voir si vous avez une IP sur les interfaces WLAN0.

Paquets

Maintenant que nous sommes connectés à Internet, nous devrons installer des packages.

Nous devrons d'abord actualiser les listes de paquets pour la dernière.

mise à jour sudo apt

Python

Nous forcerons Raspbian à utiliser Python 3

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

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

MariaDB

Collez la ligne suivante pour installer la base de données.

sudo apt installer mariadb-server

Ensuite, nous devrons sécuriser notre installation.

mysql_secure_installation

Il nous demandera le mot de passe root actuel puisque nous n'en avons pas, appuyez simplement sur Entrée.

Ensuite, il nous demande si nous voulons un mot de passe root, tapez y puisque nous en voulons un.

Pour les questions suivantes, entrez simplement Y.

Enfin, nous allons créer un utilisateur que nous pourrons utiliser pour le miroir.

Entrez dans le shell mysql en faisant:

S'élever à la racine

sudo -i

Entrez dans le shell mysql

mysql

Remplacez par votre propre nom d'utilisateur et le même par

accorde tous les privilèges sur mirror.* à ''@'%' identifié par '';

Maintenant, nous vidons la table des autorisations.

PRIVILÈGES DE FLASH;

Serveur Web Apache

Pour installer le serveur Web, exécutez la ligne ci-dessous.

sudo apt installer apache2 -y

Paquets Python

Nous allons installer ces packages

  • Ballon
  • Flacon-Cors
  • Flask-MySQL
  • Flacon-SocketIO
  • PyMySQL
  • Flacon-talisman
  • Gévent
  • Gevent-websocket
  • Google-api-python-client
  • Google-auth
  • Google-auth-httplib2
  • Google-auth-oauthlib
  • Httplib2
  • Calendrier
  • Icalevents
  • Oauthlib
  • Python-socketio
  • Demandes
  • Wsaccel
  • Ujson

En faisant

pip installer 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 icaleventsson oauthcelio python request w-sockac

Configuration des enceintes

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

Maintenant, nous devons redémarrer, alors appuyez sur y.

Réexécutez le script

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

Maintenant, nous devons redémarrer une deuxième fois

redémarrage sudo

Écran (moniteur)

Selon la façon dont vous voulez l'orientation de votre écran, vous pouvez faire pivoter l'écran.

Pour faire pivoter l'écran, nous devons accéder aux options de démarrage en faisant:

sudo nano /boot/config.txt

Et puis en collant l'une de ces lignes dans le fichier de configuration:

display_rotate=0

display_rotate=1

display_rotate=2

display_rotate=3

Le premier, 0, est la configuration normale. 1 sera à 90 degrés, 2 à 180 degrés et le dernier à 270 degrés.

Redémarrez ensuite.

redémarrage sudo

Étape 2: Installation du miroir

Installation du miroir
Installation du miroir

Maintenant, nous allons configurer un endroit pour télécharger mon code.

cd /accueil/pi/

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

Maintenant, nous allons copier certains dossiers vers la bonne destination

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

sudo cp -R frontend/tableau de bord/ /var/www/html/ Sudo cp -R backend/ /home/pi/Mirror/

L'installation de la base de données est une étape nécessaire à la réalisation du projet.

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

Étape 3: Configuration

Le fichier de configuration se trouve à:

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

Entrez l'utilisateur et le mot de passe MYSQL.

Ce doit être l'utilisateur mysql que nous venons de créer.

Les autres paramètres que nous aborderons plus tard cette instructable.

Étape 4: API

Maintenant que nous avons terminé l'installation du Pi, nous allons couvrir certains sujets que vous voudrez peut-être faire.

Ciel sombre

Créez une clé API Darsky via

Une fois inscrit, vous verrez votre clé API sur le tableau de bord.

Entrez cette clé dans le fichier de configuration du projet miroir que vous avez installé auparavant.

Le calendrier

Par défaut, vous ne pourrez utiliser que les URL ical pour afficher votre calendrier. Mais cette partie portera sur la façon de lier votre miroir à l'écosystème Google. C'est un processus généralement plus long et plus douloureux.

Choses dont vous aurez certainement besoin

Un nom de domaine

Ce sont les choses que nous allons configurer au cours de cette partie

  • Compte CloudFlare
  • Compte de développeur Google
  • Projet de développeur Google
  • Configurer l'API Calendrier

Étape 5: Le calendrier

Le calendrier
Le calendrier
Le calendrier
Le calendrier

Cloudflare

Configurez un compte cloudflare depuis https://cloudflare.com et suivez l'assistant pour transférer votre nom de domaine vers Cloudflare DNS.

Pas besoin de créer vous-même un enregistrement A qui pointe vers le Raspberry Pi. Mon code miroir le fera pour vous. Étant donné que dans la plupart des réseaux Wi-Fi domestiques, les adresses IP ne sont pas statiques, elles peuvent donc ne plus fonctionner après le redémarrage. Pour que mon code mette à jour automatiquement l'adresse IP, il aura besoin de la clé API de votre compte.

  1. Cliquez sur le bouton Obtenir votre clé API sur le tableau de bord sur le côté droit. [Photo 1]
  2. Faites défiler vers le bas et affichez votre clé API globale. [Photo 2]

Entrez cette clé dans le fichier de configuration du projet miroir que vous avez installé auparavant.

Création de certificat SSL

Google exige que nous ayons une connexion SSL. Pour commencer cette section, assurez-vous d'avoir correctement configuré le DNS Cloudflare.

Ajoutez d'abord le référentiel.

sudo add-apt-repository ppa:certbot/certbot

Mettez à jour la liste de paquets.

sudo apt-get mise à jour

Installer CertBot

sudo apt installer python-certbot-apache

Démarrez la création du certificat. Encore une fois, vous devrez remplir le nom de domaine correct.

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

Après la création, il vous demandera s'il doit rediriger toutes les connexions vers SSL. Choisissez la redirection.

Maintenant, il vous dira qu'il a créé avec succès un certificat pour votre domaine. Assurez-vous de sauvegarder les 2 chemins qu'il vous donne.

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

Allez maintenant dans le dossier avec les certificats via:

Assurez-vous de remplacer example.com par le bon hébergeur.

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

Maintenant, copions ce contenu dans notre dossier de projet.

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

Et

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

Connectez Apache à votre domaine

Pour configurer Apache correctement avec votre domaine, nous devrons créer un fichier de configuration. Assurez-vous de renseigner votre nom de domaine par exemple funergydev.com.

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

Collez-le ensuite dans le fichier. Remplacez example.com par votre nom de domaine.

Assurez-vous que votre certificat et votre clé privée sont le bon chemin. Définissez-les sur le chemin que vous avez enregistré précédemment lors de la création, puis via certbot.

DocumentRoot "/var/www/html/" SSLEngine sur SSLCertificateFile /home/pi/Mirror/resources/certs/cert.pem SSLCertificateKeyFile /home/pi/Mirror/resources/certs/privkey.pem # Autres directives ici Options Index FollowSymLinks AllowOverride Tous Exiger tout accordé

Nous devons maintenant activer certaines modifications, puis forcer Apache à recharger la configuration en faisant:

sudo a2enmod ssl

sudo a2enmod réécriture

sudo systemctl recharger apache2

Vous devriez maintenant pouvoir accéder via votre nom de domaine à votre pi et voir la page apache par défaut.

Étape 6: API Google

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

Accédez à la console développeur via

Partie 1

Créez votre premier projet en cliquant à côté du logo Google API et en cliquant sur le bouton NOUVEAU PROJET. Saisissez un nom de projet approprié et cliquez sur le bouton Créer. [Photo1]

Partie 2

Vous allez maintenant accéder à cette page. Cliquez sur le bouton de la bibliothèque. [Photo2]

Ceci est une grande liste de toutes les API que vous pouvez utiliser, mais nous rechercherons l'API Google Calendar. Cliquez dessus et appuyez sur ACTIVER. [Photo3]

Vous accéderez alors à un aperçu de l'API Calendar. Cliquez sur le logo des API Google pour revenir à votre projet. [Photo4]

Partie 3

Pour tout configurer correctement, cliquez sur la catégorie des informations d'identification et choisissez l'onglet Vérification du domaine.

Ici, vous devrez vérifier votre nom de domaine.

  1. Cliquez sur AJOUTER UN DOMAINE
  2. Remplissez votre domaine
  3. Il vous demandera ensuite de vérifier votre domaine. Cliquez sur continuer.
  4. Choisissez votre fournisseur de nom de domaine. [Photo5]
  5. Suivez le processus
  6. Vous pourrez maintenant l'ajouter à la liste de vérification de domaine sur la console API Google comme ceci. Assurez-vous que votre domaine est coché. [Photo6]

Partie 4

Choisissez maintenant l'onglet de l'écran de consentement OAuth. [Photo7]

Remplissez le nom de l'application

Ensuite, nous ajouterons des étendues à l'écran de consentement. Cela signifie que nous demanderons à l'utilisateur sur l'écran de consentement s'il souhaite partager les informations de son calendrier avec le miroir.

  1. Cliquez sur ajouter une portée et recherchez le calendrier.
  2. Vérifiez../auth/calendar.readonly et appuyez sur ajouter. [Photo8]

Remplissez un domaine autorisé. Cela devrait être le domaine que vous venez de vérifier. [Photo9]

Cliquez maintenant sur le gros bouton Enregistrer sous le formulaire.

Partie 5

Enfin, nous devons créer les informations d'identification. Parce que nous avons appuyé sur le bouton Enregistrer, nous avons été redirigés vers l'onglet informations d'identification. Cliquez sur créer des informations d'identification et choisissez ID client OAuth. [Photo10]

Choisissez Type d'application: Application Web et donnez-lui un nom.

Entrez le lien suivant dans les URI de redirection autorisés et remplissez le domaine correct.

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

Cliquez sur créer. Cela vous montrera une fenêtre contextuelle, cliquez simplement sur OK. Appuyez maintenant sur le bouton de téléchargement sur les informations d'identification que vous venez de créer

Partie 6

Ouvrez maintenant le fichier JSON et copiez le contenu.

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

Collez-les ici.

Partie 7

Maintenant, nous devons définir notre domaine dans la configuration en faisant:

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

Étape 7: La conception du miroir

La conception du miroir
La conception du miroir
La conception du miroir
La conception du miroir
La conception du miroir
La conception du miroir
La conception du miroir
La conception du miroir

La conception de votre miroir dépend de la façon dont vous le souhaitez. Effectuez des mesures précises de l'écran LCD et laissez un espace de 2 centimètres d'un côté du miroir car le capteur de mouvement à micro-ondes y sera installé. Il ne peut pas être derrière n'importe quel métal.

J'ai connecté 4 planches de bois ensemble. Ceux-ci ont été fraisés pour avoir une belle face propre du miroir. Sur le dessus, j'ai également percé quelques trous pour laisser passer le son du haut-parleur. Du côté opposé du miroir, en bas, j'ai découpé un petit rectangle pour pouvoir facilement faire le câblage électrique. [Photo1]

Ce sont 2 morceaux de bois bon marché sur lesquels le moniteur sera posé. Comme je l'ai dit, nous aurions besoin d'un écart d'environ 2 centimètres entre le miroir et le boîtier. J'ai également ajouté 3 petits morceaux de bois et les ai vissés sur ces morceaux de repos. Ainsi, le moniteur resterait en place. [Photo2]

Au final, ça ressemblait à ça. J'avais un écart d'environ 3 mm entre ces pièces de repos et l'avant du boîtier du miroir. Juste assez pour que je puisse mettre le miroir sans tain de 3 mm d'épaisseur. [Photo3]

Étape 8: faire le câblage

Faire le câblage
Faire le câblage
Faire le câblage
Faire le câblage
Faire le câblage
Faire le câblage

Assurez-vous de bien suivre l'un de ces schémas.

Une fois que j'ai fait le câblage, je l'ai collé au dos de l'écran avec du ruban adhésif double face. Puisque si jamais je voulais démonter le miroir et l'utiliser pour d'autres projets, je pourrais facilement le retirer. Si vous êtes certain, vous pouvez utiliser un pistolet à colle chaude et le coller au dos du miroir.

Étape 9: Démarrer le code

Commencer le code
Commencer le code
Commencer le code
Commencer le code
Commencer le code
Commencer le code

Session LX

Créons d'abord quelques dossiers

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

Nous allons maintenant créer un fichier dans lequel nous spécifierons quelques paramètres/commandes de démarrage.

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

Collez ce qui suit dans le fichier.

@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

Nous mettrons à jour le script de démarrage de l'écran miroir pour qu'il corresponde à notre hôte.

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

Choisissez localhost si vous n'utilisez pas Google Calendar et un domaine.

#!/bin/bash

sleep 15 chrome-browser --incognito --kiosk

Si vous l'utilisez, renseignez votre hôte.

#!/bin/bash

sleep 15 chrome-browser --incognito --kiosk

Service

Nous allons maintenant configurer que le code miroir s'exécute automatiquement.

Nous allons créer un service qui démarre automatiquement le code pour nous.

Aller à:

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

Et collez ceci dans le fichier

[Unité]

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

Maintenant, nous allons devoir recharger le démon systemd en faisant:

sudo systemctl démon-recharger

Et nous allons également permettre au service de démarrer automatiquement au démarrage.

sudo systemctl activer le miroir

Maintenant, nous allons éteindre.

mise hors tension sudo

Les derniers réglages

Enfin, nous devons supprimer notre IP APIPA pour qu'elle ne fonctionne que sur le WiFi.

  1. Accédez au répertoire de démarrage de la carte SD sur votre PC.
  2. Ouvrez le fichier "cmdline.txt"
  3. Supprimer ip=169.254.10.1 À la fin de la longue ligne de texte.

Étape 10: Exécuter le miroir

Courir le miroir
Courir le miroir
Courir le miroir
Courir le miroir
Courir le miroir
Courir le miroir
Courir le miroir
Courir le miroir

Visitez l'adresse IP qui se trouve sur l'écran miroir ou si vous avez configuré le calendrier Google, remplissez le nom de domaine.

Vous allez maintenant pouvoir configurer votre miroir !

Si vous obtenez une erreur SSL sur votre miroir, vous souhaiterez peut-être ajouter vos certificats au magasin de certificats Chromium.

Conseillé: