Я работаю над проектом, который содержит датчик, отправляющий данные в локальную базу данных MySQL.У меня есть скрипт Python, который должен вывести эти данные на график в режиме реального времени.Когда я выполняю свой скрипт, данные извлекаются из базы данных MySQL и выводятся с использованием matplotlib.Тем не менее, у меня есть эта функциональность в цикле, так что, как только новые данные доступны от датчика в базе данных, график обновляется.
Однако я обнаружил, что после запуска сценария он извлекает только данные, доступные в этой точке, даже если датчик обновляет базу данных.Код теста, который я написал, выглядит следующим образом:
import time
import mysql.connector as mysql
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
## connecting to the database using 'connect()' method
## it takes 3 required parameters 'host', 'user', 'passwd'
db = mysql.connect(
host = "localhost",
user = "xxxxx",
passwd = "xxxx",
database = "xxxxx"
)
while (True):
cursor = db.cursor()
query = "SELECT * FROM dht11"
cursor.execute(query)
records = cursor.fetchall()
temperature = []
humidity = []
Time = []
ctr = 0
for record in records:
temperature.append(record[1])
humidity.append(record[2])
ctr = ctr + 1
Time.append(ctr)
time.sleep(5)
print(temperature)
Цикл while выполняет запрос каждые ~ 5 секунд, однако данные, возвращаемые SELECT * из dht11, всегда возвращают одни и те же данные.Я знаю, что новые данные доступны в базе данных MySQL, потому что я вижу их на панели phpMyadmin.Может кто-нибудь указать мне правильное направление?
Я использую Python 3.7.4