Faça um detector de incêndio em minutos com Samsung SAMIIO, Arduino UNO e Raspberry Pi
Vamos construir um dispositivo IoT que envia dados do sensor de chama ao SAMI usando WebSockets do SAMI. O dispositivo IoT consiste em um sensor de prateleira, Arduino UNO e Raspberry Pi.
Nesta implementação, um Manifesto Simples é usado para criar um novo tipo de dispositivo rapidamente. Em seguida, você pode conectar facilmente o dispositivo IoT ao SAMI e começar a enviar dados do sensor do dispositivo ao SAMI.
Pré-requisitos
”’ Para este tutorial, você deve estar familiarizado com o APIs SAMI básicas . ”’
Arquitetura
O diagrama roxo abaixo mostra a arquitetura de alto nível:
Usamos os seguintes componentes de hardware:
- Raspberry Pi com uma conexão de rede
- Arduino UNO com uma placa de ensaio
- sensor de chama infravermelho
- cabos USB e de alimentação, além de fiação para a placa de ensaio
Vamos escrever o seguinte software:
- Um programa Sketch em execução no Arduino
- Um script Node.js em execução no Raspberry Pi
Baixe o software agora.
”’ Se você não tiver um Raspberry Pi, ainda pode trabalhar neste tutorial. Conecte seu Arduino UNO ao computador que tem conexão com a Internet e execute o script Node.js no computador em vez do Raspberry Pi. ”’
Etapa 1:Criar e conectar um novo tipo de dispositivo
Vá para o Portal do Desenvolvedor para criar um tipo de dispositivo privado.
- Primeiro, faça login no Portal do desenvolvedor SAMI. Se você não tem uma conta Samsung, pode criar uma nesta etapa.
- Clique em “+ Novo tipo de dispositivo”.
- Nomeie o tipo de dispositivo “Sensor de chama” e dê a ele um nome exclusivo, como “com.example.iot.flame”.
- Clique em “Criar tipo de dispositivo”. Isso cria o tipo de dispositivo e leva você para a página de tipos de dispositivo.
Agora vamos criar um manifesto para nosso tipo de dispositivo "Sensor de chama".
- Clique em “Sensor de chama” na coluna à esquerda.
- Clique em “Manifesto” e depois em “+ Nova Versão”.
- Digite “onFire” como o nome do campo e “booleano” para o tipo de dados.
- Clique em “Salvar” e depois em “Próximo:Ações”.
- Ignore as ações para este tutorial e clique em “Salvar novo manifesto”.
”'Um Manifesto Simples é aprovado automaticamente. Não publique este tipo de dispositivo, pois é apenas para fins de tutorial. ”’
Por fim, vá para o Portal do Usuário para conectar um novo dispositivo Sensor de Chama:
- Faça login no Portal do usuário SAMI.
- No painel, clique para conectar um novo dispositivo.
- Escolha o tipo de dispositivo “Sensor de chama” que você acabou de criar.
- Clique em “Conectar dispositivo…”. Você é levado de volta ao painel.
- Clique no ícone Configurações do dispositivo que acabou de adicionar. No pop-up, clique em “GERAR TOKEN DE DISPOSITIVO…”.
- Copie o ID do dispositivo e o token do dispositivo nesta tela. Você os usará no código.
Etapa 2:Configurar o Arduino
Agora vamos conectar os sensores ao Arduino.
Os dois sensores são conectados como na imagem Frizting acima.
Em seguida, carregue o programa Sketch ( read_flame_sensor.ino ) para o Arduino UNO usando o IDE do Arduino. Este código lê um valor digital do sensor de chama IR e, em seguida, o envia para a porta serial a cada 5 segundos (você pode alterar este parâmetro no código posteriormente, pois o SAMI tem limites de taxa para o número de mensagens por dia). Para as leituras digitais, “0” significa que um incêndio foi detectado e “1” significa nenhum incêndio.
Aqui está read_flame_sensor.ino . O código é direto.
// Atraso entre leituras
const int delayBetweenReads =5000; // 5s
// Para detector de chamas senso const int flameDigitalPinIn =2;
void setup () {
// inicializa a comunicação serial a 9600 baud:
Serial.begin (9600);
pinMode (flameDigitalPinIn, INPUT);
}
void loop () {
// ALTO (1) significa que nenhum incêndio foi detectado
// LOW (0) significa que o fogo foi detectado
int flameDigitalReading =digitalRead (flameDigitalPinIn); Serial.println (String (flameDigitalReading));
atraso (delayBetweenReads);
}
Etapa 3:configurar o Raspberry Pi
Conecte seu Raspberry Pi a um monitor, mouse e teclado. Verifique se uma conexão Ethernet ou WiFi está funcionando e se o sistema operacional está atualizado:
- $ sudo apt-get update
- $ sudo apt-get upgrade
Se ainda não estiver instalado, instale o Node.js para ARM e adicione os pacotes porta serial e ws via npm:
- $ npm install serialport
- $ npm install ws
Agora conecte a porta serial do Arduino ao USB no Raspberry Pi.
Por fim, baixe o código Node.js ( send_data_to_sami.js ) para o Raspberry Pi. Substitua os espaços reservados no código pelo token do dispositivo e ID do dispositivo que você coletou do Portal do usuário.
O código Node.js também é fornecido abaixo. Ele estabelece uma conexão WebSocket bidirecional entre o Raspberry Pi e o SAMI. Depois que a conexão WebSocket for aberta, registrar () método registra o dispositivo com o WebSocket. Cada vez, o código lê um ponto de dados da porta serial e, a seguir, o envolve em uma mensagem e a envia ao 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 =nulo;
var serialport =require (“serialport”)
var SerialPort =serialport.SerialPort;
var sp =new SerialPort (“/ dev / ttyACM0”, {
taxa de transmissão:9600,
analisador:serialport.parsers.readline (“\ n”)
});
var WebSocket =require ('ws');
/ **
* Obtém a hora atual em milis
* /
function getTimeMillis () {
return parseInt (Date.now (). toString ());
}
Para mais detalhes:Faça um detector de incêndio em minutos com Samsung SAMIIO, Arduino UNO e Raspberry Pi
Processo de manufatura
- Fácil detector de choro de bebê faça você mesmo com Raspberry Pi
- Aeroponia com Raspberry Pi e sensor de umidade
- Construindo robôs com Raspberry Pi e Python
- Construa seu robô de streaming de vídeo controlado pela Internet com Arduino e Raspberry Pi
- Relógio Arduino com horas de oração islâmica
- Controle de um robô Roomba com Arduino e dispositivo Android
- Exibindo uma imagem em uma tela LCD TFT com o Arduino UNO!
- Controle do Servo Motor com Arduino e MPU6050
- u-blox LEA-6H 02 Módulo GPS com Arduino e Python
- Reconhecimento de fala e síntese com Arduino