commit 79483becc0ed799f7af091b5d2a26dbfd7496130 Author: Filip Nilsen Date: Wed Mar 16 12:58:53 2022 +0100 first diff --git a/reader.py b/reader.py new file mode 100644 index 0000000..ae61ebf --- /dev/null +++ b/reader.py @@ -0,0 +1,11 @@ +from mfrc522 import SimpleMFRC522 +reader = SimpleMFRC522() + +try: + while True: + id, text = reader.read() + print(id) + print(text) +except KeyboardInterrupt: + GPIO.cleanup() + raise diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6f9d18a --- /dev/null +++ b/readme.md @@ -0,0 +1,2 @@ +# Raspberry Pi +Python kode for å lese rfid med RFID-RC522 og sende det til en server med HTTP POST. diff --git a/registrer.py b/registrer.py new file mode 100644 index 0000000..efad587 --- /dev/null +++ b/registrer.py @@ -0,0 +1,47 @@ +from mfrc522 import SimpleMFRC522#rfid reader library +from requests import post, get #make post & get requests +from RPi import GPIO +import json#json +from mysql import connector#mysql +import datetime + +def timestamp(): + #https://stackoverflow.com/questions/2150739/iso-time-iso-8601-in-python + return [datetime.datetime.now().astimezone().replace(microsecond=0).isoformat()] + +with open('./settings.json') as json_settings:#open json file with settings + settings = json.loads(json_settings.read())#read the json to a python object + +reader = SimpleMFRC522() + +localdb = connector.connect(#connect to a local mariadb database + host=settings['localdb']['host'], + user=settings['localdb']['user'], + password=settings['localdb']['password'], + database=settings['localdb']['database'] +) +cursor = localdb.cursor() + +cursor.execute("SHOW GLOBAL VARIABLES LIKE 'time_zone';") +cursor.execute("SHOW GLOBAL VARIABLES LIKE 'system_time_zone';") +cursor.execute("SELECT NOW();") +localdb.commit() +print(mycursor.fetchall()) + +get(str(settings['url'] + '/stafett/time.php')) + +try: + while True: + id, text = reader.read()#read rfid + rfid = [str(id) + str(text)] + print(rfid) + + cursor.execute("INSERT INTO tidtabell (rfid) VALUES(%s);", (rfid)) + #^sends the rfid into the database, the time column is automatically CURRENT_TIMESTAMP whitch is the same as NOW(); + localdb.commit()#write the sql + + post(settings['url'], {'rfid': rfid[0], 'timestamp': timestamp()})#send POST with rfid to kvadda.no + +except KeyboardInterrupt:#ctrl + c + GPIO.cleanup()#clean up the gpio + raise#exit program diff --git a/registrer_lag.py b/registrer_lag.py new file mode 100644 index 0000000..8abb87d --- /dev/null +++ b/registrer_lag.py @@ -0,0 +1,66 @@ +from tkinter import * +from tkinter import ttk +from requests import post + +def get_rfid(rfid): + return + +def main(): + global LagNavn, Bedrift, rfid, Lagleder, Telefon, Deltagere, Brukernavn, Passord + root = Tk() + notebook = ttk.Notebook(root) + notebook.pack() + tab0 = ttk.Frame(notebook) + notebook.add(tab0, text='Registrereing') + + ttk.Label(tab0, text='LagNavn').grid(row=1) + LagNavn = ttk.Entry(tab0) + LagNavn.grid(column=1, row=1) + + ttk.Label(tab0, text='Bedrift').grid(row=2) + Bedrift = ttk.Entry(tab0) + Bedrift.grid(column=1, row=2) + + ttk.Label(tab0, text='RFID').grid(row=3) + rfid = ttk.Entry(tab0) + rfid.grid(column=1, row=3) + ttk.Button(tab0, command=get_rfid(rfid), text='Les fra pinne').grid(column=2, row=3) + + ttk.Label(tab0, text='Lagleder').grid(row=4) + Lagleder = ttk.Entry(tab0) + Lagleder.grid(column=1, row=4) + + ttk.Label(tab0, text='Telefon').grid(row=5) + Telefon = ttk.Entry(tab0) + Telefon.grid(row=5, column=1) + + ttk.Label(tab0, text='Deltagere').grid(row=6) + Deltagere = ttk.Entry(tab0) + Deltagere.grid(row=6, column=1) + + tab1 = ttk.Frame(notebook) + + ttk.Label(tab1, text='Brukernavn').grid() + Brukernavn = ttk.Entry(tab1) + Brukernavn.grid(column=1, row=0) + + ttk.Label(tab1, text='Passord').grid(row=1) + Passord = ttk.Entry(tab1, show='*') + Passord.grid(column=1, row=1) + + notebook.add(tab1, text='Servertilkobling') + + ttk.Button(tab0, text='Registrer', command=send).grid(row=7, column=1) + + root.mainloop() + +def send(): + global LagNavn, Bedrift, rfid, Lagleder, Telefon, Deltagere, Brukernavn, Passord + r = post('http://localhost/backend/registrer_lag.php', data={'LagNavn':LagNavn.get(), 'Bedrift':Bedrift.get(), 'Kortnummer':rfid.get(), 'Lagleder':Lagleder.get(), 'Telefon':Telefon.get(), 'Deltagere':Deltagere.get(), 'Brukernavn':Brukernavn.get(), 'Passord':Passord.get()}) + print(r.status_code) + print(r.headers) + print(r.text) + r.close() + +if __name__ == '__main__': + main() diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..e7fe85d --- /dev/null +++ b/settings.json @@ -0,0 +1,9 @@ +{ + "url": "http://192.168.0.110/stafett/mottakkort.php", + "localdb":{ + "host":"localhost", + "user":"root", + "password":"password", + "database":"stafett" + } +}