Module RTC ds1307 : installer et configurer une horloge externe pour votre Raspberry Pi

Module RTC ds1307 :

Un problème récurrent des utilisateurs de Raspberry Pi est que celui ci ne possède pas d’horloge interne.
Ceci a pour effet de ne pas pouvoir réaliser d’application utilisant des informations sur l’heure absolue (par exemple faire une actions tous les jours à 20h) sans être connecté à un internet. En effet, votre connection internet, vous permet de récupérer leur sur un serveur donné.

Pour pouvoir réaliser ce genre d’opération, il faut avoir recours à un module RTC (Real-Time Clock) qu’on peut traduire « horloge temps réel ».
Ce genre de module n’est ni plus ni moins une horloge externe alimentée par une pile bouton, qui après une première initialisation, peut être interrogée par le raspberry pi pour obtenir l’heure.

Dans mon cas, j’ai choisi le Module RTC ds1307. Ce choix est expliqué pour plusieurs raisons :

  • le module est très courant
  • le module ce trouve pour moins 5€ (par exemple sur aliexpress)
  • ce module a un support natif par la version Jessie du système raspbian
  • il est i2c ce qui réduit le nombre de boches mobilisées sur le port GPIO

Connection du module

Le module est très simple à brancher. Vous devez uniquement connecter :

  • VCC
  • GND
  • SCL
  • SDA

du module sur les broches du même nom du Raspberry Pi.

Vérification de la détection du nodule sur le Bus i2c

Si votre port i2c n’est pas activé, rien de plus simple. Il suffit d’exécuter :

 sudo raspi-config

Dans le menu Advenced, il faut rendre actif le port i2c.
Nous allons vérifier que le module est bien détecté mais , au péralable, il faut installer les outils nécessaire à cette tâche.

sudo apt-get install python-smbus i2c-tools

Puis nous pouvons utiliser l’utilitaire i2cdetect :

sudo i2cdetect -y 1

L’instruction est différente suivant les versions du Raspberry Pi1

Cette instruction devrait vous retourner l’équivalent de l’écran suivant :

On voit que le RPi a détecté un composant à l’adresse 0x68 qui d’après la doc constructeur l’adresse par défaut.

Installation du Module RTC ds1307

On va ajouter la gestion du module en éditant le fichier de configuration de boot.

sudo nano /boot/config.txt

Auquel on va ajouter un la ligne suivante à la fin du fichier :

dtoverlay=i2c-rtc,ds1307

A ce stade, vous devez redémarrez votre système :

sudo reboot

Une fois le système de nouveau actif, il vous pouvez éxécuter de nouveau:

sudo i2cdetect -y 1

Vous devriez observer si le prise en charge de l’horloge est effective en obtenant les caractères UU à l’adresse 0X68

Il vous est maintenant nécessaire de désactiver l’horloge qui émule l’horloge hardware «fake hwclock> avec les instructions suivantes :

sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove

Puis décommenter les lignes suivantes du fichier (en début de fichier) /lib/udev/hwclock-set :

#if [ -e /run/systemd/system ] ; then
# exit 0
#fi

Configuration de l’horloge du Module RTC ds1307

Pour configuer votre horloge RTC, à partir de l’heure système (nécessite donc une connexion à Internet):

sudo hwclock -w

NB : W pour Write

Pour vérifier que votre horloge est bien à l’heure, il suffit cette fois-ci de lire

sudo hwclock -r

NB : R pour Read

Vérification du fonctionnement

Pour vérifier, le bonctionnement du système, couper la connexion internet (faite éventuellement un reboot) et exécuté :

date

Si tous c’est bien passé vous devriez obtenir l’heure exact!

Alors prêt à utiliser le Module RTC ds1307?


  1. Si votre raspberry est une version antérieur au Pi 3 et Pi Zero, l’instruction est sudo i2cdetect -y 0 

Connaître sa version de Rapbian

Connaitre sa version de Raspbian

Pour trouver la version de raspbian, il suffit de saisir la commande suivante.

cat /etc/os-release

Cette commande retourne :

PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

pdftk : Extraire des pages d’un documents PDF

pdftk : un utilitaire simple et puissance

On se trouve souvent en face d’un documents pdf dont on voudrait extraire une page pour en faire un documents autonome à proprement parler.
Sous windows, il existe de nombreuses solutions soit payantes (comme souvent) soit demandant de nombreuses manipulation d’interfaçage graphique alors que sous un système Unix ou linux, il existe un utilitaire qui ne requière qu’une seule ligne de commande!
Le binaire pdftk (la page principale de pdftk), pour pdf toolkit, permet de faire ce genre de manipulation aisément et gratuitement.

Installation de pdftk

Très simple à l’aide d’apt

sudo apt-get install pdftk

Et comment on s’en sert?

Pour extraire les pages de 12 à 15 d’un document c’est très siimple :

pdftk full-pdf.pdf cat 12-15 output outfile_p12-15.pdf

Voilà une ligne et c’est plié!

Vous ne regretterez pas de ne pas avoir à investir plusieurs centaines d’euros dans une licence d’Adobe!

NB : Ce genre de manipulation est également possible sous windows

Pour aller plus loin :

D’autres trucs et astuces : liens vers la catégorie

Augmenter la swap de votre Raspberry Pi

Augmenter la swap de votre Raspberry Pi

Pour des applications, le plus souvent serveur, la taille de votre swap peut limiter les performances de votre application. C’est le cas pour gitlab par exemple.
Pour augmenter cette valeur, il faut éditer le fichier /etc/dphys-swapfile avec la commande suivante :

sudo nano /etc/dphys-swapfile

Il vous faut modifier la ligne

CONF_SWAPFILE=100

en remplaçant la valeur 100 par la valeur en Mo dont vous avez besoin. Si vous avez besoin d’une valeur supérieur à 2.048 GO, il faut modifier la limite en modifiant la dernière ligne du fichier du fichier.

Pour aller plus loin :

La mémoire swap

NB : testé et validé sur Raspbian Jessy

Modifier l’url par défaut de Gitlab

Si vous avez installé votre forge Gitlab en local sur un Raspberry P, il y a fort a parier que vous  vouliez garder le RPi dans votre réseau privée.

Cependant, vous voudrez sans doute le rendre accessible depuis extérieure. Pour cela, vous devrez donc faire pointez une URL vers un votre Box internet qui routera le port 80 vers votre RPi.

Jusque là rien que du bien classique. Malheureusement, à l’usage vous remarquerez que l’adresse par défaut de vos projets ne sont pas utilisable depuis l’extérieur. En effet,  quand vous récupérer l’adresse pour faire un clone d’un projet vous aurez l’adresse suivante :

http://localhost/monuser/mon-projet.git ou http://nomdelamachine/monuser/mon-projet.git

Pour corriger cela, il est nécessaire d’éditer le fichier de config :

nano /etc/gitlab/gitlab.rb

et de modifier la ligne suivante :

external_url 'http://gitlab.example.com'

par

external_url 'http://monurl.com'

 

Plus d’informations ici