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

Construya un Sistema Rápido y Fiable de Detección de Incendios con Samsung SAMIIO, Arduino UNO y Raspberry Pi

Este tutorial le guía en la creación de un sistema compacto de detección de incendios IoT que transmite lecturas de sensor de llama a Samsung SAMI vía WebSockets, usando un Arduino UNO y una Raspberry Pi.

Emplearemos un sensor de llama IR simple y estándar, subiremos un sketch ligero al Arduino, y ejecutaremos un script Node.js en la Raspberry Pi que reenvía los datos a SAMI.

Requisitos Previos

Para este tutorial debe estar familiarizado con las APIs básicas de SAMI.

Arquitectura

El diagrama siguiente ilustra el flujo de alto nivel:

Componentes de software:

Descargue el software ahora.

Si no tiene una Raspberry Pi, aún puede seguir los pasos. Conecte el Arduino a un ordenador con acceso a internet y ejecute el script Node.js en esa máquina en su lugar.

Paso 1: Cree y Conecte un Nuevo Tipo de Dispositivo

  1. Inicie sesión en el Portal de Desarrolladores SAMI. Si no tiene cuenta Samsung, créela ahora.
  2. Haga clic en "+ New Device Type".
  3. Nombre el tipo de dispositivo "Flame Sensor" y asigne un identificador único como "com.example.iot.flame".
  4. Haga clic en "Create Device Type" y proceda a la página de tipos de dispositivo.

Ahora cree un Manifiesto para el tipo de dispositivo "Flame Sensor".

  1. En la columna izquierda, haga clic en "Flame Sensor".
  2. Navegue a "Manifest" y haga clic en "+ New Version".
  3. Introduzca onFire como Nombre de Campo y elija Boolean como Tipo de Dato.
  4. Haga clic en "Save" y luego "Next: Actions".
  5. Omita Actions para este tutorial y haga clic en "Save New Manifest".

Un Manifiesto Simple se aprueba automáticamente. No publique este tipo de dispositivo, ya que está destinado únicamente para propósitos de tutorial.

Finalmente, conecte un nuevo dispositivo Flame Sensor vía el Portal de Usuario:

  1. Inicie sesión en el Portal de Usuario SAMI.
  2. En el panel, haga clic para conectar un nuevo dispositivo.
  3. Elija el tipo de dispositivo "Flame Sensor" que acaba de crear.
  4. Haga clic en "Connect Device…". Volverá al panel.
  5. Haga clic en el icono de ajustes del dispositivo añadido. En el popup, seleccione "GENERATE DEVICE TOKEN…".
  6. Copie el device ID y device token mostrados – los necesitará en el código.

Paso 2: Configure el Arduino

Cablee el sensor de llama IR al Arduino como se muestra en el diagrama anterior. Luego suba el siguiente sketch (read_flame_sensor.ino) usando el IDE de Arduino. El sketch lee el sensor cada 5 segundos (ajustable) y envía el valor digital al puerto serie. En SAMI, "0" indica fuego detectado; "1" significa sin fuego.

/* read_flame_sensor.ino */
// Retardo entre lecturas
const int delayBetweenReads = 5000; // 5 segundos
// Pin del sensor detector de llama
const int flameDigitalPinIn = 2;

void setup() {
    // Inicializar comunicación serie a 9600 baudios
    Serial.begin(9600);
    pinMode(flameDigitalPinIn, INPUT);
}

void loop() {
    // HIGH (1) = sin fuego, LOW (0) = fuego detectado
    int flameDigitalReading = digitalRead(flameDigitalPinIn);
    Serial.println(String(flameDigitalReading));
    delay(delayBetweenReads);
}

Paso 3: Configure la Raspberry Pi

Conecte la Raspberry Pi a un monitor, ratón y teclado. Asegúrese de que tenga una conexión Ethernet o Wi‑Fi funcional y que el OS esté actualizado:

  1. $ sudo apt-get update
  2. $ sudo apt-get upgrade

Si Node.js no está instalado aún, instale la versión compatible con ARM y luego añada los paquetes requeridos vía npm:

  1. $ npm install serialport
  2. $ npm install ws

Conecte el puerto serie del Arduino a un puerto USB de la Raspberry Pi.

Descargue el script Node.js (send_data_to_sami.js) y reemplace los valores de marcador de posición para device_id y device_token con las credenciales que copió anteriormente.

/* send_data_to_sami.js */
var webSocketUrl = "wss://api.samsungsami.io/v1.1/websocket?ack=true";
var device_id = "YOUR_DEVICE_ID";
var device_token = "YOUR_DEVICE_TOKEN";
var isWebSocketReady = false;
var ws = null;
var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
var sp = new SerialPort("/dev/ttyACM0", {
    baudrate: 9600,
    parser: serialport.parsers.readline("\n")
});
var WebSocket = require('ws');

/**
 * Obtiene la hora actual en milisegundos
 */
function getTimeMillis(){
    return parseInt(Date.now().toString());
}

// Establecer conexión WebSocket y registrar dispositivo
ws = new WebSocket(webSocketUrl, {
    headers: {
        "Authorization": `Bearer ${device_token}`
    }
});
ws.on("open", () => {
    isWebSocketReady = true;
    register();
});

function register() {
    var registerMsg = {
        "topic": "sami/device/register",
        "data": {
            "deviceId": device_id
        }
    };
    ws.send(JSON.stringify(registerMsg));
}

sp.on("data", (data) => {
    if (isWebSocketReady) {
        var message = {
            "topic": "sami/device/telemetry",
            "data": {
                "onFire": data.trim() === "0"
            }
        };
        ws.send(JSON.stringify(message));
    }
});

Una vez que el script esté corriendo, las lecturas de su sensor de llama se transmitirán a SAMI en tiempo real.

Para más detalle, consulte el tutorial completo: Haga un detector de incendios en minutos con Samsung SAMIIO, Arduino UNO y Raspberry Pi.

Proceso de manufactura

  1. Construya un Detector de Llanto de Bebé Económico con Raspberry Pi – Guía DIY
  2. Construye un sistema aeropónico automatizado con Raspberry Pi y sensor de humedad
  3. Construya un robot con Raspberry Pi y Python: Guía completa
  4. Construya un robot con streaming de vídeo controlado por Internet con Arduino y Raspberry Pi
  5. Construye un reloj en tiempo real con Arduino para horarios de oración islámica
  6. Controla tu Roomba Create 2 con Arduino y Android: Guía Completa
  7. Cómo mostrar imágenes en una pantalla TFT LCD de 1.17 pulgadas con Arduino UNO
  8. Control Preciso de Servo con Arduino y MPU6050 (SG90 / MG996R)
  9. Módulo GPS u-blox LEA‑6H 02: Guía de integración con Arduino y Python
  10. Dominando reconocimiento y síntesis de voz en Arduino Due
  11. Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso