Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Een Snel, Betrouwbare Brandsdetectiesysteem Bouwen met Samsung SAMIIO, Arduino UNO & Raspberry Pi

Deze tutorial begeleidt u door het maken van een compact IoT-brandsdetectiesysteem dat vlamsensor-metingen naar Samsung SAMIIO streamt via WebSockets, met een Arduino UNO en Raspberry Pi.

We zullen een simpele, off-the-shelf IR-vlamsensor gebruiken, een lichtgewicht sketch uploaden naar de Arduino, en een Node.js-script draaien op de Raspberry Pi dat de data naar SAMI doorstuurt.

Vereisten

Voor deze tutorial moet u bekend zijn met de basis SAMI-API's.

Architectuur

Het onderstaande diagram illustreert de high-level flow:

  • Raspberry Pi met netwerkconnectiviteit
  • Arduino UNO met een breadboard
  • IR-vlamsensor
  • USB & voedingskabels, plus breadboard-bedrading

Softwarecomponenten:

  • Arduino-sketch draaiend op de UNO
  • Node.js-script draaiend op de Raspberry Pi

Download de software nu.

Als u geen Raspberry Pi heeft, kunt u de stappen nog steeds volgen. Verbind de Arduino met een computer met internettoegang en draai het Node.js-script op die machine in plaats daarvan.

Stap 1: Een Nieuw Apparaattype Maken en Verbinden

  1. Meld u aan bij de SAMI Developer Portal. Als u geen Samsung-account heeft, maak er nu een aan.
  2. Klik op "+ New Device Type".
  3. Noem het apparaattype "Flame Sensor" en geef een unieke identifier zoals "com.example.iot.flame".
  4. Klik op "Create Device Type" en ga naar de device types-pagina.

Maak nu een Manifest voor het "Flame Sensor"-apparaattype.

  1. In de linkerkolom, klik op "Flame Sensor".
  2. Navigeer naar "Manifest" en klik op "+ New Version".
  3. Voer onFire in als Field Name en kies Boolean als Data Type.
  4. Klik op "Save" en vervolgens "Next: Actions".
  5. Sla Actions over voor deze tutorial en klik op "Save New Manifest".

Een Simple Manifest wordt automatisch goedgekeurd. Publiceer dit apparaattype niet, omdat het uitsluitend bedoeld is voor tutorial-doeleinden.

Ten slotte, koppel een nieuwe Flame Sensor-apparaat via de User Portal:

  1. Meld u aan bij de SAMI User Portal.
  2. Op het dashboard, klik om een nieuw apparaat te koppelen.
  3. Kies het "Flame Sensor"-apparaattype dat u zojuist creëerde.
  4. Klik op "Connect Device…". U keert terug naar het dashboard.
  5. Klik op het instellingen-icoon van het toegevoegde apparaat. In de pop-up, selecteer "GENERATE DEVICE TOKEN…".
  6. Kopieer het apparaat-ID en apparaat-token die getoond worden – u heeft ze in de code nodig.

Stap 2: De Arduino Instellen

Bedraad de IR-vlamsensor naar de Arduino zoals getoond in het diagram hierboven. Upload vervolgens de volgende sketch (read_flame_sensor.ino) met de Arduino IDE. De sketch leest de sensor elke 5 seconden (aanpasbaar) en stuurt de digitale waarde naar de seriële poort. In SAMI betekent "0" vuur gedetecteerd; "1" betekent geen vuur.

/* read_flame_sensor.ino */ // Vertraging tussen reads const int delayBetweenReads = 5000; // 5 seconden // Vlamsensor-pin const int flameDigitalPinIn = 2; void setup() { // Initialiseer seriële communicatie op 9600 baud Serial.begin(9600); pinMode(flameDigitalPinIn, INPUT); } void loop() { // HIGH (1) = geen vuur, LOW (0) = vuur gedetecteerd int flameDigitalReading = digitalRead(flameDigitalPinIn); Serial.println(String(flameDigitalReading)); delay(delayBetweenReads); } 

Stap 3: De Raspberry Pi Instellen

Sluit de Raspberry Pi aan op een monitor, muis, en toetsenbord. Zorg dat het een werkende Ethernet- of Wi‑Fi-verbinding heeft en dat de OS up-to-date is:

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

Als Node.js nog niet geïnstalleerd is, installeer de ARM-compatibele versie en voeg de vereiste pakketten toe via npm:

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

Sluit de seriële poort van de Arduino aan op een USB-poort van de Raspberry Pi.

Download het Node.js-script (send_data_to_sami.js) en vervang de placeholder-waarden voor device_id en device_token met de credentials die u eerder kopieerde.

/* 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'); /** * Haalt de huidige tijd in milliseconden op */ function getTimeMillis(){ return parseInt(Date.now().toString()); } // WebSocket-verbinding tot stand brengen en apparaat registreren 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)); } }); 

Eenmaal het script draait, worden uw vlamsensor-metingen in realtime naar SAMI gestreamd.

Voor meer detail, raadpleeg de volledige tutorial: Make a fire detector in minutes with Samsung SAMIIO, Arduino UNO and Raspberry Pi.

Productieproces

  1. Een Budget-vriendelijke Raspberry Pi Babyhuil-detector Bouwen – DIY Handleiding
  2. Een geautomatiseerd aeroponisch systeem bouwen met Raspberry Pi en vochtigheidssensor
  3. Een Robot Bouwen met Raspberry Pi en Python: Een Complete Gids
  4. Bouw een Internet-gecontroleerde Video-streamende Robot met Arduino & Raspberry Pi
  5. Bouw een Arduino Real-Time Clock voor Islamitische Gebedstijden
  6. Bestuur Je Roomba Create 2 Met Arduino En Android: Stapsgewijze Handleiding
  7. Afbeeldingen Weergeven op een 1,17-inch TFT LCD met Arduino UNO
  8. Arduino & MPU6050: Precieze Servomotor Besturing met SG90 & MG996R
  9. u-blox LEA‑6H GPS Module: Arduino & Python Integratie Handleiding
  10. Spraakherkenning & Synthese Meesteren op Arduino Due
  11. Een 8×8 LED-matrix beheersen met Arduino Uno: Stap-voor-stap handleiding