Я построил набор музыкальных лестниц с питоном, датчиками движения и Raspberry Pi, а также веб-приложение, которое позволяет вам выбрать, какой тип звука инструмента вы хотите создать. Тип инструмента хранится в базе данных MySQL, которую я подключил к коду Python (который издает звуки при поломке луча) и к веб-приложению, которое позволяет пользователям выбирать тип инструмента из базы данных.
Мне просто интересно, есть ли способ запроса базы данных из кода Python, который будет означать, только когда строка выбрана из базы данных, запустить определенный блок кода.
Например, кто-то нажимает «Барабан» в веб-приложении.
Инструмент Тип "Барабан" выбран из базы данных MySQL
Drumsound.play () должен работать на коде Python.
Есть ли способ сделать это на питоне?
Это для Raspberry Pi 3 с Python 2.7, mySQLdb5 и apache2.
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="*****",
pw="*****",
db="stairs"
)
cursor = mydb.cursor()
cursor.execute("SELECT variableValue FROM stairs WHERE variableValue =
'instrumentType'")
import RPi.GPIO as GPIO # GPIO
import pygame.mixer # To make sound
pygame.mixer.init()
''' GPIO setup '''
GPIO.setmode(GPIO.BCM) # GPIO setmode
GPIO.setwarnings(False)
'''Define steps and pins here'''
step1 = 4
'''Motion sensor setup here'''
GPIO.setup(step1, GPIO.IN, GPIO.PUD_UP)
'''Piano files here'''
C1 = pygame.mixer.Sound("piano/C1.wav")
'''Drum files here'''
drum1 = pygame.mixer.Sound("drum/C1.wav")
def play(pin):
sound = sound_pins[pin]
print("Playing note from pin %s" % pin)
sound.play()
'''Dictionary of steps and sounds'''
sound_pins = {
step1: C1,
step2: D,
step3: E,
step4: F,
step5: G,
step6: A,
step7: B,
step8: C2,
}
for pin in sound_pins:
GPIO.setup(pin, GPIO.IN, GPIO.PUD_UP)
GPIO.add_event_detect(pin, GPIO.RISING, play, 100)