1NCE FreeRTOS BluePrint demonstriert die Verwendung verschiedener IoT-Protokolle, einschließlich CoAP, LwM2M und UDP mit Mobilfunkkonnektivität. Dieses Repository zeigt Beispiele für die Integration des 1NCE SDK, um 1NCE OS-Tools wie Geräteauthentifizierung und Energiesparfunktionen mithilfe der (Wakaama LWM2M Library) zu nutzen.
Dieses Repository enthält Beispiele für die folgenden Protokolle:
Jede Demo beinhaltet eine optionale Energiesparfunktion , die zu Testzwecken aktiviert werden kann.
Der Ordner „Binaries“ enthält vorgefertigte Binärdateien für UDP- und CoAP-Demoanwendungen.
Konfigurieren Sie die Energiesparfunktion im 1NCE OS
Verwenden dieser Vorlage.
Schließen Sie die P-L496G-CELL02-Karte an
Bei Anschluss über USB sollte die Karte als Speicherlaufwerk auf Ihrem Computer erscheinen.
Flashen Sie die Binärdatei
Ziehen Sie einfach die gewünschte Binärdatei per Drag & Drop aus dem Binaries
-Ordner auf das Speicherlaufwerk. Das Board wird die Binärdatei automatisch flashen.
Hinweis: Wenn das Flashen fehlschlägt, lesen Sie Flashen mit STM32CubeProgrammer.
Demo-Protokolle anzeigen
Verwenden Sie den Serial Monitor in Visual Studio Code, um die Demoprotokolle anzuzeigen.
Es ist ein STLink-Firmware-Upgrade erforderlich. Das STM32 VSCode-Plugin enthält hierfür eine Schaltfläche, aber wenn es nicht funktioniert, kann das Upgrade manuell initiiert werden, indem die .bat
Datei aus dem installierten STM32-Ordner ausgeführt wird: ST/STM32CubeCLTxx/STLinUpgrade.bat
Bitte stellen Sie sicher, dass Ihr BG96-Modem über die neueste Firmware-Version verfügt. Sie können das Firmware-Update-Paket und die Anweisungen von der X-Cube Cellular-Seite von ST herunterladen (Version 6.0.0 empfohlen).
Zum Modem-Flashen kann das QFlash-Tool jetzt von der offiziellen Quectel-Website heruntergeladen werden: (QFlash Download (V7.1))
Um die Demo zu konfigurieren, die Sie verwenden möchten, ändern Sie die Datei nce_demo_config.h
unter Application/Config/
: (standardmäßig CONFIG_COAP_DEMO_ENABLED
).
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
Mit 1NCE FreeRTOS BluePrint können Kunden über UDP mit 1NCE-Endpunkten kommunizieren und alle Funktionen als Teil des 1NCE-Betriebssystems nutzen.
Application/Config/nce_demo_config.h
ein #define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
1NCE FreeRTOS BluePrint ermöglicht Kunden die Kommunikation mit 1NCE-Endpunkten über CoAP und die Nutzung aller Funktionen als Teil des 1NCE-Betriebssystems.
COAP POST-Anfrage: In diesem Abschnitt werden die folgenden Schritte ausgeführt:
Registrieren Sie sich im Netzwerk.
Führen Sie eine DNS-Auflösung durch.
Erstellen Sie einen Socket und stellen Sie eine Verbindung zum Server her
Erstellen Sie einen bestätigbaren CoAP-POST mit der Option „Abfrage“.
Erstellen Sie eine Client-Interaktion und analysieren Sie die Antwort (ACK).
Bestätigen Sie die Antwort.
Richten Sie den Demo-Runner in der Datei Application/Config/nce_demo_config.h
ein
#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
Für die DTLS-Unterstützung ist der Standard-Port 5684 und definiert automatisch ENABLE_DTLS
als zusätzliche Definition
Das CoAP DTLS führt drei Hauptaufgaben des 1NCE IoT C SDK aus:
Die LWM2M-Unterstützung wird über die Eclipse Wakaama-Bibliothek bereitgestellt, die mit einem Leshan LWM2M-Server kommuniziert. In diesem Modus kann das Gerät als LwM2M-Client fungieren und so die Kommunikation mit einem LwM2M-Server für Anwendungsfälle wie Geräteverwaltung, Firmware-Updates und Sensordatenerfassung erleichtern. Standardmäßig registriert sich der Client beim 1NCE LwM2M-Server und eine sichere Kommunikation wird durch optionale DTLS-Unterstützung gewährleistet.
#define CONFIG_LwM2M_DEMO_ENABLED
Die folgenden Parameter sind für die Aktivierung und Anpassung des LwM2M-Clientmodus im Blueprint von entscheidender Bedeutung:
#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 ""
Die Energiesparfunktion ist sowohl für UDP- als auch für CoAP-Demos verfügbar. Es ermöglicht Benutzern, den Stromverbrauch der Geräte bei der Kommunikation mit 1NCE-Endpunkten zu optimieren.
Um die Energiesparfunktion zu aktivieren, fügen Sie das folgende Flag in nce_demo_config.h
hinzu:
#define CONFIG_NCE_ENERGY_SAVER
Hinweis: Um die Energiesparfunktion für UDP- und CoAP-Demos zu verwenden, stellen Sie sicher, dass die richtige Übersetzungsvorlage im 1NCE-Betriebssystem angewendet wird. und das richtige Protokoll ausgewählt und die verwendete Vorlage.
Der Device Controller ist eine API, die Ihnen die Interaktion mit Geräten ermöglicht, die in die 1NCE API integriert sind. Sie können diese API verwenden, um Anfragen an Geräte zu senden, und die Geräte werden entsprechend antworten. Für weitere Details können Sie unseren DevHub besuchen
Um eine Anfrage an ein bestimmtes Gerät zu senden, können Sie sich unsere Dokumentation in 1NCE DevHub ansehen
Um die eingehende Anfrage von der 1NCE-API zu verarbeiten, ist die Konfiguration bestimmter Parameter erforderlich: 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
: Dies ist die Portnummer, an der Ihr Gerät auf eingehende Anfragen wartet. Er sollte mit dem in der Anfrage verwendeten Portparameter übereinstimmen.NCE_RECEIVE_BUFFER_SIZE_BYTES
: Dies ist die Größe des Puffers, der zum Empfang der eingehenden Daten von der 1NCE-API verwendet wird.Hinweis: C2D (Cloud to Device) wird für alle drei Protokolle unterstützt: UDP, CoAP und LwM2M. Der LwM2M-Client ist eng in C2D-Anfragen integriert und bietet für UDP und CoAP auch einen offenen Hintergrundport für die C2D-Kommunikation.
Wenn das Gerät nur eine Verbindung zu 2G-Netzwerken herstellt oder in einigen Regionen keine Verbindung herstellen kann, müssen Sie möglicherweise die RAT- (Radio Access Technology) und Bandeinstellungen in Application/Config/nce_demo_config.h
anpassen:
#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
**/
Weitere Einzelheiten zu den Bandeinstellungen finden Sie im BG96 AT Commands Manual.
Die Ausführlichkeit von Protokollen kann durch Definieren des Makros LIBRARY_LOG_LEVEL
in der Datei Core/Inc/iot_config.h
festgelegt werden. Diese Einstellung steuert den Grad der Protokollierungsdetails für Debugging- und Fehlerbehebungszwecke.
Die verfügbaren Protokollebenen für LIBRARY_LOG_LEVEL
sind:
IOT_LOG_NONE
: Deaktiviert die gesamte Protokollierung. IOT_LOG_ERROR
: Aktiviert nur Fehlermeldungen. IOT_LOG_WARN
: Aktiviert Warnungen und Fehler. IOT_LOG_INFO
: Aktiviert Informationsmeldungen, Warnungen und Fehler. IOT_LOG_DEBUG
: Aktiviert detaillierte Debug-Informationen, Warnungen, Fehler und Informationsmeldungen.
Beispielkonfiguration in iot_config.h
:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
Diese Konfiguration gibt alle Debug-Informationen aus, die während der Entwicklung oder Fehlerbehebung nützlich sind.
Die effektivste Kommunikation mit unserem Team erfolgt über GitHub. Erstellen Sie einfach ein neues Problem und wählen Sie aus einer Reihe von Vorlagen aus, die Fehlerberichte, Funktionsanfragen, Dokumentationsprobleme oder allgemeine Fragen umfassen.