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...
Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.