Dele a su proyecto Arduino su propio mini-servidor web, con un escudo Ethernet

  • Peter Holmes
  • 0
  • 2504
  • 288
Anuncio

Hace un tiempo, le mostré cómo configurar un sistema de control de Internet para su Arduino Cómo configurar el control web de Arduino sin un escudo de Ethernet Cómo configurar el control web de Arduino sin un escudo de Ethernet Durante las últimas semanas, entregué el control de la iluminación del ambiente en mi estudio para los espectadores durante la transmisión en vivo de Technophilia Podcast - puedes ver los resultados de eso en el… - pero tenía que estar conectado a una computadora a través de USB para mantener la conexión a Internet. Sin embargo, si tiene un escudo Ethernet, eso no es necesario. Hoy vamos a ver cómo configurar un Arduino como servidor web básico para que podamos alojar nuestro propio sitio web de control de dispositivos..

Necesitará:

  • Un Arduino, o un clon de Arduino como se detalla aquí. No gaste dinero en un Arduino: construya el suyo por mucho menos No gaste dinero en un Arduino: construya el suyo por mucho menos Amo a mis Arduinos. En cualquier momento, tengo bastantes proyectos en marcha: la creación de prototipos es muy fácil con ellos. Pero a veces, quiero mantener el proyecto funcional sin comprar ...
  • Ethernet Shield (~ $ 35): asegúrese de obtener una versión que coincida con su Arduino, ya que no todos son compatibles
  • Puerto de repuesto en su enrutador o conmutador, y cable Ethernet
  • El ejemplo de WebServer proporcionado en la aplicación Arduino

Configuración

El escudo de Ethernet usa pines 10 a 13 para controlar la conexión de red, así que déjelos fuera de su proyecto; el pin 4 también se usa para la tarjeta SD, pero no lo usaremos hoy.

Lo primero es lo primero: abre el Expediente->Ejemplos->Ethernet->Servidor web que se proporciona dentro del IDE de Arduino. Encuentra las líneas que hacen referencia a la dirección MAC e IP.

La dirección MAC para la mía se encontró en la caja; la tuya puede estar en el escudo. Ajuste la primera línea de valores: debe dejar el precedente 0x poco sin embargo. Técnicamente hablando, realmente no importa lo que pones aquí siempre y cuando no tengas ningún valor en conflicto en tu subred, pero aun así, esta fue la dirección asignada por el fabricante, por lo que probablemente deberíamos seguir con eso. Solo sé que si te equivocas, seguirá funcionando.

El siguiente es la dirección IP. Queremos una dirección fija específica para que podamos configurar el reenvío de puertos correctamente: el escudo es capaz de obtener una dirección de DHCP, pero eso solo es útil si simplemente se va a usar como cliente, no como servidor. Complete una dirección IP que no se use y sea memorable en su red local, la dirección IP de su enrutador y 255.255.255.0 (la subred). Si nada de esto tiene sentido para usted, lea nuestra guía completa y gratuita sobre redes domésticas Todo lo que necesita saber sobre las redes domésticas Todo lo que necesita saber sobre las redes domésticas Configurar una red doméstica no es tan difícil como cree que es. .

Reenvío de puertos

Edite la línea que dice Servidor Ethernet Server (número), y cambia el número a 8081. Esto configurará nuestro servidor para escuchar en el puerto 8081 en caso de que su ISP esté bloqueando el tráfico web en el puerto tradicional 80.

Cargue la demostración en este punto y pruébela desde una máquina local. Por supuesto, también deberá enchufar el cable Ethernet. Mantenga el USB enchufado también, ya que lo necesitamos para la alimentación; puede reemplazarlo con una fuente de alimentación de 9 V más adelante, pero aún estamos probando.

Noob-tip: Si obtiene este error, significa que por error ha puesto un O mayúscula en vez de una 0 0 en el área de la dirección MAC. ¡No hay O en los valores hexadecimales! Si realmente eres nuevo, puede valer la pena echarle un vistazo a nuestra guía para principiantes Arduino!

Para acceder al Arduino, escriba la dirección y el número de puerto directamente desde un navegador.

Deberías ver algo así, hasta ahora todo bien. Desafortunadamente, esto solo es accesible en red local en este momento, así que dirígete a la página de configuración del puerto de tu enrutador para configurar una redirección desde el puerto 8081 al mismo puerto en la IP de tu Arduino (Ver: ¿Qué es el reenvío de puertos? ¿Qué es el reenvío de puertos y cómo puede ayudarme? [MakeUseOf explica] ¿Qué es el reenvío de puertos y cómo me puede ayudar? [Explica MakeUseOf] ¿Lloras un poco por dentro cuando alguien te dice que hay un problema de reenvío de puertos y es por eso que tu nueva aplicación brillante no funcionará? Tu Xbox no te permitirá jugar, tus descargas de torrents se rechazan ... )

Pruebe esto desde un dispositivo móvil de internet 3G con Wifi deshabilitado; recuerda usar tu dirección IP pública, No es su dirección de red local. Su enrutador debería poder decirle esto o simplemente preguntarle a Google “cuál es mi IP“.

Comprender la salida

La página que se sirve en la demostración está leyendo valores de los pines analógicos, pero como no hay nada conectado allí, obtendrá tonterías. Intente conectar un sensor de luz (fotorresistencia) al puerto A0 y +5v, con un Resistencia de 10k también en A0 y gnd (este es un divisor de voltaje, ya que los pines analógicos solo pueden leer el voltaje, y no la resistencia) solo para confirmar que el servidor está realmente leyendo valores. Tenga en cuenta que cuando la intensidad de la luz cambia, los valores en los otros pines también cambian, esto se debe a que todos están desconectados.

Ponerse interactivo

Leer estos valores está muy bien, pero dar el salto a controlador un Arduino de aquí es un gran salto, y está fuera del alcance de este tutorial hoy. En lugar de reinventar la rueda, te señalaré al usuario del foro Arduino hari, que escribió una API básica para interactuar con los pines digitales. Usando este código (lo he modificado para que funcione con la última biblioteca de Ethernet), conecte el cable largo de un LED (ánodo) al pin 8, y el cable corto al pin 7 (con una resistencia adecuada). Luego puede usar las URL del formulario http: // ip: port / digitalWrite / 8/1 encender el LED y http: // ip: port / digitalWrite / 8/0 para apagarlo y leer valores analógicos con analogRead / 0.

Este ejemplo de bildr también le enseñará cómo controlar una secuencia de LED leyendo la solicitud GET.

También puede consultar este ejemplo, que genera un formulario en la página para controlar un LED RGB parpadeante, aunque podría adaptarlo fácilmente para una tira RGB como el proyecto de iluminación ambiental dinámica Cree su propia iluminación ambiental dinámica para una construcción de centro multimedia Su propia iluminación ambiental dinámica para un centro multimedia Si ve muchas películas en su PC o centro multimedia, estoy seguro de que se ha enfrentado al dilema de la iluminación; ¿Apagas completamente todas las luces? ¿Los mantienes a todo volumen? O ... construimos hace un tiempo.

Bueno, me divertí construyendo estos, así que espero que tú también. Si ha creado una biblioteca que simplifica la publicación de páginas y controles, póngase en contacto en los comentarios.




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.