1NCE FreeRTOS BluePrint démontre l'utilisation de divers protocoles IoT, notamment CoAP, LwM2M et UDP avec connectivité cellulaire. Ce référentiel présente des exemples intégrant le SDK 1NCE pour exploiter les outils du système d'exploitation 1NCE, tels que l'authentification des appareils et les fonctionnalités d'économie d'énergie, à l'aide de la (bibliothèque Wakaama LWM2M).
Ce référentiel fournit des exemples des protocoles suivants :
Chaque démo comprend une fonctionnalité facultative d'économie d'énergie qui peut être activée à des fins de test.
Le dossier Binaries contient des binaires prédéfinis pour les applications de démonstration UDP et CoAP.
Configurer la fonctionnalité d'économie d'énergie dans 1NCE OS
Utilisation de ce modèle.
Connectez la carte P-L496G-CELL02
Lorsqu'elle est connectée via USB, la carte doit apparaître comme un lecteur de stockage sur votre ordinateur.
Flasher le binaire
Faites simplement glisser et déposez le fichier binaire souhaité du dossier Binaries
sur le lecteur de stockage. La carte fera automatiquement clignoter le binaire.
Remarque : Si le clignotement échoue, reportez-vous à Clignotement à l'aide de STM32CubeProgrammer.
Afficher les journaux de démonstration
Utilisez Serial Monitor dans Visual Studio Code pour afficher les journaux de démonstration.
Une mise à niveau du micrologiciel STLink est requise. Le plugin STM32 VSCode inclut un bouton pour cela, mais si cela ne fonctionne pas, la mise à niveau peut être lancée manuellement en exécutant le fichier .bat
à partir du dossier STM32 installé : ST/STM32CubeCLTxx/STLinUpgrade.bat
Veuillez vous assurer que votre modem BG96 dispose de la dernière version du micrologiciel. Vous pouvez télécharger le package de mise à jour du micrologiciel et les instructions à partir de (page X-Cube Cellular de ST) (v6.0.0 recommandée).
Pour le flashage du modem, l'outil QFlash peut désormais être téléchargé depuis le site officiel de Quectel : (Téléchargement QFlash (V7.1))
Pour configurer la démo que vous souhaitez utiliser, modifiez le fichier nce_demo_config.h
situé dans Application/Config/
: (par défaut CONFIG_COAP_DEMO_ENABLED
)
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
1NCE FreeRTOS BluePrint permet aux clients de communiquer avec les points de terminaison 1NCE via UDP et d'utiliser toutes les fonctionnalités du système d'exploitation 1NCE.
Application/Config/nce_demo_config.h
#define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
1NCE FreeRTOS BluePrint permet aux clients de communiquer avec les points de terminaison 1NCE via CoAP et d'utiliser toutes les fonctionnalités dans le cadre du système d'exploitation 1NCE.
Requête COAP POST : Dans cette section, les étapes suivantes sont exécutées :
Inscrivez-vous au réseau.
Effectuez une résolution DNS.
Créez un socket et connectez-vous au serveur
Créer un POST CoAP confirmable avec l'option de requête
Créer une interaction client et analyser la réponse (ACK)
Validez la réponse.
Configurez le programme d'exécution de démonstration dans le fichier Application/Config/nce_demo_config.h
#define CONFIG_COAP_DEMO_ENABLED
#define CONFIG_COAP_URI_QUERY "t=test"
#define CONFIG_COAP_DATA_UPLOAD_FREQUENCY_SECONDS 60
#define CONFIG_NCE_ENERGY_SAVER
Pour la prise en charge DTLS, le port par défaut est 5684 et définit automatiquement ENABLE_DTLS
comme définition supplémentaire.
Le CoAP DTLS effectue 3 tâches principales à partir du SDK 1NCE IoT C :
Le support LWM2M est fourni à l'aide de la bibliothèque Eclipse Wakaama communiquant avec un serveur Leshan LWM2M. Ce mode permet à l'appareil d'agir en tant que client LwM2M, facilitant la communication avec un serveur LwM2M pour des cas d'utilisation tels que la gestion des appareils, les mises à jour du micrologiciel et la collecte de données de capteurs. Par défaut, le client s'enregistre auprès du serveur 1NCE LwM2M et une communication sécurisée est assurée via la prise en charge DTLS en option.
#define CONFIG_LwM2M_DEMO_ENABLED
Les paramètres suivants sont essentiels pour activer et personnaliser le mode client LwM2M dans le Blueprint :
#define LWM2M_ENDPOINT "lwm2m.os.1nce.com"
#define LWM2M_CLIENT_MODE
#define LWM2M_BOOTSTRAP
#define LWM2M_SUPPORT_SENML_JSON
#define LWM2M_SUPPORT_JSON
#define LWM2M_LITTLE_ENDIAN
#define LWM2M_SUPPORT_TLV
#define LWM2M_COAP_DEFAULT_BLOCK_SIZE 1024
#define LWM2M_SINGLE_SERVER_REGISTERATION
#define LWM2M_OBJECT_SEND "/3/0"
#define CONFIG_NCE_ICCID ""
#define CONFIG_LWM2M_BOOTSTRAP_PSK ""
La fonctionnalité Energy Saver est disponible pour les démos UDP et CoAP. Il permet aux utilisateurs d'optimiser la consommation électrique des appareils lors de la communication avec les points de terminaison 1NCE.
Pour activer la fonctionnalité Energy Saver, ajoutez l'indicateur suivant dans nce_demo_config.h
:
#define CONFIG_NCE_ENERGY_SAVER
Remarque : Pour utiliser la fonctionnalité d'économie d'énergie pour les démos UDP et CoAP, assurez-vous que le modèle de traduction correct est appliqué dans le système d'exploitation 1NCE. et le bon protocole sélectionné et le modèle utilisé.
Le Device Controller est une API qui vous permet d'interagir avec les appareils intégrés à l'API 1NCE. Vous pouvez utiliser cette API pour envoyer des requêtes aux appareils, et les appareils répondront en conséquence. Pour plus de détails, vous pouvez visiter notre DevHub
Pour envoyer une requête à un appareil spécifique, vous pouvez vous référer à notre documentation dans 1NCE DevHub
Pour gérer la requête entrante de l'API 1NCE, la configuration de certains paramètres est nécessaire Application/Config/nce_demo_config.h
/* C2D Parameters */
/* This port is used for both UDP and CoAP communication. */
#define NCE_RECV_PORT 3000
#define NCE_RECEIVE_BUFFER_SIZE_BYTES 200
NCE_RECV_PORT
: Il s'agit du numéro de port sur lequel votre appareil écoutera les demandes entrantes. Il doit correspondre au paramètre de port utilisé dans la requête.NCE_RECEIVE_BUFFER_SIZE_BYTES
: C'est la taille du buffer qui sera utilisé pour recevoir les données entrantes de l'API 1NCE.Remarque : C2D (Cloud to Device) est pris en charge pour les trois protocoles : UDP, CoAP et LwM2M. Le client LwM2M est étroitement intégré aux requêtes C2D et, pour UDP et CoAP, ouvre également un port en arrière-plan pour la communication C2D.
Si l'appareil se connecte uniquement aux réseaux 2G ou ne parvient pas à se connecter dans certaines régions, vous devrez peut-être ajuster les paramètres de RAT (Radio Access Technology) et de bande dans Application/Config/nce_demo_config.h
:
#define CELLULAR_CONFIG_DEFAULT_RAT 8 // Example for CAT M1
#define CELLULAR_CONFIG_DEFAULT_RAT_2 0 // Example for GSM
#define CELLULAR_CONFIG_DEFAULT_RAT_3 9 // Example for NBIOT
#define CUSTOM_BAND_BG96 "AT+QCFG="band",F,80004,80008" // Example for Germany CATM1
// Values
/**
* The GSM RATs network 0
* The CAT M1 RATs network 8
* The NBIOT RATs network 9
**/
Pour plus de détails sur les paramètres de bande, reportez-vous au manuel des commandes BG96 AT.
La verbosité des journaux peut être définie en définissant la macro LIBRARY_LOG_LEVEL
dans le fichier Core/Inc/iot_config.h
. Ce paramètre contrôle le niveau de détails de journalisation à des fins de débogage et de dépannage.
Les niveaux de journalisation disponibles pour LIBRARY_LOG_LEVEL
sont :
IOT_LOG_NONE
: désactive toute la journalisation. IOT_LOG_ERROR
: active uniquement les messages d'erreur. IOT_LOG_WARN
: Active les avertissements et les erreurs. IOT_LOG_INFO
: active les messages d'information, les avertissements et les erreurs. IOT_LOG_DEBUG
: active des informations de débogage détaillées, des avertissements, des erreurs et des messages d'information.
Exemple de configuration dans iot_config.h
:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
Cette configuration génère toutes les informations de débogage, utiles lors du développement ou du dépannage.
La communication la plus efficace avec notre équipe se fait via GitHub. Créez simplement un nouveau problème et sélectionnez parmi une gamme de modèles couvrant les rapports de bogues, les demandes de fonctionnalités, les problèmes de documentation ou les questions générales.