Некоммерческий, непрофессиональный пользователь, ищущий совет для любителя проекта.
У меня есть два Pi, настроенные так: Pi 1 размещает Pimoroni Enviro Phat и записывает его показания в базу данных также на Pi 1
Pi 2 является хозяином Pimoroni Scroll PhatHD. Я хотел бы, чтобы он считывал данные из базы данных на Pi 1 и отображал их на Scroll Phat HD на Pi 2
Я установил все необходимые требования к соединению Mysql, все они хороши.
Как получить показания из базы данных на Pi1, чтобы прокрутить Scroll PhatHD на Pi 2?
import signal
import time
import scrollphathd
from scrollphathd.fonts import font5x7
import mysql.connector
from mysql.connector import Error
con = mysql.connector.connect(host='192.168.#.##',database='test',user='#####',password='#######')
cur = con.cursor()
cur.execute('SELECT Yaxis FROM readings ORDER BY Added DESC LIMIT 1')
### Keep trailing comma from SELECT result away:
result = [row[0] for row in cur.fetchall()]
### Show result of SELECT query in terminal
print result
# temperature = int((float('result')))
temperature = ['result']
# Write the "Hello World!" string in the buffer and
# set a more eye-friendly default brightness
scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)
# Auto scroll using a while + time mechanism (no thread)
while True:
# Show the buffer
scrollphathd.show()
# Scroll the buffer content
scrollphathd.scroll()
# Wait for 0.1s
time.sleep(0.1)
Ошибка гласит: "Ошибка типа: требуется аргумент с плавающей точкой, а не список" Спасибо.
Хорошо, у меня это работает хорошо. Pi2 читает три параметра из базы данных на Pi1 и работает с ними в некоторых if/elif
чтобы соответствующим образом отобразить их на Scroll PhatHD.
Мне просто интересно. Есть ли способ в Python хранить информацию о соединении с базой данных в отдельном файле, как я могу в PHP, с помощью require
? Спасибо.
Похоже, что ваша ошибка вызвана этим:
scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)
вы пытаетесь отформатировать строку с temperature
как число с float
но чуть выше вы написали temperature = ['result']
который является списком.
Линия
temperature = ['result']
устанавливает переменную temperature
как список, а строка
scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)
ожидает, что переменная temperature
будет переменной типа с float
.
Замена этой строки temperature = result[0]
решит эту проблему, но обратите внимание, что она не обрабатывает случай, когда запрос возвращает пустой ответ.