Module Lua at
Le module at
permet d'intéragir avec les modules GSM/GPRS/3G/4G en utilisant des commandes AT. Il facilite la communication avec ces modules pour envoyer et recevoir des données.
Pour l'importer il faut utiliser la déclaration suivante :
Configuration
Le module at
nécessite une configuration spécifique pour fonctionner. Cette configuration est définie dans le fichier de configuration de l'agent.
Pour la configuration voici un exemple de toutes les options possibles :
iot:
modules:
at:
- name: at1 # nom du module
port: /dev/ttyUSB0 # port
baud: 9600 # timeout
read_timeout: 5 # timeout
Détails de la configuration
- name : Nom du module. Il doit être unique et ne pas contenir d'espaces ou de caractères spéciaux.
- port : Port série à utiliser. Il doit être au format
/dev/ttyUSB0
ouCOM3
(pour Windows). - baud : Vitesse de transmission (baud rate). Par défaut, c'est
9600
(ex.9600
,115200
). - read_timeout : Temps d'attente pour la lecture des données. Par défaut, c'est
5
secondes.
Fonctions Lua
at.send(cmd)
Envoie une commande AT au module configuré.
-
Paramètres :
cmd
(string) : La commande AT à envoyer. -
Retour :
OK
si la commande est envoyée avec succès sinonwrite error: <error>
.
local at = require("at1")
local status, err = at.send("AT+CSQ")
if not status then
print("Erreur lors de l'envoi de la commande AT : " .. err)
else
print("Commande AT envoyée avec succès.")
end
at.query(cmd [, terminator])
Envoie une commande AT au module configuré et attend une réponse.
- Paramètres :
cmd
(string) : La commande AT à envoyer.terminator
(string) : Le caractère de terminaison de la réponse. Par défaut, c'est\r\n
.- Retour :
- La réponse du module sous forme de chaîne de caractères.
- En cas d'erreur, retourne
nil
suivi d'un message d'erreur.
local at = require("at1")
local response, err = at.query("AT+CSQ")
if err then
print("Erreur lors de la requête AT : " .. err)
else
print("Réponse AT : " .. response)
end
Champs Lua associés
at.name
: Retourne le nom de l'instanceat
.at.type
: Retourne le type du module (ici,at1
).