Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UTH
CAMPUS: SPS
# CUENTA: 201210040082
<html>
<head>
<h1 style="background-color:DodgerBlue;"> ControlGpio 5 & 6 Remoto</h1>
<iframe src="https://www.zeitverschiebung.net/clock-widget-iframe-
v2?language=es&size=medium&timezone=America%2FTegu$
<style>
body {
background-image: url('image.jpg');
}
</style>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body style="background-color:#COCOCO;">
<table border="1">
<tr>
<td><strong>#GPIO</strong></td>
<td><strong>ENCENDER</strong></td>
<td><strong>APAGAR</strong></td>
</tr>
<tr>
<td>GPIO5</td>
<form id="form1" name="form1" method="post" action="gpio.php">
<td> <input type="submit" id="encender17" name="encender17" value="ON">
</td>
<td> <input type="submit" id="apagar17" name="apagar17" value="OFF">
</td>
<br></br>
</form>
</tr>
<tr>
<td>GPIO6</td>
<form id="form2" name="form2" method"post" action="gpio.php">
<td> <input type="submit" id="encender27" name="encender27" value="ON"></td>
<td> <input type="submit" id="apagar27" name="apagar27" value="OFF"></td>
<br></br>
</form>
</tr>
</table>
<br></br>
exec("sudo /./home/mantunez/lectura.sh");
$pf=fopen("/home/mantunez/gpio5.txt","r");
$valor=fgets($pf);
if ($valor==0)
{
echo '<img src="apagado.png" width="100" height="100"/>';
}
if ($valor==1)
{
echo '<img src="encendido.png" width="100" height="100"/>';
}
?>
</form>
<br></br>
<h3> Control CRON GPIO6 </h3>
<!--Sentencia CRON -->
</form>
<br></br>
<h3> Control CRON GPIO6 </h3>
<!--Sentencia CRON -->
</body>
</html>
2. El siguiente archive necesario que necesitaremos es el llamado gpio.php el cual es quien
nos mandara a llamar nuestros Shell scripting. Código fuente:
<?php
if ($_REQUEST['encender17'])
{
exec("sudo /./home/mantunez/gpio5on.sh");
}
if ($_REQUEST['apagar17'])
{
exec("sudo /./home/mantunez/gpio5off.sh");
}
if ($_REQUEST['encender27'])
{
exec("sudo /./home/mantunez/gpio6on.sh");
}
if ($_REQUEST['apagar27'])
{
exec("sudo /./home/mantunez/gpio6off.sh");
}
if ($_REQUEST['programar_17']){
exec("sudo /./home/mantunez/permiso.sh");
$horaini=$_REQUEST['horaini'];
$minini=$_REQUEST['minini'];
$horaf=$_REQUEST['horaf'];
$minf=$_REQUEST['minf'];
$tab=" ";
$dia="*";
$mes="*";
$ano="*";
$user="root";
$path1="/home/mantunez/gpio5on.sh";
$path2="/home/mantunez/gpio5off.sh";
$pf=fopen("/etc/cron.d/tarea1","w");
fwrite($pf,$minini);
fwrite($pf,$tab);
fwrite($pf,$horaini);
fwrite($pf,$tab);
fwrite($pf,$dia);
fwrite($pf,$tab);
fwrite($pf,$mes);
fwrite($pf,$tab);
fwrite($pf,$ano);
fwrite($pf,$tab);
fwrite($pf,$user);
fwrite($pf,$tab);
fwrite($pf,$path1);
fwrite($pf,"\n");
fclose($pf);
$pf2=fopen("/etc/cron.d/tarea2","w");
fwrite($pf2,$minf);
fwrite($pf2,$tab);
fwrite($pf2,$horaf);
fwrite($pf2,$tab);
fwrite($pf2,$dia);
fwrite($pf2,$tab);
fwrite($pf2,$mes);
fwrite($pf2,$tab);
fwrite($pf2,$ano);
fwrite($pf2,$tab);
fwrite($pf2,$user);
fwrite($pf2,$tab);
fwrite($pf2,$path2);
fwrite($pf2,"\n");
fclose($pf2);
exec("sudo /./home/mantunez/nopermiso.sh");
}
if ($_REQUEST['programar_18']){
exec("sudo /./home/mantunez/permiso2.sh");
$horaini2=$_REQUEST['horaini2'];
$minini2=$_REQUEST['minini2'];
$horaf2=$_REQUEST['horaf2'];
$minf2=$_REQUEST['minf2'];
$tab2=" ";
$dia2="*";
$mes2="*";
$ano2="*";
$user2="root";
$path12="/home/mantunez/gpio6on.sh";
$path22="/home/mantunez/gpio6off.sh";
$pf3=fopen("/etc/cron.d/tarea12","w");
fwrite($pf3,$minini2);
fwrite($pf3,$tab2);
fwrite($pf3,$horaini2);
fwrite($pf3,$tab2);
fwrite($pf3,$dia2);
fwrite($pf3,$tab2);
fwrite($pf3,$mes2);
fwrite($pf3,$tab2);
fwrite($pf3,$ano2);
fwrite($pf3,$tab2);
fwrite($pf3,$user2);
fwrite($pf3,$tab2);
fwrite($pf3,$path12);
fwrite($pf3,"\n");
fclose($pf3);
$pf4=fopen("/etc/cron.d/tarea22","w");
fwrite($pf4,$minf2);
fwrite($pf4,$tab2);
fwrite($pf4,$horaf2);
fwrite($pf4,$tab2);
fwrite($pf4,$dia2);
fwrite($pf4,$tab2);
fwrite($pf4,$mes2);
fwrite($pf4,$tab2);
fwrite($pf4,$ano2);
fwrite($pf4,$tab2);
fwrite($pf4,$user2);
fwrite($pf4,$tab2);
fwrite($pf4,$path22);
fwrite($pf4,"\n");
fclose($pf4);
exec("sudo /./home/mantunez/nopermiso2.sh");
}
header("location:index.php");
?>
3. Los dos códigos fuentes mostrados anteriormente son nuestros principales archivos para
el control de los GPIO, los siguientes códigos fuentes son para lo siguiente:
o Archivo para invocar la conexión a la base de datos en MySQL llamado config.php
o También tenemos algunos archivos adicionales en php que nos ayudan para
acceder por nombre de usuario y contraseña al control de los Gpio web.
VISTA FRONT-END DEL PROYECTO
5. Al acceder con las credenciales indicadas nos llevara al apartado de login para el acceso al
sistema, con la validación del usuario creada en la BD-Proyecto: Nuestro usuario
previamente guardado en la BD es: mantunez y Passw: Admin123
• El sistema nos da opción también de poder guardar y crear nuevos usuarios para
el acceso al sistema. Al dar clic sobre “Registrar Ahora”. En este caso cree el
usuario arquitectura con el Passw: 123456.
Al guardar ese registro, podemos verificar que en efecto en la BD se guardo el
usuario en la tabla users;
6. Validando el usuario para el acceso al sistema, nos llevara al siguiente sitio de
bienvenida
7. En esta página tendremos el botón llamado “Control GPIO”, el cual nos llevara a la pagina
principal de control. Que se ve de la siguiente manera.
En dicha pagina principal se puede observar los distintos controles de ejecución, los iconos
de color Rojo nos dan de referencia que en ese momento los pines del gpio 5 y 6 están
apagados (0).
8. Validando el correcto funcionamiento de los botones, en este caso utilizaremos el botón
de encendido del Gpio5
Ahora ejecutare el botón de encendido del gpio6; Que como se puede apreciar en la
imagen cambia el status de los iconos en este caso el color azul indica el gpio está en
status ON.
ALTA DISPONIBILIDAD A NIVEL DE MYSQL
En nuestro caso, trabajamos al contar dos servidores en paralelo replicamos las bases de datos. En
la siguiente captura se pueden observar los logs de la base de datos gpiolog:
ServerA
ServerB