Buat pendeteksi kebakaran dalam hitungan menit dengan Samsung SAMIIO, Arduino UNO, dan Raspberry Pi
Mari kita buat perangkat IoT yang mengirimkan data sensor api ke SAMI menggunakan WebSockets SAMI. Perangkat IoT terdiri dari sensor siap pakai, Arduino UNO, dan Raspberry Pi.
Dalam implementasi ini, Simple Manifest digunakan untuk membuat tipe perangkat baru dengan cepat. Kemudian Anda dapat dengan mudah menghubungkan perangkat IoT ke SAMI, dan mulai mengirim data sensor dari perangkat ke SAMI.
Prasyarat
”'Untuk tutorial ini Anda harus terbiasa dengan API SAMI dasar. ”'
Arsitektur
Diagram ungu di bawah ini menunjukkan arsitektur tingkat tinggi:
Kami menggunakan komponen perangkat keras berikut:
- Raspberry Pi dengan koneksi jaringan
- Arduino UNO dengan papan tempat memotong roti
- Sensor api IR
- Kabel USB dan daya, plus kabel untuk papan tempat memotong roti
Kami akan menulis perangkat lunak berikut:
- Program Sketch yang berjalan di Arduino
- Skrip Node.js berjalan di Raspberry Pi
Unduh perangkat lunaknya sekarang.
”'Jika Anda tidak memiliki Raspberry Pi, Anda masih dapat mengerjakan tutorial ini. Hubungkan Arduino UNO Anda ke komputer yang memiliki koneksi Internet dan jalankan skrip Node.js di komputer alih-alih Raspberry Pi.”’
Langkah 1:Buat dan hubungkan jenis perangkat baru
Buka Portal Pengembang untuk membuat jenis perangkat pribadi.
- Pertama, masuk ke Portal Pengembang SAMI. Jika Anda tidak memiliki akun Samsung, Anda dapat membuatnya pada langkah ini.
- Klik “+ Jenis Perangkat Baru”.
- Beri nama jenis perangkat ini "Sensor Api" dan berikan nama unik seperti "com.example.iot.flame".
- Klik “Buat Jenis Perangkat”. Ini membuat jenis perangkat dan membawa Anda ke halaman jenis perangkat.
Sekarang mari kita buat Manifes untuk jenis perangkat “Flame Sensor” kita.
- Klik “Sensor Api” di kolom kiri.
- Klik “Manifes” lalu “+ Versi Baru”.
- Masukkan “onFire” sebagai Nama Bidang dan “Boolean” untuk Jenis Data.
- Klik “Simpan” lalu “Berikutnya:Tindakan”.
- Abaikan Tindakan untuk tutorial ini dan klik “Simpan Manifes Baru”.
”'Manifes Sederhana disetujui secara otomatis. Jangan publikasikan jenis perangkat ini, karena ini hanya untuk tujuan tutorial.”’
Terakhir, buka Portal Pengguna untuk menghubungkan perangkat Flame Sensor baru:
- Masuk ke Portal Pengguna SAMI.
- Di dasbor, klik untuk menghubungkan perangkat baru.
- Pilih jenis perangkat “Sensor Api” yang baru saja Anda buat.
- Klik “Hubungkan Perangkat…”. Anda dibawa kembali ke dasbor.
- Klik ikon Setelan perangkat yang baru saja Anda tambahkan. Di pop-up, klik “GENERATE DEVICE TOKEN…”.
- Salin ID perangkat dan token perangkat di layar ini. Anda akan menggunakan ini dalam kode.
Langkah 2:Siapkan Arduino
Sekarang mari kita hubungkan sensor ke Arduino.
Kedua sensor terhubung seperti pada gambar Frizting di atas.
Selanjutnya, unggah program Sketch (read_flame_sensor.ino ) ke Arduino UNO menggunakan Arduino IDE. Kode ini membaca satu nilai digital dari sensor nyala IR, dan kemudian mengirimkannya ke port serial setiap 5 detik (Anda dapat mengubah parameter ini dalam kode nanti, karena SAMI memiliki batas kecepatan untuk jumlah pesan per hari). Untuk pembacaan digital, “0” berarti api terdeteksi dan “1” berarti tidak ada api.
Ini read_flame_sensor.ino . Kodenya mudah.
// Penundaan antar pembacaan
const int delayBetweenReads =5000;//5s
// Untuk pendeteksi api senso const int flameDigitalPinIn =2;
batalkan pengaturan() {
// inisialisasi komunikasi serial @ 9600 baud:
Serial.begin(9600);
pinMode(flameDigitalPinIn, INPUT);
}
void loop() {}P>
// HIGH(1) berarti tidak ada api yang terdeteksi
// LOW (0) berarti api terdeteksi
int flameDigitalReading =digitalRead(flameDigitalPinIn); Serial.println(String(flameDigitalReading));
delay(delayBetweenReads);
}
Langkah 3:Siapkan Raspberry Pi
Hubungkan Raspberry Pi Anda ke monitor, mouse, dan keyboard. Pastikan koneksi Ethernet atau WiFi berfungsi, dan pastikan OS terbaru:
- $ sudo apt-get update
- $ sudo apt-get upgrade
Jika belum terinstal, instal Node.js untuk ARM, lalu tambahkan paket serialport dan ws melalui npm:
- $ npm instal port serial
- $ npm instal ws
Sekarang sambungkan port serial dari Arduino ke USB di Raspberry Pi.
Terakhir, unduh kode Node.js (send_data_to_sami.js ) ke Raspberry Pi. Ganti placeholder dalam kode dengan token perangkat dan ID perangkat yang Anda kumpulkan dari Portal Pengguna.
Kode Node.js juga diberikan di bawah ini. Ini membuat koneksi WebSocket dua arah antara Raspberry Pi dan SAMI. Setelah koneksi WebSocket terbuka, register() metode mendaftarkan perangkat dengan WebSocket. Setiap kali, kode membaca satu titik data dari port serial, lalu membungkusnya dalam sebuah pesan dan mengirimkan pesan ke SAMI melalui WebSocket.
var webSocketUrl =“wss://api.samsungsami.io/v1.1/websocket?ack=true”;
var device_id =“”; var device_token =“”;
var isWebSocketReady =salah; var ws =null;
var serialport =membutuhkan(“serialport”)
var SerialPort =serialport.SerialPort;
var sp =new SerialPort(“/dev/ttyACM0”, {
baudrate:9600,
parser:serialport.parsers.readline(“\n”)
});
var WebSocket =membutuhkan('ws');
/*
* Mendapatkan waktu saat ini dalam milis
*/
fungsi getTimeMillis(){
return parseInt(Date.now().toString());
}
Untuk detail lebih lanjut:Buat pendeteksi kebakaran dalam hitungan menit dengan Samsung SAMIIO, Arduino UNO, dan Raspberry Pi