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

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

Este artigo enfoca as técnicas para fazer um Raspberry Pi como um servidor web que controla os eletrodomésticos. Inclui interface gráfica do usuário no lado do servidor web e parte eletrônica que é usada para controlar o sistema elétrico.

Aqui está um exemplo simples de quatro LEDs controlados pela interface web usados ​​​​utilizando o servidor web apache com codificações PHP e JAVA para GUI e a parte eletrônica é gerenciada pela biblioteca WiringPI.

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

Diagrama de conexão de LED controlado pela Web

Pré-requisitos e equipamentos:

Você vai precisar do seguinte:

  1. Um Raspberry Pi Modelo B ou superior.

  2. Um adaptador USB WiFi (Edimax – adaptador nano USB sem fio 802.11b/g/n é usado aqui).

  3. Um cartão SD atualizado com o sistema operacional Raspbian (aqui está um guia se você precisar)

  4. Acesso ao Raspberry através de teclado e monitor ou remotamente.

Instalando a fiação Pi:

O projeto Wiring Pi é usado aqui para alternar os pinos GPIO entre alto e baixo. Execute os seguintes comandos para baixar o Wiring Pi e instalar.

sudo apt-get install git-core

git clone git://git.drogon.net/wiringPi

fiação de CDPi

./construir

Baixe o wirePi no Raspberry Pi

Figura 2: Baixe a fiação do Pi no Raspberry Pi

Instalando a fiação Pi no Raspberry Pi

Fig. 3: Instalando a fiação Pi no Raspberry Pi

Vamos discutir sobre o uso da biblioteca WiringPi para ligar e desligar o primeiro LED (pino de fiação 0). Primeiro precisa definir o pino como saída. Use o comando “gpio mode 0 out” para fazer isso. “0” é o número do pino da fiação e “out” é para saída. Agora você pode usar o comando “gpio write 0 1” para ligar seu LED. “0” é novamente o número do pino e “1” é o status (1 para ON e 0 para OFF). Se tudo estiver bem, você deverá ver seu LED brilhando. Usando o comando “gpio write 0 0” você pode desligá-lo.

Se você quiser usar o número PIN real (GPIO-17) em vez do número Wiring Pi (0 corresponde ao GPIO-17), use o sinalizador -g em seu comando. Ex: “gpio -g write 17 1” em vez de “gpio write 0 1”.

A “leitura gpio” pode ser usada para ler o status do PIN. Ele permite que você tenha certeza do status do pino quando não conseguir ver a saída. Usá-lo é tão simples quanto antes, basta digitar “gpio read 0” onde “0” é o número do pino de fiação. O comando retorna o status do pino (novamente 1 para ON e 0 para OFF).

Iniciando o servidor web Apache:

A instalação e configuração do servidor web Apache foram bem discutidas em artigos anteriores. Para iniciar o servidor é simples, basta copiar os arquivos do servidor para a pasta apache. Baixe os arquivos do servidor web e extraia-os para a pasta inicial do Raspberry Pi usando o servidor web Samba são clientes FTP.

Copie esses arquivos para a pasta do servidor web apache que é /var/www e reinicie o servidor web. Agora que nosso site está ativo, você pode navegar até ele digitando o endereço IP do Raspberry Pi.

Controlando os LEDs com PHP:

Agora temos nosso servidor web apache e uma biblioteca Wiring Pi. O PHP significa “PHP: Hypertext Preprocessor” que atuará como uma ponte entre eles, e é uma linguagem de script do lado do servidor. Isso significa que o código PHP é executado uma vez (cada vez que a página é solicitada) pelo servidor e não pode ser visto pelo cliente. A execução de comandos do sistema com código PHP pode ser feita com duas funções diferentes: exec (para executar) e sistema. Em primeiro lugar, a função “sistema”. São necessários dois parâmetros: “system (string $command, int $return_var)”. Com esta função você pode executar comandos “gpio mode 0 out” ou “gpio write 0 1”.

Exemplo:

sistema (“modo gpio 0 fora”);

sistema (“gpio write 0 1”);

?>

Então, a função “exec”. Esta função faz exatamente o mesmo trabalho que “sistema”, mas lê e armazena o que o comando imprimiu. São necessários três parâmetros: “exec (string $command, array $output, int $return_var)”, novamente $command e $return_var são os mesmos parâmetros e a única diferença é o array $output. Assim, você pode usar esta função se precisar de como o comando é impresso com o “leitura do gpio 0” comando.

Exemplo:

exec(“gpio leitura 0”, $status);

print_r($status);

?>

Construindo Interface Gráfica:

Agora podemos controlar nosso Raspberry Pi com scripts PHP simples, mas a interação com o usuário está pendente. Isso pode ser feito pela combinação de Java script e HTML. Cada imagem/lâmpada corresponde ao seu LED, se você clicar em um deles, o LED correspondente será ligado/desligado e a imagem também será alterada de acordo. O esqueleto da página será feito em HTML, as interações do servidor com PHP e por fim JavaScript para gerenciar as interações entre o usuário e a animação da página. JavaScript é uma linguagem do lado do cliente que é executada continuamente pelo nosso navegador. É por isso que podemos mudar a aparência da página sem recarregá-la. Primeiramente precisamos de um arquivo “index.php” (a extensão é .php e não .html pois usaremos código PHP, ele comanda o navegador que existe PHP para executar antes de enviar a página). Esta página principal contém 4 botões com Bulb Picture. Esses botões são gerados primeiro com um “exec ( “gpio read “.$i, $output );” e um loop for para replicar. Para detectar o usuário clicando em qualquer um desses botões, é utilizado Java script que está em um arquivo separado chamado “script.js”, embora ainda esteja incluído no index.php. O script consiste em adicionar um ouvinte de evento a todos os quatro botões e quando um deles é pressionado, ele utiliza uma função que chama gpio.php, recebendo a resposta e retornando ao JavaScript que altera o botão para ON ou para DESLIGADO. Você pode baixar os códigos completos diretamente aqui.

Construindo Interface Gráfica Raspberry Pi

Figura 4: Construindo a interface gráfica do Raspberry Pi

Código-fonte do projeto

###

//Program to 

###

Código-fonte do projeto

###

//Program to 

###

Diagramas de circuito

Diagrama de circuito-automação residencial controlada pela Web

Componentes do Projeto

  • Arduino ProMini
  • LIDERADO
  • Interruptor de relé
  • Transistor BC547

Vídeo do projeto

Conteúdo Relacionado

Uma rede de sensores é incorporada em todos os...
O controlador do motor é um dos componentes mais...
ESP32-CAM é um módulo de câmera compacto que combina...
A evolução dos padrões USB foi fundamental para moldar...
A SCHURTER anuncia um aprimoramento para sua conhecida série...
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...
Você provavelmente já se deparou com o termo 'arrastar'...
Você provavelmente tem um Isolador de suporte Se você...
Você provavelmente já viu permanecer um isolante sente-se em...
Você provavelmente já viu Isoladores de manilha entronizados em...
Você provavelmente já passou por situações em que o...
Tillbaka till blogg

Lämna en kommentar

Notera att kommentarer behöver godkännas innan de publiceras.