Aller au contenu

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 :

local at = require("at1") 
-- remplacer serial par le name dans le fichier de configuration

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 ou COM3 (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 sinon write 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'instance at.
  • at.type : Retourne le type du module (ici, at1).