Sources
Le boitier affiche le nom de la tâche à réaliser en se connectant sur votre agenda Google. L'affichage se fait une un écran e-paper (très basse consommation).
Les boutons permettent de lancer et arrêter un chronomètre.
Les temps enregistrés sont sauvegardés dans un fichier local.
Les écrans sont entièrement configurables dans un fichier d'initialisation.
Télécharger la dernière version de Raspian en allant sur le site officiel :
https://www.raspberrypi.org/downloads/raspbian/
Dans notre cas, nous n'avons pas besoin de la version Desktop car nous utiliserons la Raspberry par une conection distante, une connection SSH. Nous avons donc besoin de la version allégée de Raspbian, la version " Lite "
Téléchargez et décompressez le fichier dans un répertoire temporaire, on obtient une image du système d'exploitation.
Le fichier au format img n'est pas copiable en tant que tel sur la carte SD, il faut utiliser un utilitaire comme par exemple Etcher (sous windows).
Une fois Etcher installé :
Le système d'exploitation est prêt, mais il faut encore configurer l'accès distant.
Par défaut, SSH est installé sur la Raspberry Pi, mais est désactivé pour des raisons de sécurité. La première chose à faire sera donc d’activer SSH sur votre Raspberry Pi.
Pour cela, il vous suffit de brancher la carte MicroSD de votre Raspberry Pi sur votre ordinateur, de vous rendre sur la carte, et de créer un fichier vide nommé ssh dans la partition boot.
Au prochain boot sur la carte SD, il sera possible de faire une connexion SSH en utilisant un client comme Putty (sous windows) par exemple.
Veillez à bien changer le mot de passe par défaut de l'utilisateur pi ("raspberry" par défaut) quand vous vous logez pour la première fois.
Voila, la carte SD est maintenant prête à être insérée dans la Raspberry.
La commande ifconfig vous permet de connaitre l'adresse IP que votre Raspberry vient d'avoir en se connectant sur votre réseau.
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet
192.168.0.102
netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::d9f:c7ba:c902:d0c prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:83:ec:c2 txqueuelen 1000 (Ethernet)
RX packets 284 bytes 39200 (38.2 KiB)
RX errors 0 dropped 10 overruns 0 frame 0
TX packets 110 bytes 16465 (16.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Nous allons ensuite configurer la Raspberry en lançant la commande : raspi-config
Changer le mot de passe par défaut (de l'utilisateur "pi") en choisissant :
1 - Change User Password
4 - Localisation Options
I1 - Change Locale (Supprimer : UK et cocher : fr_FR.UTF-8 UTF-8 )
5 - Interfacing options
P4 - SPI
7 - Advanced options
A1 - Expand Filesystem
Finish, Reboot = yes
Les Google agenda sont accessibles en utilisant l'API Google prévue à cet effet, il est nécessaire d'installer :
pip install --upgrade google-api-python-client oauth2client
L'accès à votre calendrier Google nécessite une authentification. Cette authentification doit être sauvée dans un fichier nommé credentials.json .
A partir de votre console de gestion d'API et services Google , nous allons créer un nouveau projet qui aura accès en lecture seule aux Calendrier Google.
A partir de la page d'accueil de Google APIs :
Maintenant que nous avons un projet, nous pouvons lui attribuer une clé d'accès.
A partir de la page d'accueil de Google APIs,
Le token est un jeton d'authentification sécurisant la connexion entre l'API Google et la machine l'appelant. Il est créé lors de la première connexion et ne sera plus demandé par la suite.
Pour le générer, il faut lancer une première demande en exécutant la ligne de commande :
cd calendar2
python test-GoogleAgenda2.py --noauth_local_webserver
Une URL est alors générée et le programme attend un code de vérification. Copier-coller cette URL dans un navigateur (chrome, firefox, safari, ...) pour récupérer un code de la forme 4/Bgo9RqwRyXnLvM3Hb1_pYTzf22KqjbB3OkJEIRe_pX30RI. Coller ce code de vérification dans la ligne de commande pour continuer l'exécution du programme.
Votre calendrier doit s'afficher (dans un format JSON) dans la fenêtre de la ligne de commande et un fichier "token.json" vient d'être écrit dans le répertoire où vous avez lancé la ligne de commande.
Le fichier token.json doit être dans le répertoire epaper , déplacez le si besoin.
Vous pouvez maintenant relancer la commande :
python test-GoogleAgenda2.py
Elle doit vous afficher votre calendrier sans plus demander d'authentification.
A faire.
sudo pip3 install pillow
pip install --upgrade google-api-python-client
pip install spidev board oauth2client
Ne pas oublier d'activer SPI en passant par raspi-config
a faire
A faire.
Installer la librairies wiringpi :
sudo apt-get install wiringpi
Taper la commande :
gpio readall
on a alors la grille :
Les colonnes en rouge sont les broches physique que l'on voit sur la carte
Vérifions s'il y a une alternative installé pour python :
sudo update-alternatives --list python
->
update-alternatives: error: no alternatives for python
Le message d'erreur signifie qu'aucune alternative n'est mise ne place pour le python, nous pouvons donc passer à la suite.
Taper :
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
Nous venons de construire des liens symboliques avec une priorité.
python3.5 sera pris en priorité lorsque l'on tapera en ligne de commande :
python --version
> Python 3.5.3
Python3 (3.5.3 pour être précis) est maintenant utilisé par défaut sur le système !
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project
Ceci est la vue non overridée de l'objet project en mode listitem
Code à rajouter dans l'override.ini.append.php :
[line_project] Source=node/view/listitem.tpl MatchFile=listitem/project.tpl Subdir=templates Match[class_identifier]=project