Automação Residencial



Esse é o projeto de Automação Residencial com Arduino em que estou trabalhando!


O objetivo é poder monitorar e controlar sua casa através de qualquer aparelho cominternet, desde computadores à celulares. Assista a demonstração:

O princípio do projeto é basicamente o seguinte:
Um Arduino conectado à rede através do Ethernet Shield e que recebe informações de uma página da internet. Ao receber, o Arduino processa e controla os dispositivos da casa através de um circuito de interface.
O projeto demanda um pouco de conhecimentos específicos de Arduino, Eletrônica e programação p/ WEB.
Então o projeto é dividido basicamente em 3 partes:
  • Arduino
  • Web
  • Interface elétrica


Arduino

O Arduino é o coração do sistema, ele é quem recebe as informações da internet e controla a casa. Para que ele tivesse acesso à internet foi utilizado o Ethernet Shield que fica conectado ao seu roteador de internet. Ele foi programado para ficar sempre esperando uma conexão da internet e receber os caracteres enviados. Sempre que chega o caracter ‘#‘ ele interpreta como um comando e checa os anteriores.

Resumindo, os comandos que programei são os seguintes:
R#‘ : O Arduino responde com o estado (ON/OFF) dos dispositivos.
P#‘ : O Arduino aciona o portão pequeno.
G#‘ : O Arduino aciona o portão grande.
0000L#‘ : O Arduino liga ou desliga os dispositivos.
Os quatro ‘0‘ representam o estado de cada dispositivo. 0=OFF e 1=ON No caso do vídeo eram 4 lâmpadas.
Por exemplo, se o Arduino recebesse: ‘1100L#‘ ele acenderia as 2 primeiras e apagaria as outras 2.
Existem 2 parâmetros importantes no programa que devem ser mudados:
byte gateway[]: Deve ser o endereço do seu roteador na rede.
byte ip[]: Esse é o IP que seu ethernet shield assumirá na rede.
O programa gravado no Arduino se encontra a seguir:

Web


Esta seção fala da página pela qual você acessará o Arduino. No projeto utilizei PHP e me conectava ao Arduino por socket.
A página poderá estar hospedada tanto em um servidor de hospedagem como no seu computador. Sempre que você acessa a página, ela envia um ‘R#’ para o Arduino e ele responde informando quais dispositivos estão ligados. A página exibe o botão verde para os dispositivos ON e vermelho para OFF.

Quando você clica em algum botão na página, ela envia o código correspondente para o Arduino e se atualiza.
Não entrarei em detalhes sobre como criar um servidor WEB no seu computador e hospedar sua página no seu próprio PC, mas você aprende isso em algum tutorial de PHP.

Se for seguir esse caminho, eu só indico que use o WebServer XAMPP pois é muito simples e fácil de instalar e já vem com PHP.
Se for hospedar sua página em algum servidor online, será mais simples, já que não vai precisar instalar nada no PC nem configurar PHP nenhum, além de que os bons serviços de hospedagem oferecem suporte.
No Brasil, eu indico a HostNet.

O código da página PHP se encontra a seguir:
Existem uns detalhes a se considerar:
Se sua página está hospedada no seu computador (e na mesma rede que o Arduino estiver), basta trocar o IP e Porta no código PHP pelo IP e Porta definidos no programa do Arduino.

Caso sua página esteja na internet, ela deve acessar o IP público do seu roteador. Veja seu IP aqui: www.whatismyip.com e troque o IP do código PHP por este.
Agora você precisa definir nas configurações do seu roteador (se usar) que todo acesso à porta 8081 (pode ser outra, só usei a do exemplo) seja redirecionado ao IP local e Porta do Arduino. Para isso, procure no google por “Redirecionamento Porta” + o modelo do seu roteador que com certeza achará instruções. (Em inglês: “port forwarding”)
Importante: Tive que pedir pra meu serviço de hospedagem desbloquear a porta que usei no código PHP pois eles bloqueavam todo tipo de conexão externa. Se informe para saber se precisará fazer o mesmo.

Em relação à segurança, é recomendado que se crie senhas para acesso ao arduino e criptografia no envio das informações, para que nenhum mau intencionado invada sua rede e acabe tendo acesso à sua casa.
Posso abordar isso em artigos futuros dependendo da repercursão deste.
(ou quem quiser, fique a vontade para entrar em contato e publico seu artigo)

Interface Elétrica

Acionando dispositivos eletrônicos com Arduino.


Interface Elétrica

Acionando dispositivos eletrônicos com Arduino.


Nesta seção trataremos da interface elétrica entre o Arduino e os dispositivos que acionamos. Estes foram o portão da garagem, o de pedestres, as lâmpadas e umatomada.

 Lâmpadas e tomadas.

Para o acionamento das lâmpadas e tomadas foram utilizados relés. Relé é um componente que funciona como um interruptor acionado por tensões pequenas como 5 ou 12V.
Pus um relé em paralelo com cada interruptor. Dessa forma a lâmpada poderia ser acesa pelo interruptor OU pelo relé:
Os fios para acionar os relés passam por dentro dos dutos da parede e saem no circuito do Arduino. Dessa forma não houve alteração estética nos interruptores.
Para a tomada, alterei uma régua de tomadas que tinha, dessa vez pondo um relé em série, como na imagem:



Dessa forma, as tomadas só funcionarão quando o relé estiver acionado.
No meu caso, instalei o relé dentro da própria régua de tomadas, deixando para fora os fios da bobina do relé:

Portão de Pedestres

Existe dois fios que saem da sua fechadura eletrônica para poder abrí-la. Mas ao invés de pendurar um fio do portão até o Arduino na casa, preferi usar o próprio circuito do interfone.
Foi bem simples, para abrir o portão pelo interfone basta apertar o botão. Então fiz um circuito que “simulasse” o pressionar do botão. Como medi tensão contínua entre os terminais do botão, usei um transistor adequado para conduzir a corrente como se o botão estivesse pressionado.
Estamos preparando um artigo sobre transistores onde também ensinará como simular o pressionar de botões.
Clique em “Inscreva-se” no canto superior direito da tela e seja notificado quando o tutorial ficar pronto.
Lembrem-se de medir a polaridade da tensão no botão para não por o transistor invertido e queimá-lo!
(Se você não faz idéia do que está sendo dito, não se assuste e espere o tutorial :) )
Abaixo a imagem do interfone aberto e os 2 fios saindo p/ o circuito:

Portão da Garagem

O caso do portão da garagem é idêntico ao anterior. Você pode estender 2 fios do portão até seu circuito dentro de casa ou fazer da minha forma:
Eu abri e alterei o circuito de um dos controles utilizados para abrir o portão. Bastou substituir a bateria por 5V e o botãozinho por um transistor que fosse acionado pelo Arduino. Só foi mais difícil decobrir a polaridade. Tive que ver no datasheet do chip do controle. Porém há um meio mais fácil que será abordado no tutorial.
Nota: Não use fonte de 12V (conforme é a bateria) porque verifiquei que o chip aguentano máximo 12V e qualquer flutuação da fonte poderá queimar o controle.
Resultado:
O controle ligado à fonte teve um alcance muito maior do que quando ligado à bateria.
Isso possibilitou deixar o controle dentro de casa sem ter problema de alcance.
Sem bateria, não terá problema de oxidação nos terminais e mal-contato.

 Resumindo:


O circuito do nosso primeiro protótipo no final de tudo ficou assim (bagunça):
Note o Arduino com o Ethernet Shield conectado ao roteador (logo abaixo dele).
O circuito na protoboard são os transistores para acionar o portão e os relés, e os fios coloridos partem cada um para seus dispositivos.
O circuito pode ficar numa placa própria dentro de uma caixinha só com os terminais para o fio.
Sendo a central eletrônica da sua casa. :)

Esse foi nosso primeiro artigo sobre Automação Residencial com Arduino!
Deixe seu comentário abaixo.
Envie sua sugestão de projeto ou artigo pelo botão “contato” e inscreva-se para ser notificado sempre que houver projetos ou artigos novos!






Esse foi nosso primeiro artigo sobre Automação Residencial com Arduino!
Deixe seu comentário abaixo.
Envie sua sugestão de projeto ou artigo pelo botão “contato” e inscreva-se para ser notificado sempre que houver projetos ou artigos novos!

ELETRONICA DIGITAL


ELETRÔNICA DIGITAL

Conceitos Introdutórios

Grandezas Analógicas e Digitais

Grandezas analógicas são aquelas que podem variar em um intervalo contínuo de valores. Por exemplo, a velocidade de um veículo pode assumir qualquer valor de 0 a 200 Km/h.
Grandezas digitais são aquelas que variam em passos discretos. Por exemplo, o tempo varia continuamente, mas a sua medição através de um relógio digital é feita a cada minuto.

Sistemas Analógicos e Digitais

Um sistema analógico contém dispositivos que podem manipular quantidades físicas analógicas. Por exemplo, a saída de um amplificador pode variar continuamente dentro de um certo intervalo.
Um sistema digital contém dispositivos capazes de manipular informações lógicas (representadas na forma digital). Um exemplo seria um computador.

As vantagens das técnicas digitais são várias:
- Sistemas digitais são mais fáceis de projetar;
- Fácil armazenamento de informação;
- Maior exatidão e precisão;
- A operação do sistema pode ser programada;
- Circuitos digitais são menos afetados pelo ruído;
- Um maior número de circuitos digitais pode ser colocado em um circuito integrado.

Sistemas de Numeração Digital

Sistema decimal – contém 10 algarismos (0 a 9).

Representação:
273,4110 = (2 x 102) + (7 x 101) + (3 x 100) + (4 x 10-1) + (1 x 10-2)

Sistema binário – contém 2 algarismos (0 e 1).

Representação:
101,012 = (1 x 22) + (0 x 21) + (1 x 20) + (0 x 2-1) + (1 x 2-2) = 5,2510







Sistema octal – contém 8 algarismos (0 a 7).

Representação:
157,28 = (1 x 82) + (5 x 81) + (7 x 80) + (2 x 8-1) = 111,2510


Sistema hexadecimal – contém 16 algarismos (0 a F).

Representação:
15A,216 = (1 x 162) + (5 x 161) + (10 x 160) + (2 x 16-1) = 346,12510


Representação de Quantidades Binárias

Em sistemas digitais, a informação geralmente apresenta a forma binária. Essas quantidades binárias podem ser representadas por qualquer dispositivo que apresente dois estados de operação.
Uma chave, por exemplo, pode estar aberta ou fechada. Podemos dizer que a chave aberta corresponde ao dígito binário “0” e a chave fechada corresponde ao dígito binário “1”. Outros exemplos: uma lâmpada (acesa ou apagada), um diodo (conduzindo ou não), um transistor (conduzindo ou não) etc.
Em sistemas digitais eletrônicos, a informação binária é representada por níveis de tensão (ou correntes). Por exemplo, zero volts poderia representar o valor binário “0” e +5 volts poderia representar o valor binário “1”. Mas, devido a variações nos circuitos, os valores binários são representados por intervalos de tensões: o “0” digital corresponde a uma tensão entre 0 e 0,8 volts enquanto o “1” digital corresponde a uma tensão entre 2 e 5 volts. Com isso percebemos uma diferença significativa entre um sistema analógico e um sistema digital. Nos sistemas digitais, o valor exato da tensão não é importante.



















Circuitos Digitais/Circuitos Lógicos

Circuitos digitais são projetados para produzir tensões de saída e responder a tensões de entrada que estejam dentro do intervalo determinado para os binários 0 e 1. A fig. mostra isso:



Praticamente todos os circuitos digitais existentes são circuitos integrados (CIs), o que tornou possível a construção de sistemas digitais complexos menores e mais confiáveis do que aqueles construídos com circuitos lógicos discretos.

Sistemas de Numeração e Códigos

O sistema binário de numeração é o mais importante em sistemas digitais. O sistema decimal também é importante porque é usado por todos nós para representar quantidades. Já os sistemas octal e hexadecimal são usados para representar números binários grandes de maneira eficiente.

Conversões Binário-Decimal – Cada dígito tem um peso correspondente à sua posição.
110112 = (1 x 24) + (1 x 23) + (0 x 22) + (1 x 21) + (1 x 20) = 2710









Conversões Decimal-Binário – O método usado é o das divisões sucessivas:
Conversão Octal-Decimal – Cada dígito tem um peso correspondente à sua posição.
3728 = (3 x 82) + (7 x 81) + (2 x 80) = 25010
Conversão Decimal-Octal – O método usado é o das divisões sucessivas:






Conversão Octal-Binário – Cada dígito octal é convertido para o seu correspondente em binário.



- Conversão Binário-Octal – O número binário é dividido em grupos de 3 dígitos iniciando-se a partir do dígito de menor peso. Cada grupo é convertido no seu correspondente octal.
1001110102 = (100) (111) (010) = 4728
- Conversão Hexadecimal-Decimal – Cada dígito tem um peso correspondente à sua posição.
2AF16 = (2 x 162) + (10 x 161) + (15 x 160) = 68710
- Conversão Decimal-Hexadecimal – O método usado é o das divisões sucessivas:







Conversão Hexadecimal-Binário – Cada dígito hexadecimal é convertido para o seu correspondente em binário.
9F216 = (1001) (1111) (0010) = 1001111100102

Conversão Binário-Hexadecimal – O número binário é dividido em grupos de 4 dígitos iniciando-se a partir do dígito de menor peso. Cada grupo é convertido no seu correspondente hexadecimal.
11101001102 = (0011) (1010) (0110) = 3A616

Código BCD – O código BCD não constitui um sistema de numeração. Ele apenas relaciona cada dígito do sistema decimal com um grupo de 4 dígitos do sistema binário.
87410 = (1000) (0111) (0100) = 100001110100 (BCD)


1.5- Portas Lógicas e Álgebra Booleana

A álgebra booleana é a ferramenta fundamental para descrever a relação entre as saídas de um circuito lógico e suas entradas através de uma equação (expressão booleana). Existem três operações básicas: OR (OU), AND (E) e NOT (NÃO).
Descrevendo Circuitos Lógicos Algebricamente

Qualquer circuito lógico pode ser descrito usando as portas AND, OR e NOT. Essas três portas são os blocos básicos na construção de qualquer sistema digital.









Implementando Circuitos Lógicos a partir de Expressões Booleanas. Podemos usar a expressão booleana para gerar o circuito lógico. Por exemplo:


Portas NOR e NAND

Outros tipos de portas lógicas existentes são as portas NOR e NAND, que na verdade são combinações das portas OR, AND e NOT.


Teoremas da Álgebra de Boole

Esses teoremas, aplicados na prática, visam simplificar as expressões booleanas e conseqüentemente os circuitos gerados por estas expressões.
















Teoremas Booleanos


Universalidade das Portas NAND e NOR

Qualquer expressão lógica pode ser implementada usando apenas portas NAND ou portas NOR. Isso porque podemos representar portas OR, AND ou NOT usando apenas portas NAND ou NOR.


Simplificação de Circuitos Lógicos

Depois de encontrada a expressão de um circuito lógico, podemos reduzi-la para uma forma mais simples. A intenção é diminuir o número de variáveis nessa expressão, o que significa diminuir o número de portas lógicas e conexões em um circuito lógico.


Simplificação Algébrica

A simplificação algébrica é feita com o uso dos teoremas da álgebra booleana e de Morgan.
 Exemplo:















Projetando Circuitos Lógicos

Passos para o projeto completo de um circuito lógico:


b) Analisar a saída:
Quando qualquer entrada de uma porta OR for “1” então a saída será “1”. Então podemos deduzir que a saída x é uma operação OR de todos os casos em que a saída x é “1”. Cada caso corresponde a uma operação lógica AND com todas as variáveis de entrada.


















C) Simplificar a expressão lógica obtida:

A expressão pode ser reduzida a um número menor de termos se aplicarmos os teoremas booleanos e de DeMorgan.

Método do Mapa de Karnaugh para Simplificação
Circuitos Lógicos

Outros:
- 7400 – Quatro portas NAND
- 7402 – Quatro portas NOR
- 7486 – Quatro portas XOR
- 74266 – Quatro portas XNOR

Famílias Lógicas de Circuitos Integrados

Introdução
Circuitos integrados são amplamente usados na construção de sistemas digitais. Isso porque eles têm muito mais circuitos em um pequeno encapsulamento e são mais confiáveis.

Terminologia de Circuitos Integrados Digitais

Os fabricantes de circuitos integrados digitais seguem praticamente o mesmo padrão de nomenclatura e terminologia:

a) Tensão e Corrente:

- VIH(min) – Mínima Tensão de Entrada em Nível Alto.
- VIL(max) – Máxima Tensão de Entrada em Nível Baixo.
- VOH(min) – Mínima Tensão de Saída em Nível Alto.
- VOL(max) – Máxima Tensão de Saída em Nível Baixo.
- IIH – Corrente de Entrada em Nível Alto.
- IIL – Corrente de Entrada em Nível Baixo.
- IOH – Corrente de Saída em Nível Alto.
- IOL – Corrente de Saída em Nível Baixo.



b) Fan-Out
O Fan-Out corresponde ao número máximo de entradas lógicas que uma saída de um circuito lógico pode acionar. Se esse número for excedido, os níveis de tensão e corrente não serão garantidos.

c) Atrasos de Propagação
Um sinal lógico, ao atravessar um circuito, sofre um atraso. Existem dois tipos de atraso:
- tPLH – Tempo de atraso do estado lógico “0” para o “1”.
- tPHL – Tempo de atraso do estado lógico “1” para o “0”.












Os valores dos tempos de atrasos de propagação são usados para medição de velocidade em circuitos lógicos.

d) Potência
Como todo circuito elétrico, um circuito lógico consome uma certa quantidade de potência. Essa potência é fornecida por fontes de alimentação e esse consumo deve ser levado em consideração em um sistema digital.
Se um circuito integrado consome menos potência poderemos ter uma fonte de menor capacidade e com isso reduziremos os custos do projeto.

e) Velocidade x Potência
Um circuito digital ideal é aquele que possui o menor consumo de potência e o menor atraso de propagação. Em outras palavras, o produto de velocidade e potência deve ser o menor possível.

f) Imunidade ao Ruído
Ruídos são sinais indesejáveis gerados por campos eletromagnéticos podem afetar o funcionamento de um circuito lógico. Esses sinais podem fazer com que a tensão de entrada de um circuito lógico caia abaixo de VIH(min) ou aumente além de VIL(max), gerando falsos sinais.
A imunidade ao ruído se refere à capacidade de um circuito lógico de rejeitar esse ruído.


g) Níveis de Tensão Inválidos
Circuitos lógicos só trabalharão confiavelmente com níveis de tensão especificados pelos fabricantes, ou seja, as tensões devem ser menores que VIL(max) e maiores que VIH(min) – fora da faixa de indeterminação – e com alimentação adequada.

h) Fornecimento de Corrente e de Absorção de Corrente
O fornecimento de corrente é mostrado na fig. 2-4. Quando a saída da porta lógica 1 está em ALTO, ela fornece uma corrente IIH para a entrada da porta lógica 2.
A absorção de corrente é mostrada na fig. 2-5. Quando a saída da porta lógica 1 está em BAIXO, ela absorve uma corrente IIL para a entrada da porta lógica 2.









Encapsulamentos de Circuitos Integrados

Alguns tipos de encapsulamentos de circuitos integrados são mostrados na fig.

Família Lógica TTL

Um circuito básico utilizado na lógica-transistor-transistor é mostrado na fig.


Porta NAND básica TTL e equivalente a diodo para Q1
Esse circuito representa uma porta NAND TTL. Uma das principais características desse circuito são os dois emissores do transistor Q1. Na mesma figura está o circuito equivalente a diodo de Q1.
Outra característica construtiva importante desse circuito é sua saída totem-pole, que impede que os dois transistores (Q3 e Q4) conduzam ao mesmo tempo.

- Operação do Circuito – Saída em Nível Baixo
A saída em nível baixo é conseqüência de entradas A e B em nível alto (+ 5 V). Nesse caso, Q1 ficará cortado e Q2 conduzirá (ver circuito equivalente). A corrente fluirá do emissor de Q2 para a base de Q4 e o faz conduzir.
A tensão no coletor de Q2 é insuficiente para Q3 conduzir. Essa tensão está em torno de 0,8 V (0,7 V da junção B-E de Q4 + 0,1 V de Vce (sat) de Q2).
Para o transistor Q3 conduzir é necessário que sua junção B-E e o diodo D1 esteja diretamente polarizado.
Com Q4 conduzindo, a tensão de saída é muito baixa (< 0,4 V), ou nível baixo (“0”).




- Operação do Circuito – Saída em Nível Alto
Para que a saída de uma porta NAND fique em alto, pelo menos uma das entradas A ou B deverá ser zero. Nessa condição haverá condução de Q1 por um de seus emissores, ou pelos dois (ver circuito equivalente), fazendo com que Q2 fique cortado.
Com Q2 cortado não haverá corrente na base de Q4 e ele ficará cortado também. Sem corrente no coletor de Q2, a tensão na base de Q3 é suficiente para que ele entre em condução.
Com Q3 conduzindo, a tensão na saída ficará em torno de 3,4 V a 3,8 V (sem carga), devido às quedas na junção B-E de Q3 e ao diodo D1. Com carga essa tensão deverá diminuir.

- Absorção de Corrente
Uma saída TTL em nível baixo age como um absorvedor de corrente, pois ela recebe a corrente da entrada da porta que está acionando.

- Fornecimento de Corrente
Uma saída TTL em nível alto age como fornecedora de corrente. Na verdade essa corrente tem um valor muito baixo, causada pela fuga de polarização reversa do “diodo” (junção B-E) de Q1.

- Outras Portas TTL
Praticamente todas as outras portas lógicas possuem o mesmo circuito básico da porta NAND TTL. Outros circuitos internos são colocados apenas para implementar a lógica desejada.

Características da Série TTL Padrão

Faixas de Tensão de Alimentação e de Temperatura
Existem duas séries de TTL padrão diferenciadas pela faixa de tensão de alimentação e temperatura: a série 74 e a série 54.
A série 74 utiliza alimentação entre 4,75 V e 5,25 V e opera entre 0º a 70º C. A série 54 utiliza alimentação entre 4,5 V e 5,5 V e opera entre -55º a 125º C.

Níveis de Tensão
VIL(max) – 0,8 V
VOL(max) – 0,4 V
Existe uma margem de segurança de uma saída para a entrada, chamada de margem de ruído, de 0,4 V (0,8 V – 0,4 V).
VIH(min) – 2,0 V
VOH(min) – 2,4 V
A margem de ruído também é de 0,4 V (2,4 V – 2,0 V).

Faixas Máximas de Tensão
As tensões máximas de trabalho de um TTL padrão não devem ultrapassar 5,5 V. Uma tensão maior de 5,5 V aplicada a um emissor de entrada pode causar dano na junção B-E de Q1. Tensões menores que –0,5 V também podem danificar o componente.

- Dissipação de Potência
Uma porta NAND TTL padrão consome, em média, 10 mW.

- Atrasos de Propagação
A porta AND TTL padrão tem atrasos de propagação típicos de tPLH = 11 ns e tPHL = 7 ns, resultando num atraso de propagação médio tPD(med) de 9 ns.

- Fan-Out
Uma saída TTL padrão pode acionar 10 entradas TTL padrão.

Séries TTL Aperfeiçoadas

Séries 74L e 74H
Estas séries são versões TTL para baixa potência (74L) e alta velocidade (74H). A primeira consumia 1 mW e tinha um tempo de atraso de propagação de 33 ns e a segunda consumia 23 mW, com um tempo de atraso de propagação de 6 ns. Não são mais fabricadas atualmente.

TTL Schottky, Série 74S
Esta série utiliza diodos Schottky entre a base e o coletor dos seus transistores, evitando que eles trabalhem saturados. Com isso o tempo de resposta do circuito é mais rápido. Por exemplo, a porta NAND 74S00 tem um atraso médio de 3 ns, mas um consumo de potência de 20 mW.

TTL Schottky de Baixa Potência, Série 74LS (LS-TTL)
A série 74LS é uma versão de menor potência e menor velocidade da série 74S. Ela utiliza a combinação transistor/diodo Schottky, mas com valores maiores de resistores de polarização, o que diminui o consumo.
Uma porta NAND 74LS tem um atraso típico de propagação de 9,5 ns e dissipação média de potência de 2 mW.

TTL Schottky Avançada, Série 74AS (AS-TTL)
A série 74AS surgiu como uma melhoria da série 74S. Possui velocidade e fan-out maiores e um menor consumo se comparado com a série 74S.

TTL Schottky Avançada de Baixa Potência, Série 74ALS
Esta série surgiu como uma melhoria da série 74SL.

TTL Fast – 74F
Esta é a série TTL mais nova. Ela utiliza uma técnica de fabricação de circuitos integrados que reduz as capacitâncias entre os dispositivos internos visando reduzir os atrasos de propagação.