Vous êtes sur la page 1sur 7

27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin

Transformer un Raspberry Pi en serveur SMS


La note a été taggée Raspberry Pi, SMS.
Posté le 17/03/2017 par Pierre Dandumont

Récemment, j’ai enfin terminé un projet qui peut être pratique : un serveur SMS à base
SOUTENIR LE BLOG de Raspberry Pi. L’intérêt ? M’envoyer des alertes à base de SMS en cas de soucis
avec mon NAS.

Le projet

L’idée de base consiste à installer un serveur capable d’envoyer des SMS depuis mon NAS Synology
quand il détecte des mouvements depuis mes caméras de surveillance. Donc, en simplifiant, un
Raspberry Pi avec un modem cellulaire, un abonnement pas trop cher, et un logiciel compatible le NAS.
Cette partie là ne pose pas de soucis dans l’absolu (même si ça demande un peu de manipulations).
Ce qui est plus gênant pour le moment, c’est que mon installation manque très clairement de fiabilité en
cas de soucis. Premier point, je capte mal chez moi. J’espérais qu’un modem dédié donne un meilleur
résultat qu’un téléphone, mais ce n’est pas tellement le cas. Pour mes autres appareils, j’utilise un
femtocell, mais la contrainte suivante rend son usage caduque. Mon second problème vient de la
résistance aux coupures de courant. Actuellement, mon NAS n’est pas sur un onduleur pour une raison
simple : son bruit me gêne et l’onduleur est dans mon bureau. Du coup, le NAS se trouve dans une
autre pièce. A l’origine, je comptais mettre le Raspberry Pi sur batterie (l’onduleur du pauvre) mais sur
un Raspberry Pi 3, ça ne fonctionne pas comme prévu : quand je place ma batterie entre le secteur et
le Raspberry, couper le courant redémarre la carte, visiblement la batterie a un délai au moment de
passer de son alimentation à la batterie. Et le problème du femtocell intervient : sans énergie, le modem
capte mal étant donné que le femtocell ne fonctionne plus. Enfin, même en réglant ce souci, le NAS et
le Raspberry Pi doivent pouvoir communiquer sans énergie, ce qui implique une connexion directe (par
exemple sur la seconde interface du NAS) mais rend la gestion du Raspberry Pi beaucoup plus
compliquée. Pour le moment, j’ai donc une solution fonctionnelle dans l’absolu, mais qui résiste mal à
un truc idiot comme une coupure de courant. Dans l’idéal, il faudrait protéger la connexion à Internet, le
Raspberry Pi, les caméras, le NAS et le femtocell, ce qui est irréalisable dans mon cas. Enfin, un
dernier souci intervient : le choix du forfait. Beaucoup ne permettent tout simplement pas ce type de
choses – il ne s’agit d’un usage en bon père de familles – et les désactivations de forfaits ne sont pas
rares pour ceux qui abusent.

MAJ : vu qu’on me l’a indiqué plusieurs fois, je sais parfaitement que Free propose un service
compatible avec les NAS. Il suffit d’avoir un forfait (même à 0 €) et il est possible de configurer une
adresse précise pour le NAS. Mais le problème reste le même : en cas de coupure de la connexion à
Internet, le service ne fonctionne pas (et il faut évidemment être abonné chez Free).

le problème du modem

A la base, je comptais juste utiliser un vieux téléphone avec un adaptateur série pour envoyer les SMS,
ce qui est parfaitement suffisant. Mais j’ai abandonné : mes vieux téléphones amènent trop de
contraintes. La principale vient du fait qu’il est compliqué de connecter certains modèles et de les
charger en même temps, sans même prendre en compte l’obligation de disposer de deux prises. Je
me suis donc tourné avec un modem 3G, un ZTE MF190. De la taille d’une clé USB il fait aussi office
de lecteur de cartes microSD (aucun intérêt) et a l’avantage d’être reconnu nativement sous Linux. Mais
il n’est pas simple à installer, pour une raison idiote : par défaut, il s’authetifie comme un lecteur de CD-
ROM virtuel contenant les pilotes. Il existe différentes méthodes pour le forcer en mode modem par
défaut, j’ai décidé de le faire directement dans le modem lui-même.

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 1/7
27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin

Mon modem 3G sur un Raspberry Pi 3

Première étape, brancher le modem et vérifier comment il s’identifie avec la commande lsusb. Dans
mon cas, avec l’ID suivant : 19d2:0083. Une fois la valeur notée, je l’ai éjecté logiciellement pour forcer le
mode modem. Sur un PC, la commande est peut-être eject /dev/sr1.

sudo apt-get install eject

eject /dev/sr0

Normalement, après quelques secondes, il va s’identifier comme un modem, avec un autre ID


(19d2:0124). Sans le débrancher, il faut ensuite se connecter dessus avec minicom et taper deux
commandes AT pour forcer le mode modem en permanence. Attention, du coup, le modem n’affichera
plus ses pilotes sur une machine Windows/Mac OS X. Le modem montre plusieurs interfaces série,
mais seule la dernière (/dev/ttyUSB4) fonctionne.

sudo apt-get install minicom

sudo minicom -D /dev/ttyUSB4

Une fois dans minicom, pressez ctrl + A pour les menus, et E pour afficher le retour. Ensuite, entrez les
commandes suivantes (normalement suivies d’une réponse du modem).

AT+ZOPRT=5

AT+ZCDRUN=8

Pour quitter, il faut faire ctrl + A puis X. Normalement, le modem passera ensuite directement en mode
modem, testez en le branchant et le rebranchant puis en vérifiant l’ID avec lsusb.

Dernière étape avant de tester l’envoi de SMS, pensez à désactiver le code PIN sur un téléphone, ça
simplifie grandement les choses.

L’envoi de SMS

J’ai utilisé le tutorial de ce site, suffisant pour mon usage. Il suffit d’installer un programme qui s’appelle
Gammu, qui permet de gérer les SMS.

apt-get install gammu

apt-get install gammu-smsd

Une fois installé, il faut juste effectuer quelques réglages.

sudo nano /etc/gammu-smsdrc

Dans le fichier, il faut définir le port et la vitesse, dans mon cas avec les paramètres suivants.

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 2/7
27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin

port = /dev/ttyUSB4

connection = at19200

Ensuite, il faut lancer le service (service gammu-smsd start) et vérifier que les SMS partent. TEXT indique le
type de message, suivi du numéro (je préfère la notation complète) et du texte. Attention, ne dépassez
pas 160 caractères.

sudo gammu-smsd-inject TEXT 0033612345678 -text "Hello World"

Normalement, ça va fonctionner. La commande peut indiquer un message sur l’absence de code PIN
dans la configuration, mais ce n’est pas important si vous avez désactivé le code avant.

Le serveur Web

Ca reste assez sale et basique, mais ça fonctionne. Une simple page PHP qui appelle le script.

sudo apt-get install lighttpd

sudo apt-get install php5-common php5-cgi php5

sudo lighty-enable-mod fastcgi-php

sudo service lighttpd force-reload

cd /var/www/html

sudo nano sendsms.php

Le contenu appelle juste le script avec deux paramètres.

<?php

$numero = $_GET['numero'];

$texte = $_GET['texte'];

echo `sudo gammu-smsd-inject TEXT '$numero' -text '$texte'`;

?>

Une fois le code sauvé, une petite modification s’impose pour permettre au script de se lancer.

sudo nano /etc/sudoers

Il faut ajouter cette ligne à la fin du fichier.

www-data ALL=(ALL) NOPASSWD: /usr/bin/gammu-smsd-inject

Pour des questions pratiques, je vous conseilles de fixer l’IP du Raspberry Pi (ou de mettre un DNS
maison pour ça). Ensuite, l’URL à utiliser ressemble à ça.

http://IP_DU_PI/sendsms.php?numero=0033612345678&texte=hello+word

Je vous conseille de redémarrer et de vérifier que ça fonctionne avant de passer à la dernière étape.

Sur le NAS

Sur le NAS, il faut se rendre dans le Panneau de configuration, dans les Notifications. Un onglet
permet de gérer les alertes par SMS. Il faut l’activer, et ensuite Ajouter un fournisseur de services
SMS. Choisissez un nom, ensuite une URL. L’URL doit contenir le message “Hello World”, un numéro
de téléphone ainsi qu’un utilisateur et un mot de passe. J’ai triché, en mettant n’importe quoi.

http://192.168.1.23/sendsms.php?numero=0033612345678&texte=hello+world&login=moi&pass=toto

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 3/7
27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin

L’ajout de serveurs SMS

La page suivante détecte les paramètres et demande de les vérifier.

L’adresse (avec une erreur dans la capture)

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 4/7
27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin

Les paramètres

Enfin, il suffit de mettre les bons paramètres (login et mot de passe, ce que vous voulez) et un numéro
(n’oubliez pas le +), avant de tester.

Le résultat

C’est terminé, les notifications peuvent être utilisées (par exemple dans Surveillance Station). Bon, il
existe pas mal d’améliorations possibles, comme la réception de messages, la sauvegarde des
messages, l’authentification réelle, l’usage de SMS flash, etc. Mais je vous laisse chercher si le sujet
vous intéresse.

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 5/7
27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin

Les messages arrivent

Partager l'information avec vos amis

Tw eeter

Related

Honteux Bidouillage : le RaspCamera NoIR Ajouter du Wi-Fi et du Bluetooth à un Se connecter à Internet (et à un BBS) à
07/11/2013 Raspberry Pi Zero 300 bauds avec un modem acoustique
In "Apple" 01/09/2016 [MAJ]
In "Apple" 22/04/2014
In "Apple"

Soutenir le blog sur Patreon

6 commentaires

DoD dit :

Bonjour.

Très très bon article. Je vais l’utiliser, à coup sur, avec un abonnement à € de chez free.

“j’ai ‘enfin’ terminé un projet qui peut être pratique ” m’a fait sourire.

Le 17/03/2017 à 08:10

Jpp dit :

Sinon vu qu’on a tous des smartphone, moi ce que j’ai fais c’est une adresse Gmail que pour les notifications, et configuré sur mon smartphone

avec notification directe, c’est aussi rapide qu’un SMS. Et je ne donne cette adresse à personne, donc pas de spam…
Par contre ça ne marche pas si il y a une coupure internet…

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 6/7
27/08/2017 Transformer un Raspberry Pi en serveur SMS | Le journal du lapin
Le 17/03/2017 à 18:29

Baloo dit :

Une question bête : dans la partie SMS du Syno, on ne peut pas directement entrée les paramètres d’une carte Free ?

Il me semblait que Free avait activé l’envoi par un PC.

Le 18/03/2017 à 07:51

Pierre Dandumont dit :


Si, mais il faut être chez Free, déjà, et ensuite ça impose une connexion fonctionnelle (c’est un peu mon problème)

Le 18/03/2017 à 09:17

Charloux dit :

Il y a chez Free, une solution intégré qui permet de s’envoyer (uniquement à soi-même) un SMS à partir d’internet avec une URL (dont Token). Je

l’utilise pour les Alerte LeBonCoin. Mais la solution ici permet d’envoyer des messages à tous ces amis …

Le 20/03/2017 à 08:38

@EMFR68 dit :

et avec un modem sériel comme : http://letmeknow.fr/blog/2015/10/14/tuto-module-gsm-sim800l-prise-en-main/ ?

plus de problèmes d’usb et conso rikiki

Le 20/03/2017 à 14:02

Le journal du lapin par Pierre Dandumont.

http://www.journaldulapin.com/2017/03/17/sms-serveur-raspberry-pi/ 7/7