MQTT - RFID - Reader

Begonnen von gloob, 12 Januar 2019, 18:56:40

Vorheriges Thema - Nächstes Thema

gloob

Hallo,

Ich bin gerade am basteln und möchte euch am Fortschritt teil haben lassen. Angeregt durch einen anderen Thread hier im Forum baue ich mir gerade einen MQTT - RFID - Reader um die Sonos Box im Kinderzimmer zu steuern.




Firmware

Aktuell habe ich einen RFID Reader (RC522) mit einem Wemos (Wemos D1 mini) gekoppelt und einen Sketch aufgespielt, der die IDs der Karten per MQTT an FHEM überträgt.
Den verwendeten Sketch hänge ich hier an. Die Settings zum flashen habe ich in einem Screenshot festgehalten.

Die Firmware hat Long-Press Support für die Buttons. Die Zeit ist aktuell auf eine Sekunde eingestellt.

Zusätzlich gibt es einen Watchdog Counter der jede Minute hochgezählt wird.

Durch gleichzeitiges Drücken und Halten der 3 Buttons für mehr als 5 Sekunden wird der Reader auf Werkseinstellungen zurück gesetzt. Wifi und MQTT Einstellungen müssen/können danach neu gesetzt werden.




Integration in FHEM

In FHEM habe ich folgendes Device für das Auslesen der IDs und Buttons


defmod MQTT2_RFID MQTT2_DEVICE
attr MQTT2_RFID IODev MQTT2
attr MQTT2_RFID readingList /RFID_Reader/version:.* Version\
/RFID_Reader/status:.* status\
/RFID_Reader/watchdog:.* Watchdog\
/RFID_Reader/wifi_rssi:.* RSSI\
/RFID_Reader/uid:.* UID\
/RFID_Reader/button1:.* Button1\
/RFID_Reader/button2:.* Button2\
/RFID_Reader/button3:.* Button3
attr MQTT2_RFID room MQTT


Über ein Notify wird das Event ausgewertet und die Sonos Box gestartet:

defmod MQTT2_RFID_notify_2 notify MQTT2_RFID:UID:.b977c756 {fhem('set Sonos_Kinderzimmer play')}
attr MQTT2_RFID_notify_2 room TEST





Integration ins eigene WLAN

Beim Starten des Gerätes spannt es ein eigenes WLAN auf: RFID_Reader
Mit dem WLAN kann man sich verbinden und es öffnet sich ein neues Fenster. Dort kann man seine WLAN Daten eingeben, sowie seine MQTT Settings.




Verwendete Hardware:

1 x RC522 RFID Reader - https://de.aliexpress.com/item/Free-Shipping-RFID-module-RC522-Kits-S50-13-56-Mhz-6cm-With-Tags-SPI-Write-Read/32523771442.html
1 x Wemos D1 mini - https://de.aliexpress.com/item/D1-mini-V2-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266/32688079351.html
3 x Push Buttons - https://www.amazon.de/gp/product/B06XCSB9N3
1 x DC Einbaubuchse - https://www.ebay.de/itm/DC-Einbaubuchse-für-Hohlstecker-2-1x5-5mm-DC-Buchse-einbau-Kupplung-Steckdose/271356348957
6 x Einpressmutter - https://de.aliexpress.com/item/100-teile-los-messingeinsatz-M3-4-OD-4-2-Durch-gewinde-messing-gewindebuchse-r-ndelmuttern-f/32837949576.html
6 x M3x30 Senkkopf-Schrauben - https://www.ebay.de/itm/M3-DIN-7991-Senkschrauben-Innensechskant-A2-V2A-Edelstahl-Senkkopf-Schrauben-M3x/222809358688




Updates

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.2":

  • Long-press Unterstützung für die Knöpfe
  • Automatischer Reconnect zum MQTT Server

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.3":

  • Watchdog
  • Versionsnummer über MQTT

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.4":

  • Unterstützung für Username und Passwort für MQTT

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.5":

  • Vollständige Unterstützung für MQTT Einstellungen: IP, Port, Username, Passwort, Devicename

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.6":

  • Reset auf Werkseinstellungen (Wifi + MQTT) durch gleichzeitiges Drücken und Halten aller 3 Buttons für mehr als 5 Sekunden

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.7":

  • neues MQTT Reading für die WLAN Signalstärke: /RFID_Reader/wifi_rssi:.* RSSI

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.8":

  • Integration einer LED an D0 die kurz Aufblinkt wenn ein RFID Chip erkannt wurde
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

gloob

#1
Das Gehäuse ist jetzt bei Thingiverse verfügbar: https://www.thingiverse.com/thing:3391491
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Neuhier

Interessant  8)
Fehlt aber noch die Verbindung der beiden Teile untereinander.
Am RF-Reader ist es noch recht einfach, aber am Wemos muß man schon die nehmen, die im Sketch dafür vorgesehen sind.
Oder habe ich oben was überlesen?

PeMue

Zitat von: gloob am 12 Januar 2019, 18:56:40
Aktuell habe ich einen RFID Reader (RC522) mit einem Wemos (Wemos D1 mini) gekoppelt und einen Sketch aufgespielt, der die IDs der Karten per MQTT an FHEM überträgt.
Das geht stark in Richtung des "Toniebox" Nachbaus  ;). Im Übrigen kann die "große" HM-UART Platine das auch, einer der I2C Steckverbinder hat exakt die Steckerbelegung des RFID Readers.

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

gloob

Zitat von: Neuhier am 12 Januar 2019, 19:26:56
Interessant  8)
Fehlt aber noch die Verbindung der beiden Teile untereinander.
Am RF-Reader ist es noch recht einfach, aber am Wemos muß man schon die nehmen, die im Sketch dafür vorgesehen sind.
Oder habe ich oben was überlesen?

Kommt auch noch. Keine Sorge.

Zitat von: PeMue am 12 Januar 2019, 20:07:38
Das geht stark in Richtung des "Toniebox" Nachbaus  ;).
Gruß Peter

Ja genau sowas ähnliches soll es werden.

Zitat von: PeMue am 12 Januar 2019, 20:07:38
Im Übrigen kann die "große" HM-UART Platine das auch, einer der I2C Steckverbinder hat exakt die Steckerbelegung des RFID Readers.

Ich möchte mir gerne eine zusätzliche Platine sparen. Soll relativ klein werden im Gehäuse. Aber gut zu wissen, dass es auch so geht. Hab die Platine ja eh noch von dir hier liegen. Vielleicht nehme ich sie doch.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Neuhier

#5
Welche Bibliotheken müssen vorhanden sein?
Außer dem "Standart" für ESP8266 noch mindestens MQTTClient, SPI, MFRC522 welche noch?

Bekomme hier jede Menge Fehler, wenn ich das kompilieren will.
Letzter: no matching function for call to 'MQTTClient::begin(const char*&, WiFiClient&)'

Steht aber auch nix dazu im orignalen Thread bei lazyzero.
Dort ist aber die Verkabelung beschrieben.

Neuhier

So, ich wieder.
Die fehlenden Bibliotheken stehen im Sketch.
Ist ganz einfach, wenn man das merkt.
Alle nachgeladen, ohne Fehler kompiliert, nun weiter im Text.....

gloob

Ja gerade die Quelle für MQTT hatte ich mit hinzu gefügt.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Neuhier

Laut MQTTfx kommt jede Menge an, aber ich bekomme das im FHEM einfach nicht hin, daß das angezeigt/ registriert wird.
Nehme aber MQTT, nicht MQTT2, weil ich damit nicht zu Passe komme.

List Device
Internals:
   CFGFN     
   DEF       
   IODev      MQTTs
   NAME       MQTTRFID
   NOTIFYDEV  192.168.78.64
   NR         7116
   STATE      ???
   TYPE       MQTT_DEVICE
   OLDREADINGS:
   READINGS:
     2019-01-13 19:48:16   transmission-state unsubscription acknowledged
   message_ids:
   publishSets:
   sets:
   subscribe:
     /rfid_reader:.*
   subscribeExpr:
     ^\/rfid_reader:.*$
   subscribeQos:
     /rfid_reader:.* 0
   subscribeReadings:
     /rfid_reader:.*:
       cmd       
       name       .*
Attributes:
   IODev      MQTTs
   oldreadings /rfid_reader/uid
   room       Steuerung
   userReadings /rfid_reader/bat /rfid_reader/uid


List Notify
Internals:
   CFGFN     
   DEF        MQTTRFID:.* set Deckenleuchte on-for-timer 5
   NAME       MQTTRFID_ntfy
   NOTIFYDEV  MQTTRFID
   NR         7202
   NTFY_ORDER 50-MQTTRFID_ntfy
   REGEXP     MQTTRFID:.*
   STATE      active
   TRIGGERTIME 1547405296.55547
   TYPE       notify
   READINGS:
     2019-01-13 19:50:45   state           active
Attributes:
   room       Steuerung

gloob

Ich bin jetzt einen Schritt weiter. Ich habe noch 3 Buttons hinzugefügt für Events:

Previous / Leiser
Pause
Next / Lauter

Die Events dafür laufen natürlich dann auch über MQTT.

Das Gehäuse ist auch im entstehen. Ein erster Prototyp der Oberseite ist gemacht und nimmt die Buttons auf sowie den eigentlichen RFID Reader. Der Wemos kommt in die untere Schale und auf die Rückseite kommt eine DC Einbaubuchse für die Stromversorgung.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

gloob

Das Gehäuse nimmt jetzt langsam Formen an. Die Teile sind konstruiert und es geht an den zweiten Druck.
Die Stromversorgung erfolgt über einen Hohlstecker auf der Rückseite, ist mechanisch deutlich stabiler als die USB Buchse am Wemos.

Beim ersten Test mal waren leider die Löcher für die Buttons zu klein.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

gloob

#11
Der Druck lief gut und die Teile passen auch alle super rein.
Jetzt fehlt nur noch das verdrahten und Einpressen der Gewinde für die Schrauben.

Die Daten sind jetzt auch bei Thingiverse wenn jemand den Reader nachbauen möchte: https://www.thingiverse.com/thing:3391491
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

RaspiLED

Hi,

Sehr cool! Hast Du auch Bauteillisten?
Insbesondere  welche Einpressmuttern verwendest Du?

Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

gloob

#13
Die verwendeten Teile sind bei Thingiverse aufgelistet. Ich kann aber gerne auch hier nochmal eine Liste machen.

Ich hab die Hardware im ersten Post hier hinzugefügt.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Ranseyer

Tja, der Arndt stellt halt die richtigen Fragen !  8)

Aber trotzdem noch mal ne dumme Frage: Wie presst Du diese ein ?
https://de.aliexpress.com/item/100-teile-los-messingeinsatz-M3-4-OD-4-2-Durch-gewinde-messing-gewindebuchse-r-ndelmuttern-f/32837949576.html
-heißmachen und drücken, oder ...

Grüße
Martin
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!