Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial Internet of Things >> Technologie de l'Internet des objets

Comment créer une entrée numérique et une commande numérique à l'aide du module Bluetooth RN487x de Microchip

Apprenez à utiliser un module Microchip pour prototyper des périphériques d'entrée numérique et de contrôle numérique.

Dans cet article, le deuxième d'une série en trois parties sur les modules Bluetooth RN487x de Microchip, je vais vous montrer comment créer une entrée numérique (un interrupteur) et une commande numérique (d'une LED).

Veuillez vous référer à mon premier article pour le contexte et les instructions sur la façon de configurer le module RN487x.

Projet 1 : Interrupteur d'entrée numérique RN478x

Notre modèle de conception comporte trois éléments que nous devons fournir :

  1. Matériel : Matériel spécifique à la tâche pour générer le signal numérique
  2. Configuration : Commandes du module RN487x pour allouer une variable dans une base de données et mapper le signal à la variable
  3. Candidature : Script sur un poste de travail, pour accepter la valeur de la base de données

Ce qui suit est la répartition des composants.

Matériel d'entrée numérique

Le rôle de « entrée numérique » est simplement assuré par un commutateur ; SW1.

Le module RN487x a des pullups internes sur les broches, donc un interrupteur normalement ouvert connecté à la terre à la fermeture nous donnera le contrôle à 2 états nécessaire.

Comme nous ne gérons qu'un seul signal et que nous n'utilisons pas de PWM, nous avons choisi le RN4871. Le circuit peut être alimenté par une paire de piles AAA, ou même une pile bouton.

Les éléments de circuit restants sont ;

Configuration d'entrée numérique

Avant de créer la configuration pour cet exemple, assurez-vous que le module est dans un état connu. Ceci est décrit dans la section de l'annexe sur l'initialisation commune. Ne sautez pas cette étape !

Nous n'avons besoin que d'une caractéristique dans la base de données pour représenter l'état de notre capteur. Nous créons donc un service et une caractéristique dans ce service. Les deux commandes correspondantes sont :

PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,10,01

La première commande, PS, crée le service. La deuxième commande, PC, crée la caractéristique. Dans les deux commandes, le premier paramètre est l'identifiant qui permet à notre périphérique d'exister dans l'univers des autres périphériques Bluetooth et d'être toujours accessible de manière unique. Ce paramètre doit être conforme à la norme UUID. Vous pouvez utiliser les exemples de valeurs indiqués. Il est également facile de créer n'importe quel nombre d'UUID standard.

Dans la commande PC, le deuxième paramètre indique à la couche Bluetooth comment les modifications de la valeur doivent parvenir au client. Dans ce cas, le paramètre (10) indique que les modifications apportées à la valeur peuvent entraîner une notification immédiate aux clients. C'est une partie importante de notre intention pour cet exemple. Enfin, dans la commande PC, le troisième paramètre définit la taille de la valeur en octets; un seul dans ce cas (01).

La partie script de notre configuration ressemble à ceci :

@PW_ON SW,0A,09 @PIO1H SHW,0072,01 @PIO1L SHW,0072,00

Il existe trois méthodes dans ce script, chacune préfixée par « @ ». Chaque méthode s'exécute sur un événement système spécifique.

  • PW_ON : Fonctionne à la mise sous tension. La méthode configure notre broche d'intérêt (P1_2) en tant que signal d'entrée numérique « déclenché ».
  • PIO1H : Fonctionne chaque fois que le signal de déclenchement passe à l'état haut. La méthode écrit un « 1 » dans la base de données.
  • PIO1L : Fonctionne à chaque fois que le signal de déclenchement passe au niveau bas. La méthode écrit un « 0 » dans la base de données.

Application d'entrée numérique

Le script Python est switch.py ​​et peut être trouvé ici. Modifiez le script et remplacez l'exemple d'adresse MAC par l'adresse MAC de votre appareil. Ensuite, pour appliquer l'exemple, mettez simplement le périphérique sous tension, puis exécutez le script sur un système doté des capacités Bluetooth appropriées. Consultez l'annexe pour obtenir de l'aide sur cette configuration sous Linux. Le script émettra des messages pour indiquer la progression lors de la connexion au périphérique. Une fois le périphérique connecté, appuyez et relâchez le commutateur plusieurs fois. Chaque événement d'ouverture/fermeture du commutateur sera noté avec un message du script en cours d'exécution.

Le script est court et inclut des commentaires pour tous les blocs fonction et appels d'API GATT.

La fonctionnalité BLE que nous utilisons et qui est unique à cet exemple est la notification.

  • Nous utilisons une méthode de rappel pour gérer un changement de signal du périphérique lorsqu'il se produit. Nous n'avons pas besoin d'interroger le périphérique pour connaître l'état du signal.
  • Nous devons dire au périphérique que nous voulons ces notifications en écrivant dans une caractéristique du système.

Projet 2 : contrôle numérique RN487x

Notre modèle de conception comporte trois éléments que nous devrons fournir :

  • Matériel : Matériel spécifique à la tâche pour exprimer une sortie numérique
  • Configuration : Commandes du module RN487x pour allouer une variable dans une base de données et mapper la variable au signal
  • Candidature : Script sur un poste de travail, pour écrire la valeur de la base de données

Ce qui suit est la répartition des composants.

Matériel de contrôle numérique

Le rôle de « sortie numérique » est simplement assuré par une LED ; D1.

Les circuits de référence du module RN487x suggèrent un GPIO à collecteur ouvert, nous éclairons donc la LED en conséquence, en absorbant le courant.

Comme nous ne gérons qu'un seul signal et que nous n'utilisons pas de PWM, nous avons choisi le RN4871. Le circuit peut être alimenté par une paire de piles AAA, ou même une pile bouton.

Les éléments de circuit restants sont ;

  • C1 : Un condensateur de dérivation pour stabiliser la puissance
  • R1,C2 : Un délai pour la réinitialisation du processeur à la mise sous tension
  • J1 : Un port série pour la configuration

Configuration du contrôle numérique

Avant de créer la configuration pour cet exemple, assurez-vous que le module est dans un état connu. Ceci est décrit dans la section de l'annexe sur l'initialisation commune.

Ne sautez pas cette étape !

Nous n'avons besoin que d'une caractéristique dans la base de données pour représenter l'état de notre capteur. Nous créons donc un service et une caractéristique dans ce service.

Les deux commandes correspondantes sont :

PS,59c88760536411e7b114b2f933d5fe66 PC,59c889e0536411e7b114b2f933d5fe66,08,01

La première commande, PS, crée le service. La deuxième commande, PC, crée la caractéristique. Dans les deux commandes, le premier paramètre est l'identifiant qui permet à notre périphérique d'exister dans l'univers des autres périphériques Bluetooth et d'être toujours accessible de manière unique. Ce paramètre doit être conforme à la norme UUID. Vous pouvez utiliser les exemples de valeurs indiqués. Il est également facile de créer n'importe quel nombre d'UUID standard.

Dans la commande PC, le deuxième paramètre indique à la couche Bluetooth comment les changements de valeur doivent parvenir au périphérique. Dans ce cas, le paramètre (08), indique que le périphérique doit envoyer une confirmation au client lorsqu'une valeur est modifiée. Enfin, dans la commande PC, le troisième paramètre définit la taille de la valeur en octets; un seul dans ce cas (01).

La partie script de notre configuration ressemble à ceci :

@CONN |O,08,72

Il n'y a qu'une seule méthode dans ce script '@CONN'. Il s'exécute à chaque fois qu'un client se connecte au périphérique.

La ligne de script unique est une commande « handle association », avec un résultat très puissant. Il associe la variable de base de données à une commande de sortie de broche numérique. Le paramètre « 08 » est un masque de bits qui spécifie la broche à laquelle notre LED est connectée. Le paramètre « 72 » est un traitement unique et permanent de la caractéristique que nous avons créée dans la base de données. Ainsi, après la connexion d'un client, chaque fois que le client écrit une nouvelle valeur dans la variable de base de données, notre LED s'allumera ou s'éteindra en conséquence.

Application de contrôle numérique

Le script Python est light.py et peut être trouvé ici. Modifiez le script et remplacez l'exemple d'adresse MAC par l'adresse MAC de votre appareil. Ensuite, pour appliquer l'exemple, mettez simplement le périphérique sous tension, puis exécutez le script sur un système doté des capacités Bluetooth appropriées. Consultez l'annexe pour obtenir de l'aide sur cette configuration sous Linux. Le script émettra des messages pour indiquer la progression lors de la connexion au périphérique. Une fois le périphérique connecté, le script enverra une nouvelle commande au périphérique toutes les secondes. Les commandes allumeront et éteindront la LED.

Le script est court et inclut des commentaires pour tous les blocs fonctionnels et appels d'API GATT. La fonctionnalité BLE que nous utilisons et qui est unique à cet exemple est l'association de poignées.

Vous pouvez voir tout cet exemple en action dans la vidéo du projet qui l'accompagne.

Étapes suivantes

Ceci conclut la partie 2 de notre série en trois parties sur le module RN487x.

La partie 3 suivra le même modèle de conception pour créer un capteur analogique et une commande analogique. Il inclura également quelques sujets pour une étude plus approfondie qui s'appliquent à tous les exemples de projets.


Technologie de l'Internet des objets

  1. Libre comme en liberté ou bière gratuite ? ... que diriez-vous de :utilisation, construction et recherche gratuites !
  2. Entrée et sortie de base C#
  3. Récapitulatif :Comment Bluetooth LE et XLE sont l'avenir du suivi et de la surveillance des actifs
  4. Comment Bluetooth + Ultrasons =meilleure précision RTLS et moindre coût
  5. Comment construire et optimiser un programme de maintenance préventive
  6. Capteurs et commandes avec le module Bluetooth RN487x de Microchip
  7. Comment créer une opération plus intelligente à l'aide de la technologie IoT de surveillance des réservoirs
  8. Comment donner du sens au Big Data :RTU et applications de contrôle de processus
  9. Qu'est-ce que le Lean Digital et comment l'intégrer ?