AVERTISSEMENT: Lors de la connexion d'un panneau solaire ou d'une batterie, la polarité des broches doit être la suivante:

AVERTISSEMENT: Si le contrôleur de charge d'une batterie Li-ion est nécessaire, le cavalier de la batterie doit être connecté:

L'Arduino IDE peut être utilisé pour télécharger des logiciels via le port micro USB. Avant de pouvoir être utilisé, l'IDE doit être configuré. La première chose est d'installer le tableau via Board Manager.
Allez dans Fichier -> Préférences. Ajoutez le lien suivant à des URL du gestionnaire de cartes supplémentaires: https://github.com/skylabiot/loraedge_basictracking/raw/master/package_skylab_index.json.
Le package de la carte peut être téléchargé via des outils -> Board -> Boards Manager ... en recherchant Skylab.
Sélectionnez la carte via les outils -> Board -> Skylab Boards -> Skylab Lora Edge.
L'exemple de croquis peut être chargé via le fichier -> Exemples -> Skylab Lora Edge -> Basicloraa.
Les dépendances de base des croquis de Basicloraa sont:
Arduino SAMD21 Bibliothèque de faible puissance: https://www.arduino.cc/en/reference/arduinolowpower
Bibliothèque Arduino RTC: https://www.arduino.cc/en/reference/rtc
Bibliothèque Adafruit BME280: https://github.com/adafruit/adafruit_bme280_library
Adafruit LMS303 Library Accéléromètre: https://github.com/adafruit/adafruit_lsm303_accel
Bibliothèque Flashstorage par CMAGLIE: https://github.com/cmaglie/flashstorage
Après le téléchargement du mode, un exemple de croquis, le moniteur série peut être ouvert sur un taux en bauds 9600. Le système commence par afficher le dev_eui configuré, join_eui et app_key (MSB en premier). Le Dev_EUI est demandé à la puce LR1110 et est unique à cette puce spécifique. Cette clé doit être utilisée dans la console du réseau utilisé. Le join_eui et app_key sont configurés dans le code et doivent être modifiés pour les touches correctes, données par la console réseau utilisée. En cas de configuration correcte, le périphérique rejoint automatiquement.
Envoyez un 0x01 pour demander une charge utile Wi-Fi et GNSS (la réponse est sur les port 2 et 3).
Envoyez un 0x02 pour demander la configuration actuelle (la réponse est sur le port 44).
Envoyez un 0x03 pour demander la tension de batterie actuelle (la réponse est sur le port 10).
Le format de liaison descendante de configuration doit être le suivant:
| 0 | 1-2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|
| DIRIGÉ | Intervalle | Balise | Wi-Fi | GNSS | Activation / temps de mouvement | Durée d'intervalle de mouvement | Registre de seuil de capteur de mouvement | Registre de durée du capteur de mouvement |
BYTE 0: LED Ce octet configure la LED d'état.
Byte 1 et 2: Intervals Ces 2 octets configurent le temps d'intervalle standard entre le temps des messages est en minutes. L'intervalle réglé sur 0 gardera le réglage actuel et ne définira pas un nouvel intervalle. Le temps maximum est de 65535 minutes.
BYTE 3: BACON Ce octet configure le temps que De Beacon est activé. Le temps est en quelques minutes. Le temps maximum est de 255 minutes. Lorsqu'il est réglé sur 0, la balise ne sera pas activée.
Byte 4: Wi-Fi Ce octet allume ou désactivez la charge utile Wi-Fi.
Byte 5: GNSS Ce octet allume ou désactivez la charge utile GNSS.
BYTE 6: Activation de mouvement / heure Ce octet définit l'intervalle d'envoi si le mouvement est détecté. Le temps est en minutes avec un maximum de 255. Lorsqu'il est réglé sur 0, l'interruption de détection de mouvement est désactivée.
Byte 7: Intervalle de mouvement Durée Ce octet définit la durée Le système utilise l'intervalle de mouvement après la dernière détection de mouvement. Le temps est en minutes avec un maximum de 255. Lorsqu'il est réglé sur 0, cet octet sera ignoré (les paramètres actuels seront utilisés).
Byte 8: Seuil de capteur de mouvement Registre Ce octet définit le registre de seuil de capteur de mouvement. Si l'octet 7 est défini sur 0, cet octet sera ignoré (les paramètres actuels seront utilisés).
Byte 9: Durée du capteur de mouvement Registre Ce octet définit le registre de durée du capteur de mouvement. Si l'octet 7 est défini sur 0, cet octet sera ignoré (les paramètres actuels seront utilisés)
Le système confirme la liaison descendante en envoyant la configuration définie dans une liaison montante sur le port 44 dans le même format que la liaison descendante.
LED, intervalle sur 5 minutes, pas de balise, Wi-Fi et GNSS sur la détection de mouvement hors:
01 00 05 00 01 01 00 00 00 00
LED OFF, intervalle 600 minutes, pas de balise, charge utile Wi-Fi, charge utile GNSS, détection de mouvement:
00 15 36 00 01 00 00 00 00 00
Gardez le réglage de la LED et de l'intervalle actuel, pas de balise, la charge utile Wi-Fi, la charge utile GNSS, la détection de mouvement OFF:
02 00 00 00 00 01 00 00 00 00
Allumez la balise pendant 5 minutes, détection de mouvement, gardez tous les autres paramètres actuels:
02 00 00 05 02 02 00 00 00 00
Gardez le réglage de la LED et de l'intervalle actuel, pas de balise, la charge utile Wi-Fi, la charge utile GNSS, la détection de mouvement avec un intervalle d'envoi de 1 minute, l'intervalle de mouvement utilisé pendant 4 minutes après le dernier mouvement, registre de seuil de mouvement réglé sur 7, registre de durée de mouvement réglé sur 3:
02 00 00 00 01 00 01 04 07 03
Le mode Un exemple de croquis peut envoyer 4 types de charge utile. Ces types de charges utiles sont identifiables par le numéro de port utilisé. Un exemple de script de décodeur TTN peut être trouvé sur cette page GitHub (exampleDeccodertTN.js).
Il s'agit de la charge utile Wi-Fi et Sensor. Cette charge utile a les informations de 3 points Wi-Fi et des données du capteur. Le format est le suivant:
| 0 | 1-6 | 7 | 8-13 | 14 | 15-20 | 21 | 22-23 | 24-25 | 26 | 27 |
|---|---|---|---|---|---|---|---|---|---|---|
| RSSI 1 | Mac 1 | RSSI 2 | Mac 2 | RSSI 3 | Mac 3 | Tension de batterie | Température | Pression | Humidité | Activation de mouvement |
Octet 0, 7 et 14: Wi-Fi RSSI
Ces octets ont la force RSSI / signal des points Wi-Fi numérisés. Ces valeurs doivent être interprétées comme des entiers signés.
Octet 1 à 6, 8 à 13 et 15 à 20: Wi-Fi Mac
Ces octets ont les adresses MAC des points Wi-Fi numérisés.
Byte 21: Tension de la batterie
Cet octet a la valeur de tension de la batterie brute. La tension exacte peut être calculée avec: tension = (float) ((3.3 / 255) * ((4.7 + 10) / 10) * (tension de la batterie));
Octet 22 à 23: température
Ces octets ont la valeur de température. La température exacte dans le degré Celsius (◦C) peut être calculée avec: température = (flotteur) (température / 100);
Octet 24 à 25: pression
Ces octets ont la valeur de la pression d'air. La pression exacte dans le degré Hector Pascal (HPA) peut être calculée avec: pression d'air = (flotteur) (pression / 10);
Byte 26: Humidité
Cet octet a la valeur d'humidité en%.
Byte 27: activation de mouvement
Cet octet montre 0 dans un intervalle normal. En cas d'intervalle de mouvement, cet octet donne la quantité de minutes restantes dans l'intervalle de mouvement.
Ceci est la charge utile GNSS. Cette charge utile n'a que les données GNSS brutes et est de taille variable.
Cette charge utile est utilisée comme un message «Je suis éveillé». Par défaut, il est défini à toutes les 24 heures. Cela peut être modifié en modifiant la valeur «Controltime». Le format est le suivant:
Octet 0: tension de la batterie
Cet octet a la valeur de tension de la batterie brute. La tension exacte peut être calculée avec: tension = (float) ((3.3 / 255) * ((4.7 + 10) / 10) * (tension de la batterie));
Le LR1110 envoie un message automatisé lors de la rejoindre et toutes les 24 heures après. Ce message peut être ignoré.
Lorsque le paramètre de balise est défini sur 1, la balise sera activée. L'appareil quittera le réseau et envoie une charge utile LORA aléatoire à chaque seconde sur la fréquence 869800000 Hz (en dehors de la fréquence LORA officielle). La LED verte s'allume si l'activation du LED est réglée sur 1. La balise s'arrêtera lorsque l'heure définie sera atteinte. Le système rejoindra le réseau et fonctionnera comme précédemment.
| Pin UC | Goupille de planche | Nom dans Arduino IDE |
|---|---|---|
| PA02 | A0 | A0, DAC0 |
| PA05 | Ain5 (batterie) | Ain5 |
| PA06 | D0 | D0 |
| PA07 | D8 | D8 |
| PA08 | D3 | D3 |
| PA09 | D4 | D4 |
| PA10 | Occupé (LR1110) | OCCUPÉ |
| PA11 | Événement (LR1110) | ÉVÉNEMENT |
| PA14 | NRESET (LR1110) | Nrésist |
| PA15 | Led rouge | Ledr |
| PA16 | Mosi | Mosi |
| PA17 | SCK | SCK |
| PA18 | NSS (LR1110) | NSS |
| PA19 | Miso | Miso |
| PA20 | INT2 (LSM303AGR) | Int2 |
| PA21 | INT1 (LSM303AGR) | Int1 |
| PA22 | SDA | SDA |
| PA23 | SCL | SCL |
| PA24 | D- (USB) | Pin_usb_dm |
| PA25 | D + (USB) | Pin_USB_DP |
| PA27 | PA27 (pad) | PA27 |
| PA28 | PA28 (pad) | PA28 |
| PA30 | SWDCLK / TCK (épingles de débogage) | - |
| PA31 | SWdio / TMS (épingles de débogage) | - |
| PB02 | PB02 (PAD) | PB02 |
| PB03 | PB03 (PAD) | PB03 |
| PB08 | LNA (GNSS) | LNA |
| PB09 | INT3 (LSM303AGR) | Int3 |
| PB10 | Green conduit | Landg |
| PB11 | LED BLUE | Ledb |
| PB22 | TX | Pin_serial_tx |
| PB23 | Rx | Pin_serial_rx |
| Version | Changements |
|---|---|
| 1.0 | Première version. |
| 1.2 | Prise en charge de plus de configuration via la liaison descendante, l'intégration des capteurs dans la charge utile Wi-Fi et la balise radio. |
| 1.3 | Modifications pour le croquis Basicloraa: a changé la liaison descendante pour prendre moins d'octets. Corrigez un problème de jointure de vidange de batterie lorsqu'il n'y a pas de couverture LORA. Ajout de la prise en charge de la détection de mouvement, activez en fixant la requête en activation à 1. |
| 1.3.1 | Correction du problème d'adhésion après une prise de jointure ratée dans Basicloraa Sketch. |
| 1.4 | Le port 2 mis à jour la liaison montante (octet 27). Format de liaison descendante mise à jour, y compris des exemples. Ajout de la liaison descendante confirmer la liaison montante. Capacité à enregistrer les paramètres sur EEPROM afin qu'ils ne réinitialisent pas le redémarrage. |
| 1.4.1 | Nettoyage des fichiers. |
| 1.5 | La LED violette s'allume lors de la tentative de rejoindre. Correction du bug de charge utile Wi-Fi manquante. Prise en charge de la synchronisation ALC pour une utilisation future. Rendu le code plus lisible en ajoutant des commentaires. |
| 1.5.1 | EUI / touches rembourrées avec zéros sur moniteur en série pour une copie plus facile. Lorawan, le firmware et les versions de chargeur de démarrage impriment désormais en hexadées sur le moniteur série. |
| 1.5.2 | Correction de ne pas envoyer la première charge utile après le démarrage et après la première détection de mouvement. |
| 1.5.3 | Ajout de la fonction de liaison descendante pour demander des paramètres. Correction de la minuterie d'intervalle de mouvement dans le bug. |
| 1.5.4 | La valeur d'intervalle fixe ne se charge pas toujours correctement après le redémarrage. |