代码之家  ›  专栏  ›  技术社区  ›  D P

无法通过web浏览器访问pi摄像机

  •  1
  • D P  · 技术社区  · 9 年前

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

    我成功地在笔记本电脑的浏览器上运行了这个脚本,以运行简单的命令,如 ls -l 并在浏览器上打印两个项目的结果。但是,我最终希望能够 raspistill sudo

    这是我的剧本:

    #! /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包的问题。

    2 回复  |  直到 9 年前
        1
  •  1
  •   whackamadoodle3000    9 年前

    在pi中,进入终端并键入 sudo raspi-config 然后用键导航到摄像机,然后启用它。这将重新启动pi。 从…起 https://www.raspberrypi.org/documentation/configuration/camera.md

    使用光标键移动到摄像机选项,然后选择“启用”。 退出raspi配置时,它将要求重新启动。启用选项 将确保重新启动时正确的GPU固件将运行 通过摄像头驱动程序和调谐,GPU内存分割

    之后,进入 sudo raspi配置 并启用ssh(这是与pi摄像机类似的另一个选项)。此链接 here

        2
  •  1
  •   D P    9 年前

    pssh 模块中,我的问题与退出代码以及如何处理它们有关。

    有关的文档 run_command 声明:

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

    立即退出的命令。

    期望命令完成,但事实证明,我需要获取退出代码来真正完成命令正在运行的进程。这些文件说明了实现这一点的几种方法:

    至少一个

    • 迭代stdout/stderr以完成
    • client.join(output) 有必要引起 parallel-ssh