Dê seu projeto arduino sua própria mini-webserver, com uma blindagem de ethernet

servidor web arduinoUm tempo atrás, eu mostrei como configurar um sistema de controle de internet para o seu Arduino - Mas tinha que ficar ligado a um computador através de USB, a fim de manter a ligação à Internet. Se você tem um escudo Ethernet, porém, isso não é necessário Hoje vamos olhar para a criação de um Arduino como um servidor web básico para que possamos acolher o nosso próprio site controle do dispositivo.

Você vai precisar de:

  • A Arduino, ou clone Arduino como detalhado aqui
  • Escudo Ethernet (~ US $ 35) - certifique-se de obter uma versão que corresponde ao seu Arduino como eles não são compatíveis
  • porta de reposição em seu roteador ou switch e cabo Ethernet
  • O exemplo WebServer fornecidas no pedido Arduino

Configurando

O escudo Ethernet usa pinos 10 a 13 para controlar a conexão de rede, por isso deixe aqueles fora de sua pin projeto- 4 também é usado para o cartão SD, mas não vamos estar usando isso hoje.

Em primeiro lugar - abrir o Arquivo->Exemplos->Ethernet->Servidor web que é fornecido dentro do Arduino IDE. Encontrar as linhas referentes endereço MAC e IP.

servidor web arduino

O endereço MAC para a mina foi encontrada na caixa - seu pode ser no próprio escudo. Ajuste a primeira linha de valores - você precisa deixar o anterior 0x bit embora. Tecnicamente falando, isso realmente não importa o que você colocar aqui, desde que você não tem quaisquer valores em conflito no seu sub-rede - mas, mesmo assim, este foi atribuído pelo fabricante do abordados, por isso, provavelmente deve ficar com isso. Só sei que, se você errar, ele continuará a funcionar.

exemplo webserver arduino

Em seguida é o endereço IP. Queremos um endereço fixo específico para que possamos encaminhamento de porta configurado corretamente - o escudo é capaz de obter um endereço a partir de DHCP, mas isso é apenas útil se ele está apenas vai ser usado como um cliente, não um servidor. Preencha um endereço IP que é não utilizado e memorável em sua rede local, o IP do roteador e 255.255.255.0 (a sub-rede). Se nada disto está a fazer sentido para você, vá ler o nosso livre e completa guia para redes domésticas.

port Forwarding

Edite a linha que diz servidor EthernetServer (número), e altere o número de 8081. Esta configuração irá nosso servidor para escutar a porta 8081 no caso do seu ISP está bloqueando o tráfego web na porta tradicional 80.

Faça o upload da demonstração neste momento e testá-lo a partir de uma máquina local. Você vai, naturalmente, precisa conectar o cabo Ethernet também. Mantenha o USB conectado também, como nós precisamos dele para o poder - você pode substituir isso com um poder 9V oferta mais tarde, mas ainda estamos testando.

Noob-dica: Se você receber esse erro, isso significa que você erroneamente colocar um O maiúsculo em vez de um 0 na área do endereço do MAC. Não há S em valores hex! Se você realmente é novo, pode valer a pena check-out nossos iniciantes de guia Arduino!

exemplo webserver arduino

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

exemplo webserver arduino

Você deve ver algo como isso - até agora tão bom. Infelizmente, isso só é acessível no rede local agora, então cabeça sobre a página de configuração da porta do seu roteador para configurar um redirecionamento de porta 8081 para a mesma porta no seu IP do Arduino (Vejo: O que é o encaminhamento de porta?)

tutorial servidor arduino web

Teste isso a partir de um dispositivo móvel internet 3G com Wi-Fi-deficiente lembre-se de usar o seu endereço IP público, não o seu endereço de rede local. O roteador deve ser capaz de dizer isso, ou apenas pedir ao Google "qual é o meu IP".

servidor web arduino

Entendendo a saída

A página que está sendo servido na demo está lendo valores dos pinos analógicos - mas desde que não há nada conectado lá, você está indo para obter um disparate. Tente ligar um sensor de luz (foto resistor) à porta A0 e +5v, com um 10k resistor também em A0 e gND (Este é um divisor de tensão, uma vez que os pinos analógicos pode apenas ler a tensão, e não a resistência) apenas para confirmar o servidor é realmente a leitura de valores. Observe que quando as mudanças de intensidade de luz, os valores sobre os outros pinos realmente mudar também - isso é porque todos eles são desconectados.

obtendo interativo

Lendo estes valores é tudo muito bem, mas fazer o salto para controlador um Arduino a partir daqui é um grande salto, e fora do escopo deste tutorial hoje. Em vez de re-inventar a roda, eu vou apontá-lo para usuário do fórum Arduino hari que escreveu uma API básica para interagir com pinos digitais. Usando este código (eu tenho modificado para funcionar com a mais recente biblioteca Ethernet), conecte a ligação longa de um (ânodo) LED ao pino 8, ea curta vantagem ao pino 7 (com um resistor adequado). então você pode usar URLs do formulário http: // ip: port / digitalWrite / 01/08 para ligar o LED, e http: // ip: port / digitalWrite / 8/0 para desligá-lo e ler valores analógicos com analogRead / 0.

este exemplo de bildr também vai ensiná-lo a controlar uma seqüência de LEDs através da leitura do pedido GET.

Você pode também gostaria de check-out neste exemplo que gera um formulário na página para controlar uma LED RGB blinkm, embora você poderia facilmente adaptá-lo para uma faixa de RGB, como o projeto de iluminação ambiente dinâmico nós construímos um tempo atrás.

Bem, eu me diverti construindo estes, então eu espero que você fez também. Caso você tenha feito uma biblioteca que faz servindo-se páginas e controles simples, por favor, entrar em contato nos comentários.

» » Dê seu projeto arduino sua própria mini-webserver, com uma blindagem de ethernet