Está en la página 1de 13

UNIVERSIDAD TECNOLOGICA DE HONDURAS

UTH

CAMPUS: SPS

CLASE: ARQUITECTURA DE COMPUTADORAS

CATEDRATICO: ING. NORMAN CUBILLAS

ALUMNO: MARLON ALBERTO ANTUNEZ

# CUENTA: 201210040082

ACUMULATIVO: EXAMEN 3ER PARCIAL

SPS 23 AGOSTO DEL 2020


CODIGO FUENTE
1. En el siguiente directorio configuramos nuestro sitio web para el control desde Front-End.
/var/www/html/arquitectura/acceso sobre este directorio tendremos los archivos
necesarios para la ejecución de nuestra pagina web, una de las paginas necesarias será el
index.php, que tendrá el siguiente código fuente:

<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>

<h3> STATUS GPIO #5</h3>


<?php

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"/>';
}
?>

<h3> STATUS GPIO #6</h3>


<?php
exec("sudo /./home/mantunez/lectura2.sh");
$pf=fopen("/home/mantunez/gpio6.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"/>';
}
?>

<h3> Control CRON GPIO5 </h3>


<!--Sentencia CRON -->
<form id="form3" name="form3" method="post" action="gpio.php">
HI <input type="text" name="horaini" id="horaini" value="" size="2">
MI <input type="text" name="minini" id="minini" value="" size="2">
HF <input type="text" name="horaf" id="horaf" value="" size="2">
MF <input type="text" name="minf" id="minf" value="" size="2">
<input type="submit" name="programar_17" id="programar_17" value="SAVE">

</form>
<br></br>
<h3> Control CRON GPIO6 </h3>
<!--Sentencia CRON -->

<form id="form4" name="form4" method="post" action="gpio.php">


HI <input type="text" name="horaini" id="horaini" value="" size="2">
MI <input type="text" name="minini" id="minini" value="" size="2">
HF <input type="text" name="horaf" id="horaf" value="" size="2">
MF <input type="text" name="minf" id="minf" value="" size="2">
<input type="submit" name="programar_17" id="programar_17" value="SAVE">

</form>
<br></br>
<h3> Control CRON GPIO6 </h3>
<!--Sentencia CRON -->

<form id="form4" name="form4" method="post" action="gpio.php">


HI <input type="text" name="horaini2" id="horaini2" value="" size="2">
MI <input type="text" name="minini2" id="minini2" value="" size="2">
HF <input type="text" name="horaf2" id="horaf2" value="" size="2">
MF <input type="text" name="minf2" id="minf2" value="" size="2">
<input type="submit" name="programar_18" id="programar_18" value="SAVE">
</form>
<br></br>
<p><a href='logout.php'>Logout</a></p></div>

</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

4. Accedemos al dominio www.uthgrp2.com, el cual nos solicita en la pre-autenticacion el


acceso al sistema mediante el usuario uth con passd: 1234

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

Validando el estatus del gpio, lo verificamos desde el monitor;

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

También podría gustarte