İçindekiler:
- 1. Adım: Node-red ile Başlarken
- 2. Adım: Verileri Düğüm Kırmızısında Bölme
- Adım 3: Wampserver ile Veritabanı
- Adım 4: Veritabanı
- Adım 5: Wampserver'a düğüm kırmızısı
- Adım 6: Wampserver'dan Node-red'e Verileri Kullanma
- 7. Adım: Sonlandırma
Video: UCL-IIOT - Veritabanı ve Node-red ile Alarm Sistemi: 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
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
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
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ı
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ı
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ı
Ş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
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
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:
MadMapper ve Teensy 3.2 ile Kulüp Aydınlatma Sistemi: 14 Adım
MadMapper & Teensy 3.2 ile Kulüp Aydınlatma Sistemi: 2018'de Kollektifim UNION ile birlikte Ramallah Filistin'de bir Yılbaşı Partisi için bu düşük bütçeli kulüp aydınlatma sisteminin ilk versiyonunu yaptım, hikaye ve bunun sonundaki kolektif hakkında daha fazla bilgi makale. Sistem WS2812'ye dayanıyordu
Endüstriyel Sınıf PLC (Controllino) ile DIY Işık Bariyeri Alarm Sistemi: 5 Adım
Endüstriyel Sınıf PLC (Controllino) ile DIY Işık Bariyeri Alarm Sistemi: Bu projede size bir PLC'yi (Controllino) bir ışık bariyeri, bir siren, bir indükleme anahtarı ve bir stroboskop ışığı oluşturmak için nasıl birleştirdiğimi göstereceğim. davetsiz misafirleri kolayca korkutacak gerçekten sağlam çalışan bir alarm/güvenlik sistemi. ben
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
UCL - Gömülü - Uyarı sistemi - RC Araba: 7 Adım
UCL - Embedded - Warningsystem - RC Car: Bu projede lojistik robotlar için basit bir uyarı sistemi yaptım. Temelde önünde ultrasonik sensör ve arkada engellerden kaçınma sensörü bulunan bir RC arabası. Araba bir uygulama üzerinden bluetooth ile kontrol ediliyor
Mini HiFi Raf Sistemi (Ses Sistemi) Nasıl Doğru Bağlanır ve Kurulur: 8 Adım (Resimlerle)
Mini HiFi Raf Sistemi (Ses Sistemi) Nasıl Düzgün Bağlanır ve Kurulur: Elektrik mühendisliği hakkında bilgi edinmekten keyif alan biriyim. Ann Richards Genç Kadın Liderler Okulu'nda bir lisedeyim. Mini LG HiFi Raf Sisteminden müziklerinin keyfini çıkarmak isteyen herkese yardımcı olmak için bunu öğretilebilir hale getiriyorum