Ce chapitre couvre l’installation des croquis de RadioShuttle. Vous trouverez ici des informations sur la carte ECO Power. Veuillez lire ce chapitre pour les instructions de mise en service.
Installer la bibliothèque RadioShuttle
Le logiciel RadioShuttle complet est livré dans une archive Zip et peut être chargé ici en spécifiant l’ID de la carte. L’ID se trouve au dos de la carte, par ex. 5678.
Une archive Zip avec le logiciel actuel sera chargée, par ex. « RadioShuttle-Arduino-2019-05-10.zip ».
L’archive zip doit être décompressée et le contenu du dossier « libraries » copié dans le dossier « Documents/Arduino/libraries ».
Remarque :
Le contenu d’une bibliothèque RadioShuttle existante doit être complètement écrasé (ne pas fusionner) !
Après la copie, vous devriez voir ce qui suit dans le dossier « libraries » :
- « HELIOS_Si7021 » (bibliothèque pour le capteur de température/humidité)
- « Arduino-mbed-APIs » (pilotes supplémentaires et nouvelles fonctions de minuterie pour les puces ESP32 et D21)
- « Arduino-TR-064-SOAP-Library » (bibliothèque pour le protocole TR-064 à utiliser avec les FRITZ!Box)
- « ds3231 » (bibliothèque pour l’horloge RTC de la carte ECO Power
- « OLED » (bibliothèque pour les écrans SSD1306, voir information technique Utilisation de la Carte ECO Power avec un Écran OLED)
- « pubsubclient » (bibliothèque qui fournit un client pour publier/abonner des messages simples avec un serveur compatible MQTT)
- « RadioShuttle » (logiciel de protocole radio et exemples)
- « RTCZero » (bibliothèque RTC pour la puce Atmel D21)
- « SX1276GenericLib » (pilote pour la puce radio LoRa)
Personnaliser xPinMap.h
Le fichier « xPinMap.h » définit les connexions de l’ESP32 MCU avec la puce radio et les autres périphériques. Il doit être vérifié et, si nécessaire, adapté à chaque programme nouvellement installé. Vous pouvez le trouver dans l’IDE Arduino ci-dessus comme un onglet supplémentaire.
Pour faire correspondre le code du programme et la révision de la carte, recherche#elif defined(ARDUINO_ESP32_DEV)
et assurez-vous que cette ligne est active. Si vous avez une autre version de la carte « ECO Power », activez la ligne correspondante et désactivez l’ancienne révision « ECO Power » si nécessaire :#define ESP32_ECO_POWER_REV_1 // our rev1 ESP32 ECO Power Boards
Exemple d’application « PropertyEditor »
Il existe une mémoire dans laquelle les réglages qui doivent être conservés sur la carte après l’installation d’un nouveau croquis peuvent être sauvegardés définitivement. Ici, il est judicieux d’enregistrer des paramètres tels que les données d’accès WiFi ou, etc. Les applications « PropertyEditor » et “PropertyTest” (voir dans le tableau plus bas) vous permet d’écrire en mémoire vos propres valeurs de propriétés. La page Mémoire Permanente pour les Réglages explique en détail les différences entre les différents types de mémoir.
Après le démarrage de l’IDE Arduino, l’entrée « ESP32 Dev Module » doit être sélectionnée pour la carte ECO Power sous « Outils > Type de carte », car l’IDE Arduino affiche toujours uniquement les bibliothèques exécutables sur la carte actuellement sélectionnée.
L’exemple « PropertyEditor » peut ensuite être chargé dans l’IDE Arduino via le menu « Fichier > Exemples > Arduino-mbed-API > PropertyEditor ».
Ouvrez la fenêtre « Moniteur série » (voir Ouvrir la fenêtre « Moniteur série » d’Arduino ci-dessous) et chargez le schéma « PropertyEditor » avec la fonction de téléchargement sur la carte ECO Power. Si tout s’est bien passé, vous devriez voir ce texte dans la fenêtre :
Pour lister toutes les propriétés disponibles, entrez « l » (pour list) dans le champ de saisie, comme montré dans l’image ci-dessus, et cliquez sur le bouton « Envoyer » :
Pour définir une valeur pour une propriété, vous devez entrer un « s » (pour set) dans le champ de saisie, suivi du numéro de la propriété et de sa valeur. Cliquez ensuite sur le bouton « Envoyer ». Dans cet exemple, la propriété « WIFI_SSID » (numéro 30) doit recevoir la valeur « radioshuttleuser » :
Après un nouvel appel de liste, on peut voir que la propriété « WIFI_SSID » a reçu la valeur « radioshuttleuser » :
En saisissant la commande « d » (pour delete), des propriétés individuelles peuvent être effacées de la mémoire.
Définition des propriétés pour « RadioTest »
La simple application de test RadioShuttle (« RadioTest ») est destinée aux débutants. Il y a deux appareils qui communiquent entre eux et échangent un simple message. Un appareil est appelé un nœud et le second est une station. Un message est transmis du nœud à la station en appuyant sur le bouton « User ». Cela fonctionne également dans l’autre sens, la station peut également transmettre un message au nœud, en supposant que le nœud a été configuré comme Nœud en ligne (par défaut est Nœud hors ligne).
Pour l’exemple d’application « RadioTest », au moins les propriétés suivantes doivent être définies avec le PropertyEditor :
Propriété | Type | Explication |
---|---|---|
LORA_DEVICE_ID | T_32BIT | ID du dispositif de la carte (par défaut) |
LORA_CODE_ID | T_32BIT | Code de la carte (par défaut) |
LORA_RADIO_TYPE | T_32BIT | Type d’utilisation (non défini) : 1 = Nœud hors ligne (fonctionnement comme capteur radio en mode « deepsleep ») 3 = Nœud en ligne (fonctionnement en tant que capteur radio, prêt à recevoir en permanence) 4 = Station basic (fonctionnement en tant que serveur pour les petits réseaux) 5 = Station serveur (fonctionnement en tant que serveur pour les grands réseaux) |
LORA_REMOTE_ID | T_32BIT | ID de communication du station distant (non défini) |
LORA_APP_PWD (en option) | T_STR | Définit le mot de passe de cryptage AES-128 par application |
Si « LORA_REMOTE_ID » et « LORA_RADIO_TYPE » ne sont pas définis et que#define USE_DEMOBOARD_PAIR
est actif dans le fichier « RadioTest.ino », un mode démo test est utilisé entre les deux cartes (voir Personnaliser RadioTest.ino plus bas).
Activation de l’exemple d’application « RadioTest »
Après le démarrage de l’IDE Arduino, l’entrée « ESP32 Dev Module » doit être sélectionnée pour la carte ECO Power sous « Outils > Type de carte », car l’IDE Arduino affiche toujours uniquement les bibliothèques exécutables sur la carte actuellement sélectionnée.
Chargez l’exemple « RadioTest » via le menu « Fichier > Exemples > RadioShuttle > RadioTest » dans l’IDE. Avec cet exemple de programme, vous pouvez envoyer des messages d’un nœud à une station ou vice versa. Il se compose des fichiers « PinMap.h », « RTCUtil.cpp » et « RadioTest.ino ».
Les réglages suivants doivent être vérifiés ou effectués avant utilisation :
Personnaliser RadioTest.ino
La ligne #define USE_DEMOBOARD_PAIR
peut être désactivée comme suit :// #define USE_DEMOBOARD_PAIR
Cette ligne a été utilisée pour faire correspondre automatiquement les paires de cartes expédiées.
Vérifier l’exemple d’application « RadioTest »
Il suffit d’appuyer sur le bouton « User » au niveau du nœud. Un message réseau est ensuite envoyé du nœud au serveur. Pendant la transmission des messages, les LEDs d’émission et de réception doivent clignoter brièvement. Ceci est également possible inversement en appuyant sur le bouton « User » sur le serveur et le nœud doit recevoir un message.
De plus, les messages sont affichés dans la fenêtre « Moniteur série ».
Ouvrir la fenêtre « Moniteur série » d’Arduino
Il est recommandé de toujours ouvrir la fenêtre de la console du moniteur série de Arduino, car elle affiche des messages importants. Bien entendu, un adaptateur de programmation raccordé est nécessaire. Les messages de réinitialisation tels que la réinitialisation du watchdog, la réinitialisation en cas de panne de courant et les messages de démarrage y sont également affichés.
Les messages RadioShuttle reçus et les messages envoyés sont également affichés ici. Avec la fonction EnablePacketTrace()
, l’enregistrement des messages peut être désactivé ou adapté.
Si la fenêtre « Moniteur série » s’ouvre plus tard, les messages précédents ne sont évidemment pas visibles.
Exemple A: Lancement réussi du logiciel RadioShuttle
Immédiatement après le démarrage ou la réinitialisation de la carte, vous devriez voir un message similaire à celui ci-dessus dans la fenêtre « Moniteur série ». Des paramètres importants tels que la fréquence, la largeur de bande et le facteur d’étalement sont visibles. Le message « TimeOnAir » indique combien de temps les données voyagent avec les paramètres réglés. Le temps, s’il est disponible, est pris du temps du RTC, sinon le temps de compilation est utilisé. Il est également important d’indiquer le numéro du nœud (ici « ID=201 ») ainsi que le réglage de l’exécution du système en tant que nœud ou station.
Exemple B: Message envoyé avec succès
Après avoir appuyé sur le bouton « User », un message de test a été envoyé à un deuxième nœud. Celui-ci a confirmé la réception.
Exemple C: Timeout d’attente pour l’envoi d’un message
Un message de test a été envoyé après avoir appuyé sur le bouton « User ». Mais la réception n’a pas été confirmée. Après trois tentatives, ce processus est interrompu et un message d’erreur (« MSG_SentTimeout ») apparaît.
Etats des LED dans l’exemple « RadioTest »
LED 2 (LED verte à droite) :
- Désactivé
La carte n’a pas d’alimentation ou est en mode « deepsleep » - Clignote brièvement toutes les 10 secondes
La carte fonctionne et est en mode « deepsleep » ESP32 pour consommer le moins d’énergie possible, le processeur est largement éteint. Le clignotement court indique qu’il devient actif régulièrement pour vérifier s’il y a quelque chose à faire - S’allume en permanence faiblement
La carte est active et fonctionne dans les événements Arduino « loop ». Ensuite, il utilise un simple « sleep » et est réveillé environ 1000 fois par seconde par le système d’exploitation - Scintillement
Ceci signale la réception de données radio LoRa - Allumée en permanence
La carte est active et fonctionne dans la « loop » Arduino. Pendant son fonctionnement, la LED est allumée, donc si la « loop » est active en permanence, la LED est allumée en permanence. Pour une utilisation optimisée en énergie, la « loop » doit bien entendu fonctionner le moins possible ou seulement lorsqu’il y a quelque chose à traiter. Mot-clé : pas de sondage (« no polling »)
LED 1 (LED rouge à gauche):
- Désactivé
En règle générale, la LED rouge ne s’allume pas, mais peut être utilisée par l’utilisateur - Scintillement
Lors de la transmission de données radio LoRa, la LED rouge s’allume brièvement en fonction de la longueur des données. Cela se produit lors de l’envoi de chaque message
Bien entendu, les LEDs peuvent également être utilisées individuellement ou en complément par l’utilisateur.
Mémoire permanente pour les réglages
Il existe une mémoire dans laquelle les réglages qui doivent être conservés sur la carte après l’installation d’un nouveau croquis peuvent être sauvegardés définitivement. Ici, il est judicieux d’enregistrer des paramètres tels que les données d’accès WiFi ou similaire, etc. Les exemples d’applications « PropertyEditor » et « PropertyTest » (voir tableau ci-dessous) peuvent être utilisés à cet effet. La page Mémoire Permanente pour les Réglages explique cela en détail.
Vue d’ensemble de tous les exemples d’applications
Nom | Bibliothèque | Explication |
---|---|---|
Blinky | Arduino-mbed-APIs | Clignotement périodique d’une LED |
BlinkyEnhanced | Arduino-mbed-APIs | Clignotement commandé par minuterie d’une LED |
BlinkyEnhanced_C_Plus_Plus | Arduino-mbed-APIs | Clignotement commandé par minuterie d’une LED (en C++) |
CPUBench | Arduino-mbed-APIs | Mesure les performances des CPU flottants et entiers |
DisplayI2CSample | Arduino-mbed-APIs | Utilisation d’un écran OLED (128×64 pixels, I2C). Voir Utilisation de la Carte ECO Power avec un Écran OLED |
ESP32AsyncHTTPClient | Arduino-mbed-APIs | Un programme client HTTP simple qui exécute une requête HTTP GET ou POST . Le tout se déroule de manière asynchrone sans bloquer la « loop » principale de l’Arduino |
ESP32BlinkyDeepSleep | Arduino-mbed-APIs | Exemple « deepsleep » (faible consommation d’énergie) ; clignote toutes les 10 secondes en « deepsleep », la LED2 clignote toutes les minutes au réveil |
ESP32DoorBell | Arduino-mbed-APIs | Prend en charge un bouton de sonnette et un relais d’ouvre-porte. En appuyant sur un bouton de sonnerie, les téléphones connectés via le FRITZ!Box sonnent. En outre, il envoie un message MQTT à l’application « MQTT Push » |
ESP32FrequencyThrottle | Arduino-mbed-APIs | Réduire l’horloge du processeur MCU à 2 MHz pour économiser de l’énergie |
ESP32MQTTAlarmSystem | Arduino-mbed-APIs | Petit système d’alarme qui déclenche une alarme via MQTT via un détecteur de mouvement, y compris les données d’état et de température via l’écran |
ESP32MQTTClient | Arduino-mbed-APIs | Établit une connexion WiFi avec un broker MQTT, lui envoie des messages et reçoit les topics enregistrés du broker |
ESP32RadioShuttleMQTTGateway | Arduino-mbed-APIs | Reçoit les données des nœuds et les transmet à un broker MQTT. Les messages MQTT reçus peuvent être transmis aux nœuds LoRa |
HelloWorld | Arduino-mbed-APIs | Exemple de sortie simple ; explique les différentes options « printf » |
PMSensorRadio | Arduino-mbed-APIs | Capteur d’environnement ; mesure périodiquement la concentration de poussière en µg/m3 (selon les normes PM10 et PM2,5) |
PropertyEditor | Arduino-mbed-APIs | Programme de réglage des paramètres (propriétés), qui sont stockés de manière permanente sur la carte. Restez après le redémarrage ou même après l’installation d’un nouveau programme. Voir aussi Mémoire Permanente pour les Réglages |
PropertyTest | Arduino-mbed-APIs | Montre comment les propriétés, telles que, les chaînes de caractères et les valeurs numériques peuvent être stockées dans la mémoire flash permanente pour être utilisées dans les croquis. Voir aussi Mémoire Permanente pour les Réglages |
RadioContinuousTX | Arduino-mbed-APIs | Programme de diagnostic qui émet en continu, par exemple pour les mesures d’antennes RF |
RadioShuttlePanicButton | Arduino-mbed-APIs | Très similaire à l’exemple « RadioShuttleSimpleNode », mais avec un support sonore de base supplémentaire pour confirmer à la personne demandant de l’aide que l’alarme panique a été déclenchée, a été ajouté |
RadioShuttleRadioTest2 | Arduino-mbed-APIs | Devrait être plus facile à utiliser pour les nouveaux utilisateurs ; l’ensemble du code de configuration spécifique à LoRa a été déplacé sur « LoRa.cpp » |
RadioShuttleSimpleNode | Arduino-mbed-APIs | Envoie les données du capteur à une station distante, a été ajouté. Ceci inclut la température, l’humidité et l’état de la batterie. Les données sont envoyées automatiquement toutes les 30 minutes ou en appuyant sur le bouton « User » |
RadioTest | RadioShuttle | Voir l’explication détaillée ci-dessus |
RTC3231Calibration | Arduino-mbed-APIs | Outil d’étalonnage pour la mesure des erreurs de fréquence du RTC de la carte ECO Power |
TimerTest | Arduino-mbed-APIs | Exemple d’appel de plusieurs minuteries asynchrones qui appellent les fonctions de fin d’appel lorsqu’un timeout d’attente est en attente. Fonctionne avec précision et économise de l’énergie |
Vidéo didactique : Non-volatile settings (NV Property)