Projektvorstellung Arduino+Ethernet+SQL+RFID

Hallo liebe Gemeinde,
ich möchte euch gerne mein Vorhaben vorstellen. Ich möchte gerne folgendes umsetzen:

Es geht um meinen Verein, wo man Bogen schießen kann. Unsere Mitglieder sollen alle ein RFID Chip bekommen, wo sie sich Guthaben in Form von Zeit drauf laden können.
( gespeichert auf einer MySQL Datenbank)

Mit dem Chip können sie dann zur Schießbahn, wo man auf weite Distanz Zielscheiben hat. Die Zielscheiben kann man über einen Monitor auswerten.

Nun soll das so sein, dass die Auswertung nur noch möglich ist, wenn man sich den Monitor freigeschaltet hat.

Beispiel: Paul hat 30 Minuten auf dem Chip(Datenbank) und legt seinen Chip kurz auf das Lesegerät. Nun fragt der Arduino die Datenbank ab, ob Paul Guthaben hat. Das soll dann auf einem LCD Display angezeigt werden. Bei Paul steht da nun: Ihr Guthaben beträgt 30 Minuten.

Paul kann jetzt einen Schalter betätigen und der Monitor schaltet sich ein. Parallel soll natürlich sein Guthaben runter gezählt werden. Sollte Paul jetzt nach 20 Minuten fertig sein, legt er seinen Chip wieder auf das Lesegerät und der Monitor geht aus. Seine restlichen 10 Minuten werden wieder in der Datenbank gespeichert.

Sollte Paul seine ganzen 30 Minuten aufbrauchen, so soll in der letzten angefangen Minute ein Piepton darauf hinweisen. ist Die Zeit komplett abgelaufen, wird ebenfalls der Monitor ausgeschaltet und das Guthaben =0 an die Datenbank übermittelt.

Paul kann sich dann neues Guthaben in Form von Zeit holen.

Noch kurz ein paar Eckdaten.
Die Datenbank (Laptop) steht in dem Gebäude A und wird mit einem Ethernetkabel mit Gebäude B verbunden. In dem Gebäude B steht ein Switch zur Verfügung, damit man später mehrere Bahnen über mehrere Arduinos steuern kann.
Die Datenbank soll Local sein, da keine Internetanbindung vor Ort besteht.

Es sind >500 Mitglieder. Die sollen über den Laptop verwaltet werden. (Person zur ID, Guthaben usw)

Ich stehe noch ganz am Anfang.

Ich benötige eure Hilfe beim Arduino Code, besonders beim lesen und schreiben auf die Datenbank.
Das fertige Projekt kann später jeder nutzen, der ein “Bezahlsystem” einrichten möchte.

Mein erster Schritt ist das Auslesen der Chips.

#include <SoftwareSerial.h>
SoftwareSerial RFID(2, 3); // Pin 2 & 3

String ID;


void setup()
{
  RFID.begin(9600);    // Verbindung zum RFID Modul
  Serial.begin(9600);  // Verbindung zum PC
}

void loop()

{
  if (RFID.available() > 0) 
  {
     ID = RFID.read();
     ID = ID.substring(1,13);
     Serial.print(ID);
     Serial.print(" ");
  }
  
}

Hier taucht auch schon das erste Problem auf.
Erstens: Die angezeigt ID ist anders und länger als die eingravierte ID.

Auf meinem RFID TAG ist die Nummer “0007912551” eingraviert.

Der serielle Monitor sagt “9 9 8 8 5 6 6 7 4 5 6 0”

Zweites Problem: lege ich den Chip länger als eine Sek. auf den Reader, so wird der Chip 2-3 eingelesen.
Setze ich jetzt an das Ende ein delay(z.B 5000); so zeigt der Monitor alle 5 Sek. eine Zahl von der ganzen ID an.

Ich freue mich auf eure Kommentare/ Kritik.

Beste Grüße aus Schleswig-Holstein

hi,

und herzlich willkomen hier im forum.

wer ist paul?

gruß stefan

und jetzt ernsthaft:

wie sollen die arduinos mit dem netzwerk kommunizieren?

wenn über kabel, würde ich RS485 vorschlagen.

wenn über wlan, dann mußt Du auf einem bogenschießplatz einige accesspoints an Deinen router anschließen, oder wlan-repeater.

falls wlan: nimm keine arduinos, sondern ESP8266. kannst Du auch mit der IDE in "arduino-sprache" programmieren. sind spottbillig (5, 6 euro pro).

gruß stefan

Ach.. Ethernet ist doch Ok...

Ich würde auf dem Läppi Xampp drauf spielen. Die Kommunikation über "HTTP REST"

Z.B. mit Hilfe vom RedBean ORM könnte das in wenigen Stunden erledigt sein. Denn das hat schon einen REST Server im Werkzeugkasten.

Ja, wer ist eigentlich Paul... :) Max Mustermann halt.

Es soll schon über ein Arduino + Ethernet shield laufen. Der Arduino ist 2m von dem Switch entfernt.

Das erste Problem mit der ID hat sich schon geklärt. Aus Sicherheitsgründen darf die ID gar nicht auf dem Chip stehen. und wie allg. die ID aussieht, kann man hier nachlesen hier. Das haben mir gerade die englischen Kollegen verraten. Das zweite Problem besteht weiterhin.

Wie erweitere ich denn jetzt am besten den Code? Ich finde die Ethernet Beispiele immer schwer zu verstehen. Zumal man die erstmal zum laufen bekommen muss. Hat hier jemand Erfahrungen mit Datenbanken/Arduino?

Unter Projektvorstellung versteh ich was anderes, da fragt man nicht nach Code sondern präsentiert den!

Hallo Skorpi08, ich bin ja dabei, den Code zu erstellen um den zu besprechen. So wie im ersten Abschnitt. Da habe ich ja schon den Teil RFID vorgestellt und das Problem erläutert.

Aber danke für deine Kritik. Nächstes mal werde ich die Überschrift überlegter Wählen. Ich hoffe trotzdem auf Hilfe. Ich Lade heute Abend den ersten Teil "ethernet" hoch.

Grüße

RonSH: Ich benötige eure Hilfe beim Arduino Code, besonders beim lesen und schreiben auf die Datenbank. Das fertige Projekt kann später jeder nutzen, der ein "Bezahlsystem" einrichten möchte.

Dir ist schon klar, dass du dann eine Anleitung zur Leistungserschleichungs mitlieferst? Ein Ethernet-Kabel lädt zum Man-In-The-Middle-Attack ein...

Andere Bemerkungen:

Wenn der Monitor bei Ablauf des Guthabens abgeschaltet wird, solltest du ihn auch beim Auflegen der Karte mit Guthaben einschalten.

Wenn du deinen Kunden einen kleinen Überziehungskredit einräumst, könnte das deine Verkäufe erhöhen, die Leute stehen ja gerade auf dem Stand, wollen vielleicht noch länger machen, ohne zwischendurch irgenwohin zu laufen.

Arduinos mit Ethernet sind recht teuer und groß.

Posten des gleichen Themas in mehreren Foren ist kein schöner Zug von Dir.

Haben Dir unsere Antworten im anderen Forum nicht gefallen?

Gruß Tommy

Hallo Tommy, ich stehe das Problem nicht. Wenn ich nach einer Lösung suche, dann nutze ich doch so viele Möglichkeiten wie möglich. Wenn ich mich in ein neues Thema einlese, nutze ich doch auch verschiedene Bücher und das Internet, auch wenn das verschiedene Autoren geschrieben haben.

Und zu deiner Frage. Natürlich gefällt mir das bei euch. Sonst würde ich doch gar nicht dort schreiben.

Lg

Crosspostings gelten in der Forenwelt als unhöflich.

Gruß Tommy

Das sich darüber Leute Gedanken machen. Wahnsinn. Aber ok, ich weiß für das nächste mal Bescheid