Sonnette connectée

Bien le bonjour !

Article mis à jour et modifié le 31/07/2019

Ajout du 31/07/2019 : suite à la question de Christophe C (question en face à face) =
–> Oui ; la photo sera prise par le module caméra du Raspberry (PiCamera ou RaspiCam).
Mais,
–> Oui ; ça fonctionne avec une WebCam ; il suffit de passer par fswebcam.
Du coup, je refais des scripts et remets l’article à jour.
Je vous mets en ligne 3 scripts et non juste 1 seul. C’est mieux que Noël 😉

Génèse :
Ayant été pas mal sollicité par diverses personnes par le biais de ce site suite à mes articles sur les photomatons, mais également “titillé” par certaines questions sur un forum (en simplifiant = pour de l’aide au sujet de scripts python), j’ai joué avec ce langage de programmation.
(private jok –> oui, j’ai un problème de savoir-être ; je suis capable d’aider les autres, moi !)

Bien que je n’ai pas encore eu (pris ?) le temps d’apprendre ce langage, les heures de “rétro-ingénierie” sur des scripts divers m’ont apporté une certaine capacité à coder des choses simples.
Non pas une connaissance du langage (je respecte trop le métier des autres et leurs diplômes), mais bien une simple capacité à créer du “qui fonctionne”.
Ce script est donc parfaitement améliorable 🙂 (d’ailleurs, un codeur correcteur dans la salle ???)

L’idée de la sonnette connectée avait déjà germé dans mon esprit tordu il y a des mois. Mais cette volonté a resurgi et est devenue réalité de travail hier. Tout fonctionnait hier soir, mais j’ai eu la force de ne pas rédiger le tuto hier dans la nuit.
Bon, comme j’ai passé la journée à aider des voisins à déménager* + codé pour un internaute afin d’adapter son photomaton, héhé, je ne tape ce tuto que ce soir un peu tard.
(private jok –> * : oui, j’ai un problème de savoir-être ; je sais prendre soin des autres, moi !)

Le principe est très très simple ; le tutoriel sera donc très très simple :

Le but final est d’avoir un bouton poussoir sur lequel les visiteurs vont naturellement appuyer puisqu’il s’agit d’une sonnette !
(A noter que je vous mets aussi un script sans bouton (il se pilote avec le clavier) ; juste pour vous permettre de tester sans bouton)

Cet appui va :

  • Générer un ding-dong (ou le bruit que vous voulez)
  • Réaliser une photo (son nom sera au format 21-06-2019_23-01-57.jpeg pour avoir date et heure aisément identifiables)
  • Stocker la photo dans le dossier “visiteurs” sur le Bureau du Raspberry Pi (ceci est évidemment modifiable)
  • Envoyer la photo par courriel (dont l’objet est de type “Photo sonnette 21/06/19 23:02:03”)

Il suffit donc de lancer le script (on peut automatiser la chose au démarrage évidemment) qui tourne alors en boucle (reste en attente)… et … c’est tout !

Mon article a été vérifié la veille de sa rédaction en suivant cette procédure en repartant de rien (oui, je réinstalle toujours tout le système (Raspbian puis mes scripts) ; juste pour vérifier mes tuto).
Cependant, comme écrit en préambule, je retravaille tout l’article en ce 31/07/2019 … et … cette version est également testée sur une réinstall’ fraiche.

J’ai initialement commencé par réaliser une installation de Raspbian Stretch Release 2019-04-08 avec activation de la caméra, du SSH et de VNC.
Mais, pour la mise à jour du 31/07/2019, je suis bien sûr parti de mon installation de Raspbian Buster (avec activation de la caméra, du SSH et de VNC).

Ensuite, on installe mutt pour pouvoir envoyer des courriels en ligne de commandes avec des pièces jointes

sudo apt update && sudo apt install mutt -y && mutt

On lance valide et on ferme mutt (avec “q”)

Configuration du service de courriels :
Voici mon exemple de configuration avec Gmail (oui, je sais, c’est mal):
[mode aparté]Gmail, c’est mal, mais je suis tout de même un résistant = je n’ai ni FaceBook, ni Twitter, ni Instingram, ni rien, juste 1 adresse Gmail historique ; créée du temps où on devait être invité pour avoir le privilège d’obtenir une adresse Gmail ; la mienne date du 01/01/2005 à 18h10).[/mode aparté]

On édite le fichier de configuration avec

sudo nano /home/pi/.muttrc

On y colle ceci puis on l’adapte à son cas (exemple pour Gmail avec le mode sécurisé)

set from = "expediteur@gmail.com"
set realname = "Sonnette connectée à base de Raspberry Pi"
set imap_user = "expediteur@gmail.com"
set imap_pass = "mot-de-passe-en-clair"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://expediteur@smtp.gmail.com:587/"
set smtp_pass = "mot-de-passe-en-clair"
set ssl_starttls="yes"
set move = no set imap_keepalive = 900

Pour enregistrer, il faut faire “crtl”+”x” puis “o” puis “Entrée”.

On vérifie que la configuration est fonctionnelle avec (changez “destinataire@domaine.truc” par l’adresse sur laquelle vous voulez envoyer le message)

echo Ceci est le corps du texte | mutt -s "Ceci est l'objet" destinataire@domaine.truc

Maintenant, on essaye avec une pièce jointe ?

Allez, création de la photo de test.

Avec le module RaspiCam ou PiCamera =

raspistill -h 600 -w 800 -o /home/pi/image-de-test-pour-courriel.jpg

Avec une camera USB = Dans ce cas, commencez par installer fswebcam avec sudo apt install fswebcam

fswebcam -S 10 -r 640x480 /home/pi/image-de-test-pour-courriel.jpg

On vérifie que la configuration est fonctionnelle avec (comme ci-dessus, changez “destinataire@domaine.truc” par l’adresse de réception)

echo "Ceci est le corps du texte" | mutt -s "Ceci est l'objet" -a /home/pi/image-de-test-pour-courriel.jpg -- destinataire@domaine.truc

Chez moi, le courriel arrive bien. Et de manière extrêmement rapide (bon, OK, j’ai la fibre)

Maintenant, on doit intégrer le script “sonnette”.

Comme je suis vraiment très (très) sympa, plutôt que de vous écrire le script ici pour vous le faire recopier par [copier/coller] = je l’ai mis dans un zip et … j’ai ajouté le fichier son.
Ce fichier son est évidemment remplaçable par “ce que vous voulez” (soit vous utilisez le même nom pour votre fichier, soit vous adaptez le script)

Pour récupérer le script qui vous intéresse … il suffit de cliquer dessus (voir liste plus bas).

Ensuite, vous le dézippez dans /home/pi (faites un clic droit puis “extraire vers” et notez /home/pi puis cliquez sur “valider”)

A noter que si vous voulez utiliser la fonction d’envoi de courriel, il faudra éditer mon script (avec Geany ou votre éditeur Python préféré) et faire “Rechercher” puis “Remplacer”. Et là, vous notez destinataire@domaine.truc dans le champ Rechercher et l’adresse complète où vous voulez envoyer les photos dans Remplacer par. VOus sauvegardez le changement et refermez Geany.

J’ai fait 3 scripts

  1. Script normal pour vraiment réaliser une sonnette connectée à base de Raspberry (l’original)
  2. Script avec le module Pi-Cam (ou RaspiCam) et expédition de courriel, mais sans nécessité de bouton
  3. Script sans bouton ni la Pi-Camera (simple caméra USB) sans la fonction courriel (juste pour s’amuser à tester)
  4. Script sans bouton ni la Pi-Camera (simple caméra USB) avec la fonction courriel

1 – Pour le script original complet, évidemment, il faut connecter un bouton poussoir sur le port GPIO idoine (le 24 ici soit le [BCM24] qui est le [GPIO18] ; référez-vous au site https://fr.pinout.xyz)

Pour récupérer le script sonnette.py … il suffit de cliquer dessus.

Ensuite, vous le dézippez dans /home/pi et vous pourrez le tester en tapant

python3 /home/pi/sonnette/sonnette.py

Il vous restera alors à rendre l’action automatique au démarrage … en lisant mon autre article, très justement intitulé : Lancement automatique d’un script au démarrage

(purée, parfois, je me sidère moi-même 😉 )

2 – Script sans nécessité de bouton, mais avec module Pi-Cam (ou RaspiCam) et expédition de courriel

Le script sonnette-test-clavier.py se récupère aussi par téléchargement direct.

Ensuite, vous le dézippez dans /home/pi et tapez

python3 /home/pi/sonnette-test-clavier/sonnette-test-clavier.py

3 – Pour débuter aisément en s’amusant, voici également un script simple de sonnette avec une WebCam et sans bouton poussoir (on passe par le clavier).

4 – Script au clavier avec camera USB et courriel appelé sonnette-usb-complet.
Dans ce cas également, installez fswebcam avec sudo apt install fswebcam

Après, vous pouvez mixer les scripts entre eux pour avoir, par exemple, un script avec caméra USB, mais bouton et expédition de courriel.

Sinon, je peux vous le faire à la demande.

Bien sûr, vous pouvez réagir via les commentaires ci-dessous.

La bise (comme dirait Maël J 😉 ; autre Private Jok)

P.S. : avant de mettre cette sonnette en production, renseignez-vous sur la législation relative à la détention d’image d’autrui + la présence d’un appareil d’enregistrement sur la voie publique + la présence d’un appareil d’enregistrement dans la sphère privée.

 

A propos de Alban

Papa de 4 enfants étant lui même resté un enfant. Tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*