[RTFM] Documentation librairie Akeru

Forum de support et d'échange sur la carte Akeru (carte compatible Arduino développée par Snootlab et intégrant la technologie Sigfox) et du shield Akene pour Arduino (shield pour Arduino développée par Snootlab et intégrant la technologie Sigfox)

[RTFM] Documentation librairie Akeru

Message non lude Laetitia » Mar 26 Juil 2016 17:12

Akeru - librairie Arduino pour TD1208

Faites de l'IoT avec votre Arduino !

Note : ce document est valable à partir de la version 4 de la librairie Akeru.

- Changelog -

Changements importants par rapport à la version 3, valables dans tous vos sketchs incluant la nouvelle version de la librairie :
  • Plus besoin d'inclure la librairie SoftwareSerial dans le sketch
  • La définition des RX/TX se fait directement dans le sketch et non plus dans le fichier .cpp (pour adapter plus facilement le sketch pour un Akene ou un breakout TD1208)
  • Le payload se présente sous la forme d'un objet String au lieu d'une structure struct
  • Il faut convertir les données en hexadécimal avant de les envoyer, à l'aide de la fonction toHex()
  • Plus besoin d'insérer des délais ou d'appeler la fonction isReady() pour gérer le timing entre deux messages, la fonction sendPayload() s'en charge.
  • Si vous avez plusieurs liaisons SoftwareSerial actives, le listen() que vous deviez imposer avant chaque opération sur le TD1208 est désormais intégré à la librairie. Il faudra simplement penser à le faire sur pour les autres liaisons en cours.
    Description
La librairie Akeru permet d'exploiter la connectivité Sigfox avec votre Arduino. Elle permet de définir les RX/TX de votre module Sigfox directement dans le sketch, de remonter des données en provenance du modem (température, numéros de version...), d'envoyer des messages sur le réseau Sigfox et d'en recevoir.

    Organisation
Akeru.h : Fichier d'en-tête à inclure dans le sketch
Akeru.cpp : Définition de l'objet global Akeru et des fonctions associées
/examples : Dossier contenant les exemples d'utilisation
- DemoTest : démonstration complète, incluant une remontée de toutes les données disponibles et un envoi sur le réseau Sigfox.
- downlinkDemo : comment recevoir des données en provenance du réseau Sigfox
- sendMultipleValues : comment envoyer plusieurs variables dans un seul message
- sendSingleValues : comment envoyer des valeurs en provenance d'un capteur unique

    Utilisation
- Initialisation -

Pour utiliser la bibliothèque Akeru, il faut commencer par l'inclure dans le sketch :

Code: Tout sélectionner
#include <Akeru.h>

Puis déclarer l'objet Akeru à partir duquel on va pouvoir appeler les fonctions nécessaires. Par exemple :

Code: Tout sélectionner
Akeru akeru (RX, TX);

Les valeurs de RX et TX dépendent de la carte que vous utilisez :
  • Akeru : RX=D5 ; TX=D4
  • Akene : RX=D4 ; TX=D5
  • Breakout TD1208 : à compléter en fonction de vos branchements.
Enfin, initialisez la carte avec la fonction begin() :

Code: Tout sélectionner
void setup()
{
  akeru.begin();
}

- Fonctions disponibles -

Note : toutes les fonctions suivantes, à l'exception des fonctions toHex(), echoOn() et echoOff() renvoient 1 si tout s'est bien passé et 0 en cas d'erreur.

echoOn()
Active l'impression des commandes AT et de leurs réponses sur moniteur série. Inactif par défaut.

echoOff()
Désactive l'impression des commandes AT et de leurs réponses sur moniteur série. Option par défaut de la librairie.

begin()
À utiliser dans le setup() de votre sketch.

isReady()
Indique si le modem est prêt à envoyer un nouveau message (plus précisément si le délai nécessaire pour ne pas dépasser votre quota est écoulé). Son utilisation peut être redondante puisqu'elle est automatiquement appelée lors de l'envoi d'un message sur le réseau ou d'une demande de liaison descendante.

sendAT()
Envoie une simple commande AT.

sendPayload(const String payload)
Envoie les données sur le réseau Sigfox, les données doivent être auparavant formatées en hexadécimal, grâce à la fonction
toHex().

getTemperature(int *temperature)
Récupère la température du modem.

getID(String *id)
Récupère l'identifiant du modem (il s'agit du numéro présent sur le sticker du modem).

getVoltage(float *voltage)
Récupère la tension d'alimentation du modem.

getHardware(String *hardware)
Récupère le numéro de version du matériel.

getFirmware(String *firmware)
Récupère le numéro de version du logiciel.

getPower(int *power)
Récupère le niveau de puissance d'émission (en dBm).

setPower(int power)
Paramètre le niveau de puissance d'émission.

toHex(int i) | toHex(unsigned int ui) | toHex(long l) | toHex(unsigned long ul) | toHex(float f) | toHex(double d) | toHex(char c)
Convertit une variable en hexadécimal. Renvoie un String contenant les informations à envoyer.

toHex(char *c, int length)
Convertit une chaîne de caractères en hexadécimal. La taille du tableau doit être renseignée (utilisez la fonction sizeof). Renvoie un String contenant les informations à envoyer.

receive(String *data)
Active la liaison descendante du modem, attend une réponse du réseau. Les données reçues sont sous forme hexadécimale.

- Envoi de valeurs multiples -

Lorsque vous souhaitez transmettre plusieurs valeurs sur le réseau Sigfox en un seul message, il faut mettre toutes les données dans le même payload. Cela se fait aisément avec les opérateurs de concaténation de la librairie String :

Code: Tout sélectionner
int entier = 42;
float flottant = 3.141592;

String e = akeru.toHex(entier);
String f = akeru.toHex(flottant);

String msg = e + f;

akeru.sendPayload(msg);
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse

Retourner vers Akeru et Akene

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 1 invité