İçindekiler:

Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı: 6 Adım
Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı: 6 Adım

Video: Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı: 6 Adım

Video: Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı: 6 Adım
Video: Gömülü Sistemler / Arduino İle Sera Sistemi / 08.04.2021 2024, Kasım
Anonim
Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı
Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı
Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı
Sulama Pompa Seti için IOT Tabanlı DOL Starter Kontrol Cihazı

Merhaba arkadaşlar

Bu talimat, internet üzerinden bir sulama pompası setinin uzaktan nasıl izleneceği ve kontrol edileceği ile ilgilidir.

Hikaye: Çiftliğimde günde sadece 6 saat yerel şebekeden güç kaynağı alıyorum. Zamanlamalar düzenli değil, gücün kullanılabilirliği sabah erken veya akşam geç saatlerde ve hatta gece yarısı olabilir. Güç kullanılabilirliğini kontrol etmek için sondaj kuyusu konumuna her gittiğinizde, motoru başlatmak veya durdurmak çok acı verici bir süreçti. Ayrıca damlama sistemine yeterli su sağlamak için motorun günde en az 2-3 saat çalışmasını sağlamalıydım. Bir süredir motoru uzaktan çalıştırarak bu sorunu çözmek için seçenekleri araştırıyordum ve durumu da biliyordum. Piyasada elektrik geldiği anda motoru çalıştıracak cihazlar var ama istediğimiz zaman motoru durdurma özelliği yok. Ayrıca herhangi bir zamanda motorun AÇIK/KAPALI durumunu bilmenin bir yolu yoktur. Bu genellikle aşırı sulamaya yol açarak toprak verimliliğinin kaybolmasına ve ayrıca elektrik israfına yol açar. Sonunda, herhangi bir zamanda, herhangi bir yerde, mobil/tablet/PC'den motoru uzaktan başlatıp durdurabileceğim bir çözüm geliştirdim…!!. Ayrıca şebekeden gelen güç kaynağının kullanılabilirliğini ve motor durumunu (AÇIK/KAPALI) her zaman izleyebilirim. Umarım, kırsal kesimdeki çiftlik sahiplerine, her zaman başlangıç yerine gitmeye gerek kalmadan sulama sistemlerini yönetmelerine yardımcı olur.

Gereçler

Önkoşullar:

Bu cihazı kurmak istediğiniz yerde internet kullanılabilirliği olmalıdır (wifi/mobil internet ile geniş bant)

İhtiyacın olan şeyler:

  1. DüğümMCU /ESP12
  2. İki kanallı röle
  3. WCS1700 – Akım sensörü
  4. TP4056 pil şarj modülü
  5. LD313, Kapasitör – 1000uF Kayıt – 5k ohm'luk iki kayıt
  6. Hotspot / internet ile herhangi bir (Eski) Akıllı Telefon.

Nasıl çalışır:

NodeMCU/ESP12 ve uzak MQTT aracısı kullanan basit bir bulut tabanlı IOT çözümü. NodeMCU, bir IOT ağ geçidi olarak çalışır, ayrıca DOL başlatıcısını da kontrol eder. İnternet üzerinden uzak MQTT aracısına bağlanır. Bir Android cep telefonunda çalışan bir uygulama, komisyoncuya bağlanır ve bu sayede sulama pompa setimizi her zaman izleyip kontrol edebiliriz. Adafruit IO'dan ücretsiz olarak temin edilebilen MQTT komisyoncusunu kullandım. Mosquitto, cloudmqtt vb. gibi birçok ücretsiz aracı kurum mevcuttur. Sunucuyu ve koddaki bağlantı noktası numarasını değiştirmek şartıyla herhangi bir aracıyı seçebilirsiniz. NodeMCU, mobil erişim noktasından WiFi kullanarak internete bağlanır. Yon, herhangi bir eski veya düşük maliyetli mobil cihazı, etkin nokta üzerinden wifi erişimi sağlamak için veya wifi üzerinden internet sağlamanın başka herhangi bir yolunu kullanabilir. Mobil, 24X7 olması gerektiği gibi şarj cihazına bağlanmalıdır.

NodeMCU, motorun başlatma ve durdurma işlemini kontrol etmek için iki röle ile arayüzlenmiştir. Motordaki akımı algılamak için WCS1700 akım sensörünü kullandım. Sensörden gelen analog çıkış, motorun AÇIK veya KAPALI olduğunu bilmek için kullanılır. Ayrıca, şebekeden gelen güç kullanılabilirliğini algılar ve bunu, şebeke durumunu her zaman öğrenebilmemiz için aracıya yayınlar. Cihaz, motor AÇIK ve motor KAPALI talebini almak için iki beslemeye abone olur. Bu beslemelere belirli değerler göndererek motoru START veya STOP olarak kontrol edebiliriz.

Son olarak, android telefonuma MQTT Dash uygulamasını yükledim ve onu MQTT komisyoncusuna bağlanacak ve gösterge tablosundaki/gui'deki yayınları kullanacak şekilde yapılandırdım. Uygulama, çekici bir gösterge panosu oluşturmak için düğmeler, gösterge, anahtar vb. ile çok iyi simgelere sahiptir. Ancak mqtt protokolünü destekleyen herhangi bir IOT ev otomasyonu mobil uygulamasını kullanabilirsiniz.

WCS1700 nasıl çalışır:

WCS1700 temel olarak akım bobinden akarken oluşturulan manyetik alanla orantılı çıkış voltajı üretecek bir Hall etkisi sensörüdür. Buradaki bobin motora bağlanacak olan bir güç besleme hattıdır. 70 Ampere kadar AC akımı ölçebilir. Çalışma voltajı 3,3 ila 12 V arasındadır. Daha fazla ayrıntı için veri sayfasına bakın. ESP12 kullandığım için, WCS1700 için çalışma voltajı olarak aynı 3.3V güç kaynağını kullandım. Veri sayfasında belirtildiği gibi 3,3 V'ta cihaz, bobinden geçen her amper akım için yaklaşık 32 ila 38 mV'luk bir diferansiyel voltaj üretmelidir. Fakat batarya ebadı/hava boşluğuna ve cihazdaki farklılıklara göre değişiklik gösterebilir. Bu yüzden Amper Metre ile test ederek kalibre etmem gerekti. Cihazın doğruluğundan memnun değilim ama Motorun durumunu AÇIK/KAPALI olarak belirlemeye yetecek kadar iyi. WCS1700'ün çıkış pini, ESP12'nin A0'ına bağlanır. Akım olmadığında, ESP12 değeri 556 civarında okumalıdır. Bobindeki akım arttıkça, kablonun sensörden nasıl geçtiğine bağlı olarak voltaj her iki tarafta da olabilir. Kodda değerlerin farkını (x - 556) mutlak değeri olarak aldım. Sonucu 15'e bölerek sensörden geçen yaklaşık akımı elde ettim. Sizin için doğru numarayı elde etmek için bunu denemeniz gerekecek. Cihaz tarafından 5 Amper'in üzerindeki herhangi bir akım ölçümünü motor AÇIK ve 5 Amp'in altındaki motor KAPALI olarak kabul ediyorum. Deneme yaparak cihazınız için doğru numarayı kullanabilirsiniz. Kodda buna göre WCS1700_CONST ve MIN_CURRENT değiştirmeniz gerekir.

Adım 1: Cihaz Yapısı

Cihaz Yapısı
Cihaz Yapısı
Cihaz Yapısı
Cihaz Yapısı

Yukarıdaki şema, tüm bileşenlerin nasıl kablolanacağına dair eksiksiz bir ayrıntı vermektedir.

Güç kaynağı: Pilleri şarj etmek için TP4056'yı ve NodeMCU'ya güç sağlamak için 3,7V - 4,2V pil çıkışını 3,3 V'a ayarlamak için LM313'ü kullandım. 3.3V'luk kararlı besleme elde etmek için Vin ile LM313'ün toprağı arasında 1000mF kapasitör kullanıldı. TP4056'ya güç sağlamak için normal USB mobil şarj cihazını kullanabilirsiniz. Pili aşırı şarjdan korumak için pil koruma devresine sahiptir.

Şebeke Güç kaynağı algılama: 5k ohm voltaj bölücü, 5 V'u 2,5 V'a düşürür. NodeMCU'nun D5 pimi voltajı algılayacaktır.

Sensörden gelen analog voltajı okumak için WCS1700'ün çıkış pini A0'a bağlanır. Şebeke Güç hattı akımı ölçmek için delikten geçmelidir. 0.01 uF kapasitör kullandım, WCS1700'ün kararlı okuma formunu elde ettim.

NodeMCU'nun D1 ve D2'si, röle giriş pinlerinin IN0 ve IN1'ine bağlanacak.

2. Adım: DOL Başlatıcı Bağlantıları

DOL Starter Bağlantıları
DOL Starter Bağlantıları
DOL Starter Bağlantıları
DOL Starter Bağlantıları

Başka bir BAŞLAT ve DURDUR anahtarı seti tanıtmak için DOL marş motorunun kontrol devresini değiştirdim. Bu değişiklik manuel başlatma/durdurma işlemini etkilemez ve olduğu gibi çalışmaya devam eder.

Dikkat !!!! DOL starter bir Yüksek Voltaj cihazı olduğundan, kutuyu açmadan önce ana şalterin kapalı olduğundan emin olun. Canlı kablo ile doğrudan temas tehlikeli olabilir. Kendinizden emin değilseniz, bağlantıları yapmak için bir elektrikçiden yardım alınız

START ve STOP anahtarı olarak 2 kanal 5 V röle modülünü kullandım. Bu röleler ESP12 tarafından kontrol edilecektir.

Röle – 0, BAŞLAT anahtarı olarak çalışır - HAYIR (Normalde Açık) olarak bağlanır.

Röle-1, STOP anahtarı olarak çalışır - NC (Normalde Kapalı) olarak bağlanır. Marş motorunda zaten üst kontaktörden NVC'ye bağlanan bir kablo olacaktır. Çıkarmanız ve gösterildiği gibi röle -1 kablolarıyla değiştirmeniz gerekecektir.

Güvenlik için yolverici ve Röle modülleri arasındaki bağlantıların tamamen yalıtıldığından emin olun. ESP'yi BAŞLAT/DURDUR düğmesine basmayı taklit etmek için her iki röleyi 2 saniye tutacak şekilde programladım.

Adım 3: Adafruit IO ile Hesap Oluşturun (io.adafruit.com)

Birkaç sınırlama ile kullanımı ücretsiz olan Adafruit io mqtt brokerini kullandım, ancak kullanımımız için uygun. Bunu tercih ediyorum çünkü başka projelerde de kullandım ve oldukça güvenilir buldum ve ayrıca güzel GUI'li Dashboard gibi birçok özelliğe sahip ve hatta tetikleyicileri kullanabiliriz. Adafruit io'yu kullanmak için bir hesap oluşturmanız ve Kullanıcı Adını ve Aktif Anahtarı not etmeniz gerekir.

Adım 4: Yazılımı Oluşturun ve Yükleyin

Komple kod çizimde mevcuttur. Bunu Arduino IDE'de açmanız ve bellenimi derlemeden ve yüklemeden önce birkaç değişiklik yapmanız gerekir. Kart tipini NodeMCU 1.0 olarak seçin. IDE ve ilgili kitaplıkların kurulumu bu belgenin kapsamında değildir.

Kodda aşağıdaki satırları nadas olarak değiştirin.

#define WLAN_SSID "xxx" // Mobil Bağlantı Noktası WiFi SSID'niz

#define WLAN_PASS "……" //

/************************* Adafruit.io Kurulumu ******************** *************/

#define AIO_SERVER "io.adafruit.com"

#define AIO_SERVERPORT 1883 // SSL için 8883 kullan

#define AIO_USERNAME "xyz" // Adafruit hesabı kullanıcı adınız

#define AIO_KEY "abcd……" // Aktif anahtarınız…

MQTT Akışları Hakkında: Cihaz ve istemci (mobil uygulama), MQTT aracısı aracılığıyla pub alt modelini kullanarak mesaj akışları aracılığıyla bilgi alışverişinde bulunur. Herhangi bir istemci veya cihazın mesaj alabilmesi için önceden tanımlanmış bir beslemeye abone olması ve bir beslemeye mesaj göndermek için yayınlama yöntemini kullanması gerekir. Projemiz için yaklaşık 5 beslemeye ihtiyacımız var. Aşağıda, kodda gördüğünüz gibi her bir beslemenin açıklaması ve nasıl çalıştıkları yer almaktadır.

Şebeke Durumu: Şebekeden güç kaynağının kullanılabilirliği besleme /feeds/grid'de yayınlanır. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/grid");

0, güç kaynağının mevcut olmadığını ve güç kaynağı için 1'in mevcut olduğunu gösterir.

Motor Durumu: Cihaz motorun durumunu besleme …/beslemeler/şebeke üzerinde yayınlayacaktır.

Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/motor")

KAPALI için 0 ve AÇIK için 1 değeri

Motor ON Butonu: Bu besleme, motor start talebini almak için kullanılır. Cihaz, = 1 değerinde motor başlatma talebini almak için beslemeye abone olur ve aynı beslemeyi 0 olarak onay mesajını yayınlamak için kullanır. Bu şekilde başlatma talebi mesajının gerçekten cihaz tarafından alındığını doğrulayabiliriz.

Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_on");

Motor KAPALI Düğmesi:

Başlatma talebine benzer şekilde bu besleme, motor durdurma talebini almak için kullanılır. Cihaz, 1 değeri ile durdurma talebini almak için beslemeye abone olur ve aynı beslemeyi 0 olarak kabul mesajını yayınlamak için kullanır.

Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/motor_off");

Bağlantı:

Bu, "son irade" seçeneği etkinleştirilmiş özel bir yayındır. Cihaz her sabit aralıkta iyi çalıştığında, kullanıcıya her şeyin yolunda olduğunu söylemek için connection=1 yayınlayacaktır. Sistemin çökmesi veya bağlantının kesilmesi durumunda cihaz, broker ile iletişim kuramaz. Bu gibi durumlarda, MQTT aracısı, kullanıcının bir şeylerin ters gittiğini ve cihaza internet üzerinden erişilemediğini bildirmek için feed'e bağlantı=0 olarak yayınlayacaktır. Fiziksel olarak gidip cihazı kontrol etmeliyiz. Kod çok basit. “Son İrade”nin nasıl çalıştığı hakkında daha fazla ayrıntı için MQTT belgelerine bakın.

if(itr <= 0)

{

mqtt.publish(AIO_USERNAME "/feeds/connection", "1", 1);

itr = CON_LIVE_ITR;

}

Kodun geri kalanı açıklayıcıdır ve herhangi bir değişiklik yapılması gerekmez. Daha fazla bilgiye ihtiyaç duymanız durumunda yorum yapmaktan çekinmeyin.

Adım 5: MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın

MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın
MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın
MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın
MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın
MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın
MQTT Dash APP'yi Cep Telefonunuza Kurun ve Yapılandırın
  1. Android telefonunuza MQTT Dash yükleyin ve uygulamayı açın
  2. Bir cihaz eklemek için sağ üst köşedeki + simgesine tıklayın.
  3. Yukarıdaki ilk resimde gösterildiği gibi, cihazınıza "MyFarm-IPSet" deyin. Adres alanı io.adafruit.com ve port olarak 1883, kullanıcı adınız adafruit kullanıcı adınız ve şifreniz adafruit'ten Aktif Anahtarınız olmalıdır. Kalan alanları olduğu gibi bırakın. Son olarak kaydet'e tıklayın.
  4. Cihazınızı oluşturdunuz. Şimdi kontrol paneli eklemek için üzerine tıklayın.
  5. + üzerine tıklayın ve anahtar/düğme olarak türü seçin. Yukarıda gösterildiği gibi ad alanına sys yazın. ve konu alanına besleme adını girin. her feed kullanıcı adı/feeds/ ile başlamalıdır. bunun için biz /feeds/connect. Yayınlamayı Etkinleştir'in devre dışı bırakıldığından emin olun. Görüntülenecek simgeye tıklayarak, gösterge tablosunda görünmesini istediğiniz simge türünü seçebilirsiniz. 1 değeri için renklerden birini seçin (yeşil deyin) ve 0 değeri için rengi gri veya kırmızı olarak seçin. Son olarak sağ üst köşedeki kaydet seçeneğine tıklayın. Benzer şekilde, biri konu olarak kullanıcı adı/beslemeler/ızgara ile Izgara ve kullanıcı adı/yayınlar/motor ile Motor için iki simge daha oluşturun. Yayınlamayı Etkinleştir'in devre dışı bırakıldığından emin olun.
  6. Son olarak Motor ON düğmesini oluşturun. Anahtar/düğme tipi ile yine aynı. Konu /feeds/motor_on olmalı ve bu sefer Yayınlamayı Etkinleştir'in etkinleştirildiğinden ve QOS =1 olduğundan emin olun. Benzer şekilde Motor KAPALI için başka bir düğme oluşturun. Konu /feeds/motor_off olmalıdır.

Adım 6: Son Adım:-) Test ve İnce Ayar

  1. Güvende olmak için, röleleri DOL yolvericiye bağlamadan önce cihazı BAŞLAT ve DURDUR işlemleri için test etmeniz gerekir. İnternet etkinken mobilde Hotspot'u etkinleştirin. Geliştirme ortamına sahip dizüstü bilgisayarı, aynı anda TP4056'ya bağlı başka bir şarj cihazı ile doğrudan NodeMCU USB bağlantı noktasına bağlayın. Cihaz internete başarılı bir şekilde bağlanırsa, akıllı telefonda hotspot'a bağlı 1 cihaz görmelisiniz.
  2. MQTT Dash'i kurduğunuz diğer akıllı telefonda uygulama panosunu açın. NET ikonunun yeşil ve Grid ikonunun da 1 değerleri ile yeşil olduğunu görmelisiniz. Motor ikonu 0 değeri ile motor kapalı olarak görünmelidir.
  3. Motor AÇIK düğmesine tıkladığınızda, başlatma rölesi iki saniye aralıklarla iki tıklama sesi çıkarmalıdır. Benzer şekilde Motor KAPALI düğmesi de.
  4. Güvenlik için şimdi DOL başlatıcısına giden ana beslemeyi kapatın ve röleleri yukarıda 2. adımda gösterildiği gibi DOL başlatıcısına bağlayın. Motorun kapalı olduğundan emin olun. NodeMCU'daki sıfırlama düğmesine basın. Seri monitör çıkışından, WC1700 sensöründen, deltadan ve bobinde hesaplanan akımdan gelen değerleri yazdıran hata ayıklama ifadelerini görebilirsiniz. Motor kapalı durumdayken ve " #define WCS1700_CONST 15 " ile maxCur sürekli olarak 2'den az olmalıdır. 2'den büyük gösteriyorsa, daha yüksek WCS1700_CONST değerleriyle deneyin. Her seferinde kodu yeniden derlemeniz ve bellenimi yüklemeniz gerekecektir.
  5. Şimdi motoru AÇIN ve mevcut okumaları tekrar arayın. Motoru yaklaşık 10-15 dakika AÇIK bırakın ve sabit akım okumasını not edin. Akım kabaca 10 ila 20 Amper arasında değişebilir ve doğru olması gerekmez.
  6. Koda geri dönün ve " #define MIN_CURRENT X'i ayarlayın. Burada X, sayısal değere yaklaşık olarak maksimum akımın yüzde 40'ıdır. Benim durumumda MIN_CURRENT'i 5'e ayarladım ve bellenimi yeniden NodeMCU'ya yükleyin.
  7. USB kablosunu NodeMCU'dan çıkarın. TP4056'ya bağlı USB şarj cihazı ile cihazı KAPATIN ve AÇIN. Mobil uygulamadaki Motor ON butonuna tıklandığında motor çalıştırılmalıdır. Motor açık olduğunda motorun durumu, uygulama panosuna AÇIK olarak yansıtılmalıdır. Durdur düğmesine tıklamak motoru durdurmalıdır.

Eğlence !!!!

Önerilen: