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

Maak binnen enkele minuten een branddetector met Samsung SAMIIO, Arduino UNO en Raspberry Pi

Laten we een IoT-apparaat bouwen dat vlamsensorgegevens naar SAMI stuurt met behulp van SAMI's WebSockets. Het IoT-apparaat bestaat uit een kant-en-klare sensor, Arduino UNO en Raspberry Pi.

In deze implementatie wordt een Simple Manifest gebruikt om snel een nieuw apparaattype aan te maken. Vervolgens kunt u het IoT-apparaat eenvoudig verbinden met SAMI en beginnen met het verzenden van sensorgegevens van het apparaat naar SAMI.

Vereisten

”’Voor deze tutorial moet je bekend zijn met de basis SAMI API's. ”’

Architectuur

Het paarse diagram hieronder toont de architectuur op hoog niveau:

We gebruiken de volgende hardwarecomponenten:

  • Raspberry Pi met een netwerkverbinding
  • Arduino UNO met een breadboard
  • IR-vlamsensor
  • USB- en stroomkabels, plus bedrading voor het breadboard

We zullen de volgende software schrijven:

  • Een Sketch-programma op de Arduino
  • Een Node.js-script dat draait op de Raspberry Pi

Download de software nu.

”‘Als je geen Raspberry Pi hebt, kun je deze tutorial nog steeds doornemen. Sluit je Arduino UNO aan op je computer die een internetverbinding heeft en voer het Node.js-script uit op de computer in plaats van op de Raspberry Pi.”’

Stap 1:een nieuw apparaattype maken en verbinden

Ga naar de Developer Portal om een ​​privé-apparaattype aan te maken.

  1. Log eerst in op de SAMI Developer Portal. Als je geen Samsung-account hebt, kun je er in deze stap een maken.
  2. Klik op "+ Nieuw apparaattype".
  3. Noem dit apparaattype 'Vlamsensor' en geef het de unieke naam, zoals 'com.example.iot.flame'.
  4. Klik op 'Apparaattype maken'. Hiermee wordt het apparaattype gemaakt en gaat u naar de pagina met apparaattypen.

Laten we nu een manifest maken voor ons apparaattype "Vlamsensor".

  1. Klik op 'Vlamsensor' in de linkerkolom.
  2. Klik op "Manifest" en vervolgens op "+ Nieuwe versie".
  3. Voer "onFire" in als veldnaam en "Boolean" voor gegevenstype.
  4. Klik op "Opslaan" en vervolgens op "Volgende:acties".
  5. Omzeil acties voor deze tutorial en klik op "Save New Manifest".

”’Een Eenvoudig Manifest wordt automatisch goedgekeurd. Publiceer dit apparaattype niet, aangezien het alleen voor zelfstudiedoeleinden is.'

Ga ten slotte naar het gebruikersportaal om een ​​nieuw Vlamsensor-apparaat aan te sluiten:

  1. Meld u aan bij de SAMI-gebruikersportal.
  2. Klik op het dashboard om een ​​nieuw apparaat te verbinden.
  3. Kies het apparaattype "Vlamsensor" dat u zojuist hebt gemaakt.
  4. Klik op "Apparaat verbinden...". U wordt teruggebracht naar het dashboard.
  5. Klik op het instellingenpictogram van het apparaat dat u zojuist hebt toegevoegd. Klik in de pop-up op "GENEREER APPARAATTOKEN...".
  6. Kopieer de apparaat-ID en apparaattoken op dit scherm. Deze gebruik je in de code.

Stap 2:de Arduino instellen

Laten we nu de sensoren op de Arduino aansluiten.

De twee sensoren zijn bedraad zoals in de Frizting-afbeelding hierboven.

Upload vervolgens het Sketch-programma (read_flame_sensor.ino ) naar de Arduino UNO met behulp van de Arduino IDE. Deze code leest één digitale waarde van de IR-vlamsensor en stuurt deze vervolgens elke 5 seconden naar de seriële poort (u kunt deze parameter later in de code wijzigen, aangezien SAMI snelheidslimieten heeft voor het aantal berichten per dag). Voor de digitale metingen betekent "0" dat er brand is gedetecteerd en "1" betekent geen brand.

Hier is read_flame_sensor.ino . De code is duidelijk.

// Vertraging tussen lezen
const int delayBetweenReads =5000;//5s

// Voor vlamdetector senso const int flameDigitalPinIn =2;

void setup() {

// initialiseer seriële communicatie @ 9600 baud:

Serial.begin(9600);

pinMode(flameDigitalPinIn, INPUT);

}

void loop() {

// HOOG(1) betekent dat er geen brand is gedetecteerd

// LAAG (0) betekent dat er brand is gedetecteerd

int flameDigitalReading =digitalRead(flameDigitalPinIn); Serial.println(String(flameDigitalReading));

vertraging (delayBetweenReads);

}

Stap 3:de Raspberry Pi instellen

Sluit je Raspberry Pi aan op een monitor, muis en toetsenbord. Zorg ervoor dat een Ethernet- of WiFi-verbinding werkt en zorg ervoor dat het besturingssysteem up-to-date is:

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

Indien nog niet geïnstalleerd, installeer Node.js voor ARM en voeg vervolgens de pakketten serialport toe en ws via npm:

  1. $ npm seriële poort installeren
  2. $ npm install ws

Verbind nu de seriële poort van de Arduino met de USB op de Raspberry Pi.

Download ten slotte de Node.js-code (send_data_to_sami.js ) naar de Raspberry Pi. Vervang de tijdelijke aanduidingen in de code door de apparaattoken en apparaat-ID die u via de gebruikersportal hebt verzameld.

De Node.js-code wordt ook hieronder gegeven. Het brengt een bidirectionele WebSocket-verbinding tot stand tussen de Raspberry Pi en SAMI. Nadat de WebSocket-verbinding is geopend, register() methode registreert het apparaat bij de WebSocket. Elke keer leest de code één datapunt van de seriële poort, verpakt het in een bericht en stuurt het bericht naar SAMI via WebSocket.

var webSocketUrl =“wss://api.samsungsami.io/v1.1/websocket?ack=true”;
var device_id =“”; var device_token ="";

var isWebSocketReady =false; var ws =null;

var seriële poort =vereisen ("seriële poort")

var SerialPort =seriële poort.SerialPort;

var sp =nieuwe SerialPort(“/dev/ttyACM0”, {

baudrate:9600,

parser:serialport.parsers.readline(“\n”)

});

var WebSocket =vereisen(‘ws’);

/**

* Krijgt de huidige tijd in milli's

*/

functie getTimeMillis(){

return parseInt(Date.now().toString());

}

Voor meer details:maak binnen enkele minuten een branddetector met Samsung SAMIIO, Arduino UNO en Raspberry Pi


Productieproces

  1. Eenvoudige doe-het-zelf huilende babydetector met Raspberry Pi
  2. Aerocultuur met Raspberry Pi en vochtigheidssensor
  3. Botten bouwen met Raspberry Pi en Python
  4. Bouw uw internetgestuurde videostreamingrobot met Arduino en Raspberry Pi
  5. Arduino klok met islamitische gebedstijden
  6. Een Roomba-robot besturen met Arduino en Android-apparaat
  7. Een afbeelding weergeven op een LCD TFT-scherm met Arduino UNO!
  8. Besturing van servomotor met Arduino en MPU6050
  9. u-blox LEA-6H 02 GPS-module met Arduino en Python
  10. Spraakherkenning en synthese met Arduino
  11. Een LED-matrix besturen met Arduino Uno