![]() | ![]() |
|---|---|
| Ceci est un exemple de code pour le capteur d'environnement Wisblock (kit Wisblock 4) avec capteur d'environnement RAK1906 |
Cet exemple utilise mon API Wisblock qui aide à créer une application de consommation d'énergie faible et à prendre la charge pour gérer les communications de votre épaule.
Tous ces modules peuvent être achetés avec un boîtier assorti comme Kit Wisblock 4
L'émetteur-récepteur MCU et LORA passe en mode sommeil entre les cycles de mesure pour économiser l'énergie. Je pouvais mesurer un courant de sommeil de 40UA de l'ensemble du système.
Les bibliothèques sont toutes répertoriées dans le platformio.ini et sont automatiquement installées lorsque le projet est compilé.
Les paramètres de Lorawan peuvent être définis de trois manières différentes.
À l'aide de la boîte à outils Wisblock, vous pouvez vous connecter au Wisblock sur BLE et configurer tous les paramètres de Lorawan comme
Plus de détails peuvent être trouvés dans la boîte à outils Wisblock
L'appareil fait de la publicité sur BLE uniquement les 30 premières secondes après l'alimentation, puis à nouveau pendant 15 secondes après le réveil pour les mesures. L'appareil fait de la publicité comme RAK-ENVS-xx où XX est l'adresse MAC BLE de l'appareil.
En utilisant l'interface de commande AT, le Wisblock peut être configuré sur le port USB.
Un manuel détaillé pour les commandes AT se trouve dans la manuelle à la commande
Voici un exemple pour les commandes AT typiques requises pour préparer l'appareil (les EUI et les clés sont des exemples):
// Setup AppEUI
AT+APPEUI=70b3d57ed00201e1
// Setup DevEUI
AT+DEVEUI=ac1f09fffe03efdc
// Setup AppKey
AT+APPKEY=2b84e0b09b68e5cb42176fe753dcee79
// Set automatic send interval in seconds
AT+SENDINT=60
// Set data rate
AT+DR=3
// Set LoRaWAN region (here US915)
AT+BAND=5
// Reset node to save the new parameters
ATZ
// After reboot, start join request
AT+JOIN=1,0,8,10
Le format de commande AT utilisé ici n'est pas compatible avec les commandes RAK5205 / RAK7205.
void api_read_credentials(void);
void api_set_credentials(void); Si les informations d'identification de Lorawan doivent être codées en dur (par exemple la région, le temps de répétition d'envoi, ...) Cela peut être fait dans setup_app() . D'abord, les informations d'identification enregistrées doivent être lues à partir de Flash avec api_read_credentials(); , alors les informations d'identification peuvent être modifiées. Après avoir modifié les informations d'identification, doit être enregistrée avec api_set_credentials() . Comme l'API WISBLOCK vérifie si des modifications doivent être enregistrées, les valeurs modifiées ne seront enregistrées que sur le premier démarrage après avoir clignoté l'application.
Exemple:
// Read credentials from Flash
api_read_credentials ();
// Make changes to the credentials
g_lorawan_settings.send_repeat_time = 240000 ; // Default is 2 minutes
g_lorawan_settings.subband_channels = 2 ; // Default is subband 1
g_lorawan_settings.app_port = 4 ; // Default is 2
g_lorawan_settings.confirmed_msg_enabled = LMH_CONFIRMED_MSG; // Default is UNCONFIRMED
g_lorawan_settings.lora_region = LORAMAC_REGION_AS923_3; // LoRa region
// Save hard coded LoRaWAN settings
api_set_credentials (); Remarque 1
Les informations d'identification codées en dure doivent être définies dans void setup_app(void) !
Remarque 2
Gardez à l'esprit que les paramètres qui sont modifiés avec cette méthode peuvent être modifiés sur commande ou BLE mais seront réinitialisés après un redémarrage !
Remarque 3
Le codage des données est basé sur les ID de capteur LPP Cayenne. Il est très facile de visualiser les données du capteur dans MyDevices Cayenne.
Les fichiers compilés sont situés dans le dossier ./Generated. Chaque version compilée réussie est nommée comme
WisBlock_ENV_Vx.y.z_YYYYMMddhhmmss
XYZ est le numéro de version. Le numéro de version est configuré dans le fichier ./platformrio.ini.
Yyyymmddhhmms est l'horodatage de la compilation.
Le fichier .zip généré peut également être utilisé pour mettre à jour l'appareil sur BLE à l'aide de la boîte à outils Wisblock ou de la boîte à outils Nordic NRF ou NRF
La sortie de débogage peut être contrôlée par définir dans la platformio.ini
Lib_debug contrôle la sortie de débogage de la bibliothèque SX126X-ARDUINO LORAWAN
My_debug contrôle la sortie de débogage de l'application elle-même
CFG_DEBUG contrôle la sortie de débogage du NRF52 BSP. Il est recommandé de le garder
[env:wiscore_rak4631]
platform = nordicnrf52
board = wiscore_rak4631
framework = arduino
build_flags =
; -DCFG_DEBUG=2
- DSW_VERSION_1 =1 ; major version increase on API change / not backwards compatible
- DSW_VERSION_2 =0 ; minor version increase on API change / backward compatible
- DSW_VERSION_3 =0 ; patch version increase on bugfix, no affect on API
- DLIB_DEBUG =0 ; 0 Disable LoRaWAN debug output
- DAPI_DEBUG =0 ; 0 Disable WisBlock API debug output
- DMY_DEBUG =0 ; 0 Disable application debug output
- DNO_BLE_LED =1 ; 1 Disable blue LED as BLE notificator
lib_deps =
beegee-tokyo/SX126x-Arduino
adafruit/Adafruit BME680 Library
beegee-tokyo/WisBlock-API
extra_scripts = pre:rename.pyLa charge utile est encodée dans le même format que les appareils Wisnode sans Rakwire. Un décodeur de charge utile pour ChirpStack, TTN et DataCake se trouvent dans le repo GitHub Rakwireless_standardisé_payload.
Données en temps réel
