Développement web ecommerce & mobile

Des services web à forte valeur ajoutée au service de votre croissance

Comment installer un Raspberry Pi Zéro pour prendre en charge un Hat SIM800X GSM/GPRS

Retourner à la liste des articles

Si vous souhaitez mettre en place une plateforme d’envoi/réception de SMS pour vos client e-commerce, vous aurez besoin d’une solution technique pour assurer le routage de vos SMS.

Une étude large nous a permis de lister entre autres 2 solutions viables mais à un coût différent.

  • La première est d’utiliser une plateforme de routage avec abonnement et achat de crédit pour des envois/réception de SMS via une API (exemple : Twilio, octopush etc…). Même si les coûts sont mineurs, à long terme et à grande échelle cela peut se révéler problématique. Par contre vous n’aurez pas à assurer l’infogérance de la passerelle SMS et vous en serez simple consommateur.
  • La seconde (et celle qu’on va présenter ci-après) est de domicilier la passerelle SMS chez vous ou dans votre bureau. Cela implique un investissement de départ correspondant à l’achat d’une carte mère ainsi qu’une carte assurant la connectivité SMS.

Choix de la carte mère et du modem GSM

Après étude de marché nous avons retenu une carte utilisée par une large communauté et au coût réduit. Nos besoins nous ont mené à choisir une déclinaison de carte avec connectivité WIFI intégrée. Notre choix est le Raspberry Pi Zero W v1.1. Pour la connectivité GSM, nous nous sommes dirigés vers une technologie éprouvée avec prise en charge des dernières normes 4G : la carte HAT SIM800X GSM/GPRS (Hat SIM 800X GSM/GPRS) avec la puce SIM800C.

Notre Raspberry Pi Zero W v1.1
Le Hat SIM800X GSM/GPRS

Il vous faudra assurer le stockage des données pour faire fonctionner le Raspberry Pi Zero W v1.1 via une carte mémoire Micro SD. Un espace supérieur à 8Go sera nécessaire pour stocker l’OS et les données/logiciels.

Installer l’OS sur la carte mère

Pour installer un OS sur la carte mère, prenez votre carte micro SD et via un adaptateur, branchez la à votre ordinateur.

Installez l’utilitaire Etcher et téléchargez la dernière version de Raspberry Pi OS Lite en cliquant ici. Dans Etcher, sélectionnez le zip de l’OS précédemment téléchargé, puis la carte micro SD comme destination, et Flashez la carte MicroSD. Cela prend quelque minutes mais c’est assez simple.

Assurer la connectivité Wifi et SSH du raspberry Pi

Pour permettre une connexion en SSH pour contrôler sans écran la carte mère il faut rebrancher la carte micro SD à l’ordinateur, et dans la partition /boot qui a été créée via Etcher, il faut créer un fichier vide qu’on va nommer SSH sans aucune extension (utiliser son éditeur de texte préféré et enregistrer sous avec SSH comme nom sans extension).

Pour donner les accès à la carte mère pour se connecter au réseau Wifi local de chez vous, il faut lui donner les infos dans un fichier nommé wpa_supplicant.conf qu’on va déposer à la racine de la carte SD. Ainsi au démarrage, l’OS va explorer la racine du dossier s’il trouve ce fichier, il va en récupérer les données et les trasmettre à l’interface réseau.

Vous pourrez insérer dans le fichier wpa_supplicant.conf créé précédemment le contenu suivant :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NOM_SSID_A_REMPLACER"
psk="CODE_WPA_WIFI_A_REMPLACER"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
auth_alg=OPEN
}

Vous pouvez ensuite insérer la carte Micro SD dans la carte mère directement. Puis branchez la carte mère Raspberry Pi Zéro en USB à votre ordinateur ou à son alimentation externe pour qu’elle démarre. Attendez 2 minutes qu’elle puisse s’initialiser et connectez vous y via le protocole SSH.

Allez sur l’interface de votre Box pour récupérer l’adresse IP qui a été allouée au Raspberry Pi Zéro et via votre terminal préféré, ou Putty, connectez vous à l’IP en question (192.168.1.62 par exemple pour nous). Pour rappel, en adresse ou host entrez 192.168.1.x (remplacez le x par celui que vous avez), pour le port : 22, et identifiant : pi puis mot de passe raspberry

Une fois identifié, faites une mise à jour globale de votre OS via les commandes suivantes :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install rpi-update
sudo rpi-update

Ensuite installez des utilitaire pour exploiter notre hat (git pour récupérer des scripts) et wiringPi. Puis Minicom pour l’interface avec le port série.

sudo apt-get install git
sudo apt-get install wiringpi
sudo apt-get install minicom
git clone https://www.github.com/fpie/nadhat

Puis configurons les interfaces de notre raspberry Pi Zero via la commande

sudo raspi-config

Vous arrivez sur une interface graphique, réglez les langues via Localisation Options, mettez le clavier en fr_FR utf8, changez la timezone vers le fuseau Europe / Paris et réglez le Wifi en français.

Puis dans Interfacing Options -> Serial -> Sélectionnez Non sur le premier écran puis Oui sur le deuxieme écran. Ce qui fait que le Serial Login Shell sera désactivé et l’interface Sérial sera activée.

Puis validez et Terminez. L’utilitaire vous demandera un reboot de la carte. Il le fera tout seul ensuite.

Au redémarrage, reconnectez vous en SSH au Raspberry de la même manière et modifiez le fichier /boot/config.txt en entrant la commande sudo nano /boot/config.txt

Puis ajoutez à la fin du fichier : dtoverlay=pi3-miuart-bt puis faites CTRL-X puis Oui pour valider l’enregistrement des modifications.

Vous devez ensuite rebooter votre raspberry Pi Zero pour que les modifications soient prises en compte. Vous pouvez brancher votre HAT sur le raspberry Pi Zero. Il suffit de le clipser dessus.

Reconnectez vous en SSH et entrez les commande suivante pour initialiser la carte GSM/GPRS

cd /home/pi/nadhat/software
./nadpwr.sh

Vous devriez voir les leds de votre Hat réagir à cette commande.

Commander le Hat GSM/GPRS via le port Série

Pour prendre le contrôle de la carte GSM/GPRS via le port Série du Raspberry Pi Zéro W, utilisons l’utilitaire minicom.

minicom -b 115000 -o -D /dev/ttyAMA0

Testez la réponse de la carte en entrant at+cmgi dans les commandes du port série et validez. Vous devrez recevoir la réponse : SIMCOM_Ltd. C’est le nom du constructeur.

Puis entrez les commandes suivantes selon vos souhaits:

  • Pour entrer le code PIN de la carte SIM : at+cpin=CODEPIN
  • Pour lister les réseaux GSM à proximité : at+cnetscan
  • Pour fixer le numéro du centre d’appel/sms de votre opérateur (celui de free mobile par exemple) : at+csca= »+33695000695″
  • Pour passer en mode SMS textuel : at+cmgf=1 et (0 pour en sortir)
  • Pour envoyer un SMS : at+cmgs= »+336XXXXXXXX » contenu du SMS pour CTRL+Z quand vous avez saisi votre contenu de message.
  • Pour eteindre la carte : at+cpowd=1

Dans un autre article, nous verrons comment créer un utilitaire pour créer une API pour envoyer et recevoir les SMS via Gammu