Daftar Isi:

UCL-IIOT - Sistem Alarm Dengan Database dan Node-red: 7 Langkah
UCL-IIOT - Sistem Alarm Dengan Database dan Node-red: 7 Langkah

Video: UCL-IIOT - Sistem Alarm Dengan Database dan Node-red: 7 Langkah

Video: UCL-IIOT - Sistem Alarm Dengan Database dan Node-red: 7 Langkah
Video: Data Logging dengan Menggunakan ESP32 DevKit dan Sensor DHT11 ke dalam Spreadsheet 2024, Juli
Anonim
UCL-IIOT - Sistem Alarm Dengan Database dan Node-red
UCL-IIOT - Sistem Alarm Dengan Database dan Node-red
UCL-IIOT - Sistem Alarm Dengan Database dan Node-red
UCL-IIOT - Sistem Alarm Dengan Database dan Node-red

Tujuan dari build ini adalah untuk mengajarkan tentang menghubungkan Arduino dengan Node-red dan database, sehingga Anda dapat mencatat data dan juga mengumpulkannya untuk digunakan nanti.

Untuk build ini saya menggunakan sistem alarm arduino sederhana yang mengeluarkan 5 nomor data, masing-masing dipisahkan dengan koma.

Tidak perlu memiliki jumlah data yang tepat dan program bisa berupa apa saja.

Bagian penting adalah bahwa data dipisahkan dengan koma seperti yang terlihat pada tangkapan layar ini.

Outputnya misalnya bisa terlihat seperti ini: "324, 0, 0, 1, 1"

(pemrograman selesai dan instruksi untuk pembuatan arduino ditautkan di bagian bawah tutorial ini)

Langkah 1: Memulai Dengan Node-red

Memulai Dengan Node-red
Memulai Dengan Node-red

Untuk tutorial ini kami menganggap Anda telah menginstal Node-red, tetapi ada beberapa palet tambahan yang digunakan untuk proyek ini yang kami perlukan agar berfungsi

Temukan tombol "Kelola Palet" dan instal palet berikut.

  • simpul-merah-dasbor
  • simpul-merah-simpul-mysql
  • simpul-merah-simpul-arduino
  • simpul-merah-simpul-serialport

Ini akan menunjukkan beberapa palet baru di sisi menu tombol Node-red.

Langkah 2: Memisahkan Data dalam Node-red

Memisahkan Data dalam Node-red
Memisahkan Data dalam Node-red

Sekarang Node-red siap untuk digunakan, kita perlu memulai dengan membagi data kita menjadi bagian-bagian yang terpisah.

Inilah mengapa kami memastikan untuk memisahkannya dengan koma di dalam kode Arduino.

Pertama mari kita mulai dengan meletakkan node Arduino Input, yang terdapat di panel sebelah kiri.

Anda perlu memastikan itu memiliki serial yang benar (Milik saya menggunakan COM4) port dan Baud rate (dalam program saya, saya menggunakan 9600 baud rate)

Jika diatur dengan benar, itu harus mengatakan bahwa itu terhubung.

Selanjutnya kita membuat blok fungsi Javascript dan menghubungkannya setelah node input Arduino. Blok ini memungkinkan kita untuk memprogram dalam Javascript, dan di sini kita menulis kode yang dapat membagi data kita untuk setiap koma.

Di blok fungsi ini saya membagi 5 data saya menggunakan kode berikut:

var m1 = {topik: "light1", payload: msg.payload.split(", ")[0]}; var m2 = {topik: "light2", payload: msg.payload.split(", ")[1]}; var m3 = {topik: "light3", payload: msg.payload.split(", ")[2]}; var m4 = {topik: "milis", payload: msg.payload.split(", ")[3]}; var m5 = {topik: "onoff", payload: msg.payload.split(", ")[4]}; kembali [m1, m2, m3, m4, m5];

(ubah kode sesuai kebutuhan)

Pastikan node diatur ke 5 output (atau yang setara)

Seperti yang terlihat pada tangkapan layar, kami sekarang memiliki 5 keluaran yang masing-masing kami tautkan ke simpul debug dan simpul dasbor teks. Ini akan berguna ketika kita perlu melihatnya di UI.

Langkah 3: Basis Data Dengan Wampserver

Basis Data Dengan Wampserver
Basis Data Dengan Wampserver

Agar database kami berfungsi, Anda harus menginstal Wampserver. Setelah diinstal dan ditampilkan sebagai ikon hijau (setelah Anda memulai semua layanan), Anda harus membuka "phpMyAdmin" yang akan membawa Anda ke layar login. sebelumnya mengubahnya, cukup masukkan "root" di nama pengguna dan login.

Tekan tombol phpmyadmin di bawah alat di bilah kiri dan itu akan membuka menu database, yang terlihat seperti yang ditunjukkan pada gambar di atas.

Buat database baru dan beri nama sesuatu yang terkait dengan proyek Anda, milik saya bernama "alarmsystem" (nama-nama ini akan peka huruf besar-kecil)

Di bawah database itu, buat tabel baru dan beri nama, milik saya bernama "alarmdata"

itu akan menanyakan apakah Anda ingin menggunakan "latin1_swedish_ci" dan kami hanya menyimpannya seperti itu.

Sekarang Anda membuat 6 tabel (1 lebih banyak dari data yang kami miliki)

Tabel pertama perlu menggunakan tipe data "teks panjang"

dan dataset lainnya menggunakan "mediumtext"

Pastikan untuk memberi nama mereka. (dataset pertama harus diberi nama "waktu"

Langkah 4: Basis Data

Basis Data
Basis Data

Dataset Wampserver akan terlihat seperti ini.

(tetapi tanpa data aktual, karena kami belum mencapainya)

Langkah 5: Node-merah ke Wampserver

Node-merah ke Wampserver
Node-merah ke Wampserver

Sekarang kami ingin data yang kami hasilkan dari arduino kami masuk ke Wampserver kami.

Mulailah dengan membuat blok fungsi Javascript lain dan hubungkan ke node input arduino kami.

Di blok skrip ini, kami sekali lagi membagi data kami, tetapi kami juga memasukkannya ke dalam database kami.

var data = msg.payload.split(", ");var Green1 = data[0]; var Hijau2 = data[1]; var Alarm = data[2]; var Milis = data[3]; var IsActive = data[4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES('"+new Date().toISOString().slice(0, 19).replace('T', ' ')+"', '"+Hijau1+"', '"+Hijau2+"', '"+Alarm+"', '"+Millis+"', '"+Aktif+"')"; msg.topic = keluar; kembali pesan;

Perhatikan saya memasukkan "INSERT INTO alarmsystem.alarmdata", ini adalah nama yang kami berikan pada database dan tabel kami, pastikan Anda menulis nama persis yang Anda berikan pada database Anda di dalamnya.

Sekarang hubungkan blok Javascript ke node debug dan juga node "mysql" yang ditemukan di bawah palet penyimpanan di sisi kiri.

di bawah blok mysql Anda beri nama sama dengan "sistem alarm" database Anda

ubah pengguna menjadi "root" (nama yang kami gunakan untuk masuk ke server kami)

host, port dan database harus sudah diisi dengan:

Tuan rumah: 127.0.0.1

Pelabuhan: 3306

Basis data: sistem alarm

Jika semua dilakukan dengan benar, itu harus terhubung setelah Anda menerapkan perubahan Anda.

Anda juga harus dapat melihat bahwa database sekarang mencatat data Anda dari Arduino secara langsung.

Langkah 6: Menggunakan Data Dari Wampserver ke Node-red

Menggunakan Data Dari Wampserver ke Node-red
Menggunakan Data Dari Wampserver ke Node-red
Menggunakan Data Dari Wampserver ke Node-red
Menggunakan Data Dari Wampserver ke Node-red

Untuk peregangan terakhir kami ingin melihat apakah kami dapat mengambil data yang telah kami simpan dan memasukkannya kembali ke dalam Node-red kami dan mudah-mudahan menampilkannya.

Mulailah dengan menempatkan simpul "suntikkan"

Di bawah topik di simpul ini kami menempatkan kode: SELECT*FROM alarmsystem.alarmdata

Ini akan dapat menemukan database kami ketika kami menekannya.

Hubungkan node injeksi ke node "mysql" baru yang diatur persis seperti yang kita lakukan pada langkah sebelumnya.

Hubungkan simpul mysql ke simpul debug dan simpul templat yang ditemukan di bawah dasbor.

Node template akan menjadi tabel kami yang dapat kami perbarui untuk menampilkan data dari database saat diproduksi.

Masukkan kode yang ditunjukkan pada tangkapan layar di atas (ubah sesuai kebutuhan) dan sekarang akan menampilkan tabel data di UI Node-red kami.

Kami juga dapat menambahkan tombol dasbor untuk memperbarui tabel dari UI itu sendiri.

Mulailah dengan membuat simpul tombol.

menghubungkan node tombol ke blok fungsi Javascript.

di blok fungsi kita masukkan kode berikut.

msg.topic = "PILIH * FROM alarmdata ORDER BY Green1 DESC LIMIT 20";return msg;

(Hijau1 menjadi variabel data pertama dalam tabel)

blok fungsi ini kemudian perlu dihubungkan ke input dari node mysql kami yang kami buat sebelumnya pada langkah ini.

Langkah 7: Menyelesaikan

Menyelesaikan
Menyelesaikan

Sekarang UI kami harus menyertakan pembaruan langsung dari data kami dan tabel dengan data dari server kami sendiri.

Ini berarti kita telah membuat koneksi antara Arduino, program berbasis UI dan database.

Jika Anda tertarik dengan cara kerja Sistem Alarm Arduino saya, saya telah menambahkan dokumen yang menjelaskan bagaimana itu diprogram dan diatur.

Serta ekspor penuh dari pemrograman node-red.

Direkomendasikan: