Module Lua at
Le module at permet d'interagir avec les modules GSM/GPRS/3G/4G en utilisant des commandes AT via un port série.
Import
Pour importer le module en Lua :
Configuration YAML
Le module at nécessite une configuration spécifique pour fonctionner. Cette configuration est définie dans le fichier de configuration de l'agent.
iot:
modules:
at:
- name: at1 # nom du module
port: /dev/ttyUSB0 # port série
baud: 115200 # vitesse de transmission (défaut : 115200)
read_timeout: 1000 # timeout de lecture en millisecondes (défaut : 1000)
Détails de la configuration
name(string, requis) : Nom du module. Il doit être unique et ne pas contenir d'espaces ou de caractères spéciaux.port(string, requis) : Port série à utiliser. Format :/dev/ttyUSB0(Linux) ouCOM3(Windows).baud(integer) : Vitesse de transmission (baud rate). Par défaut115200(valeurs courantes :9600,115200).read_timeout(integer) : Temps d'attente pour la lecture des données en millisecondes. Par défaut1000.
API Lua
Liste des fonctions
| Fonction | Signature Lua | Rôle | Retour (succès) | Retour (échec) |
|---|---|---|---|---|
send |
status, err = at.send(cmd) |
Envoie une commande AT. | "OK", nil |
nil, "msg" |
query |
resp, err = at.query(cmd[, terminator]) |
Envoie une commande AT et attend la réponse. | string, nil |
nil, "msg" |
| Champs | at.name, at.type |
Métadonnées du module. | – | – |
at.send(cmd)
Envoie une commande AT au module configuré. Cette fonction n'attend pas de réponse.
- Paramètres :
-
cmd(string) : La commande AT à envoyer (sans le suffixe\r\n, ajouté automatiquement). -
Retour :
"OK"si la commande est envoyée avec succès.- Message d'erreur en cas de problème (ex.
"write error: ...").
local at = require("at1")
local status = at.send("AT+CSQ")
if status == "OK" then
print("Commande AT envoyée avec succès.")
else
print("Erreur : " .. status)
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, optionnel) : Chaîne de fin de réponse. Par défaut"OK". La fonction lit jusqu'à trouver cette chaîne. -
Retour :
- En cas de succès : la réponse du module,
nil. - En cas d'erreur :
nil, message d'erreur.
local at = require("at1")
-- Requête simple avec terminateur par défaut
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
-- Requête avec terminateur personnalisé
local response2, err2 = at.query("AT+CMGL", "ERROR")
Exemple complet
local at = require("at1")
-- Vérifier la connexion au module
local response, err = at.query("AT")
if err then
print("Module AT non disponible : " .. err)
return
end
print("Module AT prêt")
-- Obtenir la qualité du signal
local csq, err = at.query("AT+CSQ")
if csq then
print("Qualité du signal : " .. csq)
end
-- Envoyer un SMS (exemple)
at.send('AT+CMGF=1') -- Mode texte
at.query('AT+CMGS="+33612345678"', ">") -- Attendre le prompt
at.send("Hello World\x1A") -- Message + Ctrl+Z
Champs Lua associés
at.name: Retourne le nom de l'instanceat.at.type: Retourne le type du module ("at").