All Projects → cvuorinen → raspicam-php

cvuorinen / raspicam-php

Licence: MIT license
Control Raspberry Pi Camera with PHP

Programming Languages

PHP
23972 projects - #3 most used programming language

Raspicam PHP

Build Status

Raspicam PHP is a library to control the Raspberry Pi Camera Module with PHP. It is a wrapper around the command line tool raspistill.

Requirements

You need a Raspberry Pi running Raspbian and the Camera Module. On the Raspberry Pi you also need to have PHP and composer installed.

First, install and enable the Camera on the Raspberry Pi: Instructions

If you don't have PHP installed on the Raspberry Pi yet, you can install it by running:

sudo apt-get install php5

Then install composer:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Install

First check requirements above.

Install with composer:

composer require cvuorinen/raspicam-php

Add to your php file (adjust path accordingly if file not in project root):

require 'vendor/autoload.php';

Usage

Take picture

use Cvuorinen\Raspicam\Raspistill;

$camera = new Raspistill();

$camera->takePicture('pic.jpg');

Fluent interface

use Cvuorinen\Raspicam\Raspistill;

$camera = new Raspistill();
$camera->timeout(1)
    ->rotate(90)
    ->exposure(Raspistill::EXPOSURE_NIGHT)
    ->quality(85);

$camera->takePicture('pic.jpg');

Constructor options array

use Cvuorinen\Raspicam\Raspistill;

$camera = new Raspistill([
    'timeout' => 1,
    'rotate' => 90,
    'exposure' => Raspistill::EXPOSURE_NIGHT,
    'quality' => 85,
]);

$camera->takePicture('pic.jpg');

Timelapse

use Cvuorinen\Raspicam\Raspistill;

$camera = new Raspistill();

// take picture every ten seconds for two minutes
$camera->startTimelapse('image%04d.jpg', 10, 120);

More complex examples can be found in the examples directory.

Documentation

Documentation can be found in the the docs directory.

Troubleshooting

Since Raspicam PHP is just a wrapper around raspistill, you should first make sure that it works without issues. This can be done by calling it directly, for example creating a PHP script with just passthru("raspistill -o /tmp/test.jpg"); and calling it the same way as the script that uses Raspicam PHP.

Depending on how you are going to execute your PHP code, you might have to adjust some permissions. The executing user needs access to /dev/vchiq on the Pi. If you are executing from command-line as the default user, it should just work.

If you are executing through a web server like Apache, you need to adjust the permissions so that the web server user (www-data in case of Apache) has permission to access it by adding the user to the group video (with e.g. sudo usermod -a -G video www-data).

Also make sure that the user has permission to write to the file/directory where you are saving the images. The filename is relative to PHP current working directory, but absolute paths can also be used.

License

Released under the MIT License (MIT). See LICENSE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].