Cloche programmable Raspberry Pi

Nous utilisions, au travail, un système de cloches complètement archaïque qui datait de Mathusalem (ou presque). La programmation de cette cloche était très complexe et aucune documentation n’était disponible. Puisque la programmation de la cloche avait été faite avant le changement de date des changements d’heures en Amérique du Nord (2007) et que personne ne semblait savoir comment programmer le changement d’heure de la cloche, je devais changer, 4 fois par année, l’heure du système. De plus, notre ancien système prenait du retard (environ 10 minutes par année). Alors, lorsqu’on m’a demandé s’il était possible d’ajouter une deuxième cloche à notre système, j’ai proposé de créer un nouveau système digne de notre siècle pour remplacer notre vieillerie.

Matériel requis :

  • 2 fils Dupont mâle/femelle (rouge)
  • 1 fil Dupont mâle/femelle (noir)
  • 2 fils Dupont mâle/mâle (rouge)
  • 6 fils Dupont mâle/mâle (noir)
  • 2 cloches Ajax Scientific Deluxe Electric Bell (ASIN: B00EPQKIXE)
  • 1 planche de montage expérimental (breadboard)
  • 1 puce à circuit intégré ULN2003A
  • 1 Raspberry Pi (B+ v1.2 dans mon cas)
  • 1 connecteur DC femelle 2.1 pour planche de montage expérimental
  • 1 adaptateur DC-16V 1A
  • 1 carte micro SD 4Go (ou plus)
  • 1 chargeur micro USB
  • 1 fil réseau

Matériel optionnel :

  • 1 cable HDMI
  • 1 écran compatible HDMI
  • 1 clavier USB

 

Étape 1 : préparer le Raspberry Pi.

Téléchargez et extraire Raspbian Jessie Lite sur un ordinateur pouvant lire les cartes SD (ou utiliser un adaptateur micro SD/USB), puis montez l’image sur la carte SD.

Sous Linux :

En remplaçant /chemin/vers/ par l’emplacement où se trouve le fichier image et /dev/sdX par le périphérique correspondant à la carte micro SD.

Sous Windows :

Utilisez un programme tel que Win32 Disk Imager pour transférer l’image sur la carte micro SD.

Puis, insérez la carte micro SD dans le Raspberry Pi (RPi) et démarrer celui-ci. Connectez-vous sur le RPi en utilisant l’utilisateur pi et le mot de passe raspberry, puis lancer l’utilitaire raspi-config.

Nous allons d’abord étendre le système de fichier en choisissant l’option 1. Ensuite, nous devons activer quelques options avancées notamment SPI, I2C et accessoirement SSH (afin de simplifier la gestion).

Nous pouvons maintenant choisir l’option Finish et redémarrer le RPi. Nous pouvons vérifier que les modules sont bel et bien installés à l’aide de la commande suivante.

Maintenant, nous allons mettre les paquets apt à jour, puis installer certains paquets nécessaires au fonctionnement de notre projet.

Voilà, le RPi est prêt pour l’utilisation des entêtes GPIO.

Étape 2 : création du fichier pi_bell.py.

Créons un nouveau fichier pi_bell.py dans le sous-répertoire pi_bell répertoire « home » de l’utilisateur pi ou clonons simplement mon référentiel GitLab. Il est conseillé de cloner le référentiel plutôt que de créer le fichier, puisque le référentiel sera possiblement mis à jour.

Puis, compions le contenu du fichier.

Ou, clonons simplement le référentiel GitLab comme suit :

Consulter le référentiel GitLab.

Étape 3 : Brancher les composantes.

Avertissement : il est conseillé d’éteindre le RPi avant d’y connecter d’autres composantes. De plus, veuillez redoubler de prudence en jouant avec les courants électriques.

Cette étape est plutôt simple, nous n’avons qu’à connecter les composantes en conformité avec le schéma suivant.

 

 

Étape 4 : Tester le fonctionnement du système.

À cette étape, le système de cloches devrait être fonctionnel. Pour tester le bon fonctionnement de celui-ci, nous devons taper la commande suivante dans la console.

Si vous obtenez un message d’erreur comme celui-ci :

RuntimeError: No access to /dev/mem. Try running as root!

Vous essayez probablement d’exécuter la commande en tant qu’un utilisateur autre que pi. Par défaut, l’utilisateur pi a accès aux GPIO. Vous pouvez toutefois ajouter quelques groupes à votre utilisateur pour lui donner accès au contrôle des GPIO. Par exemple, pour autoriser l’utilisateur julien à contrôler les GPIO, j’entrerais la commande suivante.

Étape 5 : Programmer la cloche.

La programmation de la cloche se fait à l’aide des crontabs.

Afin de ne pas effacer les crontabs que nous pourrions déjà avoir, nous en faisons une sauvegarde dans un fichier temporaire nommé cron.tmp  auquel nous allons ajouter quelques lignes. Dans cet exemple, nous allons programmer les cloches pour qu’elles sonnent à midi et à 16 h 30 tous les jours de semaine (du lundi au vendredi). Puis, nous allons mettre à jour les crontabs et finalement nous effaçons notre fichier temporaire.

Voilà!

Nous avons maintenant une cloche moderne qui sonnera quand et comme nous le voulons!

Mon script de message du jour perso pour Debian.

Consulter le référentiel GitLab.

Configuration de mon serveur web de développement PHP7 sous Debian 8

Voici la configuration de mon serveur web de développement PHP7, Apache2, MySQL, phpMyAdmin sous Debian 8 Jessie. Vu la difficulté à installer PHP7 et phpMyAdmin, j’ai cru bon de créer un tutoriel sur la configuration de mon environnement étape par étape.

Ceci se base sur le fait que ma machine était une machine Debian de base avec comme seul paquet supplémentaire sudo. Mon utilisateur étant membre du groupe sudo.

Étape 1 : Mettre à jour les sources du gestionnaire de paquets apt.

Nous ajoutons d’abord le référentiel Dotdeb qui fournit des paquets à jour pour PHP7 (entre autres), puisque celui-ci n’est pas offert (à ce jour) dans les référentiels officiels de Debian.

Note : Ce référentiel est également valide pour Debian 7 Wheezy, il faudrait toutefois changer le nom de la version dans les commandes suivantes.

Étape 2 : Installer la clef GnuPG pour le référentiel de Dotdeb.

Étape 3 : Mettre le gestionnaire de paquets apt à jour.

Étape 4 : Installer les paquets nécessaires.

Pendant l’installation de mysql-server, vous devriez avoir à entrer un mot de passe pour l’utilisateur d’administration; ce mot de passe sera nécessaire pour tester phpMyAdmin à l’étape 9.

Étape 5 : Configurer Apache pour l’utilisation de PHP7.

Puis, nous redémarrons le service web.

Étape 6 : Tester l’installation d’Apache et de PHP7.

Nous créons d’abord un fichier test.php pour y afficher les informations relatives à php dans le DocumentRoot de notre serveur web. Par défaut, sous Debian 8 avec Apache2, le DocumentRoot devrait être /var/www/html/.

Nous devrions être capables de naviguer vers le serveur de développement sur la page test.php et obtenir quelque chose de similaire à ceci.


Étape 7 : Tester l’installation de MySQL server.

Pour tester l’installation de mysql-server, il suffit d’entrer une commande comme celle-ci :

Cette commande devrait afficher le nom des bases de données présentes sur votre serveur.

Étape 8 : Installer phpMyAdmin.

Dans ce tutoriel, j’installerai phpMyAdmin dans le répertoire /var/www/phpmyadmin et je créerai un VirtualHost pour ce répertoire.

L’archive de phpMyAdmin que nous utiliserons est au format zip, tapper la commande suivante pour installer l’utilitaire unzip si vous ne l’avez pas par défaut.

D’abord, téléchargeons l’archive de phpMyAdmin et installons-la dans le répertoire voulu.

Puis, nous allons créer un fichier de configuration de phpMyAdmin en nous basant sur l’exemple fourni.

Et nous y modifions une ligne pour ajouter une clef Blowfish secrète à la configuration de phpMyAdmin.

Maintenant, vérifions que la clef a bel et bien été ajoutée.

La sortie devrait être similaire à ceci (avec une clef différente).

Finalement, nous créons un VirtualHost pour phpMyAdmin.

D’abord, nous créons un fichier de configuration pour le site phpMyAdmin.

Puis nous activons le site et nous redémarrons Apache2.

Étape 9 : Tester l’installation de phpMyAdmin.

Nous devrions être capables de naviguer vers le site phpMyAdmin de notre serveur de développement.

Il ne nous reste qu’à nous connecter à phpMyAdmin avec l’utilisateur root et le mot de passe choisi à l’étape 4.

 

Voilà!

Notre serveur web de développement est fonctionnel avec PHP7 et phpMyAdmin.