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?
WEMOS D1 mini
https://wiki.wemos.cc/products:d1:d1_mini (https://wiki.wemos.cc/products:d1:d1_mini)
Danke. Gleich mal zum Testen bestellt.
Hab Grad auch mit wemos getestet. Funktioniert 1a.
Allerdings mit einem RFID Leser von elektrodragon der hat eine grössere Reichweite.
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 (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
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.
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
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
Hi,
könntest Du mir den Sketch zur Verfügung stellen?
Andreas
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
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
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.