我已经为一组音乐楼梯写了一段python脚本,使用的是覆盆子圆周率和一些动作传感器,它们充当开关,经过时会发出噪音。在我的MySQL数据库中,我有两个不同的设置-钢琴或鼓,根据选择的不同,将运行不同的代码块。
我想知道是否可以制作一个PHP按钮来从数据库中进行选择,然后根据按下的PHP按钮使python块运行。
我已经尝试了一条简单的SQL语句,并用PHP连接数据库,但是到目前为止还没有做任何事情。
这是为运行Python2.7 (我知道我应该升级,但这是连接mariadb的最新版本)、PHP和Apache2的Raspberry Pi 3准备的。
#!/usr/local/lib/python2.7/sitepackages
import mysql.connector as mariadb # connect to mysql
import RPi.GPIO as GPIO # GPIO
import pygame.mixer # To make sound
pygame.mixer.init()
```Connect to databasemariadb_connection = mariadb.connect(user='root',password='*',database='stairs')
cursor = mariadb_connection.cursor()
GPIO.setmode(GPIO.BCM)
```Motion sensor setupGPIO.setup(4,GPIO.IN,GPIO.PUD_UP)
GPIO.setup(17,GPIO.IN,GPIO.PUD_UP)
而True:
cursor.execute("SELECT value FROM settings WHERE key_ = 'currentInstrument'")settings = cursor.fetchall()对于设置中的id:
input_state = GPIO.input(4) if input_state == False: if(id==1): print('GPIO4 Piano') C1 = pygame.mixer.Sound("piano/C1.wav") C1.play() if(id==2): print('GPIO4 Drum') drum1 = pygame.mixer.Sound("drum/Drum c1.wav") drum1.play() input_state = GPIO.input(17) if input_state == False: if(id==1): print('GPIO17 Piano') D = pygame.mixer.Sound("piano/D.wav") D.play() if(id==2): print('GPIO17 Drum') drum2 = pygame.mixer.Sound("drum/Drum d.wav") drum2.play()预期的输出应该是,当一个PHP按钮被按下时,它应该从数据库中选择1或2,然后数据库又应该选择演奏哪种乐器
发布于 2019-09-11 17:34:37
类似这样的东西应该可以工作(假设php按钮在一些网页中):
HTML/PHP页面:运行
该按钮与php文件"run.php“相关,如果按下该按钮,页面将重定向到"run.php”。
在"run.php“中启动python脚本:
<?php
$command = escapeshellcmd('pathto/script.py');
$output = shell_exec($command);
echo $output;
?>这将从网页运行python脚本
https://stackoverflow.com/questions/57077647
复制相似问题