Я пытаюсь запустить команду, чтобы отправить сигнал на мое устройство Arduino, чтобы он мог включить один из светодиодов, процесс выполняется через очередь, работы помещаются в очередь, и как только они получаютони запускались в определенное время, они запускались с использованием метода curl, но я не уверен, как написать код.
Я запускаю код с помощью Sublime Text 3 и php, I 'я пытался запустить его с помощью curl, который я уже запрограммировал, но не думаю, что он работает таким образом, я попытался провести исследование и посмотреть, нужна ли мне специальная команда для использования curl с очередью, я нашел это: https://github.com/adawley/php-curl-queue но не уверен, как реализовать это в моем коде
Это код, в котором задания выполняются из очереди:
namespace app\commands;
use Yii;
use app\models\Equipos;
use app\models\EquiposSearch;
use app\models\Horarios_Equipos;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\data\ActiveDataProvider;
use skeeks\yii2\curl;
class HorarioJob extends \yii\base\BaseObject implements
\yii\queue\JobInterface
{
public $id_equipo;
public $estado;
public function execute($queue)
{
if ($estado == 1){
$curl = new curl\Curl();
$response = $curl->get($equipo->ip.'/gpio/LEDa=ON');
}
}
}
Это код, где задания помещаются в очередь:
<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace app\commands;
use yii\console\Controller;
use yii\console\ExitCode;
use app\models\Horarios_Equipos;
/**
* This command echoes the first argument that you have entered.
*
* This command is provided as an example for you to learn how to create
console commands.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class HorarioController extends Controller
{
/**
* This command echoes what you have entered as the message.
* @param string $message the message to be echoed.
* @return int Exit code
*/
public function actionBuscar()
{
$hora = date("H").":00".":00";
$dia = date("N");
$horarios = Horarios_Equipos::find()->where([
'hora' => $hora,
'dia' => $dia,
])->all();
foreach($horarios as $horario)
{
//echo $horario->id_equipo."\n";
//echo $horario->estado."\n";
//enviar a cola
\Yii::$app->queue->push(
new HorarioJob([
'id_equipo' => $horario->id_equipo,
'estado' => $horario->estado,
])
);
}
return ExitCode::OK;
}
}
Как только я запускаю очередь, устройство arduino должно повернуть светодиод, соответствующий идентификатору, который он получает из базы данных, но пока он не имеет