terça-feira, 15 de fevereiro de 2011

1º Projecto Arduino - Controlo de aquecedor via WEB

Objectivo: como cá em Vila Real é muito frio... e tendo em conta que chego a casa encontro sempre o meu quarto completamente gelado pensei cá pra mim... humm.. isto era giro era ligar o aquecedor remotamente do meu trabalho umas horas antes e assim encontrar o meu quarto já bem quentinho =)

Foi então que pensei que isto seria mais interessante ainda era se este sistema também me permitisse visualizar a temperatura ambiente do meu quarto em tempo real... não vá eu estar a ligar o aquecedor e às tantas.. nem era preciso.

então mãos à obra.....

Material necessário:

Hardware

- 1 Arduino Uno

Será usado tanto neste como nos próximos projectos como a unidade de processamento de todo o sistema, obviamente.

- 1 Ethernet Shield para o Arduino

Esta é uma das "milhentas" shields que existem para o arduino, não é mais que um módulo baseado no chip Ethernet Wiznet W5100 providenciando uma network (IP) stack capaz de utilizar TCP e UDP, Blá, Blá, Blá, Blá, wiskas saketas... basicamente permite ligar o arduino a uma rede com ou sem Internet.


- 1 Router com ligação à Internet

- 1 Relé (12V por exemplo)


-1 Díodo 2N4004

- 1 Transístor 2N2222


- 1 Sensor de Temperatura (DS18B20 por exemplo)


- 2 resistência 2.2k e 4.7k

- 1 LED (sinalização de ON/OFF)



E pronto.. para já temos tudo.

Montagem:

1. Montar estes circuitos:



2. Arduino + Ethernet Shield

Nota: O cabo de rede proveniente da saída RJ45 vai conectar numa porta do Router, o cabo USB que aparece na figura apenas serve para descarregar o código do PC para o arduino, pois a alimentação do sistema terá que ser feita com recurso a um transformador de 12V.


Software

Tendo em conta o tamanho do código desenvolvido é possível fazer o download deste aqui.

Agora é só descarregar este código para o arduino, depois configurar o Router de maneira a que este responda a pacotes vindo de fora da rede privada ou seja vindos da WEB, para tal é só abrir a porta 80 deste e atribui-la ao endereço IP privado neste caso é o 192.168.1.65 e pluff já tá.. :=)

A interface mostrada é a seguinte:


Como é óbvio tive que esconder o endereço pois não me dá jeito que a malta me ande a ligar e desligar o aquecimento sem mais nem menos.. lool

Se preferirem utilizem um redirecionador de sites para utilizarem um nome mais sugestivo no endereço em vez de ter que colocar o IP.

Construção da PCB (placa de circuito impresso):

Isto é tudo muito bonito mas o que dava jeito era ter numa única placa todos os componentes prontos a ligar ao arduino, para tal e de forma a tornar o sistema mais prático construí uma PCB.

1º - Projectar as pistas do circuito

Para isto utilizei o Software PCB Artist


2º Imprimir isto numa impressora a laser num papel ligeiramente mais grosso que o normal.


3º Em seguida cortar uma PCB virgem à medida certa e com ajuda de um ferro de engomar estampar o circuito nela... até acertarem com o tempo certo para estampagem preparem se para realizar um número considerável de tentativas :)

Mal acertem esse tempo coloquem a placa em água fria uns minutos e suavemente retirem o papel que ficou agarrado a ela, caso esteja a correr tudo bem a tinta e o papel da impressão vão ficar colados à PCB só e apenas nos sítios onde existem pistas.
O aspecto é este:


Eventualmente será necessário dar uns retoques nas pistas com uma caneta de feltro de preferência preta.

4º Vamos agora preparar um solução de acido clorídrico a 33% de pureza + Água Oxigenada de 30 Volumes obrigatoriamente, 1/2 de cada. colocamos lá a placa e agitamos suavemente até o cobre em excesso corroer (esta é a parte perigosa e tal , cuidadinho com os olhos, nariz e mãos... aquilo queima mesmo e dá uma moka medonha..:))
5º Furar a PBC com uma broca de 1mm e soldar os respectivos componentes. O aspecto final
é este:


6º Agora é só ligar os terminais aos respectivos conectores do arduino e tá pronto a funcionar..




Principal limitação: Se possuírem uma ligação à net pelo telefone o IP não será fixo, ou seja.. basta que reiniciem o Router por algum motivo e ficam sem acesso ao sistema do exterior.. :(

Uma ligação à net por cabo resolve este problema pois o IP será sempre o mesmo, ainda que se reinicie o Router.

De referir que neste caso eu ligo um aquecedor... mas podia muito bem ligar uma ventoinha, um microondas, um forno, uma luz... (uma luz???) uma luz não porque isso seria estúpido, ninguém liga a luz do quarto sem estar lá.... loool

11 comentários:

Lau disse...

Aiii rapaz tu és mesmo um IDIOTA....=D
Essa cabecinha não pára.. Mui bien ;)

Anónimo disse...

Só uma dica, no caso do ip ser dinamico podes usar serviços que permitam passar o ip a web address cada vez que te ligas , como por exemplo em http://www.no-ip.com/ .

Rocha disse...

Obrigado pela dica... já tinha ouvido falar disso mas nunca experimentei.. vou então tentar resolver esta limitação do sistema.. cumprimentos!

Unknown disse...

Boas,

Está impecável... e adicionar mais sensores, por exemplo um depósito de água tem várias layers de temperaturas, a leitura de um determinado ponto poderia activar um resistência eléctrica, tal e qual o teu proj. para ligar o aquecedor...

Envia-me o teu email, gostaria de trocar umas ideias contigo :) e levantar outras quantas questões sobre o arduino.
Abraço,
RG

Rocha disse...

Boas Renato!

O meu mail é tiagojgrocha@gmail.com
Neste momento ando a pensar fazer algo com uns motores de passo que tenho, mas ainda nao sei bem ao certo o que... estou aberto a sugestões de projectos e ideias da tua parte tb..:)

Abraço
Tiago Rocha

Anónimo disse...

viva !

gosto do teu projecto, tambem ando a pensar fazer algo deste genero.

que tal aprofundares a utilizaçao do arduino como cerebro de um sistema de domotica, para controlar tomadas (aquecedor, por exemplo), iluminaçao (para simulaçao de presença de pessoas, basicamente é como uma tomada), controlo de estores electricos (um sinal pra subir, outro pra descer, com encravamento), ... ah, uma protecçao com password, ou semelhante, é essencial, assim como a utilizaçao de DynDNS ou no-ip, suportado em varios routers.

queres mais ideias ? :)

no meu caso tou a ponderar usar uma shield GSM e SMSs, para nao ficar dependente do ISP. a programaçao sera muito diferente ?

PS: pelo que tenho visto, os profissionais da domotica fazem se pagar bem. se calhar é por isso que em Portugal ainda nao se ve muito. isto podia ser uma aposta profissional interessante para ti.

bons estudos,
nuno

Rocha disse...

Boas Nuno!

A ideia de usar o Arduino como cérebro para um sistema de domotica foi o que pensei inicialmente, e digamos que depois de teres controlo sobre o aquecedor(ON/OFF) consegues fazer para mais equipamentos tal como referiste, é uma questão de fazer "mais do mesmo".

Para para um controlo de estores e presença de pessoas etc etc.. vais precisar de sensores de vários tipos.. e penso que o Arduino Uno é muito limitado para grandes sistemas... só tem 5 portas analógicas e pco mais digitais, por exemplo.. mas nada que o Arduino Mega não desenrasque... :)

Quando ao modulo GSM na altura que terminei isto passou me pela cabeça.. mas desanimei da ideia quando vi o preço deles.. lool... além de que nunca fiz nada do género com esses módulos por isso não te sei dizer se seria muito diferente a programação...

Mas é verdade o que dizes... os profissionais da domotica levam por vezes milhares de euros para instalar sistemas deste tipo (embora muito básico este)... quando por exemplo neste simples projecto gastei pco mais de 50euros e não tirei nem de perto nem de longe total partido do pequeno Arduino Uno..:)

Cumprimentos!
Tiago Rocha

RGomes disse...

boas.

para o gsm, podes sempre utilizar um telele velhinho que tenhas por aí numa gaveta, ligado por rs232... e voilá ;)

alguns deles, trabalham em pdu para processamento de sms's mas... tudo se arranja ;)

dvpita disse...

Boas,

o meu comando do aquecimento central foi ao ar, um novo custa 200€(!!!!), não dá para pôr o arduino a funcionar neste caso?
Só precisava que tivesse um sensor de temperatura, quando baixasse da temp x enviava um sinal rádio para a antena da caldeira. O problema acho que está aqui, como ligo o arduino á antena rádio da caldeira?a frequência é 868 Mhz, mas que tipo de sinal envia é que não sei, pode ajudar-me?

manual (espanhol) do comando: http://www.aquastanding.com/varios/Fichas%20tecnicas%20Roca/INSTALACIN%20RX200-RX200%20PLUS.pdf

Rocha disse...

Bom Dia,

Penso que isso será possível fazer, para isso terá que ter um sensor de temperatura do género do que eu usei no meu projecto.. ele será ligado a uma das entradas digitais do arduino. Depois terá obrigatoriamente que comprar uma shield para o arduino.. penso que esta servirá pois transmite dados a 868Mhz:

altelectronics.co.uk/shop/arduino/arduino-rf-433-92-mhz-shield/prod_78.html

O principio de funcionamento será como disse.. a grande questão aqui é mesmo o tipo de sinal que envia mas penso que depois de ter o material vai fazendo testes e uma pesquisa pela net e até mesmo nos datasheet da shield deverá encontrar algo.

Cumprimentos!
Tiago Rocha

Anónimo disse...

I loved as much as you'll receive carried out right here. The sketch is attractive, your authored subject matter stylish. nonetheless, you command get bought an nervousness over that you wish be delivering the following. unwell unquestionably come more formerly again as exactly the same nearly very often inside case you shield this hike.
My weblog ... amazing ads

Enviar um comentário