Étape 6: logiciels
Le logiciel a deux composantes principales. La première composante est une bibliothèque partagée qui dépend de la programme des moniteurs. Il n’est pas nécessaire de faire une bibliothèque partagée, bien sûr, mais si vous voulez écrire votre propre code personnalisé, il est utile de pouvoir faire un lien vers elle en spécifiant simplement la bibliothèque sur la ligne de commande de gcc. Le makefile pour la bibliothèque est livré avec un installeur qui placera la bibliothèque au bon endroit pour le programme des moniteurs.La bibliothèque est très simple et consiste en une poignée de fonctions :
int SpiOpenPort (int spi_device, int mode, int vitesse) ;
int SpiClosePort (int spi_device) ;
int SpiWriteAndRead (int spi_device, unsigned char * data, int longueur) ;La fonction SpiOpenPort s’ouvre un dispositif de spi. Les choix de spi_device sont 0 ou 1, qui correspond au CE0 et CE1 pour le chip select. Le mode spécifie le mode SPI - menant à bord de l’horloge, trailing edge de l’horloge, etc.... Le paramètre final, vitesse, représente la vitesse désirée (en Hz) vous voulez votre SPI à communiquer. Le système sous-jacent essaiera de faire correspondre le match le plus proche ou la meilleure pour la vitesse que vous spécifiez.
Le programme de surveillance n’est pas beaucoup plus difficile. Il implique la lecture de 2 octets de la MAX144. La lecture est effectuée deux fois si nous sommes toujours opéré sur des données de CH2 (qui devraient être mises en court-circuit pour CH1). Nous avons créer un mot de deux octets avec l’octet le premier étant le MSB et le second le LSB. Nous puis masquer le bit 12 qui spécifie quelle voie nous lisons et enfin que convertir une valeur de tension qui en résulte pour la conversion à une température. La conversion de la température implique la fonction linéaire (V * 100)-50 qui est la fonction de conversion de température selon la feuille de données.
Après la lecture de la tension, il est inséré dans la table MySql. Avant d’examiner ce code même si, il faut faire une petite divergence à MySql et créer la structure de base de données et table nécessaires à l’application de fonctionner correctement.
Télécharger les sources depuis le dépôt github : https://github.com/scottmccain/tempmonitor
Créer les tables nécessaires et la base de données à l’aide de la commande suivante (Notez ceci n’a qu’à faire une seule fois) :
Changer de répertoire à la racine du projet :
CD tempmonitor
Assurez-vous que vous sélectionnez le script exécutable :
chmod + x./createdb.sh
Puis exécuter le script :
./CreateDB.shEntrez vos informations d’identification (vous pouvez modifier l’utilisateur si vous le souhaitez en modifiant le script) et la base de données et la structure de la table sera créée pour vous.
Une fois que c’est terminé, vous pouvez créer les fichiers de bibliothèque requis en exécutant :
sudo faire bibliothèque
Cela va construire et installer la bibliothèque requise et un objet partagé pour le moniteur de température. Après cela, vous pouvez construire et installer le programme des moniteurs. Avant que vous exécutiez générer le code source, cependant, il y a un couple de commandes, vous devez exécuter avant main. Le makefile dépend de 2 variables d’environnement doivent être définies avant que le code se compile ou lier correctement. Les variables doivent être définies avec les commandes suivantes :
[insérer la commande définir vars avec mysql_config]
Enfin, vous pouvez construire et installer le programme avec la commande suivante :
sudo faire & & sudo faire installerCela va générer le code source pour le programme des moniteurs et installez-le dans un endroit où le cron peut voir.
Ensuite, nous allons créer une entrée de crontab pour commencer l’enregistrement des températures sur une base chronométrée. Tout d’abord, ouvrez l’éditeur de crontab en exécutant la commande suivante :
sudo crontab -eUne fois que l’éditeur est ouvert de défiler vers le bas du fichier et insérez la ligne suivante :
Enregistrez vos modifications. Ceci exécutera le programme des moniteurs toutes les 5 minutes pour enregistrer la température. Vous pouvez régler l’entrée pour vos propres besoins. Veuillez consulter les pages de man cron pour plus d’informations.
Félicitations ! À ce stade doit se connecter à votre Pi framboise températures. Vous pouvez vérifier qu’en allant dans mysql et exécute une requête sur la table de températures dans la base de données servicedb. Ensuite, je vais vous montrer une application que j’ai attisé pour afficher les valeurs de la base de données et un service web simple.