Aktionen

ESP8266 Wemos D1 Mini mit Tasmota und NFC PN532 und Buzzer HW-508

Aus znilwiki

Version vom 3. April 2024, 21:50 Uhr von BLinz (Diskussion | Beiträge) (In der Konsole erstellen wir nun eine neue Regel und aktivieren diese:<br>)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Changelog:<\u>

  • 03.04.2024 erste Version

Hardware

Ich wollte mir einen NFC-Kartenleser bauen und habe die folgende Hardware verwendet:

Der Buzzer ist sehr leise, mehr als ein sanftes Piepen holt ihr da nicht raus. Ich hatte den halt da.


Verkabelung

Der PN532 hat 2 Pin-Leisten, eine mit 4 Anschlüssen und eine mit 8. Wir nehmen die mit 4 Pins und verkabeln wie folgt:

PN532            Wemos D1 Mini
------------------------------
GND              G
VCC              3V3
SDA              D2
SCL              D1

Tasmota

Wenn man nur NFC Karten / Tags einlesen will und einem die ID die man dabei zurück bekommt reicht, kann man die normale

tasmota-sensors.bin

nehmen: https://ota.tasmota.com/tasmota/release/

Falls man aber auch den Befehl Sensor40 verwenden will, so muss man seine eigene Version kompilieren.
Dann befolgt die Anleitung aus diesem Abschnitt: https://znil.net/index.php?title=ESP8266_Wemos_D1_Mini_mit_Tasmota_und_OLED_Display_I2C_SSH1106_und_4_Taster#Firmware_selbst_kompilieren

Wenn das Webinterface mit dem Kompiler läuft benutzt folgende Einstellungen:

#define USE_PN532_HSU                          // Add support for PN532 using HSU (Serial) interface (+1k8 code, 140 bytes mem)
#define USE_PN532_DATA_FUNCTION                // Add sensor40 command support for erase, setting data block content (+1k7 code, 388 bytes mem)
#define USE_PN532_DATA_RAW                     // Allow DATA block to be used by non-alpha-numberic data (+ 80 bytes code, 48 bytes ram)
  • Version und Sprache wählen und Kompilieren lassen

Die Firmware.bin herunterladen, die könnt Ihr flashen.
Für einen bereits geflashten: Firmware.bin.gz herunterladen, den Tasmota per Web-Interface auf die minimal.bin.gz updaten und dann die kompilierte hochgeladen.

Ich flashe die Firmware immer einfach mit dem Tasmotizer:

ClipCapIt-240403-213710.PNG

Danach einmal vom Strom trennen.
Und wie jedes andere Tasmota-gerät einrichten (mit AP verbinden, auf die 192.168.4.1 gehen, WLAN Daten eintragen)


Tasmota konfiguration

Geht auf

Einstellungen => Geräteeinstellungen

und stellt es auf

Generic 18

was ihr ganz unten findet. Speichern und neu starten.
Danach geht ihr wieder in diesen Menüpunkt der nun erheblich mehr bietet:

ClipCapIt-240403-213955.PNG

Stellt D2 und D1 / GPIO4 und GPIO5 entsprechend ein.
Nach einem Neustart sollte oben eine Zeile für den PN532 erscheinen:

ClipCapIt-240403-214144.PNG

Wenn ihr eine Karte / Tag an den Leser haltet erscheint oben dessen Nummer:

ClipCapIt-240403-214229.PNG

In der Konsole könnt ihr ggf. weitere Daten sehen (wenn Ihr die selbst kompilierte Variante nutzt:

21:43:13.413 RSL: SENSOR = {"Time":"2024-04-03T21:43:13","PN532":{"UID":"736FE411","Data":"Hallo Welt!"}}

Diese Daten hatte ich per Sensor40 Befehl geschrieben.
Anleitung siehe: https://tasmota.github.io/docs/PN532/#usage


Es piepen lassen wenn eine Karte eingelesen wird

Als Feedback habe ich den Summer KY-006 / HW-508 aus der Bastelkiste geholt.
Das ist ein passiver Summer der PWM angesteuert werden muss damit der ordentlich piept.
Der hat 3 Pins, die beiden äußeren verbindet ihr mit

3V3
D6

Oben im Screenshot der GPIO Konfiguration seht ihr das D6 dann auf Summmer gestellt wird (im Englischen vermutlich Buzzer)
In der Konsole stellen wir den Summer auf PWM um (wenn ihr einen aktiven Summer nutzt müsst Ihr das nicht):

BuzzerPwm 1

Alternativ ginge auch

SetOption111 1

ist beides das gleiche, siehe: https://tasmota.github.io/docs/Commands/#control In der Konsole könnt ihr den nun gleich testen mit

buzzer 3

sollte er 3 mal kurz piepen.