php - 如何编写 PHP 按钮来从数据库中选择行并运行 python 代码

标签 php mysql python-2.7 raspberry-pi3

我使用树莓派和一些充当开关的运动传感器为一组音乐楼梯编写了一个Python脚本,在通过时它们会发出噪音。在我的 MySQL 数据库中,我有两种不同的设置 - 钢琴或鼓,并且根据选择的设置,将运行不同的代码块。

我想知道是否可以创建一个 PHP 按钮来从数据库中进行选择,然后根据按下的 PHP 按钮使 python block 运行?

我尝试了一个简单的 SQL 语句并在 PHP 中连接数据库,但到目前为止还没有执行任何操作。

这适用于运行 Python2.7(我知道我应该升级,但这是与 mariadb 连接的最新版本)、PHP 和 Apache 2 的 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 database
mariadb_connection = mariadb.connect(user='root', password='*****', database='stairs')
cursor = mariadb_connection.cursor()

```GPIO setup
GPIO.setmode(GPIO.BCM) 

```Motion sensor setup
GPIO.setup(4, GPIO.IN, GPIO.PUD_UP)
GPIO.setup(17, GPIO.IN, GPIO.PUD_UP)

while True:
    cursor.execute("SELECT value FROM settings WHERE key_ = 'currentInstrument'")
    settings = cursor.fetchall()

   for id in settings:
        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,然后依次选择要演奏的乐器

最佳答案

这样的东西应该可以工作(假设 php 按钮位于某个网页中):

HTML/PHP 页面: 运行

该按钮与 php 文件“run.php”相关,如果按下该按钮,页面将重定向到“run.php”。

在“run.php”内启动 python 脚本:

    <?php
    $command = escapeshellcmd('pathto/script.py');
    $output = shell_exec($command);
    echo $output;
    ?>

这将从网页运行 python 脚本

关于php - 如何编写 PHP 按钮来从数据库中选择行并运行 python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57077647/

相关文章:

mysql - 对表进行排序,但将行组放在一起

php - 获取查询到的id之前的id并进行处理

python-2.7 - Tensorflow 返回相似图像

php - Youtube API-视频评论分页

php - mysql 查询不起作用

php - 查询在逗号分隔列表mysql中查找值

python - Python 中的耦合映射点阵

python-2.7 - Python None 如果检查失败

php - 使用 PHPUnit 模拟 Slim 端点 POST 请求

javascript - Chrome 中的 Jquery Ajax 请求有什么问题?