İçindekiler:
- Adım 1: Raspberry Pi'yi Hazırlama
- 2. Adım: NoCAN'ı Ayarlama
- Adım 3: UFire Donanımını Bir Araya Getirmek
- Adım 4: NoCAN Donanımı
- Adım 5: CANZERO Düğümünü Programlayın
- Adım 6: Bütün Bunlar Nasıl Bir Araya Geliyor?
- 7. Adım: Kronograf veya Grafana'yı Ayarlama
- 8. Adım: Bazı İyileştirmeler
Video: EC/pH/ORP Verilerini TICK Stack ve NoCAN Platformu ile Depolayın ve Grafiklerini Oluşturun: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu, EC, pH ve ORP'yi ölçmek için NoCAN Platform by Omzlo ve uFire sensörlerinin nasıl kullanılacağını ele alacaktır. Web sitelerinin dediği gibi, bazen sensör düğümlerinize biraz kablo çekmek daha kolaydır. CAN, tek kabloda iletişim ve güç avantajına sahiptir, bu nedenle sinyal ve pil sorunu olmaz. Düğümlerin bellenimi daha basit olabilir; örneğin uyku modları veya WiFi kurulumu ile uğraşmayın. NoCAN platformu, düğümleri CAN veri yolu üzerinden programlamak gibi bazı harika özelliklere de sahiptir.
NoCAN platformu bir Raspberry Pi kullanır, bu nedenle yapılabilecek her şey kullanılabilir olacaktır. TICK yığınını kurarak bundan faydalanacağız. Bu, ölçümleri depolamak için InfluxDB kullanmamıza izin verecektir. Bu tür şeyler için tasarlanmış bir zaman serisi tabanlı veritabanıdır. Ayrıca, gösterge tabloları oluşturmak ve alacağımız tüm bu verileri görüntülemek için Chronograf ile birlikte gelir. T ve K, Telegraf ve Kapacitor anlamına gelir. Telegraf, gönderdiğiniz veri ile Influx veri tabanı arasında yer alır. Kapacitor olay motorudur. Bir şey olduğunda, size çeşitli yöntemlerle bir bildirim gönderebilir. Ve sadece Chronograf'tan daha çok sevdiğim için, gösterge tabloları için Grafana'yı kuracağım.
Adım 1: Raspberry Pi'yi Hazırlama
Rasbian İndirme sayfasına gidin ve resmi masaüstü ve önerilen yazılımla indirin, ardından bir SD karta yükleyin.
Görüntü SD kartınıza yüklendikten sonra, kök ve önyükleme olmak üzere iki biriminiz olmalıdır. Önyüklemede bir terminal açın ve şunu yazın:
ssh'ye dokunun
Bu, SSH'yi etkinleştirecektir.
Sonra şunu yazın:
nano wpa_supplicant.conf
Kendi ilçeniz ve WiFi ayarlarınız için değiştirdikten sonra aşağıdakileri kopyalayın/yapıştırın:
ülke=ABD
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 ağ={ ssid="AĞ-NAME" psk="AĞ-ŞİFRE" }
Ülke kodları buradan gelir.
SPI'yi etkinleştir:
echo "dtparam=spi=on" >> config.txt
SD kartı Raspberry Pi'nize yerleştirin, biraz bekleyin ve şunu yazın:
Oturum açma isteminde olmalısınız. Parola ahududu.
2. Adım: NoCAN'ı Ayarlama
Omzlo, kapsamlı bir kurulum kılavuzu sağlar. Ancak bunu kendim için kolaylaştırmaya ve Bash komut dosyası oluşturma hakkında biraz bilgi edinmeye karar verdim. Bu yüzden Raspberry Pi'nizi çalıştırın ve SSH veya seri terminali içine alın.
İyi bir Bash betiği oluşturmaya ne kadar çok geliştirme zamanının da gerçekten yüklemeye çalışıyorsanız o kadar yetebileceğini öğrendim. Bir şeyi yapmanın 1000 yolu vardır, bazıları diğerlerinden daha kolay kavranabilir veya yürütülebilir. Sonunda, aslında pek bir şey yapmadım. Eğer yürütürseniz:
wget https://ufire.co/nocan.sh && chmod +x nocan.sh && sudo./nocan.sh
Raspberry Pi'nizin terminalinde betiği indirecek ve yürütecektir.
Sonra:
- Omzlo NoCAN arka plan programını indirir ve kolay erişim için /usr/bin içine kurar, bir ~/.nocand klasörü oluşturur ve parola 'parola' olarak ayarlanmış çok temel bir yapılandırma dosyası yazar. Muhtemelen başka bir şeyle değiştirmelisiniz, ~/.nocand/config konumunda.
- Omzlo NoCAN istemcisini indirir ve /usr/bin içine kopyalar ve aynı parola seti ile temel bir yapılandırma dosyası oluşturur. ~/.nocanc.conf konumunda.
- NoCAN arka plan programının çalışmasını sağlayan bir Systemd hizmeti kurar.
- ~/.nocand, nocan_ufire.py dizinine bir python dosyası yazar. NoCAN düğümünün bellenimi ile konuşacak ve EC, pH ve ORP ölçümlerini alacak, sonuçları ayrıştıracak ve InfluxDB veritabanına ekleyecektir.
- Uygun hale getirmek için InfluxData'nın deposunu ekler ve TICK yığınını kurar. Ve Chronograf'a tercih ettiğim için Grafana'yı da kuruyor.
- Boş bir Influx veritabanı oluşturur
Karşılaşabileceğiniz bazı yakalamalar:
- Yerel ayarlarınız kurulmamış olabilir, bu nedenle dpkg-reconfigure locales'ı çalıştırın
- Grafana kurulumu askıda kalabilir, bu yüzden tekrar deneyin.
-
Akış arka plan programı, komut dosyasının veritabanını eklemesini sağlamak için zamanında başlatılmamış olabilir, şunu yazın
curl -i -XPOST https://localhost:8086/query --data-urlencode "q=CREATE DATABASE nocan"
- Bu komut dosyası yalnızca varsayılan pi kullanıcısı olarak çalışır. Farklı bir kullanıcı altındaysanız, uygun olduğunda pi'yi kullanıcı adınızla değiştirmeniz gerekecektir.
Son şey bir cron işi eklemektir. Bunu kodlamak için çok iyi bir yol bulamadım, bu yüzden manuel olarak düzenlemek için 'crontab -e' yazın ve '* * * * * python /home/pi/.nocand/nocan_ufire.py' ekleyin.
Tüm bunlar bittiğinde, her şeyin olması gerektiği gibi kurulduğunu ve çalıştığını doğrulayabilirsiniz. Grafana, https://[Raspberry Pi'nin Adresi]:3000/ adresinde yaşıyor. Bir giriş sayfası görmelisiniz, admin/admin varsayılandır.
Chronograf https://[Raspberry Pi's Address]:8888/ adresinde bulunabilir.
Adım 3: UFire Donanımını Bir Araya Getirmek
Donanımı monte etmeden önce, ele alınması gereken bir şey var. uFire ISE kartı hem pH hem de ORP'yi ölçmek için kullanılabilir. Donanım aynı ama yazılım farklı. Donanım aynı olduğu için, bu, varsayılan olarak I2C adresinin de aynı olduğu anlamına gelir. Ve sensörler I2C aracılığıyla iletişim kurar, bu nedenle birinin değiştirilmesi gerekecektir. Bu proje için İMKB kurullarından birini seçip ORP'yi ölçmek için kullanacağız. Buradaki adımları takip ederek adresi 0x3e olarak değiştirin.
Artık adres değiştiğine göre, donanımı bir araya getirmek kolaydır. Bu kurulum, temelde aynı şeyi yapan ancak veri iletmek için CAN yerine BLE kullanan daha önceki çalışmalara dayanmaktadır. Bunu Arduino Proje Merkezinde okuyabilirsiniz. Tüm sensör cihazları Qwiic bağlantı sistemini kullanır, bu nedenle her şeyi bir zincirde birbirine bağlamanız yeterlidir, Qwiic'i Qwiic kablolarına takmanın tek bir yolu vardır. Sensörlerden birini CANZERO düğümüne bağlamak için bir Qwiic - Male kablosuna ihtiyacınız olacak. Teller tutarlı ve renk kodludur. Siyahı düğümün GND'sine, kırmızıyı +3.3V veya +5V pinine, maviyi D11 olan SDA pinine ve sarıyı D12'deki SCL pinine bağlayın.
Bu proje için sıcaklık bilgisinin EC sensöründen gelmesini bekleyecektir, bu nedenle EC kartına bir sıcaklık sensörü taktığınızdan emin olun. Tüm panolar olsa da sıcaklığı ölçme yeteneğine sahiptir. EC, pH ve ORP problarını uygun sensörlere takmayı unutmayınız. BNC konnektörleri ile kolayca takılırlar. Bir muhafazanız varsa, tüm bunları içine koymak iyi bir fikir olacaktır, özellikle de suyun dahil olacağı düşünülürse.
Adım 4: NoCAN Donanımı
NoCAN donanımının montajı da kolaydır. PiMaster'ı Raspberry Pi'ye bağlayın ve buna uygun bir güç kaynağı bulun.
Projeniz için kablo yapma konusunda Omzlo'nun talimatlarını izleyin.
Düğümünüzü dağıtın ve PiMaster için bir yer bulun.
Adım 5: CANZERO Düğümünü Programlayın
Bu kurulumla ilgili harika şeylerden biri, dağıtıldıktan sonra bile düğümlere erişebilmenizdir. CAN kablosu üzerinden programlanırlar, böylece istediğiniz zaman yeniden programlayabilirsiniz.
Bunun için, kurulu Arduino IDE'ye, ağınızdaki PiMaster'a ve CAN veriyoluna bağlı düğümünüze ihtiyacınız olacak. Geliştirme bilgisayarınızda yüklü olan nocanc adlı bir programa da ihtiyacınız olacak. Bunların hepsi Omzlo'nun kurulum sayfasında açıklanmıştır.
GitHub'ı ziyaret edin ve kodu yeni bir Arduino IDE çizimine kopyalayın. Kartı Omzlo CANZERO olarak değiştirin ve 'Port' menüsünden düğümü seçin. Ardından normal gibi yükle'yi tıklayın. Her şey plana göre gittiyse, bazı ölçümler yapmaya hazır programlanmış bir düğümünüz olmalıdır.
Adım 6: Bütün Bunlar Nasıl Bir Araya Geliyor?
Artık tüm yazılım ve donanımlar kurulduğuna göre, hepsinin gerçekte nasıl çalışacağı hakkında biraz konuşalım. Ve GIMP becerilerimi gösterelim…
Özetle:
- CANZERO düğümü PiMaster'a bağlıdır ve bir yere konuşlandırılmıştır.
- PiMaster'da her dakika bir Cron işi çalıştırılır. Bir python betiği yürütecek.
- Python betiği, düğüme bir ölçüm veya başka bir işlem yapmasını söyleyen bir komut gönderir.
- Düğüm, komutun ne olduğunu yürütecek ve JSON biçiminde bir sonuç döndürecektir.
- Python betiği bu sonucu alır, ayrıştırır ve onunla bir InfluxDB'yi günceller.
Son adım, bazı güzel görünümlü çizelgelerde toplanan verileri izlemektir.
7. Adım: Kronograf veya Grafana'yı Ayarlama
Yapılacak son şey, Chronograf veya Grafana'da bazı çizelgeler oluşturmaktır.
Veri kaynağını ayarlamanız gerekecek. InfluxDB için varsayılanlar iyidir. Bunun adresi 'https://localhost:8086' ve kullanıcı adı veya şifre yok.
Her ikisi de, içinde herhangi bir sayıda çizelge bulunan Panolar halinde organize edilmeleri bakımından benzerdir. Her ikisinde de ölçümleri görmenize ve etkileşimli olarak grafikler oluşturmanıza olanak tanıyan bir Keşfet alanı bulunur. Veritabanı adının 'nocan' olduğunu ve tek bir değerle çeşitli ölçümler halinde organize edildiğini unutmayın.
Bahsettiğim gibi Grafana'yı Chronograf'tan daha yapılandırılabilir olduğu için tercih ediyorum. Aynı zamanda Chronograf'ın olmadığı yerde mobil uyumludur. Grafikler kolayca gömülür ve paylaşılır
8. Adım: Bazı İyileştirmeler
- Ağınızdan daha kolay erişmek için Raspberry Pi'nizin ana bilgisayar adını ayarlayabilirsiniz. Bunu raspi-config'de yapabilirsiniz. Benimkini nocan olarak değiştirdim, bu yüzden ona erişmek için nocan.local'a gidebildim (Android'de çalışmıyor).
- Raspberry Pi'nize ağınızın dışında erişmek için ngrok gibi bir program yükleyebilirsiniz.
- Bildirim sağlamak için Kapacitor'un sağladığı yöntemlerden birini kullanın.
- Elbette daha fazla sensör ekleyin.
Önerilen:
Raspberry Pi ile Işık ve Sıcaklık Sensörü Verilerini Okuma ve Grafikleme: 5 Adım
Raspberry Pi ile Işık ve Sıcaklık Sensörü Verilerini Okuma ve Grafikleme: Bu Eğitilebilir Kitapta, ahududu pi ve ADS1115 analogdan dijitale dönüştürücü ile bir ışık ve sıcaklık sensörünün nasıl okunacağını ve matplotlib kullanarak grafiğinin nasıl çizileceğini öğreneceksiniz. Gerekli malzemelerle başlayalım
LOGO ile Ubidots Entegrasyon Platformu! Node-RED'i Kullanan Siemens: 13 Adım
LOGO ile Ubidots Entegrasyon Platformu! Siemens Node-RED'i Kullanıyor: apBirkaç haftadır bir LOGO! (mantıksal modül) Siemens'ten, birkaç aydır temel endüstriyel uygulamalarda kullandıklarını gördüm, kişisel olarak %100 bir PLC olarak düşünmesem de, mon
Sensör Verilerini Ekran LCD ile Görüntüleme: 5 Adım
Sensör Verilerini Ekran LCD ile Görüntüleme: Bu projede Arduino ile bir ekranda 2 sensörden gelen verileri görüntülemeliyiz. Bu projenin uygulaması bir serada nem ve sıcaklığın izlenmesidir
Evive-Arduino Gömülü Platformu Kullanan Skor Sayma Çemberleri ile Akıllı Basketbol Atari Oyunu: 13 Adım
Evive-Arduino Gömülü Platformu Kullanan Skor Sayma Çemberleri ile Akıllı Basketbol Atari Oyunu: Tüm oyunlar arasında en eğlencelisi atari oyunlarıdır. Bu yüzden neden evde kendimiz yapmayalım diye düşündük! Ve işte buradayız, şimdiye kadar oynadığınız en eğlenceli Kendin Yap oyunu - Kendin Yap Atari Basketbol Oyunu! Sadece bu değil
Google Grafiklerini Kullanarak Kablosuz Sensör Verilerini Görselleştirme: 6 Adım
Google Grafiklerini Kullanarak Kablosuz Sensör Verilerini Görselleştirme: Makinenin arıza süresini en aza indirmek için makinelerin tahmine dayalı analizi çok gereklidir. Düzenli kontrol, makinenin çalışma süresini iyileştirmeye yardımcı olur ve buna bağlı olarak hata toleransını artırır. Kablosuz Titreşim ve Sıcaklık sen