Dé a su proyecto Arduino su propio mini servidor web, con un protector Ethernet
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 protector de Ethernet Cómo configurar el control web de Arduino sin un protector de Ethernet Durante las últimas semanas, le entregué el control de la iluminación ambiental en mi estudio para los espectadores durante la transmisión en vivo de Technophilia Podcast (puede ver los resultados de eso en el… Leer más), pero tuvo que estar conectado a una computadora a través de USB para poder 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 un servidor web básico para poder 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 Me encantan 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 ... Leer más
- Escudo Ethernet (~ $ 35): asegúrese de obtener una versión que coincida con su Arduino, ya que no son todas compatibles
- Puerto de repuesto en su enrutador o conmutador, y cable Ethernet
- El ejemplo de servidor web proporcionado en la aplicación Arduino.
Estableciendo
El escudo Ethernet utiliza pines. 10 a 13 para controlar la conexión de la red, así que deje esos 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 Eso 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 suya puede estar en el propio escudo. Ajusta la primera línea de valores - necesitas dejar la anterior 0x aunque un poco Desde el punto de vista técnico, realmente no importa lo que coloque aquí siempre que no tenga valores en conflicto en su subred, pero aún así, esta fue la dirección asignada por el fabricante, por lo que probablemente deberíamos atenernos a eso. Solo debes saber que si te equivocas, seguirá funcionando..
El siguiente es la dirección IP. Queremos una dirección fija específica para poder configurar el reenvío de puertos correctamente: el escudo es capaz de obtener una dirección de DHCP, pero eso solo es útil si solo se va a utilizar como cliente, no como servidor. Complete una dirección IP que no esté en uso y sea memorable en su red local, la IP de su enrutador y 255.255.255.0 (la subred). Si nada de esto tiene sentido para usted, lea nuestra guía gratuita y completa sobre redes domésticas. Todo lo que necesita saber sobre redes domésticas Todo lo que necesita saber sobre redes domésticas Configurar una red doméstica no es tan difícil como cree que es. . Lee mas .
Reenvío de puertos
Edita la línea que dice Servidor servidor Ethernet (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.
Suba la demostración en este punto y pruébela desde una máquina local. Por supuesto, también necesitará 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 tarde, pero todavía estamos probando.
Noob-tip: Si recibe este error, significa que ha puesto un error por error. capital O en vez de una 0 en el área de direcciones MAC. ¡No hay O en valores hexadecimales! Si realmente eres nuevo, puede que valga la pena ver nuestra guía para principiantes Arduino!
Para acceder a Arduino, escriba la dirección y el número de puerto directamente desde un navegador.
Deberías ver algo así, hasta ahora bien. Desafortunadamente, esto solo es accesible en el red local En este momento, diríjase a la página de configuración del puerto de su enrutador para configurar una redirección desde el puerto 8081 al mismo puerto en la IP de su 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 puede ayudarme? [MakeUseOf Explica] ¿Llora un poco por dentro cuando alguien le dice que hay un problema de reenvío de puertos y es por eso que su nueva aplicación no funcionará? Tu Xbox no te permitirá jugar juegos, tus descargas de torrent se rechazan ... Leer más )
Prueba esto desde un dispositivo móvil de internet 3G con Wifi desactivado; recuerda usar tu dirección IP pública, no su dirección de red local. Su enrutador debería poder decirle esto, o simplemente preguntar a Google “cuál es mi IP“.
Entendiendo la salida
La página que se muestra en la demostración está leyendo valores de los pines analógicos, pero como no hay nada conectado allí, obtendrás tonterías. Intente conectar un sensor de luz (resistencia fotográfica) al puerto A0 y +5v, con un Resistencia 10k también en A0 y gnd (esto es un divisor de voltaje, ya que los pines analógicos solo pueden leer el voltaje y no la resistencia) Sólo para confirmar que el servidor está realmente leyendo valores. Observe que cuando cambia la intensidad de la luz, los valores de los otros pines también cambian, esto se debe a que todos están desconectados..
Conseguir interactivo
La lectura de estos valores está muy bien, pero hacer el salto a controlador un Arduino desde aquí es un gran salto, y está fuera del alcance de este tutorial hoy. En lugar de reinventar la rueda, lo dirigiré hacia el usuario del foro Arduino, hari, quien 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). A continuación, puede utilizar las direcciones URL del formulario http: // ip: port / digitalWrite / 8/1 para encender el LED, y http: // ip: port / digitalWrite / 8/0 para apagarlo, y leer valores analógicos con analógicaLeer / 0.
Este ejemplo de bildr también le enseñará cómo controlar una secuencia de LEDs leyendo la solicitud GET.
También le gustaría consultar este ejemplo que muestra un formulario en la página para controlar un LED RGB parpadeante, aunque podría adaptarlo fácilmente a una tira RGB como el proyecto de iluminación ambiental dinámica Construya su propia iluminación ambiental dinámica para un centro de medios 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 enfrentó el dilema de la iluminación; ¿Apagas completamente todas las luces? ¿Los mantienes en plena explosión? O ... Leer más construimos hace un tiempo.
Bueno, me divertí construyendo estos, así que espero que tú también lo hicieras. Si ha creado una biblioteca que facilita la publicación de las páginas y los controles, póngase en contacto con los comentarios..
Explorar más sobre: Arduino, Servidor Web.