Raspicam PHP is a library to control the Raspberry Pi Camera Module with PHP. It is a wrapper around the command line tool raspistill.
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
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';
use Cvuorinen\Raspicam\Raspistill;
$camera = new Raspistill();
$camera->takePicture('pic.jpg');
use Cvuorinen\Raspicam\Raspistill;
$camera = new Raspistill();
$camera->timeout(1)
->rotate(90)
->exposure(Raspistill::EXPOSURE_NIGHT)
->quality(85);
$camera->takePicture('pic.jpg');
use Cvuorinen\Raspicam\Raspistill;
$camera = new Raspistill([
'timeout' => 1,
'rotate' => 90,
'exposure' => Raspistill::EXPOSURE_NIGHT,
'quality' => 85,
]);
$camera->takePicture('pic.jpg');
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 can be found in the the docs directory.
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.
Released under the MIT License (MIT). See LICENSE for more information.