【问题标题】:Unable to access pi camera through web browser无法通过网络浏览器访问 pi 相机
【发布时间】:2018-01-11 19:00:57
【问题描述】:

我正在编写一个 Python CGI 脚本,我想在笔记本电脑的浏览器上运行它。该脚本将通过 SSH 连接到两个 Pi,并发出拍照命令。托管此脚本的服务器位于我要通过 SSH 连接的其中一个 Pi 上,并且该 Pi 还充当另一个 Pi 和我的笔记本电脑连接的接入点(一切都是 LAN,未连接到 Internet) .

我成功地在笔记本电脑的浏览器上运行此脚本,以便在两个 Pis 上运行像 ls -l 这样的简单命令,并在浏览器上打印出两者的结果。但是,我最终希望能够将raspistill 命令提供给两个 Pis。当我这样做时,只有带有服务器的 Pi 正在拍摄图像,而另一个 Pi 没有。我认为这是因为没有为服务器正确设置权限(我尝试以sudo 运行命令,但仍然没有运气)。但是,如果我在 Python IDLE 上运行相同的脚本,它就可以正常工作。有人可以帮我找出问题吗?

这是我的脚本:

#! /usr/bin/env python3

from pssh import ParallelSSHClient
import cgi

print("Content-Type: text/plain\r\n")
print("\r\n ")

host = ['172.24.1.1','172.24.1.112']
user = 'XXXX'
password = 'XXXX'
client = ParallelSSHClient(host, user, password)

output = client.run_command('raspistill -o test.jpg', sudo=True)

// AMENDMENT:
for line in output['172.24.1.1'].stdout:  // works as well with '172.24.1.112'
    print(line)

修正: 显然,如果我从stdout 输出任何东西,它工作正常。为什么会这样?是只是在等我刷新输出还是什么?我怀疑这可能是我正在使用的 pssh 包的问题。

【问题讨论】:

    标签: python apache server raspberry-pi raspistill


    【解决方案1】:

    在通读pssh 模块的文档后,我的问题与退出代码及其处理方式有关。

    关于run_command 的文档指出:

    函数将在连接和身份验证建立后以及命令发送到成功建立的 SSH 通道后返回。

    结果:

    因此,退出代码将不会立即可用,即使 立即退出的命令。

    最初,我只是盲目地运行run_command 期望命令完成,但事实证明我需要获取退出代码才能真正完成命令正在运行的进程。文档说明了几种方法:

    至少有一个

    • 迭代 stdout/stderr 以完成
    • 必须调用 client.join(output) 才能使 parallel-ssh 等待命令完成并能够收集退出代码。

    这就是为什么在我对从标准输出输出的代码的修改中,命令似乎可以正常工作。

    【讨论】:

      【解决方案2】:

      在您的 pi 中,进入终端并输入 sudo raspi-config,然后使用键导航到相机,然后启用它。这将重新启动您的 pi。 来自https://www.raspberrypi.org/documentation/configuration/camera.md

      使用光标键移动到相机选项,然后选择“启用”。 在退出 raspi-config 时,它会要求重新启动。启用选项 将确保在重新启动时运行正确的 GPU 固件 使用相机驱动和调优,GPU 内存分配是 足以让相机获得足够的内存来运行 正确。

      在此之后,进入sudo raspi-config 并启用 ssh(这是另一个选项,就像 pi-camera 一样)。此链接here

      【讨论】:

      • 我在两个 Pis 上都启用了摄像头和 ssh 接口。它已经在之前并且正在工作。显然,我需要为要拍摄的照片输出一些东西,如我的代码修改中所示。我不知道为什么会这样。
      猜你喜欢
      • 2011-09-14
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 2011-02-09
      • 2015-06-27
      • 2014-07-23
      相关资源
      最近更新 更多