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

Sistema de Entrada Doméstico Inteligente Inspirado en los Sith

Componentes y suministros

Particle Photon 2
Arduino UNO 1
Shield Adafruit Music Maker MP3 1
Sensor PIR Adafruit 1
LED (genérico) 2
Resistencia 220 ohm 2
Cables jumper 1
Altavoz 3W, 4 ohm 1
Protoboard (genérica) 2
Cargador USB Micro B 1
Cable USB-A a B 1
Header Macho 36 Posiciones 1

Herramientas y máquinas necesarias

Aplicaciones y servicios online

Sobre este proyecto

Mi hija es gran fan de Star Wars (aunque no ha visto las películas). Cuando le propuse un proyecto temático, aceptó encantada. No sé cuántas veces me ha hecho tocar la Marcha Imperial (tema de Darth Vader) con su disfraz para hacer una entrada triunfal. Así que decidimos: detectar automáticamente a alguien llegando a casa y reproducir la Marcha Imperial justo antes de que entre.

Proyecto sencillo, ideal para principiantes. Primera vez usando patrón publish/subscribe en la nube e integrando diferentes microcontroladores. Me encanta la simplicidad del Photon para soluciones cloud y la variedad de hardware para Arduino. Juntarlos fue fácil y rápido.

Paso 1: Montar el sensor

Tiempo: 10 min

Piezas: Photon, resistencia 220Ω, LED, sensor PIR, protoboard, cables macho/macho, cable USB Micro B

Conecta el LED al Photon: Photon en protoboard, resistencia entre GND y fila libre, pata larga LED a pin digital (usé D0), pata corta a la fila de la resistencia. El LED es opcional pero indica estado del sensor (el PIR no tiene indicador ni el Photon al publicar evento).

Conecta el PIR: monta en protoboard (uso headers hembra en ángulo recto para fijarlo verticalmente). Conecta GND a GND Photon, 5V a Vin Photon, señal a pin digital (usé D7). Verifica el datasheet para identificar correctamente 5V, GND y señal (varía por fabricante). Mi PIR funciona a 5V pero su pin de señal es 3.3V, compatible directo con Photon. Verifica que tu sensor sea 3.3V en señal.

Alimenta por USB Micro B (PC o enchufe). Abre Particle IDE, pega código del sensor (abajo), flashea al Photon.

Al pasar la mano, el LED se enciende. Revisa logs en Particle Dashboard para ver el evento publicado.

Paso 2: Montar el disparador (trigger)

Tiempo: 10 min

Piezas: Photon, resistencia 220Ω, LED, protoboard, cables macho/hembra

Conecta LED y resistencia igual que antes. Conecta cables macho a Vin, GND y pin digital (D7) del Photon. El pin digital irá a GPIO del Music Maker para disparar la música. Vin y GND alimentarán el Photon desde el Arduino.

Antes de conectar al Arduino, alimenta por USB, pega código trigger en Particle IDE, flashea (selecciona el dispositivo correcto al tener dos Photons).

Paso 3: Montar Arduino y Shield Music Maker

Tiempo: 20 min

Piezas: Arduino Uno, Shield Adafruit Music Maker, Photon, resistencia 220Ω, LED, mini protoboard, cables jumper, cable USB

Herramientas: Soldador

El shield trae headers que hay que soldar. Añadí headers macho encima para GPIO y alimentación del Photon (si tuviera headers hembra usaría cables macho/macho).

Conecta jumper del pin digital Photon a GPIO del shield (usé pin 7). Vin Photon a 5V shield, GND a GND shield.

Conecta altavoz a bornes del shield (derecho/izquierdo). Usé uno solo, recuperado de un juguete roto.

Conecta Arduino al PC, pega sketch Arduino (abajo) en Arduino IDE, sube.

¡Listo! Camina frente al sensor y espera a que empiece la música.

Sobre el código

Primera vez usando publish/subscribe. Muy fácil con Photon. En código sensor, cuando PIR va HIGH, enciendo LED y publico evento en Particle Cloud:

published = Particle.publish("motion-detected", NULL, 60, PRIVATE);

Inicialmente no era privado, pero recibía falsas alarmas de otros usuarios publicando eventos "motion". Cambié subscribe para solo mis dispositivos con MY_DEVICES:

Particle.subscribe("motion", soundAlarm, MY_DEVICES);

Para que subscribe limite a mis dispositivos, el publish debe ser PRIVATE.

El trigger llama al handler soundAlarm al recibir evento: enciende LED y pone HIGH el GPIO del Music Maker. El sketch Arduino detecta HIGH, espera 60 segundos (para aparcar, recoger cosas, entrar) y reproduce el MP3 de la tarjeta SD.

Desplegar el proyecto

Sensor en garaje junto a donde aparco. Trigger + Arduino + Music Maker + altavoz en encimera cocina (donde está mi hija al llegar). Ambos sitios tienen enchufes cerca para alimentación.

Código

Código Sensor (C/C++)

// LED en pin D0
int led = D0;
// PIR en pin D6
int pir = D6;
bool published;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(pir, INPUT);
  digitalWrite(led, LOW);
}

void loop() {
  if (digitalRead(pir) == HIGH) {
    digitalWrite(led, HIGH);
    published = Particle.publish("motion-detected", NULL, 60, PRIVATE);
    if (!published) {
      for (int i = 0; i < 10; i++) {
        digitalWrite(led, LOW); delay(500);
        digitalWrite(led, HIGH); delay(500);
      }
    }
  } else {
    digitalWrite(led, LOW);
  }
  delay(2000);
}

Código Trigger (C/C++)

int led = D0;
int trigger = D7;

void soundAlarm(const char *event, const char *data) {
  digitalWrite(led, HIGH);
  digitalWrite(trigger, HIGH);
  delay(2000);
  digitalWrite(trigger, LOW);
  digitalWrite(led, LOW);
}

void setup() {
  Particle.subscribe("motion", soundAlarm, MY_DEVICES);
  pinMode(led, OUTPUT);
  pinMode(trigger, OUTPUT);
}

void loop() { }

Código Arduino y Music Maker Shield (Arduino)

/************************************************************
 * Reproduce MP3 de tarjeta SD con Adafruit Music Maker shield
 * activado por Photon conectado a GPIO del shield.
 * Gracias a Adafruit por tutorial y librería.
 * https://learn.adafruit.com/adafruit-music-maker-shield-vs1053-mp3-wav-wave-ogg-vorbis-player/pinouts
 ************************************************************/
#include <SPI.h>
#include <Adafruit_VS1053.h>
#include <SD.h>

#define SHIELD_RESET -1
#define SHIELD_CS 7
#define SHIELD_DCS 6
#define CARDCS 4
#define DREQ 3

Adafruit_VS1053_FilePlayer musicPlayer = 
  Adafruit_VS1053_FilePlayer(SHIELD_RESET, SHIELD_CS, SHIELD_DCS, DREQ, CARDCS);

int photonPin = 7;

void setup() {
  musicPlayer.begin();
  SD.begin(CARDCS);
  musicPlayer.setVolume(1, 1); // Menor = más alto
  musicPlayer.GPIO_pinMode(photonPin, INPUT);
}

void loop() {
  if (musicPlayer.GPIO_digitalRead(photonPin) == HIGH) {
    delay(60000); // Espera 60 seg para entrar en casa
    musicPlayer.playFullFile("track001.mp3");
  }
  delay(500);
}

Esquemáticos

Proceso de manufactura

  1. Annoy-O-Bug: Construye un Juguete Compacto de LED y Zumbador con ATtiny85
  2. Partes Esenciales de las Máquinas de Sierra de Cinta de Doble Columna
  3. Dominando el diseño de piezas mecanizadas: Guía completa
  4. Tendencias del mercado en componentes aeroespaciales y de aeronaves de precisión
  5. Elementos Esenciales de una Comunicación de Crisis Efectiva
  6. Futuro de la Manufactura: Tendencias, Talento e Innovación
  7. El técnico del mañana: competencias, herramientas y roles en una fábrica digital
  8. Componentes Clave de una Máquina CNC Explicados
  9. Componentes Clave de un Sistema de Aire Comprimido Confiable
  10. Cómo la Modernización de Grúas Transforma Componentes Clave para un Rendimiento Óptimo
  11. Nanotecnología: La próxima frontera en la seguridad del IoT