Tabla de contenido:
- Paso 1: preparación
- Paso 2: Gráfico de conexión
- Paso 3: Código
- Paso 4: Configuración del cliente MQTT
Video: Proyecto Iot NodeMCU MQTT - Botón de cambio: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Kit de inicio OSOYOO NodeMCU IOT
Síganos en Facebook, encuentre nuestro nuevo artículo lanzado y comparta su idea y video sobre cómo usar creativamente nuestros productos. ¡Puede obtener un reembolso en efectivo o un obsequio de parte nuestra! Facebook:
Youtube:
En esta lección, conectaremos un botón de cambio al NodeMCU y enviaremos el estado del cambio a un agente MQTT. Cuando se presiona el botón, NodeMCU publicará el estado del botón "presionado" al broker MQTT y el cliente MQTT se suscribirá a estos mensajes. Cuando se suelta el pulsador, se enviará "no pulsado".
Paso 1: preparación
Hardware:
Placa NodeMCU x 1
Botón de interruptor x 1
Resistencia de 1K x 1
Placa de pruebas x 1
Cables de puente
Software:
IDE de Arduino (versión 1.6.4+)
Paquete de placa ESP8266 y controlador de puerto serie
Cliente MQTT (MQTTBox aquí)
Biblioteca de Arduino: PubSubClient
Paso 2: Gráfico de conexión
En esta lección, usamos D2 (GPIO4) para controlar el interruptor, configure el hardware de acuerdo con el gráfico de conexión.
Nota: la resistencia de 1k se usa como resistencia desplegable, en un circuito de este tipo, cuando el interruptor está cerrado, la entrada NodeMCU está en un valor lógico alto, pero cuando el interruptor está abierto, la resistencia desplegable tira del voltaje de entrada a tierra (valor lógico cero), evitando un estado indefinido en la entrada.
Paso 3: Código
Copie el siguiente código en Arduino IDE:
/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Utilice el NodeMCU envía el estado del botón de cambio al cliente MQTT a través de WiFi * URL del tutorial: * CopyRight www.osoyoo.com * / #include #include
int BUTTON_PIN = D2; // el botón está conectado al pin GPIO D1
// Actualícelos con valores adecuados para su red. const char * ssid = "********"; // ponga su ssid wifi aquí const char * password = "********"; // ponga su contraseña wifi aquí. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
Cliente PubSubClient (espClient); long lastMsg = 0; char msg [50];
void setup_wifi () {
retraso (100); // Empezamos por conectarnos a una red WiFi Serial.print ("Conectando a"); Serial.println (ssid); WiFi.begin (ssid, contraseña); while (WiFi.status ()! = WL_CONNECTED) {retraso (500); Serial.print ("."); } semilla aleatoria (micros ()); Serial.println (""); Serial.println ("WiFi conectado"); Serial.println ("dirección IP:"); Serial.println (WiFi.localIP ()); }
devolución de llamada void (char * topic, byte * payload, unsigned int length)
{} // finalizar la devolución de llamada
void reconect () {
// Repetir hasta que nos volvamos a conectar while (! Client.connected ()) {Serial.print ("Intentando conexión MQTT…"); // Cree una ID de cliente aleatoria String clientId = "ESP8266Client-"; clientId + = String (aleatorio (0xffff), HEX); // Intente conectarse // si su agente MQTT tiene ID de cliente, nombre de usuario y contraseña // por favor cambie la siguiente línea a if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("conectado"); // una vez conectado al broker MQTT, subscribe el comando si hay algún cliente.subscribe ("OsoyooCommand"); } else {Serial.print ("fallido, rc ="); Serial.print (client.state ()); Serial.println ("inténtelo de nuevo en 5 segundos"); // Espere 5 segundos antes de volver a intentarlo (5000); }}} // finaliza la reconexión ()
configuración vacía () {
Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (devolución de llamada); pinMode (BUTTON_PIN, INPUT); }
bucle vacío () {
if (! client.connected ()) {reconectar (); } client.loop (); largo ahora = millis (); estado int; // enviar mensaje cada 2 segundos if (ahora - lastMsg> 2000) {lastMsg = now; status = digitalRead (BUTTON_PIN); String msg = "Estado del botón:"; if (estado == ALTO) {msg = msg + "Presionado"; char mensaje [58]; msg.toCharArray (mensaje, 58); Serial.println (mensaje); // publicar los datos del sensor en el intermediario MQTT client.publish ("OsoyooData", mensaje); } else {msg = msg + "No presionar"; char mensaje [58]; msg.toCharArray (mensaje, 58); Serial.println (mensaje); // publicar los datos del sensor en el intermediario MQTT client.publish ("OsoyooData", mensaje); }}}
Edite el código para que se ajuste a su propia configuración de WiFi y MQTT de la siguiente manera: 1) Configuración de punto de acceso: busque la línea de código debajo, ingrese su propio ssid y contraseña allí.
const char * ssid = “your_hotspot_ssid”; const char * contraseña = “your_hotspot_password”;
2) Configuración de la dirección del servidor MQTT: puede usar su propia URL o dirección IP del agente MQTT para establecer el valor por encima de mqtt_server. También puede utilizar algún famoso servidor MQTT gratuito para probar el proyecto, como “broker.mqtt-dashboard.com”, “iot.eclipse.org”, etc.
const char * mqtt_server = “broker.mqtt-dashboard.com”;
3) Configuración del cliente MQTT Si su agente MQTT requiere autenticación de ID de cliente, nombre de usuario y contraseña, debe cambiar
si (client.connect (clientId.c_str ()))
Para
if (client.connect (clientId, userName, passWord)) // ponga su clientId / userName / passWord aquí
De lo contrario, manténgalos como predeterminados. Después de hacer eso, elija el tipo de placa correspondiente y el tipo de puerto como se muestra a continuación, luego cargue el boceto en NodeMCU.
- Placa: "NodeMCU 0.9 (módulo ESP-12)"
- Frecuencia de CPU: "80 MHz" Tamaño de flash:"
- 4M (3M SPIFFS)”
- Velocidad de subida:”115200 ″
- Puerto: elija su propio puerto serie para su NodeMCU
Paso 4: Configuración del cliente MQTT
Si no sabe cómo configurar el cliente MQTT, visite nuestro último artículo:
Configuración de temas: Tema para publicar: OsoyooCommand
Tema para suscribirse: OsoyooData
Resultado de ejecución
Una vez realizada la carga, si la configuración del nombre y la contraseña del punto de acceso wifi está bien y el agente MQTT está conectado, abra el Monitor en serie, verá el siguiente resultado: Siga presionando este botón, el Monitor en serie mostrará el "Estado del botón: Presionado" cada 2 segundos; una vez que suelte este botón, el monitor en serie mostrará el mensaje "Estado del botón: no presionado" cada 2 segundos.
Recomendado:
¡Cambio rápido por menos de $ 50! Cambio rápido ajustable Kazeshifter Arduino: 7 pasos
¡Cambio rápido por menos de $ 50! Kazeshifter Arduino Ajustable Quick Shifter: ¡Hola, amantes de las Superbikes o de las motocicletas! En este instructivo, compartiré cómo hacer tu propio Quick Shifter por poco dinero. ya usando el sistema de inyección de combustible, en algún momento
Cambio del ventilador en su escritorio: 10 pasos
Cambio del ventilador en su escritorio: esto se hizo para intentar ayudar a alguien que es nuevo en el trabajo en un escritorio. ¿Tu ventilador hace demasiado ruido? ¿La computadora se está poniendo demasiado caliente? Esas pueden ser algunas de las razones por las que debería cambiar su ventilador
Graficar el cambio de temperatura debido al cambio climático en Python: 6 pasos
Graficar el cambio de temperatura del cambio climático en Python: el cambio climático es un gran problema. Y mucha gente no sabe cuánto ha subido. En este instructable, graficaremos el cambio de temperatura en el clima debido al cambio climático. Para obtener una hoja de trucos, puede ver el archivo de Python a continuación
Proyecto Totoro - IoT, MQTT y ESP01: 7 pasos (con imágenes)
Totoro Project - IoT & MQTT & ESP01: The Totoro Project es un buen proyecto de IoT que puede copiar en muchas otras formas diferentes.Utilizando la placa ESP01, con el protocolo MQTT, puede comunicar el estado del botón al MQTT Broker (en mi caso AdafruitIO). Una guía útil para MQTT y Ad
¡Quemador alimentado por USB! Este proyecto se puede quemar a través de plásticos / madera / papel (el proyecto divertido también tiene que ser de madera muy fina): 3 pasos
¡Quemador alimentado por USB! Este proyecto se puede quemar a través de plásticos / madera / papel (el proyecto divertido también tiene que ser de madera muy fina): ¡NO HAGA ESTO USANDO USB! Descubrí que puede dañar tu computadora por todos los comentarios. mi computadora está bien aunque. Utilice un cargador de teléfono de 600ma 5v. Usé esto y funciona bien y nada se puede dañar si usa un enchufe de seguridad para detener la energía