Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT): 9 Adım (Resimlerle)
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT): 9 Adım (Resimlerle)
Anonim
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT)
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT)
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT)
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT)
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT)
Kendin Yap - Otomatik Bahçe Sulama - (Arduino / IOT)

Bu proje size bir ev bahçesi için bir sulama kontrolörünün nasıl kurulacağını gösterecektir. Toprak nemi ölçümlerini ölçebilir ve toprak çok kurursa bahçe musluğundan sulamayı etkinleştirebilir. Kontrolör ayrıca bir sıcaklık ve nem sensörü içerir. Sıcaklık çok düşükse kontrolör bahçe musluğunu etkinleştirmez. Sensör okumaları ve su kullanımı / çalışma süreleri ile ilgili istatistikler, görselleştirme ve analitik için ThingsBoard IOT'a kaydedilir. Sulama denetleyicisi veri iletimini durdurursa, toprak çok kuru veya çok doygun hale gelirse uyarılar ve e-postalar tetiklenir.

Önkoşullar

  • Arduino için en azından temel kodlama ve lehimleme dahil Arduino bilgisi.
  • 1x basınçlı bahçe musluğu

Malzeme Listesi

  • Bahçe sulama poli boru, jetler, damlatıcılar vb.
  • İki kadranlı elektronik musluk zamanlayıcısı (yani: Aqua Systems Electronic Digital Tap Timer)
  • Basınç düşürücü 300kpa dokunun
  • Arduino Uno
  • Lora Arduino Kalkanı
  • Lora Gateway (Menzilde yerel bir Things Network ağ geçidiniz varsa gerekli değildir)
  • DHT11 Sıcaklık Nem sensörü
  • 5v Röle
  • Telefon Kablosu
  • Kablo bağları
  • Otomotiv Ayrık Oluklu Boru
  • Otomotiv Terminal Konnektör Şeritleri
  • 2x Galvanizli çivi
  • 1x Direnç
  • Silikon / Kalafat
  • PVC Çimento
  • PVC Astar
  • PVC Boru 32mm genişlik x 60mm uzunluk
  • PVC Boru 90mm genişlik x 30cm uzunluk
  • 3x PVC İtmeli Uç Kapakları 90mm
  • 1x PVC Vidalı Uç Kapağı 90mm
  • 1x PVC Dişli Ekleme Bağlantısı 90mm
  • 1x PVC İtmeli Uç Kapakları 32mm
  • 1x 3,2V güç kaynağı (düşük zamanlayıcı) [piller, AC multivolt adaptörü]
  • 1x 6-12V güç kaynağı (arduino) [piller, USB, USB'den AC adaptörüne]
  • iplik mühür bandı
  • elektrik bandı

Adım 1: Bahçe Sulamayı Kurun

Bahçe Sulama Kurulumu
Bahçe Sulama Kurulumu
Bahçe Sulama Kurulumu
Bahçe Sulama Kurulumu

Düzen poli boru, uygun jetler, damlama hatları ve damlatıcılar. Sulama kontrolörü, herhangi bir sulama donanımıyla çalışacaktır. Özünde, toprak nemi okumalarını ölçer ve toprak çok kuruysa ve ne zaman olursa olsun musluk zamanlayıcısını etkinleştirir. Denetleyici, doygunluk için düşük noktayı, kademe zamanlayıcısının ne kadar süreyle açılması gerektiğini ve denetleyicinin doygunluğu ne sıklıkta kontrol etmesi gerektiğini ayarlamak üzere kalibre edilebilir.

Bu ayarlar arduino üzerinde değiştirilebilir ve EPROM hafızasında saklanabilir. Ayarlar, IOT entegrasyonu ile de güncellenebilir. Bu proje, kontrol cihazını her dört saatte bir çalıştıracak ve toprak çok kuruysa musluğu 3 dakika boyunca açacaktır. Kuru/sıcak ise arka arkaya birkaç kez veya aksi takdirde günde bir veya iki kez çalışabilir.

Adım 2: Dokunma Zamanlayıcısını Sığdır

Dokunma Zamanlayıcısını Sığdır
Dokunma Zamanlayıcısını Sığdır

Sulama kurulumunuz için en iyi sonucu veren kaba bir frekans ve çalışma süresi bulmak için musluk zamanlayıcısını takın ve ayarlanabilir kadranlarla denemeler yapın. Zamanlayıcıyı kaldıracağız ve bir Arduino ile çalışacak şekilde değiştireceğiz.

Adım 3: Arduino Yapısı

Arduino Yapısı
Arduino Yapısı
Arduino Yapısı
Arduino Yapısı
Arduino Yapısı
Arduino Yapısı
Arduino Yapısı
Arduino Yapısı

Kurulum için bir kılavuz olarak kablo şemasını kullanın. Fotoğraflarda telefon kablosu kullanılmıştır ve bağlantı noktaları için vidalı klemens şeritleri kullanılmıştır. Bazı lehimleme gereklidir.

Zamanlayıcı Modifikasyonu'na dokunun

Musluk zamanlayıcısını dikkatlice ayırın. İki ayarlanabilir kadranı, manuel kadranlar yerine arduino tarafından kontrol edilebilmeleri için sert bir şekilde bağlayacağız. Sol frekans kadranı, sağ kadranın açık/kapalı konumu arasında değiştirilebilmesi için sıfırlama konumuna sabit olarak bağlanacaktır. Sağ kadran, gösterildiği gibi orta sağ kontaktan ve dış sağ kontaktan gelen bir kabloya sahip olacaktır. Varsayılan olarak zamanlayıcı kapalı konumda olacaktır. İki kablo temas ederse zamanlayıcı açılır. Bir 5V röleye bağlanan iki kabloyla, bir arduino iki kablo arasındaki kontağı kapatabilir/açabilir. Bir kablo ortak röle terminalinde ve diğeri normalde kapalı terminaldeyken arduino kapatıldığında zamanlayıcının kapanmasını sağlayacağız. Röle pimini YÜKSEK olarak ayarlamak zamanlayıcıyı açacaktır; DÜŞÜK olarak ayarlamak zamanlayıcıyı kapatır.

Toprak Sondası

Bu proje için iki çivi vidalı terminallere bağlı tellere lehimlenmiştir. Bir çivinin ucu doğrudan toprağa gider. Diğeri arduinodaki bir analog girişe ve bir rezistöre bağlanır. Direnç, arduinos 5v sinyaline bağlanır. Sıkma şemasında gösterilmiştir.

Sıcaklık/Nem Sensörü

DHT11 Sıcaklık/Nem Sensörü, arduino'nun 5V, toprak ve arduino üzerindeki dijital pinine bağlanmıştır.

lora kalkanı

Bu projede ayrıca bir Dragino Lora Shield kullanılmıştır (bağlantı şemasında gösterilmemiştir).

PVC Taban

Bu projede kullanılan arduino için PVC Taban, diğer tüm bileşenleri su geçirmez PVC muhafaza içinde sabit tutarken sıcaklık/nem sensörünün açıkta kalabilmesi için tasarlanmıştır. Sensör için küçük bir delik açılır/kesilir ve nemin arduinoya ulaşmasını engellerken onu yerinde tutmak için silikon kullanılır. Şemada gösterilmiştir.

Adım 4: Arduino Programlama

Arduino Programlama
Arduino Programlama

Programlama ve test için bileşenleri bir devre tahtası veya terminal şeritleri aracılığıyla birbirine bağlayın

EPROM Yapılandırması

İlk önce konfigürasyon değişkenlerini EPROM hafızasına yazmamız gerekiyor. Arduino'nuzda aşağıdaki kodu çalıştırın:

Github'da mevcut kod

Burada DRY_VALUE 960'a ayarlanmıştır. 1024, toprağın tamamen kuru olduğu, 0 tam doygunluk anlamına geldiği, 960 ise direnç, kablo uzunluğu ve kullanılan çiviler için iyi bir doygunluk seviyesi olduğu anlamına gelir. Bu, kendi yapılandırmanıza bağlı olarak değişebilir.

VALVE_OPEN, 180000 milisaniye (3 dakika) olarak ayarlanmıştır. Musluk zamanlayıcı açıldığında/açılırsa, 3 dakika boyunca açık bırakılacaktır.

RUN_INTERVAL, 14400000 milisaniye (4 saat) olarak ayarlanmıştır. Bu, kontrol cihazının her dört saatte bir toprak nemini kontrol edeceği ve doygunluk düşükse (960'tan fazla) 3 dakika boyunca musluk zamanlayıcısını açacağı anlamına gelir.

Yukarıdaki kod değiştirilebilir ve bu değerler herhangi bir zamanda değiştirilebilir.

Program kodu

Github'da mevcut kod

Bağımlılıklar:

  • ZamanlıAksiyon
  • Radyo Başkanı

Bu örnek, Dragino Lora kalkanını ve özellikle kalkanın doğrudan Dragino Lora Ağ Geçidine bağlanan Lora eşzamanlı örneğini kullanmıştır.

Bu, "BEGIN: lora vars" bölümünün altındaki kodu kaldırarak ve programı aşağıdaki Dragino örneğini içerecek şekilde değiştirerek veya diğer radyolar/wifi kalkanları vb. ile çalışacak şekilde uyarlanarak Things Network'ü kullanmak üzere uyarlanabilir.

Verilen kod, DHT11_PIN'in dijital pin 4, RELAY_PIN'in dijital pin 3 ve toprak nemi analog pininin analog giriş 0 olduğunu varsayar.

Seri hata ayıklama iletilerinin baudrate 9600'de günlüğe kaydedilebilmesi için bir hata ayıklama değişkeni true olarak ayarlanabilir.

Adım 5: Muhafaza Oluşturma

Muhafaza Yapısı
Muhafaza Yapısı

PVC boruyu musluk zamanlayıcısına ve Arduino tabanına uyacak şekilde kesin. Musluk zamanlayıcı musluk bağlantısı ve hortum bağlantısı için delikler açın. Boruya otomotiv borusu için yeterince geniş delikler açın, borunun 10 cm uzunluğundaki uzunluklarını deliklere kaydırın ve arduino ve zamanlayıcıdan kabloları ayırın. Bu şunları içermelidir:

Arduino'dan

  • Arduino'nun USB bağlantı noktasından güç kaynağı kabloları ve/veya bir USB kablosu.
  • Toprak Nem kabloları (VCC, GND, A0)
  • Rölenin NC ve Ortak vidalı terminallerinden iki kablo

Dokunma zamanlayıcısından

  • Güç kaynağı kabloları
  • Sağ arama kontaklarından iki kablo

Adım 6: Yapıştırmadan Önce Kontrol Cihazı Test Edin

Yapıştırmadan Önce Kontrol Cihazı
Yapıştırmadan Önce Kontrol Cihazı
Yapıştırmadan Önce Kontrol Kontrolörü
Yapıştırmadan Önce Kontrol Kontrolörü

Her şeyi kapatmadan önce her şeyin hala çalıştığından emin olun.

Yukarıdaki fotoğraflar, toprak nemi probunun bir tencereye yerleştirildiği ve musluk zamanlayıcısına bir meşrubat şişesinden gelen su ile donatıldığı bir esky'deki örnek kurulumunu göstermektedir.

Musluk zamanlayıcısına bir damlatıcı takıldı.

Bu, kurulumun bitkinin üzerinde veya altında olmadığını test etmenin iyi bir yoluydu.

Bu örnek, denetleyiciyi kalibre etmek için gerektiği kadar çalıştırılabilir.

Adım 7: Tutkal / Su Geçirmez Muhafazalar

Tutkal / Su Geçirmez Muhafazalar
Tutkal / Su Geçirmez Muhafazalar

Uç kapaklarını ve kaplini sabitlemek için PVC Astar ve PVC Çimento kullanın.

Otomatik boru ve musluk zamanlayıcı bağlantılarının etrafındaki boşlukları doldurmak için kalafat/silikon kullanın.

Burada erişilebilirlik için arduino muhafazasında bir vidalı uç kapağı kullanılır.

Adım 8: Yükleyin

Düzenlemek
Düzenlemek
Düzenlemek
Düzenlemek
Düzenlemek
Düzenlemek

Açık bir günde kurun. Bileşenlerin ve tellerin kapatılmadan önce kuru kalması gerekecektir.

Kontrol cihazını, bahçe musluğunun bulunduğu yer ile toprak sondasının yerleştirileceği yer arasında ortalanmış bir yere yerleştirin.

Musluk zamanlayıcısını takın ve kurulum tamamlanana kadar gücün kesildiğinden emin olun.

Toprak sondasını takın.

Her bileşene şerit terminaller takın, ardından kablonun otomatik kanalla kaplandığından emin olarak her bileşenin vidalı terminallerinden telefon kablosunu döşeyin. Her şeyi birbirine bağlamak

Tüm terminalleri ve açıkta kalan diğer parçaları önce dişli yalıtım bandıyla, ardından elektrik bandıyla kapatın.

Bölünmüş kanalın herhangi bir gevşek/açık alanlarını önce dişli yalıtım bandıyla, ardından elektrik bandıyla kapatın.

Zamanlayıcıyı bir 3.2v güç kaynağına bağlayın. Ya bir pil takımına ya da bir elektrik prizine bağlanan bir 3.2V DC - AC adaptörüne.

Arduino'yu 6-12V DC güç kaynağına bağlayın. Ya bir pil takımına ya da bir elektrik prizine bağlanan bir USB / DC-AC adaptörüne.

Güçlendirin ve test edin!

9. Adım: ThingsBoard Entegrasyonu - İzleme ve Raporlama

ThingsBoard Entegrasyonu - İzleme ve Raporlama
ThingsBoard Entegrasyonu - İzleme ve Raporlama

Bu örnekte, bir Dragino Lora Ağ Geçidine bağlı bir Dragino Lora Kalkanı kullanılmıştır. Bu kurulum, başka bir Lora kurulumu veya başka herhangi bir IOT bağlantısı kullanılarak, sulama kontrolörü tarafından toplanan veriler, Thingsboard gibi bir IOT platformuna iletilebilir. Varsayılan olarak program, her karakter baytının hex kodlu olduğu aşağıdaki veri dizisini iletir:

TXXXHXXXSXXXXRX

T'nin ardından sıcaklığın, H'nin ardından nem, S'nin ardından doygunluk seviyesi ve R'nin ardından son çalışma aralığında hangi eylemi gerçekleştirdiğine ilişkin tek bir rakam gelir. Bu, her bir rakamın şu anlama geldiği 0-5 olabilir:

0: Program başlatılıyor1: Sıcaklık Sensörü hatası2: Sıcaklık çalıştırılamayacak kadar düşüktü3: Toprak nemi çok kuru, bu nedenle musluk zamanlayıcı etkinleştirildi4: Toprak nemi ince, bu nedenle musluk zamanlayıcı etkinleştirilmedi5: Sulama denetleyicisi devre dışı bırakıldı

Kendi ekipmanınıza Thingsboard'un bir kopyasını kurmanın birkaç yolu vardır veya buradan ThingsBoard kurulumumuzda ücretsiz bir hesap oluşturabilirsiniz.

Cihazınızı Thingsboard'da kurun

Thingsboard'a "Irrigation Controller" adını veren yeni bir cihaz eklemek için bu talimatları izleyin.

Cihazdan Telemetri verilerini itin

MQTT, HTTP veya CoAp aracılığıyla telemtry verilerini cihazdan Thingboard'a gönderme yöntemini ayarlamak için bu talimatları izleyin.

Sunucumuzda, cihaz çalıştırıldığında (canlı verilerle) her dört saatte bir aşağıdaki JSON'u https://thingsboard.meansofproduction.tech/api/v1/… adresine gönderiyoruz:

Ayrıca, düğümün en son ne zaman görüldüğüne ilişkin verilerle birlikte aşağıdaki öznitelikleri düzenli aralıklarla https://thingsboard.meansofproduction.tech/api/v1/… adresine gönderiyoruz:

Bu, cihaz veri iletimini durdurursa tetiklenen uyarılar için kullanılır.

Gösterge Tablosu Oluşturun

Burada açıklandığı gibi bir pano oluşturun. Widget'larımız şunları içerir:

lastRunResult telemetri alanından oluşturulan basit bir kart widget'ı. Sıcaklık telemetri alanı için dikey bir dijital gösterge Son gün verilerini gösteren lastRunResult telemetri alanından oluşturulan bir Timeseries tablosu. Doygunluk telemetri alanını gösteren yatay bir çubuk. Bu, bir veri işleme sonrası işlevi kullanır:

1024 değerini döndür;

Ve minimum ve maksimum 0-100 değerini ayarlar. Bu şekilde doygunluk seviyesi yüzde olarak ifade edilebilir. Nem değerini göstermek için bir gösterge. Sıcaklık, nem ve çalışma sonucunu içeren, geçen hafta için 5 saatlik periyotlar halinde gruplanmış, maksimum değerleri gösterecek şekilde toplanmış bir zaman serisi çubuk grafiği. Bu bize dört saatlik bir koşu olayı için bir çubuk verir. Suyun çalıştırılıp çalıştırılmadığına bağlı olarak çalışma sonucunu 0 veya 120 olarak ifade etmek için bir veri son işleme işlevi kullanılır. Bu, suyun bir haftada ne sıklıkta aktığını görmek için kolay bir görsel geri bildirim sağlar. Bahçenin bir görüntüsünü gösteren statik bir HTML kartı.

E-posta uyarıları

Sulama kontrolörü için e-posta uyarıları ayarlamak için kuralları kullandık. Tümünde mesaj filtreleri ve bir Posta Gönder Eylemi Eklenti Eylemi kullanılır.

Sulama kontrolörü veri gönderemezse bir e-posta uyarısı göndermek için aşağıdaki filtreyle 'Cihaz Nitelikleri Filtresi'ni kullandık:

typeof cs.secondsSinceLastSeen !== 'tanımsız' && cs.secondsSinceLastSeen > 21600

Toprak çok kuru olursa bir e-posta göndermek için aşağıdaki Telemetri filtresini kullanın

typeof saturation != "tanımsız" && doygunluk > 1010

Toprağın çok nemli olup olmadığına bağlı olarak bir e-posta göndermek için aşağıdaki Telemetri filtresini kullanın

typeof saturation != "tanımsız" && doygunluk

Önerilen: