Automação residencial controlada pela Web – (Parte 11/12)

Domótica controlada por web – (Parte 11/12)

Este artículo se centra en técnicas para convertir una Raspberry Pi en un servidor web que controle los electrodomésticos. Incluye interfaz gráfica de usuario en el lado del servidor web y electrónica que se utiliza para controlar el sistema eléctrico.

A continuación se muestra un ejemplo simple de cuatro LED controlados por una interfaz web utilizada mediante el servidor web Apache con codificaciones PHP y JAVA para GUI y la electrónica se administra mediante la biblioteca WiringPI.

Sistema de automação residencial controlado pela Web usando protótipo Raspberry pi

Diagrama de conexión de LED controlado por web

Requisitos previos y equipo:

Necesitará lo siguiente:

  1. Una Raspberry Pi Modelo B o superior.

  2. Un adaptador WiFi USB (aquí se utiliza el adaptador nano USB inalámbrico Edimax – 802.11b/g/n).

  3. Una tarjeta SD actualizada con el sistema operativo Raspbian (aquí tienes una guía si la necesitas)

  4. Acceso a Raspberry mediante teclado y monitor o de forma remota.

Instalación del cableado Pi:

El proyecto Wiring Pi se utiliza aquí para cambiar los pines GPIO entre alto y bajo. Ejecute los siguientes comandos para descargar Wiring Pi e instalarlo.

sudo apt-get instalar git-core

git clon git://git.drogon.net/wiringPi

Cableado CDPi

./rampa arriba

Baixe o wirePi no Raspberry Pi

Figura 2: Descargue el cableado Pi a Raspberry Pi

Instalando a fiação Pi no Raspberry Pi

Fig. 3: Instalación del cableado Pi en Raspberry Pi

Analicemos sobre el uso de la biblioteca WiringPi para encender y apagar el primer LED (pin de cableado 0). Primero necesitas definir el pin como salida. Utilice el comando "gpio mode 0 out" para hacer esto. "0" es el número de pin del cableado y "out" es para la salida. Ahora puede usar el comando "gpio write 0 1" para encender su LED. “0” es nuevamente el número de pin y “1” es el estado (1 para ENCENDIDO y 0 para APAGADO). Si todo está bien, deberías ver el LED brillando. Usando el comando "gpio write 0 0" puedes desactivarlo.

Si desea utilizar el número PIN real (GPIO-17) en lugar del número Pi de cableado (0 corresponde a GPIO-17), utilice el indicador -g en su comando. Ej: “gpio -g escribe 17 1” en lugar de “gpio escribe 0 1”.

La “lectura GPIO” se puede utilizar para leer el estado del PIN. Le permite estar seguro del estado del pin cuando no puede ver la salida. Usarlo es tan simple como antes, simplemente escriba "gpio read 0" donde "0" es el número de pin del cableado. El comando devuelve el estado del pin (nuevamente 1 para ENCENDIDO y 0 para APAGADO).

Iniciando el servidor web Apache:

La instalación y configuración del servidor web Apache se analizó bien en artículos anteriores. Iniciar el servidor es simple, simplemente copie los archivos del servidor a la carpeta Apache. Descargue los archivos del servidor web y extráigalos a la carpeta de inicio de Raspberry Pi utilizando el servidor web Samba y los clientes FTP.

Copie estos archivos a la carpeta del servidor web Apache que es /var/www y reinicie el servidor web. Ahora que nuestro sitio web está activo, puede navegar hasta él ingresando la dirección IP de Raspberry Pi.

Control de LED con PHP:

Ahora tenemos nuestro servidor web Apache y una biblioteca Wiring Pi. PHP significa "PHP: preprocesador de hipertexto", que actuará como puente entre ellos y es un lenguaje de programación del lado del servidor. Esto significa que el código PHP se ejecuta una vez (cada vez que se solicita la página) por el servidor y el cliente no puede verlo. La ejecución de comandos del sistema con código PHP se puede realizar con dos funciones diferentes: exec (para ejecutar) y system. En primer lugar, la función "sistema". Se requieren dos parámetros: “sistema (cadena $comando, int $return_var)”. Con esta función puedes ejecutar los comandos “gpio mode 0 out” o “gpio write 0 1”.

Ejemplo:

sistema (“gpio modo 0 fuera”);

sistema (“gpio escribe 0 1”);

?>

Entonces, la función "ejecutiva". Esta función hace exactamente el mismo trabajo que "sistema", pero lee y almacena lo que imprimió el comando. Se requieren tres parámetros: “exec (string $command, array $output, int $return_var)”, nuevamente $command y $return_var son los mismos parámetros y la única diferencia es la matriz $output. Por lo tanto, puede usar esta función si necesita cómo se imprime el comando con el comando " leer desde gpio 0 ".

Ejemplo:

exec(“gpio lectura 0”, $estado);

print_r($estado);

?>

Interfaz gráfica de construcción:

Ya podemos controlar nuestra Raspberry Pi con sencillos scripts PHP, pero la interacción del usuario está pendiente. Esto se puede hacer combinando scripts Java y HTML. Cada imagen/bombilla corresponde a su LED, si haces clic en una de ellas, el LED correspondiente se encenderá/apagará y la imagen también cambiará en consecuencia. El esqueleto de la página se realizará en HTML, las interacciones del servidor con PHP y finalmente JavaScript para gestionar las interacciones entre el usuario y la animación de la página. JavaScript es un lenguaje del lado del cliente que nuestro navegador ejecuta continuamente. Por eso podemos cambiar la apariencia de la página sin recargarla. En primer lugar, necesitamos un archivo "index.php" (la extensión es .php y no .html ya que usaremos código PHP, le ordena al navegador que hay PHP para ejecutar antes de enviar la página). Esta página principal contiene 4 botones con Imagen de Bombilla. Estos botones se generan primero con un "exec ("gpio read ".$i, $output");" y un bucle for para replicar. Para detectar al usuario haciendo clic en cualquiera de estos botones, se utiliza un script Java que se encuentra en un archivo separado llamado “script.js”, aunque todavía está incluido en index.php. El script consiste en agregar un detector de eventos a los cuatro botones y cuando se presiona uno de ellos, usa una función que llama a gpio.php, recibe la respuesta y regresa a JavaScript que cambia el botón a ON o OFF. Puedes descargar los códigos completos directamente aquí.

Construindo Interface Gráfica Raspberry Pi

Figura 4: Construcción de la interfaz gráfica de Raspberry Pi

Código fuente del proyecto

###

 //Programa para

###

Código fuente del proyecto

###

 //Programa para

###

Diagramas de circuito

Diagrama de circuito de automatización del hogar controlado por web

Componentes del proyecto

  • Arduino ProMini
  • CONDUJO
  • interruptor de relé
  • Transistores BC547

Vídeo del proyecto

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.