- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Hardware der Plattform ESP8266
- Demos D1 mini PN532 RFID
Demos D1 mini PN532 RFID
- Burns
- Autor
- Offline
- New Member
Weniger
Mehr
- Beiträge: 5
- Dank erhalten: 0
28 Aug 2017 13:43 - 28 Aug 2017 13:44 #264
von Burns
Burns erstellte das Thema Demos D1 mini PN532 RFID
Hallo zusammen,
Ich bin neu hier. Ich versuche verzweifelt einen PN532 RFID Reader von Elechhouse an meinen Wemos D1 mini zum laufen zu bekommen. Der soll nur die Nummer auslesen und an meine Haussteuerung weiterleiten...(Auslesen, weiterleiten und so geht schon...nur die Kommunikation nicht).
Über I2C hab ich es geschafft. Leider ist geht der I2C bus nicht und stürzt immer ab (Clock stretching).
Über UART bekomme ich es auch nicht ans laufen (beim Mega keine Probleme, aber der Wemos hat ja nur einen Rx/Tx welcher auch für USB verwendet wird.
Ich dachte es müsste über SPI gehen, aber ich bekomme es einfach nicht hin. Laut Plan sollte er ja folgendermaßen angeschlossen werden:
SCK - D5
MISO - D6
MOSI - D7
SS - D8
IRQ - Leer
RSTO - Leer
Wenn ich D8 anschließe, startet der Wemos nicht mal...ohne diesen bekomme ich keine Verbindung (zum PN532).
Ich kann den Sketch gerne Posten, wenn das weiterhilft.
Hat einer von euch das Gerät schon mal zum laufen bekommen?
Bin für jede Hilfe dankbar.
Gruß
Ich bin neu hier. Ich versuche verzweifelt einen PN532 RFID Reader von Elechhouse an meinen Wemos D1 mini zum laufen zu bekommen. Der soll nur die Nummer auslesen und an meine Haussteuerung weiterleiten...(Auslesen, weiterleiten und so geht schon...nur die Kommunikation nicht).
Über I2C hab ich es geschafft. Leider ist geht der I2C bus nicht und stürzt immer ab (Clock stretching).
Über UART bekomme ich es auch nicht ans laufen (beim Mega keine Probleme, aber der Wemos hat ja nur einen Rx/Tx welcher auch für USB verwendet wird.
Ich dachte es müsste über SPI gehen, aber ich bekomme es einfach nicht hin. Laut Plan sollte er ja folgendermaßen angeschlossen werden:
SCK - D5
MISO - D6
MOSI - D7
SS - D8
IRQ - Leer
RSTO - Leer
Wenn ich D8 anschließe, startet der Wemos nicht mal...ohne diesen bekomme ich keine Verbindung (zum PN532).
Ich kann den Sketch gerne Posten, wenn das weiterhilft.
Hat einer von euch das Gerät schon mal zum laufen bekommen?
Bin für jede Hilfe dankbar.
Gruß
Letzte Änderung: 28 Aug 2017 13:44 von Burns.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- supporter
- Offline
- Premium Member
Weniger
Mehr
- Beiträge: 135
- Dank erhalten: 12
28 Aug 2017 15:45 - 28 Aug 2017 15:49 #265
von supporter
Demos D1 mini PN532 RFID
Hallo Burns,
und herzlich Willkommen im Forum. Da es bei I²C prinzipiell funktioniert hat denke ich solltest Du zunächst mal hier weiterarbeiten und suchen, warum die Abstürze kamen?
Ich selber benutze am ESP8266 Portexpander und 2x16 LCD Displays im 24/7- Betrieb. Mittlerweile störungsfrei seit Monaten.
Hast Du pull-ups drin? Ich hatte mal einen instabilen Bus weil ich sie nicht einbaute. 2x 5-10kOhm sollten richtig sein.
Hast Du auch die Busspeed mal verändert?
Möglichkeit B: Der ESP hat genug Rechenpower für Softserial. Somit kannst Du hier auch UART versuchen. Guck auch mal hier:
esp-forum.de/index.php/forum/umgebung-id...m808-und-console#140
Wenn ich mich nicht irre ist der SPI mit dem Flash-Speicher beschäftigt und somit nicht ohne weiteres verfügbar...
und herzlich Willkommen im Forum. Da es bei I²C prinzipiell funktioniert hat denke ich solltest Du zunächst mal hier weiterarbeiten und suchen, warum die Abstürze kamen?
Ich selber benutze am ESP8266 Portexpander und 2x16 LCD Displays im 24/7- Betrieb. Mittlerweile störungsfrei seit Monaten.
Hast Du pull-ups drin? Ich hatte mal einen instabilen Bus weil ich sie nicht einbaute. 2x 5-10kOhm sollten richtig sein.
Hast Du auch die Busspeed mal verändert?
Möglichkeit B: Der ESP hat genug Rechenpower für Softserial. Somit kannst Du hier auch UART versuchen. Guck auch mal hier:
esp-forum.de/index.php/forum/umgebung-id...m808-und-console#140
Wenn ich mich nicht irre ist der SPI mit dem Flash-Speicher beschäftigt und somit nicht ohne weiteres verfügbar...
Letzte Änderung: 28 Aug 2017 15:49 von supporter.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Burns
- Autor
- Offline
- New Member
Weniger
Mehr
- Beiträge: 5
- Dank erhalten: 0
28 Aug 2017 16:03 - 28 Aug 2017 16:04 #266
von Burns
Demos D1 mini PN532 RFID
Hallo supporter,
Das mit Serial swap hatte ich schon mal gelesen, hörte sich recht kompliziert an.
Ich kann nicht wirklich programmieren...nur so zusammen klauen und anpassen
Für den I2C Bus hab ich sozusagen schon die Lösung gefunden. Ich kann sie nur nicht umsetzen...Programmieren und so
Ich wusste gar nicht, das man die I2C Geschwindigkeit anpassen kann.
github.com/MulajEgzon/ESP8266-PN532/
Wenn ich es richtig verstanden habe, muss der ESP geflasht werden...Ich hatte gehofft, das ich nen blöden Fehler in der Verdrahtung hab oder ne klammer falsch.
Gruß
Das mit Serial swap hatte ich schon mal gelesen, hörte sich recht kompliziert an.
Ich kann nicht wirklich programmieren...nur so zusammen klauen und anpassen
Für den I2C Bus hab ich sozusagen schon die Lösung gefunden. Ich kann sie nur nicht umsetzen...Programmieren und so
Ich wusste gar nicht, das man die I2C Geschwindigkeit anpassen kann.
github.com/MulajEgzon/ESP8266-PN532/
Wenn ich es richtig verstanden habe, muss der ESP geflasht werden...Ich hatte gehofft, das ich nen blöden Fehler in der Verdrahtung hab oder ne klammer falsch.
Gruß
Letzte Änderung: 28 Aug 2017 16:04 von Burns.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- supporter
- Offline
- Premium Member
Weniger
Mehr
- Beiträge: 135
- Dank erhalten: 12
28 Aug 2017 16:15 - 28 Aug 2017 16:18 #267
von supporter
Demos D1 mini PN532 RFID
Den Bus stellst Du am ESP so ein:
Wire.setClock(1000);
-> 1000 kBit/s=1MBit/s
Andere Geschwindigkeiten sind möglich
Modus Maximale
Übertragungsrate Richtung
Standard Mode (Sm) 0,1 Mbit/s bidirektional
Fast Mode (Fm) 0,4 Mbit/s bidirektional
Fast Mode Plus (Fm+) 1,0 Mbit/s bidirektional
Wire.setClock(1000);
-> 1000 kBit/s=1MBit/s
Andere Geschwindigkeiten sind möglich
Modus Maximale
Übertragungsrate Richtung
Standard Mode (Sm) 0,1 Mbit/s bidirektional
Fast Mode (Fm) 0,4 Mbit/s bidirektional
Fast Mode Plus (Fm+) 1,0 Mbit/s bidirektional
Letzte Änderung: 28 Aug 2017 16:18 von supporter.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Burns
- Autor
- Offline
- New Member
Weniger
Mehr
- Beiträge: 5
- Dank erhalten: 0
29 Aug 2017 13:27 #268
von Burns
Demos D1 mini PN532 RFID
Hi,
also I2C funktioniert nicht so ohne weiteres...
Wenn SPI auch nicht geht, bleibt ja nur noch UART über soft serial.
Ich finde nur leider keine richtigen Informationen.
Was ich gefunden habe, dass unter Serial.beginn(9600), Serial.swap() stehen soll. Damit werden alle seriellen befehle an D7, D8 weitergeleitet. Dann aber wieder zurück mit swap???
Aber D8 ist nicht wirklich nutzbar bzw. nicht während des booten oder flashen???
Zumindest startet der ESP nicht wenn D8 angeschlossen ist und ich bekomme keine Verbindung zum flashen...
Trotzdem bekomme ich keine Kommunikation. Könnte einer vo euch mal auf den Sketch schauen?
Wenn es einfach nicht geht mit dem ESP dann muss ich mir was anderes überlegen.
Gruß
also I2C funktioniert nicht so ohne weiteres...
Wenn SPI auch nicht geht, bleibt ja nur noch UART über soft serial.
Ich finde nur leider keine richtigen Informationen.
Was ich gefunden habe, dass unter Serial.beginn(9600), Serial.swap() stehen soll. Damit werden alle seriellen befehle an D7, D8 weitergeleitet. Dann aber wieder zurück mit swap???
Aber D8 ist nicht wirklich nutzbar bzw. nicht während des booten oder flashen???
Zumindest startet der ESP nicht wenn D8 angeschlossen ist und ich bekomme keine Verbindung zum flashen...
Trotzdem bekomme ich keine Kommunikation. Könnte einer vo euch mal auf den Sketch schauen?
Warnung: Spoiler!
[ Zum Anzeigen klicken ]
[ Zum Verstecken klicken ]
#include <ESP8266WiFi.h> // Einbinden der WiFi-Library
#include <WiFiClient.h>
#include <PN532_HSU.h>
#include <PN532.h>
PN532_HSU pn532hsu(Serial1);
PN532 nfc(pn532hsu);
// ******* Netzwerkeinstellungen, bitte anpassen! *******
const char* ssid = "Samoht"; // SSID des vorhandenen WLAN
const char* password = "XXXXXXXX"; // Passwort für das vorhandene WLAN
IPAddress gateway(192,168,XXX,XXX); // IP-Adresse des WLAN-Gateways (mit Kommata!)
IPAddress subnet(255,255,255,0); // Subnetzmaske
IPAddress ip(192,168,XXX,XXX); // feste IP-Adresse für den WeMos
const char* host = "192.168.XXX.XXX"; // IP-Adresse der CCU (mit Punkten!)
String CCUvariable = "RFID"; // Bezeichnung der CCU-Systemvariable für die Übergabe der RFID Nummer
//String status;
void setup() {
nfc.begin();
nfc.SAMConfig(); // configure board to read RFID tags
Serial.begin(9600);
Serial.println(""); // Leerzeile ausgeben
Serial.println("WeMos RFID-Reader");
Serial.println("");
// WLAN-Verbindung herstellen
WiFi.mode(WIFI_STA);
WiFi.config(ip, gateway, subnet); // auskommentieren, falls eine dynamische IP bezogen werden soll
WiFi.begin(ssid, password);
Serial.print("Verbindungsaufbau");
// Verbindungsaufbau abwarten
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Verbindungsaufbau an den seriellen Monitor melden
Serial.println(" erfolgreich!");
Serial.println("");
Serial.print("Verbunden mit: ");
Serial.println(ssid);
Serial.print("Signalstaerke: ");
int rssi = WiFi.RSSI();
Serial.print(rssi);
Serial.println(" dBm");
Serial.print("IP-Adresse: ");
Serial.println(WiFi.localIP());
Serial.println();
Serial.swap(); // Serielle Verbindung auf D7 / D8 umleiten
}
void loop() {
String ringUid;
boolean success;
uint8_t uid[] = {0, 0, 0, 0, 0, 0, 0}; // Buffer to store the returned UID
uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
//digitalWrite(BUILTIN_LED, !success);
if (success & uidLength==7) {
ringUid=""; // ringUid leeren
for (uint8_t i=0; i<7; i++){
ringUid += String(uid, HEX);
}
// Webclient initialisieren
WiFiClient client;
// mit dem CCU-Port 80 verbinden
if (!client.connect(host, 80)) {
Serial.println(" Fehler: Verbindung zur CCU konnte nicht aufgebaut werden");
}
// Daten an CCU melden
String url = "/xy.exe?antwort=dom.GetObject('" + CCUvariable + "').State('" + ringUid + "')";
delay(500);
// This will send the request to the server
client.println(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
}
}
}
#include <WiFiClient.h>
#include <PN532_HSU.h>
#include <PN532.h>
PN532_HSU pn532hsu(Serial1);
PN532 nfc(pn532hsu);
// ******* Netzwerkeinstellungen, bitte anpassen! *******
const char* ssid = "Samoht"; // SSID des vorhandenen WLAN
const char* password = "XXXXXXXX"; // Passwort für das vorhandene WLAN
IPAddress gateway(192,168,XXX,XXX); // IP-Adresse des WLAN-Gateways (mit Kommata!)
IPAddress subnet(255,255,255,0); // Subnetzmaske
IPAddress ip(192,168,XXX,XXX); // feste IP-Adresse für den WeMos
const char* host = "192.168.XXX.XXX"; // IP-Adresse der CCU (mit Punkten!)
String CCUvariable = "RFID"; // Bezeichnung der CCU-Systemvariable für die Übergabe der RFID Nummer
//String status;
void setup() {
nfc.begin();
nfc.SAMConfig(); // configure board to read RFID tags
Serial.begin(9600);
Serial.println(""); // Leerzeile ausgeben
Serial.println("WeMos RFID-Reader");
Serial.println("");
// WLAN-Verbindung herstellen
WiFi.mode(WIFI_STA);
WiFi.config(ip, gateway, subnet); // auskommentieren, falls eine dynamische IP bezogen werden soll
WiFi.begin(ssid, password);
Serial.print("Verbindungsaufbau");
// Verbindungsaufbau abwarten
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Verbindungsaufbau an den seriellen Monitor melden
Serial.println(" erfolgreich!");
Serial.println("");
Serial.print("Verbunden mit: ");
Serial.println(ssid);
Serial.print("Signalstaerke: ");
int rssi = WiFi.RSSI();
Serial.print(rssi);
Serial.println(" dBm");
Serial.print("IP-Adresse: ");
Serial.println(WiFi.localIP());
Serial.println();
Serial.swap(); // Serielle Verbindung auf D7 / D8 umleiten
}
void loop() {
String ringUid;
boolean success;
uint8_t uid[] = {0, 0, 0, 0, 0, 0, 0}; // Buffer to store the returned UID
uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
//digitalWrite(BUILTIN_LED, !success);
if (success & uidLength==7) {
ringUid=""; // ringUid leeren
for (uint8_t i=0; i<7; i++){
ringUid += String(uid, HEX);
}
// Webclient initialisieren
WiFiClient client;
// mit dem CCU-Port 80 verbinden
if (!client.connect(host, 80)) {
Serial.println(" Fehler: Verbindung zur CCU konnte nicht aufgebaut werden");
}
// Daten an CCU melden
String url = "/xy.exe?antwort=dom.GetObject('" + CCUvariable + "').State('" + ringUid + "')";
delay(500);
// This will send the request to the server
client.println(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
}
}
}
Wenn es einfach nicht geht mit dem ESP dann muss ich mir was anderes überlegen.
Gruß
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- supporter
- Offline
- Premium Member
Weniger
Mehr
- Beiträge: 135
- Dank erhalten: 12
29 Aug 2017 22:31 #269
von supporter
Demos D1 mini PN532 RFID
Warum? Welches Problem tritt auf?Burns schrieb: Hi,
also I2C funktioniert nicht so ohne weiteres...
Gruß
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Aktuelle Seite:
- Startseite
- Impressum / Datenschutz / ...
- ESP8266 spezifisch
- Hardware der Plattform ESP8266
- Demos D1 mini PN532 RFID