Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

So bauen Sie einen digitalen Eingang und eine digitale Steuerung mit dem Bluetooth-Modul RN487x von Microchip

Erfahren Sie, wie Sie mit einem Microchip-Modul Prototypen für digitale Eingänge und digitale Steuerungsperipheriegeräte verwenden.

In diesem Artikel, dem zweiten einer dreiteiligen Serie zu Microchips RN487x Bluetooth-Modulen, zeige ich Ihnen, wie Sie einen digitalen Eingang (einen Schalter) und eine digitale Steuerung (einer LED) erstellen.

Bitte lesen Sie meinen ersten Artikel für Hintergrundinformationen und Anweisungen zur Konfiguration des RN487x-Moduls.

Projekt 1:RN478x Digitaler Eingangsschalter

Unser Designmuster besteht aus drei Komponenten, die wir bereitstellen müssen:

  1. Hardware: Aufgabenspezifische Hardware zur Generierung des digitalen Signals
  2. Konfiguration: RN487x-Modulbefehle, um eine Variable in einer Datenbank zuzuweisen und das Signal der Variablen zuzuordnen
  3. Bewerbung: Skript auf einer Workstation, um den Datenbankwert zu akzeptieren

Was folgt, ist die Komponentenaufschlüsselung.

Digitale Eingangshardware

Die Rolle des „digitalen Eingangs“ wird einfach durch einen Schalter bereitgestellt; SW1.

Das RN487x-Modul hat interne Pullups an den Pins, so dass ein beim Schließen mit Masse verbundener Schließerschalter uns die notwendige 2-Zustands-Steuerung gibt.

Da wir nur ein Signal verwalten und kein PWM verwenden, haben wir uns für den RN4871 entschieden. Die Schaltung kann mit einem Paar AAA-Batterien oder sogar einer Knopfzelle betrieben werden.

Die restlichen Schaltungselemente sind;

Digitaleingangskonfiguration

Stellen Sie vor dem Erstellen der Konfiguration für dieses Beispiel sicher, dass sich das Modul in einem bekannten Zustand befindet. Dies wird im Anhangsabschnitt zur allgemeinen Initialisierung beschrieben. Überspringe diesen Schritt nicht!

Wir brauchen nur ein Merkmal in der Datenbank, um unseren Sensorzustand darzustellen. Also erstellen wir einen Dienst und ein Merkmal in diesem Dienst. Die beiden entsprechenden Befehle sind:

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

Der erste Befehl, PS, erstellt den Dienst. Der zweite Befehl PC erstellt das Merkmal. In beiden Befehlen ist der erste Parameter die Kennung, die es unserem Peripheriegerät ermöglicht, im Universum anderer Bluetooth-Peripheriegeräte zu existieren und dennoch eindeutig darauf zuzugreifen. Dieser Parameter muss dem UUID-Standard entsprechen. Sie können die gezeigten Beispielwerte verwenden. Es ist auch einfach, eine beliebige Anzahl von Standard-UUIDs zu erstellen.

Im PC-Befehl teilt der zweite Parameter der Bluetooth-Schicht mit, wie Änderungen des Wertes zum Client gelangen sollen. In diesem Fall sagt der Parameter (10), dass Änderungen des Wertes zu einer sofortigen Benachrichtigung an Clients führen können. Dies ist ein wichtiger Teil unserer Absicht für dieses Beispiel. Im PC-Befehl schließlich definiert der dritte Parameter die Größe des Wertes in Bytes; nur eine in diesem Fall (01).

Der Skriptteil unserer Konfiguration sieht so aus:

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

In diesem Skript gibt es drei Methoden, denen jeweils ein „@“ vorangestellt ist. Jede Methode wird auf einem bestimmten Systemereignis ausgeführt.

Digitaleingangsanwendung

Das Python-Skript ist switch.py ​​und kann hier gefunden werden. Bearbeiten Sie das Skript und ersetzen Sie die Beispiel-MAC-Adresse durch die MAC-Adresse Ihres Geräts. Um das Beispiel zu üben, schalten Sie dann einfach das Peripheriegerät ein und führen das Skript dann auf einem System mit den entsprechenden Bluetooth-Funktionen aus. Hilfe zu diesem Setup unter Linux finden Sie im Anhang. Das Skript gibt Meldungen aus, um den Fortschritt beim Verbinden mit dem Peripheriegerät anzuzeigen. Nachdem das Peripheriegerät angeschlossen ist, drücken Sie den Schalter einige Male und lassen Sie ihn wieder los. Jedes Öffnen/Schließen-Ereignis des Schalters wird mit einer Meldung des laufenden Skripts vermerkt.

Das Skript ist kurz und enthält Kommentare für alle Funktionsblöcke und GATT-API-Aufrufe.

Die in diesem Beispiel verwendete BLE-Funktion ist die Benachrichtigung.

Projekt 2:RN487x Digital Control

Unser Designmuster besteht aus drei Komponenten, die wir bereitstellen müssen:

Was folgt, ist die Komponentenaufschlüsselung.

Digitale Steuerungshardware

Die Rolle des „digitalen Ausgangs“ wird einfach von einer LED übernommen; D1.

Die Referenzschaltungen des RN487x-Moduls schlagen Open-Collector-GPIO vor, sodass wir die LED entsprechend beleuchten, indem wir Strom abziehen.

Da wir nur ein Signal verwalten und kein PWM verwenden, haben wir uns für den RN4871 entschieden. Die Schaltung kann mit einem Paar AAA-Batterien oder sogar einer Knopfzelle betrieben werden.

Die restlichen Schaltungselemente sind:

Konfiguration der digitalen Steuerung

Stellen Sie vor dem Erstellen der Konfiguration für dieses Beispiel sicher, dass sich das Modul in einem bekannten Zustand befindet. Dies wird im Anhangsabschnitt zur allgemeinen Initialisierung beschrieben.

Überspringe diesen Schritt nicht!

Wir brauchen nur ein Merkmal in der Datenbank, um unseren Sensorzustand darzustellen. Also erstellen wir einen Service und ein Merkmal in diesem Service.

Die beiden entsprechenden Befehle sind:

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

Der erste Befehl, PS, erstellt den Dienst. Der zweite Befehl PC erstellt das Merkmal. In beiden Befehlen ist der erste Parameter die Kennung, die es unserem Peripheriegerät ermöglicht, im Universum anderer Bluetooth-Peripheriegeräte zu existieren und dennoch eindeutig darauf zuzugreifen. Dieser Parameter muss dem UUID-Standard entsprechen. Sie können die gezeigten Beispielwerte verwenden. Es ist auch einfach, eine beliebige Anzahl von Standard-UUIDs zu erstellen.

Im PC-Befehl teilt der zweite Parameter der Bluetooth-Schicht mit, wie Wertänderungen an das Peripheriegerät gelangen sollen. In diesem Fall sagt der Parameter (08), dass das Peripheriegerät eine Bestätigung an den Client senden muss, wenn ein Wert geändert wird. Im PC-Befehl schließlich definiert der dritte Parameter die Größe des Wertes in Bytes; nur einer in diesem Fall (01).

Der Skriptteil unserer Konfiguration sieht so aus:

@CONN |O,08,72 

Es gibt nur eine Methode in diesem Skript ‚@CONN‘. Es wird jedes Mal ausgeführt, wenn ein Client eine Verbindung zum Peripheriegerät herstellt.

Die einzelne Skriptzeile ist ein „Handle-Assoziation“-Befehl mit einem sehr mächtigen Ergebnis. Es verknüpft die Datenbankvariable mit einem digitalen Pin-Ausgabebefehl. Der Parameter ‚08‘ ist eine Bitmaske, die den Pin angibt, mit dem unsere LED verbunden ist. Der Parameter „72“ ist ein eindeutiger und dauerhafter Handle für das Merkmal, das wir in der Datenbank erstellt haben. Nachdem sich ein Client verbunden hat, geht unsere LED jedes Mal, wenn der Client einen neuen Wert in die Datenbankvariable schreibt, entsprechend ein oder aus.

Digitale Steuerungsanwendung

Das Python-Skript ist light.py und kann hier gefunden werden. Bearbeiten Sie das Skript und ersetzen Sie die Beispiel-MAC-Adresse durch die MAC-Adresse Ihres Geräts. Um das Beispiel zu üben, schalten Sie dann einfach das Peripheriegerät ein und führen das Skript dann auf einem System mit den entsprechenden Bluetooth-Funktionen aus. Hilfe zu diesem Setup unter Linux finden Sie im Anhang. Das Skript gibt Meldungen aus, um den Fortschritt beim Verbinden mit dem Peripheriegerät anzuzeigen. Nachdem das Peripheriegerät angeschlossen ist, sendet das Skript jede Sekunde einen neuen Befehl an das Peripheriegerät. Die Befehle schalten die LED ein und aus.

Das Skript ist kurz und enthält Kommentare für alle Funktionsblöcke und GATT-API-Aufrufe. Die in diesem Beispiel einzigartige BLE-Funktion ist die Handle-Zuordnung.

Dieses ganze Beispiel können Sie im begleitenden Projektvideo in Aktion sehen.

Nächste Schritte

Damit ist Teil 2 unserer dreiteiligen Serie zum RN487x-Modul abgeschlossen.

Teil 3 folgt demselben Entwurfsmuster, um einen analogen Sensor und eine analoge Steuerung zu erstellen. Es wird auch einige Themen für weitere Studien enthalten, die für alle Beispielprojekte gelten.


Internet der Dinge-Technologie

  1. Frei wie in Freiheit oder Freibier? ... wie wäre es mit:kostenlos nutzen, bauen und forschen!
  2. C# Grundlegende Ein- und Ausgabe
  3. Zusammenfassung:Wie Bluetooth LE und XLE die Zukunft des Asset-Trackings und -Monitorings sind
  4. Wie Bluetooth + Ultraschall =Bessere RTLS-Genauigkeit und geringere Kosten
  5. So erstellen und optimieren Sie einen vorbeugenden Wartungsplan
  6. Sensoren und Steuerungen mit dem RN487x Bluetooth-Modul von Microchip
  7. So entwickeln Sie Lösungen, die Ihre Kunden wünschen (und bereit sind zu zahlen)
  8. So bauen Sie mit der IoT-Technologie zur Tanküberwachung einen intelligenteren Betrieb auf
  9. So verstehen Sie Big Data:RTUs und Prozesssteuerungsanwendungen
  10. Was ist Lean Digital und wie wird es integriert?