RFID UNIT am M5Stack ATOM Matrix mit UI Flow

In diesem Beitrag möchte ich dir zeigen wie du die RFID UNIT am M5Stack ATOM Matrix programmieren kannst. Den kleinen Microcontroller M5Stack ATOM Matrix habe ich im Beitrag Programmieren des M5Stack ATOM Matrix mit UI Flow vorgestellt und auch gezeigt wie einfach du mit UI Flow programmieren kannst. Hier möchte ich dir nun zeigen wie du eine RFID Karte erkennst und darauf reagieren kannst.

M5Stack ATOM Matrix mit RFID UNIT
M5Stack ATOM Matrix mit RFID UNIT

Die RFID UNIT kann nicht nur an den hier gezeigten M5Stack ATOM Matrix gesteckt werden sondern auch an andere Microcontroller welche über eine Grove Schnittstelle verfügt.

Bezug der RFID UNIT für den M5Stack

Das Modul habe ich über den offiziellen Shop auf aliexpress.com für knapp 5€ inkl. Versandkosten erstanden, die Lieferzeit war mit 3 Wochen zwar recht lange aber wenn man den Preis von 13€ auf ebay.de gegenüber setzt, lohnt sich das warten doch schon.

Lieferumfang

Zum Lieferumfang der RFID UNIT gehört neben dem RFID Sensor lediglich ein vierpoliges Anschlusskabel mit Grove Schnittstelle. Es fehlt somit wenigstens eine RFID Karte mit welcher man sofort starten könnte.

Da ich diverse Arduino Starter Kits habe welche mit einem RFID Reader ausgestattet sind habe ich ein paar RFID Karten & Schlüsselanhänger da und kann somit gleich loslegen. Passende RFID Karten zum experimentieren findest du aber recht günstig auf ebay.de für schon 2,64€ zzgl. Versandkosten.

Komischerweise habe ich mit der Sendung von HAT Sensoren / Aktoren für den M5StickC (diese folgen in separaten Beiträgen) eine RFID Karte geliefert bekommen.

RFID Tag & Karten
RFID Tag & Karten

technische Daten der RFID UNIT

Da wie bereits erwähnt die RFID UNIT über eine Grove Schnittstelle verfügt hat dieser Sensor 4 Pins (SCL, SSDA, 5V, GND).

  • Betriebsspannung: 5V
  • Anschluss: Grove, I2C
  • Betriebsfrequenz: 13,56 MHz
  • unterstützte Protokolle: ISO14443A, MIFARE und NTAG
  • Abmaße (LxBxH): 47mm x 25mm x 8mm

 

Programmieren der RFID UNIT mit UI Flow

Für den Sensor gibt es in der Software UI Flow  (Web / Offline IDE ) eine Möglichkeit des einfachen hinzufügen zum Code. Somit entfällt zumindest bei dieser Art der Programmierung die Suche nach einer passenden Bibliothek.

einbinden der benötigten Bibliothek zum auslesen der RFID UNIT

Wenn du die Anwendung UI Flow gestartet hast dann müssen wir zunächst die benötigte Bibliothek einbinden, dieses wir mit wenigen Klicks erledigt.

Als erstes müssen wir auf das große “+” Zeichen links unten mit der Beschriftung “UNITS” klicken (1) , danach öffnet sich ein neuer Dialog in welchem wir etwas nach unten scrollen müssen um dann auf der rechten Seite die UNIT “RFID” markieren (2) und diese auswahl mit der Schaltfläche “OK” (3) bestätigen.

Wenn die RFID UNIT erfolgreich hinzugefügt wurde, dann findest du unter dem Eintrag “Einheiten” den Eintrag “RFID”.

auslesen der RFID Kartennummern

Nachdem wir nun die Bibliothek eingebunden haben müssen wir erstmal die RFID Kartennummern auslesen damit wir diese in eine Liste übertragen können. Diese Liste ist später unsere “Whitelist” für erlaubte RFIDs.

Das einfachste ist es diese UIDs mithilfe eines Arduino UNOs auszulesen wie du das machst habe ich dir im Beitrag Arduino Lektion 20 – Teil 1: RFID RC522 – Kartenleser ausführlich erläutert.

Arduino UNO mit RFID RC522
Arduino UNO mit RFID RC522

Das dort gezeigte Sketch zeigt dir die UIDs auf dem seriellen Monitor der Arduino IDE an.

ACHTUNG für das spätere Programm müssen die großen Buchstaben in kleine umgewandelt werden!

In meinem Fall habe ich nachfolgende die UIDs ausgelesen:

c6a3352b7b
b949e3b8ab
37fc943b64

kleines Programm mit UI Flow zum prüfen einer RFID UID

Zunächst wollen wir nur eine der UIDs prüfen und die anderen sollen abgelehnt werden.

UI Flow - einfaches Beispiel mit RFID UNIT
UI Flow – einfaches Beispiel mit RFID UNIT

Video

 

Download der *.m5f Datei

Hier nun der Download zum Programm:

erweitertes Projekt mit einem Piezo Buzzer und eine Liste von UIDs

Nachdem wir nun die UIDs ermittelt und ein erstes Projekt mit der RFID UNIT erstellt haben, möchte ich dir zeigen wie du einen Piezo Buzzer zur akustischen Untermalung des Status und eine Liste mit UIDs implementieren kannst.

Für den Aufbau benötigen wir noch folgende zusätzliche Bauteile:

  • 1x Piezo Buzzer,
  • 2x Breadboardkabel, 10cm, männlich – männlich,
  • 1x Breadboard 170 Pin

Man kann natürlich auch den Piezo Buzzer mit mit entsprechende Kabel “versorgen” und an den ATOM Matrix direkt anschließen, jedoch steht dieser dann nicht mehr gerade auf dem Tisch.

alternativer Anschluß des Piezo Buzzers
alternativer Anschluß des Piezo Buzzers

Zwischenschritt  – einen Ton ausgeben

Wollen wir uns zunächst einmal anschauen wie man einen einfachen Ton ausgeben kann. 

Im ersten Schritt müssen wir uns ein PWM Signal auf einen Pin legen. Wir können ausgenommen die VCC & GND Pins jeden Pin für ein PWM Signal nutzen. In meinem Fall nutze ich den GPIO Pin 25. Die Frequenz definiert wie hoch bzw. tief der Ton ist, je höher der Wert desto höher ist der Ton. Das Tastverhältnis ist der Zeitliche Abstand zwischen zwei PWM Signale. Zum Schluss definieren wir einen Timer für das PWM Signal. Der Verbaute Chip hat 2 Timer welche wir verwenden können.

Damit der Buzzer nicht dauerhaft läuft müssen wir das PWM Signal “PWM0”  pausieren und nur aktivieren wenn wir einen Ton ausgeben wollen. Das machen wir im Bereich “setup” bei der Initialisierung des Microcontrollers (beim Start).

Nachdem wir nun ein PWM Signal definiert und pausiert haben, starten wir eine Endlosschleife und prüfen in dieser Dauerhaft ob der Taster gedrückt wurde.
Wenn der Taster gedrückt wurde, wird die Funktion “makeBeep” ausgeführt in welcher

  • das PWM Signal fortgesetzt,
  • eine kleine Pause eingelegt,
  • das PWM Signal pausiert

wird.

UI Flow - einen Ton ausgeben wenn der Taster betätigt wird
UI Flow – einen Ton ausgeben wenn der Taster betätigt wird
Video

 

Download

Hier nun das kleine Programm zum bequemen download.

eine Liste mit RFID UIDs prüfen

Im ersten Beispiel habe ich dir gezeigt wie wir mit einer einfachen If-Else-Bedingung einen RFID UID prüfen. Wenn wir jedoch mehr als eine UID haben bietet sich eine Liste an. Natürlich könnte man auch hier eine verschachtelte If-Else-Bedingung verwenden jedoch wird der Code dann schnell unübersichtlich und in UI Flow verdammt lang.
Nutzen wir also das Listen Element.

Programm
UI Flow - Programm zum prüfen mehrer RFID UIDsFI
UI Flow – Programm zum prüfen mehrer RFID UIDs
Video

In dem angezeigten Programm im Video habe ich den ersten Eintrag der Liste um die Zahl 1 am Ende erweitert, somit erkennt er die weiße RFID Karte nicht mehr und gibt somit ein rotes Kreuz und ein Signalton aus. Die andere Karte und der RFID Transponder werden korrekt erkannt.

 

Download

Hier nun das gesamte Programm zu download.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.