使用 Laravel 控制硬件
Connect your Laravel application to the physical world with Pinout, where code meets circuitry. Hardware and web, seamlessly united
With a Laravel application running on supported hardware, you can:
These basic features open up a world of possibilities, from simple LED control to complex robotics.
And with the included drivers, you can also:
At the moment, Pinout supports the following hardware:
| Model | Supported |
|---|---|
| Raspberry Pi Model A | ✅ |
| Raspberry Pi Model B | ✅ |
| Raspberry Pi Model B+ | ✅ |
| Raspberry Pi Model 2 | ✅ |
| Raspberry Pi 3 Model B | ✅ |
| Raspberry Pi 3 Model B+ | ✅ |
| Raspberry Pi 3 Model A+ | ✅ |
| Raspberry Pi 4 Model B | ✅ |
| Raspberry Pi 400 | ✅ |
| Raspberry Pi 5 | ✅ |
| Raspberry Pi Zero | ✅ |
| Raspberry Pi Zero v1.3 | ✅ |
| Raspberry Pi Zero W | ✅ |
| Raspberry Pi Zero WH | ✅ |
| Raspberry Pi Zero 2 W | ✅ |
Install the package to an existing Laravel project:
composer require danjohnson95/pinout
If you're using Laravel 11 or later, the package will be auto-discovered. If you're using an earlier version, you'll need to add the service provider to your config/app.php file:
'providers' => [
// ...
DanJohnson95\Pinout\ServiceProvider::class,
// ...
],
PinService facadeThis package allows you to interact with hardware using the PinService facade, and also comes with a couple of Artisan commands for convenience.
Use the pin method to get a Pin instance for a specific pin:
$pin = \DanJohnson95\Pinout\Facades\PinService::pin(13);
The argument is a reference to the GPIO pin number. (The BCM pin number is used, not the physical pin number.) See pinout.xyz for a visual reference.
The Pin instance has methods for interacting with the pin:
$pin->isOn(); // Whether the pin is "on" (high)
$pin->isOff(); // Whether the pin is "off" (low)
$pin->turnOn(); // Set the pin to "on"
$pin->turnOff(); // Set the pin to "off"
$pin->makeInput(); // Set the pin to input mode
$pin->makeOutput(); // Set the pin to output mode
The facade also has a pins method for pulling multiple pins at once:
$pins = \DanJohnson95\Pinout\Facades\PinService::pins(13, 19, 26);
This will return a PinCollection instance, which is a collection of Pin instances.
The PinCollection comes with some handy methods too:
$pins->turnOn(); // Turns all pins on in the collection
$pins->turnOff(); // Turns all pins off in the collection
$pins->makeInput(); // Sets all pins to input mode
$pins->makeOutput(); // Sets all pins to output mode
$pins->findByPinNumber(13); // Returns the Pin instance for the given pin number
$pins->whereIsOn(); // Returns a collection of pins that are on
$pins->whereIsOff(); // Returns a collection of pins that are off
This package comes with a couple of Artisan commands for convenience:
php artisan pinout:get 13
This will return the current state of the pin.
php artisan pinout:on 13
This will turn pin 13 on.
php artisan pinout:off 13
This will turn pin 13 off.
暂无开放 Issues,或尚未同步最近议题。