Go Down

Topic: Zugangmonitoring (Read 1 time) previous topic - next topic

saano

hey zusammen,

ich bin auch neu bei der Minirechnerprogrammierung, habe allerdings schon Assembler und Java, C,etc Erfahrung. Nun möchte ich ich ein kleines Projekt realisieren und würde mich freuen wenn ihr mal über die Komponenten schauen könntet, die ich rausgesucht hab.

Zu der Problemstellung:
Erkennen wer zu welcher Zeit kommt bzw geht, erfasste Daten monatlich senden und das alles natürlich so lange wie möglich auf Akkubetrieb :smiley-twist: .
Dabei existiert natürlich weder Lan noch Wlanzugang.

Als Board hab ich mir das überlegt:
board

Gründe dafür:
geringer Stromverbrauch im Sleepmodus
Aufladen des Akkus über Usb mithilfe des Batterie Charger --- hab ich so richtig verstanden?

Rfid zur Benutzererkennung
rfid Modul

da brauche ich kein extra Shield dafür oder?

GSM Modul
um Daten per SMS zu versenden

daswird bei einem Arduino ja vmtl nicht funktionieren?

und zum Schluss noch einen Taster und ein I2c Display

Also Stromquelle wäre meine Idee ein Lipo Akku, allerdings wäre ne Powerbank mit 26800mAh vmtl. doch die bessere Wahl.


Meine Grundidee war, alles bis auf Timer Interrupt und Taster Interrupt in Sleep Modus zu setzen, falls Taster Interrupt RFid kurz anschalten, scannen, verarbeiten -> Sleep Modus

Timmer Interuppt: Gsm Modul anschalten und Daten über Sms zu versenden

Könntet ihr mal bitte über die Konfiguration schauen und mir sagen ob es zu Konflikten kommt.
Danke schon mal im voraus :)

HotSystems

.....
Könntet ihr mal bitte über die Konfiguration schauen und mir sagen ob es zu Konflikten kommt.
.....
Hey....tolle Teile, die du da rausgesucht hast.
Aber von welcher Konfiguration schreibst du ?
Ich sehe kein Schaltbild und auch keinen Sketch.
Wie sollen wir da etwas herausfinden ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

noiasca

#2
Feb 22, 2018, 10:13 pm Last Edit: Feb 22, 2018, 10:16 pm by noiasca
Es gibt imho jede Menge "Fertige" Projekte als Anhaltspunkt. So auf die schnelle:
https://github.com/miguelbalboa/rfid
https://github.com/alexwhittemore/RFID-Door
https://github.com/omersiar/RFID522-Door-Unlock
https://github.com/omersiar/RFID522-Door-Unlock/tree/master/EEPROM


Als Kartenleser würder ich keinen PN522 nehmen sondern einen PN532. Und zwar montiert auf einem Board von Elechouse.
https://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=90_93&products_id=2242
Nicht eine Fälschung vom Chinesen, sondern das Original. Lieferung klappt da in gut einer Woche. Un der Preisunterschied ob 5 oder 15 Dollar ist den Ärger echt nicht wert. Der PN532 weil der auch problemlos "NFC" Karten liest, und warum soll man nicht eine bestehende Karte als Zutrittskarte verwenden.

Schwierig stelle ich mir die Übertragung von einen Zutrittslog via SMS vor.
Wenn ich mir da mein eigenes Log ansehe, Datum/Uhrzeit RFID (vieleicht sogar 2x Long), und noch ein Marker ob Zutritt gewährt oder abgelehnt, dann wirst du in den 160 Zeichen eines SMS nicht viele Zutritte übermitteln können.

(ich habe schon gelesen du willst kein WLAN, mir geht es beim Screenshot nur um die Menge der Daten die so ein Log haben könnte...)
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

saano

dickes danke schön :)

werde mir das andere NFC Modul holen. Die Datengröße ist auch kein Problem da ich nicht den kompletten Log senden will sondern nur die gesamte Anzahl, sprich 1-2 Integer pro User.

saano

ich brauche noch ein mal starthilfe :D

hab versucht ein Beispielprogramm des Rfid Readers pn532 zu starten und bekomme die Fehlermeldung dass er das Board nicht finde, denke mal dass ich im Programm die Ports ändern muss, allerdings hab ich keine Ahnung wo? Hat die  Wire Datei damit was zu tun?

Kippschalter des pn532 habe ich auf  auf I2c umgestellt.

Verbunden habe ich:
vcc ->5v
gnd ->gnd
sda ->port 21
scl  ->port 22

ein LCD Display konnte ich auf jeden Fall erfolgreich über I2C mit den Ports anschließen.
Habe die Pins und Belegungen mal im Anhang hinzugefügt.

board
rfid reader

saano

äh ja, das besagte Programm mit Bibliothek sollte ich vllt. auch noch hinzufügen.

https://github.com/elechouse/PN532

Beispielprogramm: iso14443a-uid

Tommy56

Ich gege davon aus, dass die Lib noch nicht auf den ESP32 portiert wurde.
Schaue Dir mal in den ESP32-Libs die Wire.h an. Die braucht einige Aufrufe anders, als beim Arduino. Das ist in der PN532-Lib nicht berücksichtigt.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

saano

danke schon ein mal :)

die esp32 lib hab ich für die ide installiert und für mein Projekt hab ich die esp wire datei zu den libs hinzugefügt.

Soweit ich es verstanden habe, gibt es nen aufruf mit wire.begin() und diesen muss ich zu wire.begin(21,22) ändern? Auf jeden Fall hat es mit dem LCD Display so funktionert, allerdings ist es durch die verschachtelung der Header wesentlich komplizierter. 

Tommy56

Genau wire.begin braucht die Pins. Du wirst nicht umhin kommen, die Lib anzupassen.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

noiasca

Ich würde zunächst mal einen I2C Scanner laufen lassen um sicherzusellen, dass das Board im Bus erkannt wird und welche Adresse es haben könnte.

Solange der Scanner nichts findet, wirst du auch mit der 532 Lib nicht viel Freude haben.

DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Tommy56

Wenn der Scanner nicht speziell auf den ESP32 ausgelegt ist, wird er nichts finden. Der ESP32 hat z.B. 2 mal I2C.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

saano

habe den hier benutzt und auch ein Gerät gefunden, aber das war es dann auch :-D

Noch mal zum Verständnis:

- es reicht wenn ich die esp wire datei in hardware/espressif... habe?
- um die Lib anzupassen, muss ich doch nur die wire.begin aufrufe anpassen?

hab in der code Datei von PN532_I2C.cpp

die Funktion gefunden und angepasst

void PN532_I2C::begin()
{
    _wire->begin(21,22);
}

allerdings findet er das Board mit dem Programm nicht und weiter weiß ich jetzt nicht mehr.

Gruß Stefan

Tommy56

Probiere mal wire etwas spezieller zu nutzen:
Code: [Select]

// alt
PN532_I2C pn532i2c(Wire);
// Neu Den I2C-Kanal 0 einstellen
PN532_I2C pn532i2c(Wire(0));
// oder Neu Den I2C-Kanal 1 einstellen
PN532_I2C pn532i2c(Wire(1));


Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

saano

Ich habe mir das Problem jetzt noch mal genauer angesehen und alles fest verlötet um sicherzugehen.

Mit dem Scanner und dem rfid testprogramm mit auskommentiertem loop bekomme ich stabil das board angezeigt.

Wenn ich allerdings den loop aktiveren wird aktiv am rfid nach einer karte gepoolt und ich schätze das ist der Grund warum er danach das board nicht mehr erkennt?

Sprich Programm wird mit Loop ausgeführt, läuft auch, erkennt allerdings die Karte noch nicht... wenn ich dann aber eine neues Programm uploaden will, erkennt er das rfid port nicht mehr, auch nicht der Scanner. Gibt es so ne Mechanic das er die Ports abschaltet oder wird durch das Polling einfach der Befehl verschluckt?

Gruß Stefan

noiasca

was meinst du konkret mit "warum er danach das board nicht mehr erkennt".

Wie äußerst sich das aus deiner Meinung nach?

Wie sieht ein Serial Output aus. Stell das mal rein und kommentiere was du wann gemacht hast.

DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

Go Up