İçindekiler:

UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi: 7 Adım
UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi: 7 Adım

Video: UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi: 7 Adım

Video: UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi: 7 Adım
Video: IIoT Implementation with Omron PLCs 2024, Kasım
Anonim
UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi
UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi
UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi
UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi

Bu derlemenin amacı, Arduino'yu Node-red ve bir veritabanı ile bağlamayı öğretmektir, böylece verileri günlüğe kaydedebilir ve daha sonra kullanmak üzere toplayabilirsiniz.

Bu yapı için, her biri virgülle ayrılmış 5 veri numarası veren basit bir arduino alarm sistemi kullanıyorum.

Bu kesin miktarda veriye sahip olmak gerekli değildir ve program herhangi bir şey olabilir.

Önemli olan, bu ekran görüntüsünde görüldüğü gibi verilerin virgülle ayrılmış olmasıdır.

Çıktı örneğin şöyle görünebilir: "324, 0, 0, 1, 1"

(bitmiş programlama ve arduino oluşturma talimatları bu öğreticinin alt kısmında bağlantılıdır)

1. Adım: Node-red ile Başlarken

Node-red ile Başlarken
Node-red ile Başlarken

Bu öğretici için, Node-red'i zaten yüklediğinizi varsayıyoruz, ancak bu proje için kullanılan ve çalışması için ihtiyacımız olan bazı ekstra paletler var.

"Paleti Yönet" düğmesini bulun ve aşağıdaki paletleri yükleyin.

  • düğüm-kırmızı-dashboard
  • düğüm-kırmızı-düğüm-mysql
  • düğüm-kırmızı-düğüm-arduino
  • düğüm-kırmızı-düğüm-seri bağlantı noktası

Düğüm kırmızısı düğme menüsünün yanında bazı yeni paletler göstermelidir.

2. Adım: Verileri Düğüm Kırmızısında Bölme

Verileri Düğüm Kırmızısında Bölme
Verileri Düğüm Kırmızısında Bölme

Artık Düğüm-red gitmeye hazır olduğuna göre, verilerimizi ayrı parçalara bölerek başlamamız gerekiyor.

Bu yüzden Arduino kodunun içinde virgülle ayırmaya özen gösterdik.

Öncelikle sol taraftaki panelde bulunan Arduino Giriş düğümünü indirerek başlayalım.

Doğru seri (Mine COM4 kullanıyor) bağlantı noktasına ve Baud hızına sahip olduğundan emin olmalısınız (programımda 9600 baud hızı kullanıyorum)

Doğru ayarlanmışsa, bağlı olduğunu söylemelidir.

Sırada bir Javascript fonksiyon bloğu oluşturuyoruz ve onu Arduino giriş düğümünden sonra bağlıyoruz. Bu blok Javascript'te programlama yapmamızı sağlıyor ve burada verilerimizi her virgül için bölebilecek bir kod yazıyoruz.

Bu fonksiyon bloğunda, aşağıdaki kodu kullanarak 5 verimi böldüm:

var m1 = {konu: "light1", yük: msg.payload.split(", ")[0]}; var m2 = {konu: "light2", yük: msg.payload.split(", ")[1]}; var m3 = {konu: "light3", yük: msg.payload.split(", ")[2]}; var m4 = {konu: "millis", yük: msg.payload.split(", ")[3]}; var m5 = {konu: "kapalı", yük: msg.payload.split(", ")[4]}; dönüş [m1, m2, m3, m4, m5];

(kodu gerektiği gibi değiştirin)

Düğümün 5 çıkışa (veya eşdeğerinize) ayarlandığından emin olun

Ekran görüntüsünde görüldüğü gibi, artık her birinin bir hata ayıklama düğümüne ve bir metin panosu düğümüne bağladığımız 5 çıktımız var. Bu, kullanıcı arayüzünde görmemiz gerektiğinde faydalı olacaktır.

Adım 3: Wampserver ile Veritabanı

Wampserver ile Veritabanı
Wampserver ile Veritabanı

Veritabanımızın çalışması için Wampserver'ın kurulu olması gerekir. Kurulduktan ve yeşil bir simge olarak göründükten sonra (tüm hizmetleri başlattıktan sonra), sizi bir oturum açma ekranına getirmesi gereken "phpMyAdmin" i açmalısınız. daha önce değiştirdiyseniz, kullanıcı adına "root" yazmanız ve oturum açmanız yeterlidir.

Sol çubuktaki araçların altındaki phpmyadmin düğmesine basın ve yukarıdaki resimde gösterildiği gibi görünen veritabanı menüsünü açmalıdır.

Yeni bir veritabanı oluşturun ve projenizle ilgili bir ad verin, benimkinin adı "alarmsystem" (bu adlar büyük/küçük harf duyarlı olacaktır)

Bu veritabanının altında yeni bir tablo oluşturun ve adlandırın, benimki "alarmdata" olarak adlandırıldı.

"latin1_swedish_ci" kullanmak isteyip istemediğinizi soracak ve biz de bu şekilde tutacağız.

Şimdi 6 tablo oluşturuyorsunuz (sahip olduğumuz veriden 1 tane fazla)

İlk tablonun "longtext" veri tipini kullanması gerekiyor.

ve veri kümesinin geri kalanı "orta metin" kullanır

Onları adlandırdığınızdan emin olun. (ilk veri kümesi "zaman" olarak adlandırılmalıdır)

Adım 4: Veritabanı

Veri tabanı
Veri tabanı

Wampserver veri kümesi şöyle görünmelidir.

(ancak gerçek veriler olmadan, henüz buna ulaşmadık)

Adım 5: Wampserver'a düğüm kırmızısı

Wampserver'a düğüm kırmızısı
Wampserver'a düğüm kırmızısı

Şimdi arduinomuzdan çıkardığımız verilerin Wampserver'ımıza gitmesini istiyoruz.

Başka bir Javascript fonksiyon bloğu oluşturarak başlayın ve bunu arduino giriş düğümümüze bağlayın.

Bu script bloğunda verilerimizi bir kez daha böldük, ancak onu da veritabanımıza ekliyoruz.

var data = msg.payload.split(", ");var Green1 = data[0]; var Green2 = veri[1]; var Alarm = veri[2]; var Millis = veri[3]; var IsActive = data[4]; var out = "INSERT INTO alarmsystem.alarmdata (Zaman, Green1, Green2, Alarm, Millis, IsActive) DEĞERLER('"+new Date().toISOString().slice(0, 19).replace('T', ' ')+"', '"+Green1+"', '"+Green2+"', '"+Alarm+"', '"+Millis+"', '"+Etkin+"')"; msg.konu = çıkış; dönüş mesajı;

Dikkat "INSERT INTO alarmsystem.alarmdata" yazdım, veritabanımıza ve tablomuza verdiğimiz isim bu, veritabanınıza verdiğiniz ismi tam olarak buna yazdığınızdan emin olun.

Şimdi Javascript bloğunu bir hata ayıklama düğümüne ve ayrıca sol taraftaki depolama paletinin altında bulunan bir "mysql" düğümüne bağlayın.

mysql bloğunun altında, onu "alarmsystem" veritabanınızla aynı şekilde adlandırırsınız.

kullanıcıyı "root" olarak değiştirin (sunucumuzda oturum açmak için kullandığımız ad)

ana bilgisayar, bağlantı noktası ve veritabanı şu şekilde doldurulmalıdır:

Ev sahibi: 127.0.0.1

Liman: 3306

Veritabanı: alarm sistemi

Her şey doğru yapılırsa, değişikliklerinizi dağıttıktan sonra bağlanmalıdır.

Ayrıca veritabanının artık verilerinizi doğrudan Arduino'dan günlüğe kaydettiğini görebilmeniz gerekir.

Adım 6: Wampserver'dan Node-red'e Verileri Kullanma

Wampserver'dan Node-red'e Verileri Kullanma
Wampserver'dan Node-red'e Verileri Kullanma
Wampserver'dan Node-red'e Verileri Kullanma
Wampserver'dan Node-red'e Verileri Kullanma

Son kısım için, kaydettiğimiz verileri alıp Düğüm kırmızımıza geri koyabilir miyiz ve umarım onu görüntüleyebilir miyiz görmek istiyoruz.

Bir "enjekte" düğümü yerleştirerek başlayın

Bu düğümdeki konu altına şu kodu koyarız: SELECT*FROM alarmsystem.alarmdata

Bu, bastığımızda veritabanımızı bulabilecek.

Inject düğümünü, tam olarak önceki adımda yaptığımız gibi ayarlanmış yeni bir "mysql" düğümüne bağlayın.

MySQL düğümünü bir hata ayıklama düğümüne ve kontrol panelinin altında bulunan bir şablon düğümüne bağlayın.

Şablon düğümü, veritabanındaki verileri üretilirken göstermek için güncelleyebileceğimiz tablomuz olacaktır.

Yukarıdaki ekran görüntüsünde gösterilen kodu girin (gerektiği gibi değiştirin) ve şimdi Düğüm kırmızısı kullanıcı arayüzümüzde bir veri tablosu göstermelidir.

Tabloyu kullanıcı arayüzünden güncellemek için bir pano düğmesi de ekleyebiliriz.

Bir düğme düğümü oluşturarak başlayın.

düğme düğümünü bir Javascript fonksiyon bloğuna bağlayın.

fonksiyon bloğuna aşağıdaki kodu ekliyoruz.

msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20";dönüş msj;

(Green1, tablodaki ilk veri değişkenidir)

bu fonksiyon bloğu daha sonra bu adımda daha önce yaptığımız mysql düğümümüzün girişine bağlanmalıdır.

7. Adım: Sonlandırma

sonuçlandırma
sonuçlandırma

Artık kullanıcı arayüzümüz, verilerimizin canlı bir güncellemesini ve sunucumuzun kendisinden gelen verileri içeren bir tablo içermelidir.

Bu, UI tabanlı bir program olan Arduino ile bir veritabanı arasında bir bağlantı oluşturduğumuz anlamına gelir.

Arduino Alarm Sistemimin nasıl çalıştığıyla ilgileniyorsanız, bunun nasıl programlandığını ve kurulduğunu açıklayan bir belge ekledim.

Düğüm kırmızısı programlamanın tam dışa aktarımının yanı sıra.

Önerilen: