Isi kandungan:

UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red: 7 Langkah
UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red: 7 Langkah

Video: UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red: 7 Langkah

Video: UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red: 7 Langkah
Video: Part 3 - Babbitt Audiobook by Sinclair Lewis (Chs 10-15) 2024, Julai
Anonim
UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red
UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red
UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red
UCL-IIOT - Sistem Penggera Dengan Pangkalan Data dan Node-red

Tujuan pembinaan ini adalah untuk mengajar tentang menghubungkan Arduino dengan Node-red dan pangkalan data, sehingga anda dapat log data dan juga mengumpulkannya untuk digunakan nanti.

Untuk membina ini saya menggunakan sistem penggera arduino sederhana yang mengeluarkan 5 nombor data, masing-masing dipisahkan dengan koma.

Tidak semestinya jumlah data yang tepat dan program boleh menjadi apa-apa.

Bahagian pentingnya ialah data dipisahkan dengan koma seperti yang dilihat pada tangkapan skrin ini.

Contohnya, outputnya seperti ini: "324, 0, 0, 1, 1"

(pengaturcaraan dan arahan selesai untuk pembuatan arduino ada di bahagian bawah tutorial ini)

Langkah 1: Bermula dengan Node-red

Bermula dengan Node-red
Bermula dengan Node-red

Untuk tutorial ini, kami menganggap anda sudah memasang Node-red, tetapi ada beberapa palet tambahan yang digunakan untuk projek ini yang kami perlukan untuk berfungsi

Cari butang "Urus Palet" dan pasangkan palet berikut.

  • papan pemuka simpul-merah
  • node-red-node-mysql
  • node-red-node-arduino
  • node-red-node-serialport

Ia harus menunjukkan beberapa palet baru di sisi menu butang Node-red.

Langkah 2: Memisahkan Data dengan Node-red

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

Sekarang Node-red sudah siap, kita harus mulai dengan membahagikan data kita menjadi beberapa bahagian.

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

Mula-mula mari kita mulakan dengan meletakkan nod Input Arduino, yang terdapat di panel sebelah kiri.

Anda perlu memastikan ia mempunyai port bersiri (Tambang menggunakan COM4) dan kadar Baud yang betul (dalam program saya, saya menggunakan 9600 kadar baud)

Sekiranya disiapkan dengan betul, ia harus dinyatakan bahawa ia disambungkan.

Seterusnya kami membuat blok fungsi Javascript dan menyambungkannya selepas simpul input Arduino. Blok ini membolehkan kami memprogram dalam Javascript, dan di sini kami menulis kod yang dapat membahagikan data kami untuk setiap koma.

Dalam blok fungsi ini saya membahagikan 5 data saya menggunakan kod berikut:

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

(ubah kod yang diperlukan)

Pastikan simpul ditetapkan ke 5 output (atau setara anda)

Seperti yang dilihat dalam tangkapan skrin, kita sekarang mempunyai 5 output yang masing-masing menghubungkan ke simpul debug dan simpul papan pemuka teks. Ini akan berguna apabila kita perlu melihatnya di UI.

Langkah 3: Pangkalan Data Dengan Wampserver

Pangkalan Data Dengan Wampserver
Pangkalan Data Dengan Wampserver

Agar pangkalan data kami berfungsi, anda perlu memasang Wampserver. Setelah dipasang dan ditunjukkan sebagai ikon hijau (setelah anda memulakan semua perkhidmatan), anda harus membuka "phpMyAdmin" yang akan membawa anda ke skrin log masuk. Kecuali anda mempunyai sebelumnya mengubahnya, masukkan "root" pada nama pengguna dan log masuk.

Tekan butang phpmyadmin di bawah alat di bar kiri dan ia akan membuka menu pangkalan data, yang kelihatan seperti yang ditunjukkan dalam gambar di atas.

Buat pangkalan data baru dan namakan sesuatu yang berkaitan dengan projek anda, nama saya dinamakan "alarmsystem" (nama-nama ini akan peka huruf besar kecil)

Di bawah pangkalan data itu, buat jadual baru dan beri nama, saya diberi nama "alarmdata"

ia akan bertanya sama ada anda mahu menggunakan "latin1_swedish_ci" dan kami menyimpannya seperti itu.

Sekarang anda membuat 6 jadual (1 lebih banyak daripada data yang kita ada)

Jadual pertama perlu menggunakan jenis data "longtext"

dan selebihnya set data menggunakan "mediumtext"

Pastikan namakannya. (set data pertama harus diberi nama "time"

Langkah 4: Pangkalan Data

Pangkalan data
Pangkalan data

Set data Wampserver semestinya kelihatan seperti ini.

(tetapi tanpa data sebenarnya, karena kami belum mengetahuinya)

Langkah 5: Node-red ke Wampserver

Node-red ke Wampserver
Node-red ke Wampserver

Sekarang kami mahu data yang kami keluarkan dari arduino kami pergi ke Wampserver kami.

Mulakan dengan membuat blok fungsi Javascript yang lain dan sambungkannya ke nod input arduino kami.

Dalam blok skrip ini, kami sekali lagi membahagikan data kami, tetapi kami memasukkannya ke dalam pangkalan data kami juga.

var data = msg.payload.split (","); var Green1 = data [0]; var Green2 = data [1]; var Penggera = data [2]; var Millis = data [3]; var IsActive = data [4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) NILAI ('" + Tarikh baru (). toISOString (). slice (0, 19).replace (' T ',' ') + "', '" + Hijau1 + "', '" + Hijau2 + "', '" + Penggera + "', '" + Millis + "', '" + IsActive + "')"; msg.topic = keluar; kembalikan msg;

Perhatikan saya memasukkan "INSERT INTO alarmsystem.alarmdata", ini adalah nama yang kami berikan pangkalan data dan jadual kami, pastikan anda menulis nama yang tepat yang anda berikan dalam pangkalan data anda.

Sekarang sambungkan blok Javascript ke nod debug dan juga nod "mysql" yang terdapat di bawah palet simpanan di sebelah kiri.

di bawah blok mysql anda namakan sama dengan pangkalan data anda "alarmsystem"

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

host, port dan pangkalan data harus diisi dengan:

Tuan rumah: 127.0.0.1

Pelabuhan: 3306

Pangkalan Data: sistem penggera

Sekiranya semuanya dilakukan dengan betul, ia harus disambungkan setelah anda menerapkan perubahan anda.

Anda juga harus dapat melihat bahawa pangkalan data 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 jangka akhir kami ingin melihat apakah kami dapat mengambil data yang telah kami simpan dan memasukkannya semula ke dalam Node-red kami dan diharapkan dapat memaparkannya.

Mulakan dengan meletakkan nod "suntik"

Di bawah topik dalam node ini kami meletakkan kod: SELECT * FROM alarmsystem.alarmdata

Ini akan dapat mencari pangkalan data kami semasa kami menekannya.

Sambungkan nod suntikan ke susunan simpul "mysql" baru sama seperti yang kami lakukan pada langkah sebelumnya.

Sambungkan nod mysql ke nod debug dan nod templat yang terdapat di bawah papan pemuka.

Nod templat akan menjadi jadual kami yang dapat kami kemas kini untuk menunjukkan data dari pangkalan data semasa ia dihasilkan.

Masukkan kod yang ditunjukkan pada tangkapan skrin di atas (ubah mengikut keperluan) dan sekarang ia harus menunjukkan jadual data di UI Node-red kami.

Kami juga boleh menambah butang papan pemuka untuk mengemas kini jadual dari UI itu sendiri.

Mulakan dengan membuat simpul butang.

sambungkan simpul butang ke blok fungsi Javascript.

di blok fungsi kita memasukkan kod berikut.

msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20"; kembalikan msg;

(Green1 menjadi pemboleh ubah data pertama dalam jadual)

blok fungsi ini kemudiannya perlu disambungkan ke input nod mysql yang kita buat sebelumnya dalam langkah ini.

Langkah 7: Memuktamadkan

Memuktamadkan
Memuktamadkan

Sekarang UI kami harus menyertakan kemas kini langsung data kami dan jadual dengan data dari pelayan kami sendiri.

Ini bermakna kita telah membuat hubungan antara Arduino, program berasaskan UI dan pangkalan data.

Sekiranya anda berminat dengan cara Sistem Penggera Arduino saya berfungsi, saya telah menambahkan dokumen yang menerangkan cara pengaturcaraan dan penyediaannya.

Serta eksport penuh pengaturcaraan simpul-merah.

Disyorkan: