Le pcDuino est un système informatique open source qui offre aux utilisateurs une variété de possibilités de programmation. Il est particulièrement utile pour les applications réseau, car il permet aux utilisateurs de créer des programmes qui peuvent interagir avec le réseau. Dans cet article, nous allons examiner comment le pcDuino peut être utilisé pour programmer un bouton-poussoir qui enverra un mail lorsqu’il est activé. Nous verrons comment configurer le pcDuino pour envoyer un mail et comment créer le programme qui enverra le mail lorsque le bouton-poussoir est activé.
Programmer le pcDuino : Réseau : L’appui sur un BP envoie un mail !
Ce que l’on va faire ici
- Dans ce code, l’appui sur un bouton poussoir va envoyer un mail ! Non, vous ne rêvez pas : c’est assez facile à faire avec Pyduino grâce aux fonctions intégrées dans la librairie.
- On utilise ici un bouton poussoir, mais il pourra s’agir de n’importe quel autre capteur… qui pourra envoyer un mail d’alerte à la demande !
- Pour plus de détails, se reporter aux instructions pyduino Réseau
Pré-requis
- un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
- Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
- ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino
- D’autre part, vous devez disposer d’un compte mail personnel avec un serveur SMTP actif, ce qui est le cas la plupart du temps. Si vous n’en n’avez pas, créez en un pour l’occasion. Sinon, il est aussi possible d’installer un serveur SMTP sur le pcDuino, mais la procédure est plus complexe pour un simple test.
- Vous devez disposez des informations suivantes :
- nom du serveur smtp : par exemple mail.mondomaine.fr. Info fournie par votre hébergeur de mail
- port utilisé sur le serveur smtp : par défaut 25, mais parfois 26 ou 587… Info fournie par votre hébergeur de mail.
- votre adresse mail et le mot de passe associé.
- l’adresse mail du destinataire.
Schéma fonctionnel
- L’entrée numérique déclenche l’envoi du mail : le code Pyduino se connecte au serveur SMTP utilisé, transmet le mail qui est ensuite distribué au destinataire par le serveur SMTP.
Matériel nécessaire
Système
- Le pcDuino connecté à internet via le réseau local
E/S
- une plaque d’essai pour montage sans soudures,

- des straps,

- un bouton poussoir pour CI,

Instructions de montage
- Connecter un bouton poussoir entre la broche 2 (configurée en entrée avec rappel au plus) et le 0V
Le montage à réaliser
Le fichier *.py
Copier/coller ce code dans l’éditeur Geany :
# -*- coding: utf-8 -*-
# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Aout 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino
# l’appui sur un bouton poussoir envoie un mail !
from pyduino import * # importe les fonctions Arduino pour Python
# entete declarative
BP=2 # declare la broche a utiliser
APPUI=LOW # valeur broche lors appui
mailServer=None
#— setup —
def setup():
# config BP
pinMode(BP,PULLUP) # met la broche en entree avec rappel au plus actif
Serial.println(« La broche 2 est en entree avec rappel au plus actif ! »)
# config serveur mail
global mailServer
mailServer=MailServer()
#– parametres du serveur smtp
mailServer.setName(« serveurmail.expediteur.fr »)
mailServer.setPort(25)
#– expediteur
mailServer.setFromMail(« adresse@expediteur.fr »)
mailServer.setFromPassword(« motdepasseexpediteur »)
#– destinataire
mailServer.setToMail(« adresse@destinataire.fr »)
# affiche parametres
print « serveur smtp : «
print « nom : « + mailServer.name
print « port : « + str(mailServer.port)
print « expediteur : »
print « adresse mail : « + mailServer.fromMail
print « mot de passe : « + mailServer.fromPassword
print « destinataire : «
print « adresse mail : « + mailServer.toMail
print « —————–«
# — fin setup —
# — loop —
def loop():
global mailServer
if(digitalRead(BP)==APPUI): # si appui
Serial.println(« Appui BP! »)
Serial.println(« Mail en cours d’envoi… »)
# contenu du mail
mailServer.setSubject(« Envoi mail par Pyduino »)
mailServer.setMsg(« Appui sur bouton poussoir le « + nowdatetime()+« . »)
# envoi message
mailServer.sendMail()
Serial.println(« Fin d’envoi du mail. »)
Serial.println(« »)
delay(250) # anti-rebond
delay(100) # pause entre 2 lecture du BP
# — fin loop —
#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
setup() # appelle la fonction main
while not noLoop: loop() # appelle fonction loop sans fin
Ce code est également disponible ici : https://raw.github.com/sensor56/pyduino-exemples/master/Ethernet/digitalReadSendMail.py
Utilisation
- Appuyer sur le bouton exécuter dans Geany
- Une fenêtre de Terminal vide doit apparaître :
- lors d’un appui sur le bouton poussoir, un message indique qu’un mail est en cours d’envoi
- puis suit l’affichage du contenu du mail envoyé.

- Il suffit ensuite d’ouvrir sa messagerie mail pour visualiser le mail envoyé. Attention, un petit délai est parfois nécessaire, c’est normal.

Discussion technique
- Il est potentiellement possible d’implémenter le serveur mail directement sur le miniPC si on le souhaite, mais la procédure est un peu plus compliquée.
Articles similaires:
- Programmer le pcDuino : Réseau : Envoyer un mail !
- Programmer le pcDuino : Python simple : Entrée numérique : Détecter l’appui sur un bouton poussoir
- Programmer le pcDuino : Synthèse vocale : L’appui sur un BP déclenche un message en synthèse vocale annonçant l’adresse IP du système.
- Programmer le pcDuino : Python simple : Entrée numérique : L’appui sur un bouton poussoir allume une LED
- Programmer le pcDuino : Synthèse vocale : L’appui sur un BP déclenche un message en synthèse vocale.
Articles Liés
- Javascript : Graphique Dygraphs simple
Le Javascript est un langage de programmation très populaire et puissant qui permet aux développeurs…
- Javascript : Afficher 6 widgets graphiques fournis par une librairie graphique externe.
Le Javascript est un langage de programmation très populaire qui permet aux développeurs de créer…
- Javascript : Graphique Dygraphs : afficher date à partir unixtime
Le langage de programmation Javascript est très populaire et est utilisé pour créer des applications…