Dê ao seu Arduino seu próprio mini-servidor Web, com um escudo Ethernet

Há um tempo atrás, mostrei como configurar um sistema de controle de internet para o seu Arduino - mas ele tinha que ficar conectado a um computador através de USB para manter a conexão com a internet. Se você tem uma blindagem Ethernet, isso não é necessário Hoje vamos analisar a configuração de um Arduino como um servidor web básico para que possamos hospedar nosso próprio site de controle de dispositivos.

Há um tempo atrás, mostrei como configurar um sistema de controle de internet para o seu Arduino - mas ele tinha que ficar conectado a um computador através de USB para manter a conexão com a internet.  Se você tem uma blindagem Ethernet, isso não é necessário Hoje vamos analisar a configuração de um Arduino como um servidor web básico para que possamos hospedar nosso próprio site de controle de dispositivos.
Propaganda

servidor web arduino Um tempo atrás, eu mostrei como configurar um sistema de controle de internet para o seu Arduino Como configurar o Arduino Web Control sem um escudo Ethernet Como configurar o Arduino Web Control sem um escudo Ethernet Durante as últimas semanas, eu entreguei o controle de a iluminação de humor no meu estúdio para os telespectadores durante a transmissão ao vivo do Technophilia Podcast - você pode ver os resultados disso no ... Leia mais - mas ele teve que ficar conectado a um computador através de USB para manter a conexão com a internet. Se você tem uma blindagem Ethernet, isso não é necessário Hoje vamos analisar a configuração de um Arduino como um servidor web básico para que possamos hospedar nosso próprio site de controle de dispositivos.

Você vai precisar de:

  • Um Arduino, ou Clone Arduino como detalhado aqui Não gaste dinheiro em um Arduino - Construa o seu próprio por muito menos Não gaste dinheiro em um Arduino - Construa o seu próprio por muito menos Eu amo meus Arduinos. A qualquer momento, tenho vários projetos em movimento - a prototipagem é tão fácil com eles. Mas às vezes, quero manter o projeto funcional sem comprar ... Leia Mais
  • Escudo Ethernet (~ $ 35) - certifique-se de obter uma versão que corresponda ao seu Arduino, pois nem todos são compatíveis
  • Porta sobressalente no seu roteador ou switch e cabo Ethernet
  • O exemplo do WebServer fornecido no aplicativo Arduino

Configurando

A blindagem Ethernet usa os pinos 10 a 13 para controlar a conexão de rede, portanto, deixe-os fora do seu projeto; O pino 4 também é usado para o cartão SD, mas não vamos usá-lo hoje.

Primeiras coisas primeiro - abra o arquivo -> exemplos -> Ethernet -> WebServer que é fornecido dentro do Arduino IDE. Encontre as linhas referentes ao MAC e ao endereço IP.

servidor web arduino

O endereço MAC para o meu foi encontrado na caixa - o seu pode estar no próprio escudo. Ajuste a primeira linha de valores - você precisa deixar o bit 0x anterior. Tecnicamente falando, realmente não importa o que você coloca aqui, desde que você não tenha nenhum valor conflitante na sua sub-rede - mas, mesmo assim, esse era o endereçamento atribuído pelo fabricante, então provavelmente deveríamos ficar com isso. Apenas saiba que se você errar, ainda funcionará.

exemplo de webserver do arduino

Em seguida é o endereço IP. Queremos um endereço fixo específico para que possamos configurar o encaminhamento de portas corretamente - o escudo é capaz de obter um endereço do DHCP, mas isso é útil apenas se for usado apenas como cliente, não como servidor. Preencha um endereço IP não utilizado e memorável em sua rede local, o IP do roteador e 255.255.255.0 (a sub-rede). Se nada disso fizer sentido para você, leia nosso guia gratuito e completo sobre redes domésticas Tudo o que você precisa saber sobre rede doméstica Tudo o que você precisa saber Sobre rede doméstica Configurar uma rede doméstica não é tão difícil quanto você pensa . Consulte Mais informação .

Port Forwarding

Edite a linha que diz servidor EthernetServer (número) e altere o número para 8081 . Isso configurará nosso servidor para escutar na porta 8081 caso seu ISP esteja bloqueando o tráfego da Web na porta 80 tradicional.

Carregue a demonstração neste momento e teste-a a partir de uma máquina local. É claro que você também precisará conectar o cabo Ethernet. Mantenha o USB conectado também, já que precisamos dele para energia - você pode substituir isso por uma fonte de alimentação de 9V mais tarde, mas ainda estamos testando.

Noob-tip: se você receber este erro, significa que você colocou, por engano, um O maiúsculo em vez de um 0 na área de endereço MAC. Não há O em valores hexadecimais! Se você é realmente novo, pode valer a pena conferir o guia Arduino para iniciantes!

exemplo de webserver do arduino

Para acessar o Arduino, digite o endereço e o número da porta diretamente de um navegador.

exemplo de webserver do arduino

Você deveria ver algo assim - até aí tudo bem. Infelizmente, isso só é acessível na rede local agora, então entre na página de configuração de porta do seu roteador para configurar um redirecionamento da porta 8081 para a mesma porta no IP do seu Arduino ( Veja: O que é o encaminhamento de porta? & Como ele pode me ajudar? [MakeUseOf explica] O que é encaminhamento de porta e como ele pode me ajudar? [MakeUseOf Explains] Você chora um pouco quando alguém lhe diz que há um problema de encaminhamento de porta e é por isso que seu novo aplicativo ganhou? O seu Xbox não permite que você jogue, seus downloads de torrent recusam ... Leia Mais )

tutorial do servidor web arduino

Teste isso de um dispositivo móvel de internet 3G com Wifi desativado; lembre-se de usar seu endereço IP público, não seu endereço de rede local. Seu roteador deve ser capaz de lhe dizer isso ou apenas perguntar ao Google "qual é o meu ip".

servidor web arduino

Entendendo a saída

A página que está sendo servida na demo está lendo valores dos pinos analógicos - mas como não há nada conectado aí, você vai ficar sem sentido. Tente conectar um sensor de luz (foto resistor) à porta A0 e + 5v, com um resistor de 10k também em A0 e gnd (este é um divisor de tensão, pois os pinos analógicos só podem ler tensão e não resistência) para confirmar o servidor está realmente lendo valores. Observe que quando a intensidade da luz muda, os valores nos outros pinos também mudam - isto é porque eles estão todos desconectados.

Ficando Interativo

Ler esses valores é muito bom, mas dar um salto para controlar um Arduino daqui é um grande salto e está fora do escopo deste tutorial hoje. Em vez de reinventar a roda, vou indicá-lo para o usuário do fórum do Arduino, que escreveu uma API básica para interagir com pinos digitais. Usando este código (modifiquei-o para trabalhar com a mais recente biblioteca de Ethernet), conecte o cabo longo de um LED (anodo) ao pino 8 e o cabo curto ao pino 7 (com um resistor adequado). Você pode então usar URLs no formato http: // ip: port / digitalWrite / 8/1 para ligar o LED, e http: // ip: port / digitalWrite / 8/0 para desligá-lo, e ler valores analógicos com analogRead / 0 .

Este exemplo da bildr também ensinará como controlar uma seqüência de LEDs lendo a solicitação GET.

Talvez você também queira conferir este exemplo que gera um formulário na página para controlar um LED RGB piscante, embora você possa adaptá-lo facilmente a uma faixa RGB, como o projeto de iluminação ambiente dinâmico Crie sua própria iluminação ambiente dinâmica para uma compilação do Media Center Sua própria iluminação ambiente dinâmica para um Media Center Se você assiste a muitos filmes no seu PC ou na central de mídia, tenho certeza de que enfrentou o dilema da iluminação; você desliga completamente todas as luzes? Você os mantém em plena explosão? Ou ... Leia Mais nós construímos um tempo atrás.

Bem, eu me diverti construindo estes, então espero que você também. Se você criou uma biblioteca que simplifica o fornecimento de páginas e controles, entre em contato nos comentários.

In this article