PHP Wrapper to send RF 433 Mhz commands using rpi-rf_send module.
<?php | |
function sendRF($lightId, $lightStatus) { | |
// 0, 1, 2, 3, 4, 5, 6 | |
// entrada, lectura, tv, calduino, verde, deshumidificador, multiusos | |
$lightCode= array( 6, 10, 14, 83028, 86100, 70740, 21588); | |
$lightCodeDuration= array(205, 205, 205, 355, 355, 355, 355); | |
$sem_id = sem_get(RF_SEMAPHORE); | |
while (!sem_acquire($sem_id)); | |
{ | |
usleep(100); | |
} | |
$unixCommand = "sudo rpi-rf_send -g 22 -p ".$lightCodeDuration[$lightId]." -t 1 ".($lightCode[$lightId]+$lightStatus). " 2>&1"; | |
for ($i = 1; $i < RESEND_TIMES; $i++) { | |
shell_exec ($unixCommand); | |
} | |
sem_release($sem_id); | |
} | |
define('RF_SEMAPHORE', 30); | |
define('RESEND_TIMES', 3); | |
/* if started from commandline, wrap parameters to $_POST */ | |
if (!isset($_SERVER["HTTP_HOST"])) { | |
parse_str($argv[1], $_POST); | |
} | |
if (isset($_POST["parameter"])) | |
{ | |
$parameter = $_POST["parameter"]; | |
} else { | |
$parameter = null; | |
} | |
switch ($parameter) { | |
case "sendToRF": | |
$lightId = $_POST["lightId"]; | |
$lightStatus = $_POST["lightStatus"]; | |
sendRF($lightId, $lightStatus); | |
break; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment