Raspicam PHP
, (*1)
Raspicam PHP is a library to control the Raspberry Pi Camera Module with PHP. It is a wrapper around the command line tool raspistill., (*2)
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., (*3)
First, install and enable the Camera on the Raspberry Pi: Instructions, (*4)
If you don't have PHP installed on the Raspberry Pi yet, you can install it by running:, (*5)
sudo apt-get install php5
Then install composer:, (*6)
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Install
First check requirements above., (*7)
Install with composer:, (*8)
composer require cvuorinen/raspicam-php
Add to your php file (adjust path accordingly if file not in project root):, (*9)
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., (*10)
Documentation
Documentation can be found in the the docs directory., (*11)
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., (*12)
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., (*13)
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)., (*14)
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., (*15)
License
Released under the MIT License (MIT).
See LICENSE for more information., (*16)