Cómo hacer tu propio botón de conexión Wi-Fi con ESP8266

  • Lesley Fowler
  • 0
  • 3220
  • 147
Anuncio

El Internet de las cosas tiene un gran potencial de bricolaje. Con suficiente conocimiento y algunos componentes baratos, podría construir un sistema complejo de dispositivos conectados.

A veces, sin embargo, quieres algo simple. Sin campanas ni silbatos, solo un botón que realiza una sola tarea. Es posible que ya esté familiarizado con algo como esto si alguna vez ha utilizado un botón de Amazon Dash para reordenar los artículos del hogar cotidianos.

Hoy haremos un botón habilitado para Wi-Fi usando un NodeMCU y lo programaremos para usar IFTTT para hacer ... ¡bueno, cualquier cosa! Instrucciones escritas después del video, si lo prefiere.

Lo que necesitarás

Necesitará:

  • 1 x placa NodeMCU (ESP8266), disponible por $ 2-3 en AliExpress
  • 1 x pulsador
  • 1 x LED (opcional)
  • 1 x resistencia de 220 ohmios (opcional)
  • Tablero y cables de conexión
  • Micro USB para programar
  • Computadora con el Arduino IDE instalado

Además de NodeMCU, debería poder encontrar la mayoría de estas piezas en cualquier kit de inicio de Arduino. 4 Mejores kits de inicio para principiantes de Arduino. 4 Mejores kits de inicio para principiantes de Arduino. pero primero necesitarás un Arduino y algunos componentes. Aquí está nuestra selección de 4 de los mejores kits de inicio para ... Este tutorial asumirá que está utilizando el LED y la resistencia opcionales, pero no son esenciales..

Paso 1: configuración del circuito

La configuración del hardware es muy simple para este proyecto. Configure su tablero de acuerdo con este diagrama.

El cable morado se adhiere pin D0 a un lado del botón. El cable verde conecta el otro lado del botón al Pin RST. El cable azul corre de pin D1 a la resistencia y al LED. La pata negativa del LED se conecta a la Pin GND del NodeMCU.

Cuando la placa de prueba está configurada, debería verse así:

Si se pregunta cómo hice que mi LED vaya al pin de tierra usando solo esos pequeños trozos de cable, nuestro curso rápido de prueba de tablero ¿Qué es un tablero de pruebas y cómo funciona? Un curso rápido ¿Qué es un tablero de pruebas y cómo funciona? Un curso rápido rápido ¿Quieres aprender electrónica de bricolaje? Es posible que haya recibido una placa en su kit de inicio. Pero, ¿qué es una placa de pruebas y cómo funciona? debería ayudar a aclararlo! Verifique su configuración y conecte su NodeMCU a la computadora a través de USB.

Paso 2: Configurando el IDE

Antes de continuar con la codificación, debe hacer algunos preparativos. Si aún no lo ha hecho, configure el IDE de Arduino para reconocer su placa NodeMCU. Puede agregarlo a su lista de tableros a través de Archivo> Preferencias.

Puede encontrar una explicación más detallada de este paso en nuestro artículo de introducción de NodeMCU.

Se requieren dos bibliotecas para este proyecto. Navegar a Boceto> Incluir biblioteca> Administrar bibliotecas. Buscar ESP8266WIFI por Ivan Grokhotkov e instalarlo. Esta biblioteca está escrita para hacer conexiones Wi-Fi con la placa NodeMCU.


Siguiente búsqueda de IFTTTWebhook por John Romkey e instale la última versión. Esta biblioteca está diseñada para simplificar el proceso de envío de webhooks a IFTTT.

Esa es toda la preparación que necesitamos, vamos a codificar!

Cómo funcionará el código

Usaremos el ESP8266WIFI biblioteca para establecer una conexión Wi-Fi. los IFTTTWebhooks la biblioteca hace una solicitud a IFTTT, en este caso, para publicar en Twitter. Luego, indique a la placa NodeMCU que se suspenda cuando no esté en uso para ahorrar energía.

Cuando se presiona el botón, vinculará el D0 y RST patas. Esto restablece el tablero y el proceso vuelve a ocurrir..

La mayor parte del código en este tutorial es lo suficientemente simple para principiantes. Dicho esto, si está comenzando, le resultará mucho más fácil de entender después de seguir nuestra guía para principiantes de Arduino.

Este tutorial repasa el código en fragmentos para ayudarlo a comprender. Si desea ir directamente a los negocios, puede encontrar el código completo en Pastebin. Tenga en cuenta que aún necesitará completar sus credenciales de Wi-Fi e IFTTT en este código para que funcione!

Paso 3: prueba del sueño profundo

Para comenzar, crearemos una prueba simple para mostrar cómo funciona el sueño profundo. Abra un nuevo boceto en el IDE de Arduino. Ingrese los siguientes dos fragmentos de código.

#include #include #define ledPin 5 #define wakePin 16 #define ssid "YOUR_WIFI_SSID" #define password "YOUR_WIFI_PASSWORD" #define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTTT__V_NT_T__VENTA_T_NOMBRE_DE_TENDIDO_T_EV_TT_E__T_V_T_T_T_AAAAAAAAAAAAAAAAENDO 

Aquí, incluimos nuestras bibliotecas, junto con la definición de algunas variables que necesitaremos en nuestro boceto. Notarás que ledPin y wakePin están numerados de manera diferente aquí en comparación con el diagrama de Fritzing anterior. El NodeMCU tiene un pinout diferente a las placas Arduino. Sin embargo, esto no es un problema, debido a este práctico diagrama:

Ahora cree una función de configuración:

configuración nula () Serial.begin (115200); while (! Serial)  Serial.println (""); // imprime una línea vacía antes y después de Button Press Serial.println ("Button Pressed"); Serial.println (""); // imprime una línea vacía ESP.deepSleep (wakePin);  

Aquí, configuramos nuestro puerto serie y usamos un bucle while para esperar hasta que comience. Dado que este código se activará después de presionar el botón de reinicio, imprimimos “Botón presionado” al monitor en serie. Luego, le decimos a NodeMCU que se duerma profundamente hasta que el botón que conecta wakePin al RST pin está presionado.

Finalmente, para probar, agregue esto a su lazo() método:

void loop () // si el sueño profundo funciona, este código nunca se ejecutará. Serial.println ("Esto no debería imprimirse");  

Por lo general, los bocetos de Arduino ejecutan la función de bucle continuamente después de la configuración. Como enviamos la placa a dormir antes de que finalice la configuración, el bucle nunca se ejecuta.

Guarde su boceto y cárguelo en el tablero. Abra el monitor en serie y debería ver “Botón presionado.” Cada vez que se activa el botón, el tablero se restablece y el mensaje se imprime nuevamente. Funciona!

Una nota sobre el monitor serie

Es posible que haya notado algunos caracteres sin sentido en el monitor en serie durante algunos de sus proyectos. Esto generalmente se debe a no configurar el monitor serie a la misma velocidad en baudios que el Serial.begin (XXXX) tarifa.

Muchas guías sugieren iniciar la conexión en serie a una velocidad en baudios de 115200 para un proyecto como este. Intenté muchas combinaciones, y todas tenían diferentes grados de galimatías antes y después de los mensajes en serie. Según varias publicaciones en el foro, esto podría deberse a un problema de compatibilidad de software o placa defectuosa. Como no afecta demasiado el proyecto, elijo fingir que no está sucediendo.

Si tiene problemas con el monitor serie, pruebe diferentes velocidades de transmisión y vea cuál funciona mejor para usted.

Paso 4: Conexión a wifi

Ahora cree una función para conectarse a su red Wi-Fi.

void connectToWifi () Serial.print ("Conexión a: SSID NAME"); // descomenta la siguiente línea para mostrar el nombre SSID //Serial.print(ssid); WiFi.begin (ssid, contraseña); Serial.println (""); // imprime una línea vacía Serial.print ("Intentando conectarse:"); // intenta conectarte durante 10 segundos int i = 10; while (WiFi.status ()! = WL_CONNECTED && i> = 0) delay (1000); Serial.print (i); Serial.print (","); yo--;  Serial.println (""); // imprime una línea vacía // imprime el resultado de la conexión if (WiFi.status () == WL_CONNECTED) Serial.print ("Connected."); Serial.println (""); // imprime una línea vacía Serial.print ("Dirección IP de NodeMCU:"); Serial.println (WiFi.localIP ());  else Serial.println ("Error de conexión - verifique sus credenciales o conexión");  

Este método intenta conectarse a su red diez veces con un segundo en el medio. El éxito o el fracaso de la conexión se imprime en el monitor serie.

Paso 5: llamar al método de conexión

En este momento, el connectToWifi () nunca se llama. Agregue una llamada a su función de configuración entre “Botón presionado” mensaje y enviando el tablero a dormir.

connectToWifi (); 

En caso de que se pregunte dónde encaja esto, debería verse así:


En la parte superior del boceto, reemplace el ssid y contraseña variables con sus credenciales de Wi-Fi. Guarda tu boceto y súbelo a la pizarra.

Ahora, cuando la placa se inicia, intentará conectarse a su red Wi-Fi, antes de volver a la función de configuración. Ahora, configuremos la integración IFTTT.

Paso 6: Configuración de la integración IFTTT

IFTTT permite la integración con una amplia gama de servicios web. Lo utilizamos en nuestro tutorial de LED de torre de PC con Wi-Fi para enviar una alerta cada vez que se recibe un nuevo correo electrónico. Hoy lo usaremos para enviar un tweet con solo presionar un botón.

Navega hasta el Mis applets página y seleccione Applet nuevo

Haga clic en +esta y conectarse a Webhooks. Seleccionar “Recibir una solicitud web” y nombra tu evento. Mantenlo simple! Anote el nombre del evento, deberá agregarlo a su código NodeMCU más adelante. Hacer clic “Crear disparador”.


Ahora selecciona +ese. Busque el Gorjeo servicio y conectarse a él; deberá autorizarlo para publicar en su cuenta de Twitter. Seleccionar “Publica un tweet” y elige tu mensaje.


La siguiente pantalla le pedirá que revise el applet. Haga clic en finalizar. Eso es!

Paso 7: Agregar credenciales IFTTT al Código

De vuelta en el IDE de Arduino, deberá agregar su clave API IFTTT y el nombre del evento a sus variables definidas. Para encontrar la clave API, navegue hasta Mis applets y seleccione Webhooks bajo la Servicios lengüeta. Seleccionar Documentación para acceder a tu clave.

Copie la clave y el nombre del evento en su código, reemplazando los nombres temporales configurados para ellos.

#define IFTTT_API_KEY "IFTTT_KEY_GOES_HERE" #define IFTTT_EVENT_NAME "IFTTT_EVENT_NAME_HERE" 

Tenga en cuenta que las comillas invertidas deben permanecer, solo reemplazar el texto.

Entre llamar al connectToWifi () y enviando la placa a dormir, cree una instancia del objeto de biblioteca IFTTTWebhook. El LED señala la finalización de la tarea antes de que el sueño profundo comience nuevamente.

// recién conectado al Wi-Fi IFTTTWebhook hook (IFTTT_API_KEY, IFTTT_EVENT_NAME); hook.trigger (); pinMode (ledPin, OUTPUT); digitalWrite (ledPin, HIGH); retraso (200); digitalWrite (ledPin, LOW); // ahora enviando la tabla a dormir 

Llamar al disparador en el gancho El objeto se dispara desde el applet IFTTT y debe publicarse en su cuenta de Twitter. Guarda tu boceto y súbelo. Ahora debería tener un botón de Twitter totalmente funcional.

Si parece que no funciona, revise cuidadosamente su código y sus credenciales para detectar errores. Si realmente te quedas atascado, obtén el código completo de arriba y compáralo con el tuyo.

¡Hecho! ¿Cómo podría mejorarlo más??

Esta es una versión básica de un botón de Wi-Fi, pero hay muchas formas en que podría mejorarse. Para simplificar, la conexión USB se utiliza aquí para la alimentación. Una batería lo haría completamente móvil, y un estuche que sostenga el circuito sería el proyecto de impresión 3D para principiantes perfecto.

A pesar de utilizar el sueño profundo, es posible que la batería se agote rápidamente. Hay muchos consejos de ahorro de energía de Arduino que ayudan en este tipo de proyectos. Si bien es más difícil que este tutorial, si creó su propio Arduino consciente de la energía desde cero, un botón de Wi-Fi con batería podría durar meses!

Este proyecto sería perfecto para un control remoto para aplicaciones domésticas inteligentes. Ya hay una cantidad considerable de aplicaciones de domótica 10 de las mejores recetas de IFTTT para la automatización del hogar inteligente 10 de las mejores recetas de IFTTT para la automatización del hogar inteligente Las recetas correctas de IFTTT para su hogar inteligente pueden ahorrarle tiempo, esfuerzo y energía. Aquí hay diez de nuestros favoritos para comenzar. disponible en IFTTT. Una vez que tenga lo básico, puede usar casi cualquier sensor o interruptor para activar prácticamente cualquier servicio que pueda imaginar.

Haber de imagen: Vadmary / Depositphotos




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.