Ce module est équippé du ESP32-S3 dual Core LX7 240 MHz
Il possède une connexion pour carte SD et un support de batterie (18650).
Au départ le module SIMCOM A7670 était programmé avec le firmware 2374B03SIM767XM5A_M mais celui-i préssente un problème avec les connexions mqtt.
Le nouveau firmware 2374B05V01SIM767XM5A à donc été intallé.
La procédure d’installation est documentée, il faut faire cela avec une machine windows pour laquelle le logiciel est disponible. Il faut faire attention de bien répertorier les port USB, la mise a àjour se faisant via un port connecté au module SimCom (donc pas l’USB du S3).
Un fois faite, la commande AT+SIMCOMATI donne
Manufacturer: SIMCOM INCORPORATED
Model: SIM7670G-MNGV
Revision: 2374B05SIM767XM5A_M
SIM767XM5_B05V01_241206
IMEI: 864643060182807
Le S3 est programmé avec un firmware qui donne accès aux commandes AT (AT passthrough ?) et dans l’IDE arduino est configuré comme ESP32 S3 Dev module.
Activation de la carte Sim (Orange prepaid)
AT+CPIN=XXXX (XXXX = le code Pin de la carte)
Ensuite il faut vérifier que la carte se connecte au réseau.
Qualité du signal LTE.
AT+CSQ
+CSQ: 19,0
Service CS (network registration)
AT+CREG?
+CREG=0,1
0 -> disable network registration unsolicited result code. 1 -> registered, home network, si 5 alors le module est en roaming les autres valeurs indiquent un problème
Service PS (EPS network registration status/Packet service)
AT+CEREG?
+CEREG= 0,1
0 -> disable network registration unsolicited result code, 1 1 -> registered, home network (5 registered roaming)
Les deux commandes peuvent être envoyées simultanément
AT+CREG?;+CEREG?
+CREG: 0,1
+CEREG: 0,1
Information du service AT+CPSI? +CPSI: LTE,Online,206-10,0x3390,102442517,62,EUTRAN-BAND3,1525,4,4,-11,-106,-94,3
Configuration du contexte PDP (Packet Data Protocol)
Celle-ci se fait via la commande CGDCONT J’ai définit deux contextes le premier en IPV4 le second en dual V4 et V6, ceci via AT+CGDCONT=1,“IP”,“mworld.be” et AT+CGDCONT=2,“IPV4V6”,“DUAL”
AT+CGDCONT?
+CGDCONT: 1,"IP","mworld.be","10.75.197.154",,,,,,,,,,,
+CGDCONT: 2,"IPV4V6","DUAL"
Vérification que le context est bien actif
AT+CGACT?
+CGACT: 1,1
+CGACT: 2,0
contexte cid, State (1 actif, 0 inactif)
Pour activer -> AT+CGACT=state,cid
Après on remarque l’attribution des adresses IP aux contextes.
AT+CGACT?;+CGDCONT?
+CGACT: 1,1
+CGACT: 2,1
+CGDCONT: 1,"IP","mworld.be","10.75.197.154",,,,,,,,,,,
+CGDCONT: 2,"IPV4V6","DUAL","10.220.69.19",,,,,,,,,,,
Configuration mqtt:
AT+CMQTTSTART active le service mqtt
AT+CMQTTACCQ active un client
AT+CMQTTACCQ=index-client,“client id”, serv type (0 TCP, 1 SSL/TLS)
Ensuite il ne rete plus qu’a connecter le serveur via le client (le server va recevoir l’identification du client).
AT+CMQTTSTART
AT+CMQTTACCQ=0,"S3-A7670G",0
AT+CMQTTCONNECT=0,"tcp://www.serveur:port",20,1,"user","pword"
et sur le serveur (mosquitto) on recoit la connexion
1765558619: New connection from 94.109.94.248:25746 on port 8883.
1765558619: New client connected from 94.109.94.248:25746 as S3-A7670G (p1, c1, k20, u'user').
On remarque bien que l’identifiant du client est celui indiqué dans la commande AT+CMQTTACCQ. Attention que mqtt ne permet qu’une connexion par identifiant client, il pourrait être nécessaire de générer un ideentifiant client aléatoire pour éviter de bloquer la connexion (voir la configuration du serveur).
Les adresse IP ne sont pas les mêmes car le segment 10.x.x.x n’est pas sur internet on passe donc par un gateway.
Un whois donnant:
inetnum: 94.108.128.0 - 94.111.255.255
netname: KPNBE
descr: KPN Belgium IPv4 dynamic - Consumer
country: BE
admin-c: KPNB-RIPE
tech-c: KPNB-RIPE
status: ASSIGNED PA
mnt-by: MNT-AS47377
created: 2008-11-03T12:22:10Z
last-modified: 2009-01-14T09:28:11Z
source: RIPE
Le smartphone est maintenant connecté via mqtt au serveur mosquitto via la 4G.