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
- Utiliser un modem SIMCOM SIM800 avec MicroPython (Anglais, Français)
Où acheter
Bon amusement,
Dominique
Écrire un commentaire