Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Componentes y materiales

Componente Cantidad
Arduino UNO 1
Espressif ESP8266 ESP-01 1 Módulo WiFi

Aplicaciones y servicios online

Sobre el proyecto

En este proyecto aprenderemos a crear una conexión entre un servicio de internet y placas Arduino. Al final podrás:

Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Google Assistant & IFTTT Applets

Google Assistant es un asistente virtual potenciado por IA, disponible en móviles y dispositivos smart home. A diferencia de Google Now, mantiene conversaciones bidireccionales, reconoce mejor el habla y responde rápido y correctamente. Interacción principal por voz natural (también teclado). Puede buscar en Internet, programar eventos/alarmas, ajustar hardware, mostrar info de tu cuenta Google. Google anunció que podrá identificar objetos, recopilar info visual via cámara, compras, envío de dinero, identificar canciones.

IFTTT (If This Then That) es un servicio web gratuito para crear cadenas de declaraciones condicionales simples llamadas applets. Un applet se dispara por cambios en otros servicios (Gmail, Facebook, Telegram, Instagram, Pinterest). Ejemplo: enviar email si tuiteas con hashtag, copiar foto de Facebook a archivo si te etiquetan. Disponible en iOS y Android. En 2015, usuarios creaban ~20 millones de "recetas" al día.

Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Webhook & JSON

Un webhook en desarrollo web es un método para aumentar o alterar el comportamiento de una página/app web con callbacks personalizados. Estos callbacks pueden ser mantenidos por terceros no afiliados al origen. Término acuñado por Jeff Lindsay en 2007.

JSON (JavaScript Object Notation) es un formato estándar abierto que usa texto legible para transmitir objetos de datos con pares atributo-valor y arrays. Muy común en comunicación asíncrona navegador-servidor, reemplazo de XML en algunos sistemas AJAX.

Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Google Assistant → Arduino

Objetivo: controlar pines I/O, PWM, puerto serie, etc. del Arduino enviando una cadena desde Google Assistant al puerto serie del Arduino.

  1. Definir frases específicas para Google Assistant
  2. Crear applet en IFTTT conectando Google Assistant con nuestra base de datos
  3. Leer datos de la base de datos con ESP8266 y enviarlos al Arduino por Serial

Circuito

Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Implementación

  1. Dispositivo para Google Assistant: Ve a assistant.google.com para ver dispositivos compatibles. Usamos un teléfono Android.
  2. Crear cuenta en IFTTT: ifttt.com → My Applets → New Applet.
  3. THIS (Disparador): Buscar "Google Assistant" → Elegir "Say a phrase with a number ingredient".
    Ejemplo de frase: "Set PWM of pin 9 to 255" → reemplazar "255" por #.
    Añadir más frases equivalentes: "PWM 9 to 255".
    Respuesta del Assistant: "The PWM is updated".
    Click "Create Trigger".
  4. THAT (Acción): Buscar "Webhooks" → "Make a web request".
    URL: tu servidor para recibir datos.
    Method: POST
    Content Type: application/json
    Body: {"Number":"{{NumberField}}"}
    Click "Create action".
Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Servidor y Base de Datos

Código de ejemplo para servidor que recibe datos de IFTTT y almacena en BD. Puedes modificar modelos según tus necesidades. Descargar desde aquí (enlace original).

Código ESP8266 & Arduino

Primero: código para ESP-01 que lee datos de la BD y los envía al Arduino por Serial.
Segundo: código para Arduino que recibe órdenes y las ejecuta (ej. cambiar PWM).

Librería ArduinoJson: Verificar instalación en Arduino IDE → Sketch → Include Library → Manage Libraries → buscar "ArduinoJson". Si no está, instalar.

Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

Código para ESP-01:

#include "ESP8266WiFi.h"
#include "ESP8266HTTPClient.h"
#include "ArduinoJson.h"

// Parámetros WiFi
const char* ssid = "TU_SSID";
const char* password = "TU_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Conectando...");
  }
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin("https://tu-ip/api/Home/GetAllApp"); // Tu endpoint
    int httpCode = http.GET();
    
    if (httpCode > 0) {
      String payload = http.getString();
      // TODO: Parsear JSON
      Serial.println(payload);
    }
    http.end();
  }
  delay(3000); // Consultar cada 3 segundos
}

Código para Arduino:

String inputString = "";
String buff;
bool stringComplete = false;
bool id;
int f, buf;
char x;

void setup() {
  Serial.begin(9600);
  inputString.reserve(200);
}

void loop() {
  if (stringComplete) {
    // Buscar "id" en el string recibido
    while (f < 100) {
      if (inputString.substring(f) == "id") {
        id = true;
        break;
      }
      f++;
    }
    
    if (id == true) {
      x = inputString.charAt(f + 4);
    }
    
    // Si id corresponde a comando PWM pin 9
    if (x == '4') {
      f = 0;
      while (f < 100) {
        if (inputString.substring(f) == "number") {
          f += 9;
          for (int i = 0; i < 3; i++) {
            if (inputString.charAt(f + i) == '"') i = 3;
            else buff += inputString.charAt(f + i);
          }
          buf = buff.toInt();
          analogWrite(9, buf); // Ejecutar PWM en pin 9
          break;
        }
        f++;
      }
    }
    
    inputString = "";
    stringComplete = false;
  }
}

void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') stringComplete = true;
  }
}
Controla tu Arduino con Google Assistant – Tutorial Completo Paso a Paso

¿Qué sigue?

Puedes mejorar el proyecto:

Proceso de manufactura

  1. Sistema de control de acceso integrado con QR, RFID y verificación de temperatura
  2. Mando universal Android con Arduino, 1Sheeld y control IR
  3. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  4. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  5. Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
  6. Control Preciso de Servo con Arduino y MPU6050 (SG90 / MG996R)
  7. Electrodomésticos activados por voz: Control Bluetooth con Google Assistant
  8. Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
  9. Dominando reconocimiento y síntesis de voz en Arduino Due
  10. ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050
  11. Sistema de control de asistencia RFID en tiempo real con Arduino y Google Sheets