Aktionen

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

Aus znilwiki

Version vom 7. April 2024, 14:48 Uhr von BLinz (Diskussion | Beiträge) (→‎Mikroschalter / Reedschalter abfragen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Changelog:

  • 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 Hier der direkte Link zum Online-Kompiler: https://gitpod.io/new/#https://github.com/benzino77/tasmocompiler

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.PNGClipCapIt-240404-230651.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.
In der Konsole erstellen wir nun eine Regel und aktivieren diese:

rule1 on PN532#UID do buzzer 3 endon
rule1 1

Wenn ihr nun eine Karte an den Leser haltet und er eine ID auslesen konnte piept er drei mal.
Alternativ:

rule1 on PN532#UID do buzzer 1,4 endon

gibt einen längeren Ton.

Quellen:


Mikroschalter / Reedschalter abfragen

Important.png
Hinweis: Ich hatte dann Probleme mit dem Kontakt D4 als Typ Schalter/Switch. Und zwar hat der Wemos dann nach einem Stromausfall nicht mehr gebootet wenn der Schalter geschlossen ist. Ich habe jetzt D7 genommen und nun kein Problem mehr

Ich habe an D4 einen Kontakt geschaltet der schließt oder öffnet (hier wird ein Türschloss überwacht).
Die beiden Anschlüsse des Schalters habe ich mit GND und D4 verbunden.
Bevor wir das Anstöpseln habe ich folgende befehle abgesetzt:

Setoption1 1

verhindert das ein langer Tastendruck einen Reset auslöst (eigentlich nur bei Buttons wichtig, aber ich habe beim testen mir das ganze mehrmals zurückgesetzt)

Setoption114 1

Trennt Switches / Schalter von den Relais - es muss als kein passendes Relais geben

SwitchMode 1

Sorgt dafür das es statt einer Toggle Meldung eine klare ON oder OFF Meldung gibt:

00:05:27.226 MQT: stat/NFC-01/RESULT = {"Switch1":{"Action":"OFF"}}
00:05:30.170 MQT: stat/NFC-01/RESULT = {"Switch1":{"Action":"ON"}}
ClipCapIt-240405-000655.PNG

Wenn Ihr Switch_n statt dessen nehmt dreht ihr das verhalten um. Ginge auch über die SwitchMode-Optionen.


Relais anschließen

Ich hab hier noch so ein Doppel-Realis rumoiegen gehabt. Das hat links einen Block mit

 JD-VCC => verbunden per Jumper mit VCC
 VCC => verbunden per Jumper mit dem JD-VCC links daneben
 GND (leer)

Den Jumper lassen wir genau so! Den Block rechts beschalten wir wie folgt:

Relais           Wemos D1 Mini
GND              GND
IN1              D7
IN2              D8
VCC              5V

Also mit 5V statt mit 3,3V verbinden!
Konfiguration:

ClipCapIt-240405-001224.PNG

Nach dem Neustart haben wir 2 Buttons auf der Weboberfläche mit denen wir die Relais schalten können:

ClipCapIt-240405-001313.PNG

Die Beschriftung der Buttons können wir anpassen:

Webbutton1 Oben
Webbutton2 Unten
ClipCapIt-240405-001507.PNG



Kommentare

Loading comments...