Ok mal anders anfangen
Ich habe 3 verschiede Tabellen auf 3 Server, weil jede Ding sein eigenes Schema hat
habe zum Testen mal 3 Tabellen in eine DB zusammen gefasst zum testen
Tabelle 1: speichert nur TAG Werte
Tabelle 3: hat infos wie : ID, Auto, Fahrad, Mofa, Quad, Ofen, Heizung, .... TAG Werte ( Wobei nicht alle TAG Werte aus Tabelle 1 verwendet werden ( es gibt mehr TAG Werte als Daten ))
Tabelle 2: soll werte aus Tabelle 3 bekommen wenn TAG Wert beim abfragen gefunden wurde.
Die TAG Werte aus Tabelle 1 werden über einen Webserver bei bedarf immer ind Tabelle 3 übertragen zu einer bestimmten ID
Der Webserver hat weitere funktionen noch, z.b. Diverse Werte von Ereignissen auf zu nehmen und mit ID aus Tabelle 3 in einer anderen Tabelle ( Tabelle4 ) zu speichern, welche wiederum zur späteren auswertung genutzt werden wo Plazierungen mit ausgegeben werden.
Tabelle 2 hat auch mehrere ID auf genommen aber es sollen nur gezielt eine ID abgefragt werden und aus gegeben werden ( praktisch ein Einzellverbindungsnachweis )
Mein Versuch
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf8 -*-
import RPi.GPIO as GPIO
import MFRC522
import signal
import datetime
import time
import MySQLdb
db = MySQLdb.connect(host = "localhost",
user = "root",
passwd = "eadmin",
db = "test")
GPIO.setmode(GPIO.BCM)
#GPIO.setup(16, GPIO.OUT) #LED Rot
GPIO.setup(20, GPIO.OUT) #LED Gelb
GPIO.setup(21, GPIO.OUT) #LED Blau
#GPIO.output(16, GPIO.LOW) #LED Rot
GPIO.output(20, GPIO.LOW) #LED Gelb
GPIO.output(21, GPIO.LOW) #LED Blau
#LED Gruen wird mit Einschalten von RaspberryPi gestartet
#LED Rot soll als Lesefehler leuchten fuer 3 Sekunden
#LED Blau bereit zum scannen
#LED Gelb daten werden verarbeitet
valueart = Art
valueort = Ort
continue_reading = True
def end_read(signal,frame):
global continue_reading
print "\nProgramm beendet!"
continue_reading = False
GPIO.cleanup()
signal.signal(signal.SIGINT, end_read)
MIFAREReader = MFRC522.MFRC522()
print "Programm gestartet zum Karten scannen!"
#Alle Programme Begin
while continue_reading:
GPIO.output(21, GPIO.HIGH)
GPIO.output(21, GPIO.HIGH)
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
(status,uid) = MIFAREReader.MFRC522_Anticoll()
if status == MIFAREReader.MI_OK:
card = str(uid[0]) + str(uid[1]) + str(uid[2]) + str(uid[3])
GPIO.output(21, GPIO.LOW)
GPIO.output(20, GPIO.HIGH)
cur = db.cursor()
cur.execute("SELECT * FROM dbvmgl")
for row in cur.fetchall() :
if card != row[18]:
#cur.execute("INSERT INTO rfid (tt01) VALUES (%s)", (card))
#file = open("card_in_id.txt", "a")
#file.write(card + "\n")
#file.close()
print "Tag wird in Tabelle 1 eingetragen"
elif card == row[18]:
#valuehugo = row[3] + " " + row[2]
#now =datetime.datetime.today()
#value1data = now.strftime('%Y-%m-%d')
#value2data = now.strftime('%Y')
#cur.execute("INSERT INTO ess (vsbid, vsbx0, vsbx1, vsb01, vsb02, vsb03, vsb31, vsb32) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)", (row[0], row[14], row[15], valuehugo, value1data, 'valueart', 'valueort', value2data))
print "Tag wird in Tabelle 2 eingetragen"
else:
GPIO.output(16, GPIO.HIGH)
time.sleep(3)
print "Tag nicht in Tabelle 3 gefunden"
GPIO.output(16, GPIO.LOW)
time.sleep(3)
print("Next Card")
GPIO.output(20, GPIO.LOW)
GPIO.output(21, GPIO.HIGH)