Ethernet break
Outro dia o companheiro de SJC Hacker Clube Duyle gentilmente me emprestou um breakboard Ethernet para eu fazer uns testes de acesso à internet pelo Arduino. A minha ideia era criar um client internet para acessar um webservice feito em C# que eu criei e publiquei na nuvem.
Acontece que eu não consegui de jeito nenhum encontrar como fazer um client usando essa lib. Então, para não perder um embalo, criei um serviço no Arduino para informar a temperatura ambiente do meu quarto via browser.
É muito fácil de fazer.
Esse é o break. De um lado a conexão RJ45 para ligar o "fio azul" (vindo do seu roteador), do outro os pinos para conexão ao Arduino.
A pinagem é essa:
E a conexão com o Arduino é essa:
Para medir a temperatura usei um termsistor como sensor, ligado no jeito clássico, como divisor de tensão, assim:
No caso, são sei de quanto é o meu termistor, mas coloquei um resistor de 1k e funcionou. Aqui uma foto do circuito montado:
Esse é o resultado obtido:
Ao aquecer o termistor um pouco com o dedo, nova leitura:
É isso. É mole ou não é?
Se alguém souber me dar a dica sobre como fazer o client...
Acontece que eu não consegui de jeito nenhum encontrar como fazer um client usando essa lib. Então, para não perder um embalo, criei um serviço no Arduino para informar a temperatura ambiente do meu quarto via browser.
É muito fácil de fazer.
Esse é o break. De um lado a conexão RJ45 para ligar o "fio azul" (vindo do seu roteador), do outro os pinos para conexão ao Arduino.
A pinagem é essa:
E a conexão com o Arduino é essa:
|
Para medir a temperatura usei um termsistor como sensor, ligado no jeito clássico, como divisor de tensão, assim:
No caso, são sei de quanto é o meu termistor, mas coloquei um resistor de 1k e funcionou. Aqui uma foto do circuito montado:
Abaixo o circuito do termômetro. A pecinha com a extremidade preta espetada na placa é o termistor.
O código, como é de praxe nesse blog, está publicado abaixo. Foi feito com base no código demo que vem com a própria biblioteca.Aliás, são duas, clique para fazer o download: etherShield.h e ETHER_28J60.h.
#include "etherShield.h" #include "ETHER_28J60.h" static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // Esse código deve ser único dentro da sua rede. // A menos que vc tenha mais de uma placa dessa na // sua rede, esse valor deve servir. static uint8_t ip[4] = {192, 168, 0, 15}; // Endereço IP a ser usado para a sua placa. // Este depende de como a sua rede estiver conectada. // Descubra o IP da sua máquina e use um parecido, com // diferença no último número. static uint16_t port = 80; // O padrão é 80 ETHER_28J60 ethernet; #define sensorPort 0 // Essa função lê a temperatura int GetTemp() { int sensorValue=analogRead(sensorPort); return map(sensorValue,150,174,20,36); } void setup() { ethernet.setup(mac, ip, port); Serial.begin(9600); } void loop() { // Quando houver alguma solicitação de serviço... if (ethernet.serviceRequest()) { // monta uma pagina com a temperatura corrente. ethernet.print("<H1>Monitoramento de Temperatura no Escritório</H1>"); ethernet.print("<H2>No momento a temperatura aqui é de "); ethernet.print(GetTemp()); ethernet.print(" °C</H2>"); ethernet.respond(); } }Aqui os resultados: ao acessar o "site" com o endereço correspondente, no meu caso: http://192.168.0.15/.
Esse é o resultado obtido:
Ao aquecer o termistor um pouco com o dedo, nova leitura:
É isso. É mole ou não é?
Se alguém souber me dar a dica sobre como fazer o client...
O microcontrolador pode também acessar a internet via Wifi com a arduino ou a placa PIC SanUSB. O firmware com modem wifly está disponível em: https://dl.dropboxusercontent.com/u/101922388/WiflySanUSB.zip
ResponderExcluirÉ mesmo, eu até já fiz isso, só não postei porque me esqueci.
ExcluirObrigado pela dica e pela visita!
Boa noite, sou novato no mundo arduino e tenho uma duvida.
ResponderExcluirEu comprei um modulo ENC28J60 porem o pino D2 do meu arduino mega ja esta sendo utilizado por um LCD TFT.
A pergunta é se posso utilizar outra porta? qual seria esta porta ?
Obrigado e boa noite a todos
Rafael,
ExcluirObrigado por passar por aqui.
Não sei dizer se isso é possível, e não tenho mais esse break.
Pelo que está escrito nos fontes acima, não parece ser possível mudar sem alterar a biblioteca.
[],
Mauro