Envoyer un SMS avec votre Raspberry

Cet article vous présente comment envoyer un SMS sur un téléphone mobile avec un script Python. Personnellement, j’exploite le fantastique Raspberry mais vous pouvez utiliser ce script sur n’importe quel système.

Comment ça marche ?

Pour envoyer un SMS (Short Message Service), nous allons créer un script d’une dizaine de lignes de codes. Pour avoir si peu de code, vous vous doutez bien que nous allons utiliser une API. Il faut donc pour commencer, vous créer un compte gratuit sur le site Twilio : https://www.twilio.com

Le service est gratuit, avec un envoi de SMS quasi illimité, si vous n’enregistrer qu’un seul numéro de destinataire. Ce qui est largement suffisant pour faire du monitoring par exemple.

Une fois cotre compte créé, vous arrivez sur votre dashboard :

dashboard-twilio

Vous pouvez alors voir 2 informations importantes que nous allons réutiliser dans le script : account SID et auth token.

Account SID est votre identifiant Twilio tandis que auth token est votre clé d’utilisation de l’API.

Il faut maintenant créer un numéro de téléphone Twilio. Ce numéro est celui qui sert à envoyer les SMS et donc celui qui s’affiche lorsque vous recevez le message.

Rendez-vous sur l’onglet Phone Numbers > manage : https://www.twilio.com/user/account/phone-numbers/incoming

Choisissez bien un numéro qui peut servir à envoyer des SMS (certains ne peuvent servir qu’aux appels vocaux).

Notez ce numéro de téléphone (avec la notation internationale +33xxxx).

manage-numbers-twilio

 

Le script Python

Nous allons maintenant créer une script permettant d’exploiter l’API. Si vous n’avez pas encore installer la librairie, voici comment procéder :

sudo apt-get install python-dev

Si vous utiliser la distribution Raspbian, Python est normalement déjà installé.
Tapez maintenant :

sudo nano sendSMS.py

L’éditeur Nano s’ouvre, copier / coller les lignes suivantes :

# SCRIPT D'ENVOI DE SMS // API TWILIO
 import sys 
from twilio.rest import TwilioRestClient 

# configuration login 
account_sid = "xxxxxxxxx" 
auth_token = "xxxxxxxxx" 
client = TwilioRestClient(account_sid, auth_token) 

# Message a envoyer 
#message = "COUCOU C'EST LE RASPBERRY :)" 
#message = raw_input("Entrez votre message : ") 
message = (sys.argv[1]) 
message = client.messages.create(to="+33xxxxxx",from_="+33xxxxx", body=message) 
print message.sid 
print (sys.argv[1]) 
print (sys.argv[0]) 
print "API Twilio" print "OK!"

Veillez à bien compléter les informations suivantes :

account_sid : remplacer les « xxxx » par votre identifiant Twilio
auth_token : remplacer les « xxxx » par votre token Twilio

Deux numéros de téléphones sont nécessaire :
to = : remplacer par le numéro de téléphone qui reçoit les SMS (celui avec lequel vous avez créé votre compte Twilio)
from_ : le numéro de téléphone qui envoie les SMS. C’est celui que vous avez créé dans Twilio pour l’envoi de SMS.

Notez que j’ai mis 3 méthodes pour le contenu texte du message (2 sont mises en commentaire à l’aide d’un #)

1 – la méthode « en dur ». Le texte ne change pas, c’est toujours le même envoyé à chaque message message = « votre message ». C’est en dur directement dans le script.

2 – interaction durant l’exécution du script. Une fois le script Python exécuté, vous être invité à entrer le message a envoyé.

message = raw_input("Entrez votre message : ")

3 – ma méthode préférée, l’argument lors de l’appel du script :

message = (sys.argv[1])

Pour l’utiliser, on ajout le texte terrière l’appel du script, par exemple :

sudo python sendSMS.py "le message a envoyer"

Voilà, vous pouvez maintenant utiliser votre Raspberry pour envoyer des SMS. Que ce soit pour le monitoring, de la domotique ou tout autre chose, c’est bien pratique et gratuit.

 
5 commentaires Ajoutez les votres
  1. Bonjour. j’ai suivi votre description du programme,mais cela ne fonctionne pas? doit-on acheter un n°de téléphone ou bien y a t-il une erreur de ma part? à vous lire .salutations

  2. Bonjour. j’ai copié votre prog avec Geany-raspberry. la compilation est ok,mais il est impossible d’enoyer un sms?.Twilio fonctionne bien en direct.ex W7_twilio! avez -vous une idée du probleme. à vous lire .salutations

Laisser un commentaire

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

Système anti spam *