diff --git a/goodGarden.sql b/goodGarden.sql index 06d9991..de6d9d1 100644 --- a/goodGarden.sql +++ b/goodGarden.sql @@ -10,7 +10,7 @@ CREATE TABLE goodgarden.sensor_data ( PRIMARY KEY (id) ); --- Invoegen van gegevens in de 'sensor_data'-tabel +Invoegen van gegevens in de 'sensor_data'-tabel INSERT INTO goodgarden.sensor_data (timestamp, gateway_receive_time, device, value) VALUES (1707295162, '2024-02-07T08:39:22Z', 256, 4.107448101043701), (1707261284, '2024-02-06T23:14:44Z', 322, 4.111111164093018); diff --git a/index.py b/index.py index a4669a2..08b565b 100644 --- a/index.py +++ b/index.py @@ -1,42 +1,14 @@ import mysql.connector import requests +import time +paho.mttq -# Verbinding maken met de database -mydb = mysql.connector.connect( - host="localhost", - user="root", - password="", - database="goodgarden" -) - -# Controleren of de verbinding succesvol is -if mydb.is_connected(): - print("Connected to the database") -else: - print("Failed to connect to the database") - -try: - # Maak een cursor aan - mycursor = mydb.cursor() - - # Voer de query uit om gegevens op te halen - mycursor.execute("SELECT * FROM goodgarden.sensor_data") - - # Haal de resultaten op - myresult = mycursor.fetchall() - - # Print de resultaten - for x in myresult: - print(x) - -except mysql.connector.Error as err: - print(f"Error: {err}") - -finally: - # Sluit de cursor en de databaseverbinding - mycursor.close() - mydb.close( - +def database_connect(): + return mysql.connector.connect( + host="localhost", + user="root", + password="", + database="goodgarden" ) def fetch_data(): @@ -45,18 +17,52 @@ def fetch_data(): "Authorization": "Token 33bb3b42452306c58ecedc3c86cfae28ba22329c" } - try: - response = requests.get(url, headers=headers) - response.raise_for_status() + while True: + try: + response = requests.get(url, headers=headers) + response.raise_for_status() - data = response.json() - load_data(data) - except requests.exceptions.RequestException as e: - print(f"Error fetching data: {e}") + data = response.json() + load_data(data) + + # Wacht voor een bepaalde tijd (bijvoorbeeld 60 seconden) voordat je de volgende oproep doet + print("Wachten voor de volgende ophaalactie...") + time.sleep(60) # De tijd hier is in seconden. + + except requests.exceptions.RequestException as e: + print(f"Error fetching data: {e}") + # Wacht ook hier bij een fout, om niet in een snelle foutloop te komen + time.sleep(300) def load_data(data): - api_data = data - print("Data loaded:", api_data) + mydb = database_connect() + if mydb.is_connected(): + mycursor = mydb.cursor() + + # Hier moet je de juiste kolomnamen en dataformaten aanpassen op basis van de API-respons + insert_query = """ + INSERT INTO goodgarden.sensor_data (timestamp, gateway_receive_time, device, value) + VALUES (%s, %s, %s, %s) + """ + for record in data['results']: # Pas dit aan op basis van de werkelijke structuur van de JSON + timestamp = record['timestamp'] + gateway_receive_time = record['gateway_receive_time'] + device = record['device'] + value = record['value'] + + print(f"Inserting data: timestamp={timestamp}, gateway_receive_time={gateway_receive_time}, device={device}, value={value}") # Print de data die wordt ingevoegd + + # Voer de query uit + mycursor.execute(insert_query, (timestamp, gateway_receive_time, device, value)) + + # Commit de wijzigingen + mydb.commit() + + # Sluit cursor en verbinding + mycursor.close() + mydb.close() + + print("Data ingevoegd in de database.") if __name__ == "__main__": - fetch_data() + fetch_data() \ No newline at end of file