Database Connection

This commit is contained in:
Atilla
2024-02-13 11:04:24 +01:00
parent 81302d8587
commit 37748727c7
2 changed files with 53 additions and 47 deletions

View File

@@ -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);

View File

@@ -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()