MicroPython: Envoyer et recevoir des SMS avec la carte NadHat-GSM

Nous avons déjà eu l'occasion de parler de la carte NadHat GSM pour Raspberry-Pi.

carte NadHat GSM

Cette fois, chez MCHobby, nous voulions l'utiliser avec nos cartes MicroPython préférées (Pyboard et PYBStick) pour réaliser des appels téléphoniques ou envoyer/recevoir des SMS.

Nous avons donc commencé à écrire la bibliothèque SimModem.py avec schémas et nombreux exemples.

Nous sommes maintenant en mesure de contrôler les fonctionnalités de bases de la communication.

Brancher

Voici le branchement pour Pyboard et PYBStick.

Remarque

Vous noterez la présence d'une alimentation externe mais surtout d'une capacité sur l'alimentation du GPIO. Il faut pouvoir assurer une alimentations stable au module GSM. Parfois, même une alimentation de Labo n'a pas le punch nécessaire pour éviter la chute de tension lors d'un "Current Burst" (pointe de courant). Ceux-ci peuvent atteindre 2A pendant une fraction de seconde.

Il est préférable d'avoir une réserve d'énergie à disposition pour supporter les pics de courant (notamment durant l'enregistrement du module SIMCom sur le réseau mobile) sinon le module SIM reboote simplement. C'est la raison de la présence de la capacité placée sur le GPIO.



Parmi les nombreux exemples de la bibliothèque SimModem, nous allons nous pencher sur l'envoi de SMS. Cette fois, nous avons fait en sorte que cela fonctionne aussi avec les accentués.

from machine import UART, Pin
from smodem import SimModem, AS_READY
import time

PIN_CODE = '1234'       # <<<<< MODIFIER ICI !

PHONE = '+32496928xxx'  # <<<<< MODIFIER ICI !

# UART and PowerPin to SIM Module
# Will be reconfigured by SimModem
uart = UART(1)  # X9, X10 sur Pyboard
pwr = Pin('Y3') # Broche Power On

m = SimModem( uart, pwr_pin = pwr, pin_code=PIN_CODE )
m.debug = False

r = m.activate()   # Activer/Réinitialiser le modem
m.wait_for_ready() # Attendre que le modem soit prêt

mr = m.send_sms( PHONE, 'Hello world!\r\nFrom MicroPython' )
if mr:
	print( "Message sent. Message_reference: %i" % mr )
else:
	print( "Message not sent (or Message_reference not captured)" )

# Using Latin chars
mr = m.send_sms( PHONE, 'Bénédicte est la maîtresse à demeure :-)\r\nMerci MicroPython & NADHAT-GSM' )
if mr:
	print( "Message sent. Message_reference: %i" % mr )
else:
	print( "Message not sent (or Message_reference not captured)" )

Ressource

Où acheter

Bon amusement,
Dominique


Aucun commentaire