Utiliser un module 4G / LTE SimCOM A7682E avec Raspberry-Pi Pico et MicroPython
Bonjour à tous,
Cela fait un moment que nous vendons le HAT GSM 4G / LTE de Garatronic pour Raspberry-Pi et celui-ci connaît un certain succès.
Ainsi, nous avons décidé de produire une bibliothèque MicroPython pour l'utiliser avec un Raspberry-Pi Pico.
![]() |
HAT GSM 4G / LTE avec Raspberry-Pi Pico 2 |
Brancher le module SimCom A7682E
Brancher le HAT sur le Raspberry-Pi Pico est assez simple. Il lui faut une source d'alimentation 5V, un UART et une broche pour contrôler la mise sous tension.
![]() |
Source: dépôt micropython-A7682E-modem |
Bibliothèque sim76xx pour MicroPython
La bibliothèque -=[en cours de développement]=- est publiée sur le dépôt GitHub
Celle-ci concerne prend déjà en charge:
- La connexion sur réseau mobile
- La gestion des messages URC (unsollicited Result Code) -> les notifications
- La réception / émission de SMS
- Gestion des appels vocaux (émettre/recevoir/décrocher/raccrocher/...)
Voici les quelques ligne nécessaires pour se connecter sur un réseau mobile
from machine import UART, Pin from sim76xx import * import time # Pico pwr = Pin( Pin.board.GP26, Pin.OUT, value=False ) uart = UART( 0, tx=Pin.board.GP0, rx=Pin.board.GP1, baudrate=115200, bits=8, parity=None, stop=1, timeout=500) sim = SIM76XX( uart=uart, pwr_pin=pwr, uart_training=True, pincode="6778" ) sim.power_up() while not sim.is_registered: time.sleep(1)
Passer un appel vocal est à peine plus compliqué
# Create Voice call object voice = Voice( sim ) " Calling... voice.call( PHONE_NR )
L'envoi d'un SMS est tout aussi trivial
# Create SMS object sms = SMS( sim ) # Send message to PHONE_NR ) sms.send( PHONE_NR, 'Test message' )
Options avancées
La bibliothèque permet également de traiter les appels et SMS entrant.
Cela se fait en prenant en charge les URC (des messages non sollicités) qui sont ensuite transformer en notifications par la bibliothèque.
Les URC sont correctement détectés et capturées durant le traitement des instructions utilisateurs (oui, ces URC arrivent à n'importe quel moment et sans prévenir).
Si le script utilisateur est en attente alors un appel régulier à la méthode update() permettra de capturer les URC durant les périodes sans activités.
sms = SMS( sim ) # Attendre notifications while True: time.sleep( 1 ) sim.update() if not sim.notifs.has_new: continue # Traitement des notifications _time, _type, _str, _cargo = sim.notifs.pop() while _time!=None: if _type == Notifications.SMS: # Cargo contient l ID du SMS print( f"SMS received @ id {_cargo}") # Lecture SMS Entrant _msg = sms.read( _cargo ) print( f" phone:{_msg.phone}" ) print( " Message :", _msg.message ) # effacer SMS entrant sms.delete(_cargo) # Envoi réponse try: id = sms.send( _msg.phone, "%s received!" % _msg.message ) except SMSError as err: print( 'SMS Send error!', str(err) ) else: print( "autre notification", (_time, _type, _str, _cargo) ) # Next nofitication _time, _type, _str, _cargo = sim.notifs.pop()
Encore plus
La bibliothèque contient actuellement 15 exemples couvrant les concepts fondamentaux, les SMS et les appels vocaux.
Voir le bas du fichier readme pour une description des différents exemples.
Où acheter
Les produits utilisés dans cet article sont disponibles chez MCHobby.
- HAT GSM 4G / LTE
- Raspberry-Pi Pico 2 (RP2350)
- Ou encore le Pico-2-Explorer .