PHP Classes

PHP Led Raspberry PI: Control led lights to turn on and off

Recommend this page to a friend!
  Info   View files Example   View files View files (1)   DownloadInstall with Composer Download .zip   Reputation   Support forum (1)   Blog (2)    
Ratings Unique User Downloads Download Rankings
Not enough user ratingsTotal: 151 All time: 9,041 This week: 109Up
Version License PHP version Categories
led_raspberry 1.0.0Custom (specified...5PHP 5, Hardware
Description 

Author

This class can control led lights to turn on and off.

It can access system variables in a Raspberry PI device to perform several types of operations to control led lights. Currently, it can:

- Turn on and off the led lights
- Set the control variables like export, unexport, direction

Innovation Award
PHP Programming Innovation award nominee
August 2021
Number 7
Raspberry PI is a popular platform for creating small hardware devices that can be controlled by software written in many languages, including PHP.

This package demonstrates how to control a Raspberry PI-based LED light system using PHP.

Manuel Lemos
Picture of Rafael Martin Soto
  Performance   Level  
Name: Rafael Martin Soto <contact>
Classes: 13 packages by
Country: Spain Spain
Age: 49
All time rank: 230058 in Spain Spain
Week rank: 76 Up2 in Spain Spain Up
Innovation award
Innovation award
Nominee: 7x

Winner: 4x

Example

<?php


/** Example of use led class
 * BLINK 2 LEDS EVERY SECOND. ONLY 1 IS ON AT A TIME FOR 10 TIMES.
 *
 * Class for get direct access to GPIO ports on a Raspberry pi with PHP. Made through fwrite() function
 *
 *
 * @author Rafael Martin Soto
 * @author {@link http://www.inatica.com/ Inatica}
 * @blog {@link https://rafamartin10.blogspot.com/ Rafa Martin's blog}
 * @since July 2021
 * @version 1.0.1
 * @license GNU General Public License v3.0 *
*/


include( 'led.class.php' );

// Get de file handle for Export & unexport

$fpUnexport = fopen( '/sys/class/gpio/unexport', 'w' );
$fpExport = fopen( '/sys/class/gpio/export', 'w' );

$Led18 = new Led( '18', $fpUnexport, $fpExport);
$Led23 = new Led( '23', $fpUnexport, $fpExport);

fclose( $fpExport ); // No need Export file handle more
unset( $fpExport );


for(
$i=0;$i<10;$i++){
    if(
$i%2 == 0){
       
$Led18->On();
       
$Led23->Off();
    } else {
       
$Led18->Off();
       
$Led23->On();
    }

   
sleep(1);
}

// Power off leds
$Led18->Off();
$Led23->Off();

// Unexport leds
$Led18->unexport();
$Led23->unexport();

fclose($fpUnexport); // close file handle unexport

// Free Mem
unset( $Led18 );
unset(
$Led23 );
unset(
$i );
unset(
$fpUnexport );
?>

Details

led_raspberry

Class for manage directly leds on raspberry pi in PHP

We can access GPIO ports directly with fwrite() for power on|off leds, without use shell_exec() function. The result is a fasted library to access GPIO ports. This one is written to manage LEDS, but with a litlle changes you can use it for other components (buttons, relay, ....)

# REQUERIMENTS:

- A minimum (minimum, minimum, minimum requeriments is needed). Tested on:

- Simple Raspberry pi (B +	512MB	700 MHz ARM11) with Raspbian Lite PHP7.3 (i love this gadgets)  :heart_eyes:

# FILES: There are 2 files:

led.class.php -> Master class. This file is the main file that you need to include in your code.

example.php -> Code with example use of the class

# INSTALLATION: A lot of easy :smiley:. It is written in PURE PHP. Only need to include the files. Tested on basic PHP installation

     require_once( 'led.class.php' );

# BASIC USAGE:

- Create the variable with led class on GPIO 18:

    $Led18 = new Led( '18' );

- Power ON GPIO led 18:

    $Led18->On();
    

- Power OFF GPIO led 18:

    $Led18->Off();

- Unexport GPIO port 18:

    $Led18->unexport();

RESUME OF METHODS:

CREATE LED ON GPIO PORT 'X':

  • You can pass $fpUnexport & $fpExport file handles if you have more than 1 led. In this way, only 1 file will be openned for Export and Unexport. If not params given, every led will open and close individually files for export and unexport. With $fpUnexport & $fpExport params yo will get a better performance.

Without file handles:

     $Led18 = new Led( '18' ); // Without file handles
     
     // Here your code using power on off on leds as you want
     // ......
     
     // Remember do Unexport at the end of your code
     $Led18->unexport();

With file handles:

     $fpUnexport = fopen( '/sys/class/gpio/unexport', 'w' );
     $fpExport   = fopen( '/sys/class/gpio/export', 'w' );
     
     $Led18      = new Led( '18', $fpUnexport, $fpExport); // With file handles
     
     // Here your code using power on off on leds as you want
     // ......
     
     // Remember do Unexport & close files at the end of your code
     $Led18->unexport();
     
     fclose( $fpUnexport );
     fclose( $fpExport );

Power ON led:

     $Led18->On();

Power OFF led:

     $Led18->Off();

Unexport GPIO PORT:

     $Led18->unexport();

Example

     <?php
     require_once( 'led.class.php' );
     
     // Create the variable with led class on GPIO 18:
     $Led18 = new Led( '18' );
     
     // Power ON GPIO led 18:
     $Led18->On();
     
     // Wait 5 seconds
     sleep(5);
     
     //Power OFF GPIO led 18:
     $Led18->Off();
     
     //Unexport GPIO port 18:
     $Led18->unexport();
     ?>

Of course. You can use it freely :vulcan_salute::alien:

By Rafa.

@author Rafael Martin Soto

@author {@link http://www.inatica.com/ Inatica}

@blog {@link https://rafamartin10.blogspot.com/ Rafael Martin's Blog}

@since July 2021

@version 1.0.0

@license GNU General Public License v3.0

Example

<?php


/** Example of use led class
 * BLINK 2 LEDS EVERY SECOND. ONLY 1 IS ON AT A TIME FOR 10 TIMES.
 *
 * Class for get direct access to GPIO ports on a Raspberry pi with PHP. Made through fwrite() function
 *
 *
 * @author Rafael Martin Soto
 * @author {@link http://www.inatica.com/ Inatica}
 * @blog {@link https://rafamartin10.blogspot.com/ Rafa Martin's blog}
 * @since July 2021
 * @version 1.0.1
 * @license GNU General Public License v3.0 *
*/


include( 'led.class.php' );

// Get de file handle for Export & unexport

$fpUnexport = fopen( '/sys/class/gpio/unexport', 'w' );
$fpExport = fopen( '/sys/class/gpio/export', 'w' );

$Led18 = new Led( '18', $fpUnexport, $fpExport);
$Led23 = new Led( '23', $fpUnexport, $fpExport);

fclose( $fpExport ); // No need Export file handle more
unset( $fpExport );


for(
$i=0;$i<10;$i++){
    if(
$i%2 == 0){
       
$Led18->On();
       
$Led23->Off();
    } else {
       
$Led18->Off();
       
$Led23->On();
    }

   
sleep(1);
}

// Power off leds
$Led18->Off();
$Led23->Off();

// Unexport leds
$Led18->unexport();
$Led23->unexport();

fclose($fpUnexport); // close file handle unexport

// Free Mem
unset( $Led18 );
unset(
$Led23 );
unset(
$i );
unset(
$fpUnexport );
?>

  Files folder image Files  
File Role Description
Accessible without login Plain text file example.php Example Example script

 Version Control Unique User Downloads Download Rankings  
 100%
Total:151
This week:0
All time:9,041
This week:109Up
User Comments (1)
Great work overall!
2 years ago (Filip Komar)
80%StarStarStarStarStar