ESP-01 mit RFID Leser RC522

Begonnen von meikelS, 21 März 2018, 19:04:06

Vorheriges Thema - Nächstes Thema

meikelS

Bin seit ein paar Tagen vom FHEM-Fieber gepackt. Und arbeite mich grade ein.

Auf dem RasperryPi konnte ich einen RC522 RFID Leser zum laufen bekommen. Nun dachte ich, den an ein ESP anzuschließen und übers WLAN auszulesen. Also habe ich mir ein paar ESP-01 geholt.

Stelle nun fest, dass die Pins, die mir der bietet wohl nicht ausreichen. Folgendes gibt es
  • GND/VCC 3.3
  • RXD/TXD
  • GPIO0
  • GPIO2
  • RST und CH_PD

Soweit ich das verstanden habe, arbeitet der RC522 mit SPI. Dafür gibts hier wohl aber nichts, oder?
Gibt es da eine Lösung?
Wenn nicht, welche Alternative ESP kann man empfehlen?

Don't blame the newbies.


meikelS

Danke. Gleich mal zum Testen bestellt.
Don't blame the newbies.

rr725

Hab Grad auch mit wemos getestet. Funktioniert 1a.
Allerdings mit einem RFID Leser von elektrodragon der hat eine grössere Reichweite.

Loetkolben

Hallo rr725,

womit hast Du den Wemos geflashed?
Hast Du evtl. einen Link zum Sketch?

Momentan versuche ich das hiermit --> https://github.com/Fl0ca/MQTT-RFID_MRC522 aber da komme ich nicht weiter.

Internals:
   CFGFN     
   IODev      myBroker
   NAME       rfid_reader
   NR         50829
   STATE      subscription acknowledged
   TYPE       MQTT_DEVICE
   .attraggr:
   .attrminint:
   .qos:
     *          0
   .retain:
     *          0
   READINGS:
     2018-07-22 17:38:20   transmission-state subscription acknowledged
   message_ids:
   sets:
   subscribe:
     /hardware/rfid_reader/uid
   subscribeExpr:
     ^\/hardware\/rfid_reader\/uid$
   subscribeQos:
     /hardware/rfid_reader/uid 0
   subscribeReadings:
     /hardware/rfid_reader/uid:
       cmd       
       name       uid
Attributes:
   IODev      myBroker
   group      RFID
   room       Labor
   stateFormat transmission-state
   subscribeReading_uid /hardware/rfid_reader/uid


Muß ich da noch irgendwas machen?

VG
   Andreas
1x Pi3, 1x Pi4, CUL V3, miniCUL433+868, IKEA-Steckdosen, sonoff, shelly1, Conbee II, div. Zigbee-Leuchten, Alexa, Homematic, Tablet UI

rr725

Hallo Andreas,
Ich hab des Teil nicht in fhem eingebunden, sondern habe ein Sketch aufgespielt und die rfid Tags im Sketch angelegt, diese abgefragt und bei treffer wird ein http request an fhem geschickt wo dort daraufhin eine Aktion ausgeführt wird.

Loetkolben

Hi,

erstmal danke für die Info.
Dann müsste man, falls sich mal was an RFID-Tags ändert, den Wemos neu flashen.
Aber so oft sollte das ja auch nicht vorkommen.

Ich schaue mal weiter.

Gruß
   Andreas
1x Pi3, 1x Pi4, CUL V3, miniCUL433+868, IKEA-Steckdosen, sonoff, shelly1, Conbee II, div. Zigbee-Leuchten, Alexa, Homematic, Tablet UI

rr725

naja....läuft bei mir nun seit geraumer zeit ohne das man was ändern muss- was soll sich ändern, wenn´s einmal eingerichtet ist.

und wenn.....innerh. 10min ist ein tag hinzugefügt/entfernt, dass teil neu geflasht

Loetkolben

Hi,

könntest Du mir den Sketch zur Verfügung stellen?

   Andreas
1x Pi3, 1x Pi4, CUL V3, miniCUL433+868, IKEA-Steckdosen, sonoff, shelly1, Conbee II, div. Zigbee-Leuchten, Alexa, Homematic, Tablet UI

rr725

#9
Zitat von: Loetkolben am 23 Juli 2018, 14:28:43
Hi,

könntest Du mir den Sketch zur Verfügung stellen?

   Andreas


#include <ESP8266WiFi.h>

const char* ssid = "XXXXXX";
const char* password = "XXXXXX";



const char* ifttt = "maker.ifttt.com";
int incomingByte = 0;   
String a;
String Tag;
String Name;


void setup()
{
 
  Serial.begin(9600);
  Serial.println("ESP8266 in normal mode");
 
 
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
 
 
  Serial.println(WiFi.localIP());

   
}

void loop() {
  while(Serial.available()) {

       
        if (Serial.available() > 0) {
               
                incomingByte = Serial.read();
                a=a+incomingByte;
                Serial.print("I received: ");
                Tag=a;Serial.println(Tag);               
                if (Tag=="542301742420") {(Name ="Klaus");}
                if (Tag=="234250702420") {(Name ="Petra");}
Serial.print(Name);               
}   
                       
}
a="";incomingByte = 0;

if (Name=="Klaus") {

  Serial.print("Connecting to ");
  Serial.println(ifttt);
 
 
 
  WiFiClient client;
  const int httpPort = 80;
    if (!client.connect(ifttt, httpPort)) {
    Serial.println("connection failed");
    return;
  }                 
  client.print(String("GET /trigger/Klaus/with/key/xxxxxxxxxxxxxxxxxxxxx") + " HTTP/1.1\r\n" + "Host: " + ifttt + "\r\n" "Connection: close\r\n\r\n");


 
  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
 
  Serial.println();
  Serial.println("closing connection"); 
}


if (Name=="Petra") {


  Serial.print("Connecting to ");
  Serial.println(ifttt);
 
 
 
  WiFiClient client;
  const int httpPort = 80;
    if (!client.connect(ifttt, httpPort)) {
    Serial.println("connection failed");
    return;
  }                 
  client.print(String("GET /trigger/Petra/with/key/xxxxxxxxxxxxxxxxxxxxx") + " HTTP/1.1\r\n" + "Host: " + ifttt + "\r\n" "Connection: close\r\n\r\n");


  while(client.available()){
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }
 
  Serial.println();
  Serial.println("closing connection"); 
}

Name="";}


hab dieses nicht mit einem esp-01 aufgebaut sonden mit einem wemos d1 und einem long distance rfid reader

Loetkolben

Hi,

danke für den Sketch.
Für mich zum Verständnis:
Sobald einer von Deinen beiden Tags erkannt wird (da stehen noch Nummern im Sketch die individuelle aussehen, ist das so richtig), wird das nach ifttt.com geschickt und dort ein webhook ausgelöst? Un der wird dann von FHEM verarbeitet?

Gruß
  Andreas
1x Pi3, 1x Pi4, CUL V3, miniCUL433+868, IKEA-Steckdosen, sonoff, shelly1, Conbee II, div. Zigbee-Leuchten, Alexa, Homematic, Tablet UI

rr725

Genauso ist es . Die Nummern sollten durch deine rfid Tags ersetzt werden. Hast du richtig erkannt. Ab nach ifttt und mittels webhook einen https request an fhem . Einerseits mittels webhook, weil es einfach änderbar ist, ohne das Teil neu flashen zu müssen.

Wenn ifttt nicht erwünscht, kann man ja Innerh. des eigenen netzes einen https request an fhem schicken.