Etape 4: Chargement et l’exécution du logiciel
Configuration initiale
Pour communiquer avec le Conseil de Nucleo, nous devons d’abord installer l’USB pilotes trouvés ici. Cela nous permet de télécharger le logiciel à la Commission, mais aussi de recevoir des données sur la série. Bien que facultatif, il est également recommandé que vous téléchargez et installez les mises à jour du firmware pour le jury, trouvés ici. Une fois que la carte est connectée, vous devriez voir un nouveau périphérique de stockage. Pour transférer et installer un nouveau logiciel pour le Nucleo, simplement enregistrer ou copier le programme dans ce stockage de nouveaux médias et vous devriez voir les lumières du Conseil cligner des yeux. Notez que le fichier, une fois copié, disparaîtra de l’appareil. Cependant, tant les lumières cligna des yeux et s’est terminée le vert, le Conseil d’administration exécute continuellement le dernier logiciel téléchargé.
Pour déboguer correctement le logiciel, il est recommandé que vous configurez une connexion de port série avec le Nucleo. Une variété de programmes peut être utilisés, sous Windows, nous avons utilisé le logiciel Arduino. Si vous connectez le Nucleo et cliquez sur le bouton « Serial Port Monitor » (une petite loupe dans le coin de l’écran), il affichera toutes les informations envoyées de la carte. Cela inclut certaines déclarations impression d’information incluses dans notre version du code.
Mise en place du Code
Obtenir le code complet peut être trouvé ici. La meilleure façon de commencer l’exécution du projet est en utilisant le compilateur en ligne fourni à https://www.developer.mbed.org. Étant donné que le serveur pour envoyer les données à est différent pour chaque personne, vous devez faire une petite quantité de modifications pour obtenir le logiciel de fonctionner. Tout d’abord, accédez au fichier « main.h » et changez la ligne #3 alors qu’il est dit :
Où Your_URL est l’URL vous souhaitez que les données à envoyer à. Notez que vous devez mettre les guillemets autour de l’URL. Le meilleur site que nous avons trouvé pour l’envoi de données vers est RequestBin. Tout simplement créer un RequestBin, copiez l’URL"Bin" (de la forme "http://requestb.in/19lz95m1") dans le champ Your_URL et actualisez la page. La page sera l’affichage des données transmies par le jury de Nucleo. Notez que pour afficher les données, ajoutez la ligne «? inspecter "à la fin de l’URL.
Une fois que vous avez modifié le fichier « main.h », avec le compilateur mbed, cliquez sur le bouton de compilation en haut. Il va ensuite télécharger un fichier « .bin ». Copiez ce fichier dans le jury de Nucleo, et il va commencer à exécuter le programme.
Modification du Code
Il y a un certain nombre de changements faciles, que vous pouvez apporter au code soit modifier la disposition matérielle, changer la société de carte SIM (c’est T-Mobile par défaut), modifier le nombre de lectures par envoi et la fréquence de prendre une lecture. Toutes ces modifications ont lieu dans le fichier « main.h ».
Tout d’abord, pour modifier la disposition matérielle, vous pouvez simplement changer le port donné par le capteur spécifique. Ainsi, par exemple, si vous voulez changer la broche TX GPS par défaut D6 à dire PC_10, vous modifieriez ligne 13 à dire :
Notez que ce n’est pas un changement de NIP valide, comme nous l’avons broche TX de la sonde pH sur PC_10. En outre, seulement spécifiques goupilles sont TX, tandis que d’autres sont RX, et beaucoup ne sont ni. Vous devriez regarder le brochage Nucleo ici à déterminer quelles broches sont valides.
Pour modifier l’URL de l’APN, vous pouvez simplement changer pour la ligne 4
Notez que comme pour l’URL dans le paragraphe précédent, vous devez inclure les guillemets autour du réseau APN.
Pour modifier le nombre de lectures pour envoyer ou la fréquence de prendre une mesure, nous pouvons modifier les lignes 6 et 7. Ligne 6 définit le nombre de lectures à percevoir avant l’envoi. La plage recommandée est comprise entre 1 et 100. Ligne 7 définit le nombre de secondes pour dormir entre chaque lecture. La valeur par défaut est de 360, et donc il faut une lecture toutes les 6 minutes (jusqu'à 10 par heure). Ceci peut être changé à n’importe quel nombre positif, mais un très grand nombre va avoir un comportement indéfini.
Ce sont probablement les modifications principales que vous voudriez changer, mais les retouches plus avancées sont inclus dans la section suivante.
Modification du Code (avancé)
La principale édition « avancée » nous nous concentrons sur ajoute un capteur. Cela nécessite une bonne quantité de modifications, mais il n’est pas terriblement compliqué. Tout d’abord, vous devez inclure la bibliothèque de capteur dans le dossier du projet entier dans le compilateur mbed et ajoutez la ligne include approprié dans "main.cpp" (p. ex. #include « Custom_Sensor.h »). Ensuite, nous devons changer la structure de lecture dans « main.h » en ajoutant les lignes pour quelque capteur que vous souhaitez inclure. Par exemple, si vous souhaitez inclure un nombre entier de lecture, vous devez ajouter la ligne « int customSensorReading » à la structure. Pour en revenir à « main.cpp », que nous devons ajouter une instance globale de la sonde, cependant il est initialisé. Ensuite, nous pouvons ajouter simplement le capteur à chacune des fonctions associées (setup(), enterSleep(), read(), etc.) pour qu’il puisse fonctionner correctement. Le montage final de grand nécessaire se trouve dans la fonction send(). Nous notons que l’appel à « sprintf » inclut tous les champs de la structure de la lecture. Il faut ajouter une ligne de chaîne mise en forme (%d pour un entier, par exemple) et le champ de données associées (data[i].customSensorReading) à l’appel à sprintf. Enfin, nous devons modifier la SIZE_OF_ENTRY définir à la ligne 28 en ajoutant la taille de tout structure de données, vous avez ajouté à la structure de la lecture, plus une. C’est un peu plus compliqué, car il doit être la taille de la structure ajoutée à sprintf. Donc, si nous avons ajouté un flotteur, appelé % 10f dans sprintf, il faudra ajouter 10 + 1 = 11 à la SIZE_OF_ENTRY définir (comme les 10 % 10f indique que vous souhaitez copier 10 octets d’informations de la chaîne sprintf).