İçindekiler:

Kablosuz Bahçe Sistemi: 7 Adım
Kablosuz Bahçe Sistemi: 7 Adım

Video: Kablosuz Bahçe Sistemi: 7 Adım

Video: Kablosuz Bahçe Sistemi: 7 Adım
Video: TAMAMEN KABLOSUZ KAMERA SİSTEMİ 2024, Kasım
Anonim
Kablosuz Bahçe Sistemi
Kablosuz Bahçe Sistemi

Bu proje Arduino'ya dayanmaktadır ve bitkilerinizi sulamanıza ve sıcaklık, toprak ve yağmurda oturum açmanıza yardımcı olmak için "modüller" kullanır.

Sistem 2, 4 GHz üzerinden kablosuz ve veri göndermek ve almak için NRF24L01 modüllerini kullanıyor. Nasıl çalıştığını biraz açıklayayım, PS! İngilizcem %100 doğru değilse kusura bakmayın, ben İsveçliyim.

Bu sistemi bitkilerimi kontrol etmek için kullanıyorum, günahlarım farklı bitkilerim var onları farklı loglamak için ihtiyacım var. Böylece bölge tabanlı bir log sistemi kuruyorum.

Toprak nemi ve sıcaklığını okuyan (pille çalışan) Toprak sensörleri her saat başı kontrol eder ve verileri wifi bağlantısı olan ana makineye iletir. Veriler evimdeki bir sunucuya yükleniyor ve bir web sayfasında oturum açılıyor.

Toprağın suya ihtiyacı varsa, hangi toprak sensörünün kontrol ettiğine bağlı olarak doğru pompayı çalıştıracaktır. Ama yağmur yağarsa su olmaz. Ve eğer gerçekten sıcaksa biraz daha sulayacaktır.

Diyelim ki bir adet patates, bir adet tütün ve bir adet domates tarlanız var, o zaman 3 farklı sensör ve 3 pompa ile 3 bölgeniz olabilir.

Ayrıca hareketleri kontrol eden pir sensörler de var ve eğer web sayfasında aktif hale getirilirlerse yüksek sesli bir siren hayvanı veya bitkilerime yakın yürüyen kişiyi korkutmaya başlayacak.

Umarım biraz anlarsın. Şimdi bazı sensörler yapmaya başlayalım.

Her şeyi indirdiğiniz GitHub sayfam:

Adım 1: Toprak Sensörleri

Toprak Sensörleri
Toprak Sensörleri
Toprak Sensörleri
Toprak Sensörleri
Toprak Sensörleri
Toprak Sensörleri
Toprak Sensörleri
Toprak Sensörleri

Her sensörün web sayfasına eklenen benzersiz bir numarası vardır. Böylece toprak sensörü, o toprak sensöründen gelen verileri iletirken doğru bölgeye eklenecektir. Sensör kayıtlı değilse, hiçbir veri gönderilmeyecektir.

Bu yapı için ihtiyacınız olan:

  • 1x Atmega328P-PU çipi
  • 1x nRF24L01 modülü
  • 1x 100 uf Kapasitör
  • 1x NPN BC547 Transistör
  • 2x 22 pF Kondansatörler
  • 1x 16.000 MHz Kristal
  • 1x Toprak Nemi sensörü
  • 1x DS18B20 Sıcaklık sensörü
  • 1x RGB Led (Common Anode tarafımdan kullanılmıştır)
  • 3x 270 ohm dirençler
  • 1x 4, 7 K ohm direnç
  • Pil (3.7v Li-Po pil kullanıyorum)
  • Ve li-po kullanılıyorsa, pil için bir şarj modülü.

Sensörlerin uzun süre çalışmasını sağlamak için önceden yapılmış herhangi bir Arduino kartı kullanmayın, pili çabucak boşaltırlar. Bunun yerine Atmega328P çipini kullanın.

Elektrik levhamda gösterildiği gibi her şeyi bağlayın. (Resme veya PDF dosyasına bakın) Şarj sırasında gücü kesebilmeniz için ayrıca bir güç anahtarı eklemenizi öneririz.

Kodu yüklerken, onlara benzersiz bir kimlik numarası vermek için sensör tanımlamayı unutmayın, kod GitHub sayfamda mevcuttur.

Toprak sensörlerini uzun süre canlı tutmak için, yalnızca okuma başladığında onları çalıştırmak için bir NPN transistörü kullanıyorum. Bu yüzden her zaman aktif değillerdir, Her sensörün 45XX ile 5000 arasında bir ID numarası vardır (bu değiştirilebilir), bu yüzden her sensörün benzersiz numaraları olmalıdır, tek yapmanız gereken kodda tanımlamaktır.

Sensörler pilden tasarruf etmek için uyku moduna geçecektir.

2. Adım: Hayvan Sensörü

Hayvan Sensörü
Hayvan Sensörü
Hayvan Sensörü
Hayvan Sensörü
Hayvan Sensörü
Hayvan Sensörü
Hayvan Sensörü
Hayvan Sensörü

Hayvan Sensörü basit bir pir sensörüdür. Hayvanlardan veya insanlardan gelen ısıyı algılar. Sensör hareketi algılıyorsa. Baz istasyonuna gönderecekler.

Ancak herhangi bir alarm çalmayacak, bunun için sayfada aktif etmeniz gerekiyor veya bir timer kurduysanız o anda otomatik olarak aktifleşecektir.

Baz Hayvan sensöründen hareket sinyali alırsa, bunu Siren sensörüne iletecek ve (umarım) hayvanı korkutup kaçıracaktır. Sirenim 119 db.

Pir sensörü pille çalışıyor ve onu eski bir alarmdan eski bir pir sensör kutusuna yerleştirdim. Hayvan sensöründen çıkan kablo sadece pili şarj etmek içindir.

Bu sensör için ihtiyacınız olan:

  • ATMEGA328P-PU çipi
  • 1 x 16 000 MHz Kristal
  • 2 x 22 pF kapasitör
  • 1 x Pir sensör modülü
  • 1 x 100 uF kapasitör
  • 1 x NRF24L01 modülü
  • 1 x Led (Burada herhangi bir RGB led kullanmıyorum)
  • 1 x 220 ohm direnç
  • Bir pille çalışacaksanız buna ihtiyacınız var (Li-Po kullanıyorum)
  • Bir şarj piliniz varsa bir pil şarj modülü.
  • Bir çeşit güç anahtarı.

Elektrik levhasında gördüğünüz gibi her şeyi bağlayın. Pir sensörünüzü pilinizden çalıştırabilmek için kontrol edin (Bazılarının çalışması için 5v gerekir).

GitHub'ımdan kodu alın ve kullanacağınız cadı sensörünü tanımlayın (Ör: SENS1, SENS2 vb.) benzersiz numaralar almaları için.

ATMEGA çipi yalnızca hareket kaydedildiğinde uyanır. Pir sensör modülünün yerleşik gecikme zamanlayıcısı olduğu için kodda bununla ilgili bir şey yok, bu nedenle pir sensöründeki potu gecikme için ayarlayın, uyanık olacaktır.

Hayvan sensörü için bu kadar, devam ediyoruz.

Adım 3: Su Pompası Kontrol Cihazı

Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı
Su Pompası Kontrol Cihazı

Su pompası kontrolörü, tarlalarınızı sulamak için bir pompa veya su vanasını çalıştırmak içindir. Bu sistem için pile ihtiyacınız yok, pompanızı çalıştırmak için güce ihtiyacınız var. Arduino'yu çalıştırmak için AC 230 - DC 5 v modülü kullanıyorum. Nano. Ayrıca 12 v ile çalışan bir Su vanası kullanan pompa tiplerine de ihtiyacım var, bunun için röle kartına AC 230 - DC 12v modülüm var.

Diğeri röleye 230 AC'dir, böylece 230 V AC Pompaya güç verebilirim.

Sistem oldukça basit, her pompa kontrolörün benzersiz id numaraları var, diyelim ki patates tarlası kuru ve sensör otomatik suya ayarlı, daha sonra patates tarlası için olan pompam o sensöre ekleniyor, yani toprak sensörü temel sisteme sulamanın başlaması gerektiğini söylüyor, böylece ana sistem o pompaya harekete geçmesi için bir sinyal gönderiyor.

Web sayfasında ne kadar süre çalışacağını (örneğin 5 dakika) ayarlayabilirsiniz, sensörler sadece saatte bir kontrol eder. Ayrıca pompa durduğunda, otomatik sistem pompayı yakında başlatmayacak şekilde zamanı sistemde saklayacaktır. (Ayrıca web sayfasında kurulum yapmak da mümkündür).

Ayrıca web sayfasından özel saatler ayarlayarak gece/gündüz sulamayı devre dışı bırakabilirsiniz. Ayrıca her pompanın sulamaya başlaması için zamanlayıcılar ayarlayın. Ve yağmur yağarsa sulamazlar.

Umarım anlarsın:)

Bu proje için ihtiyacınız olan:

  • 1 x Arduino Nano
  • 1 x NRF24L01 modülü
  • 1 x 100 uF kapasitör
  • 1 RGB Led (ortak anot tarafımca kullanılmıştır)
  • 3 x 270 ohm direnç
  • 1 x röle kartı

Her şeyi elektrik levhası olarak bağlayın (pdf dosyasına veya resme bakın) Kodu GitHub'dan indirin ve sensör numarasını tanımlamayı unutmayın.

Ve artık bir pompa kontrolörünüz var, sistem birden fazlasını işleyebilir.

Adım 4: Yağmur Sensörü

Yağmur sensörü
Yağmur sensörü
Yağmur sensörü
Yağmur sensörü
Yağmur sensörü
Yağmur sensörü
Yağmur sensörü
Yağmur sensörü

Yağmur sensörü, yağmuru algılamak için kullanılır. Birden fazlasına ihtiyacınız yok. Ancak daha fazlasını eklemek mümkündür. Bu yağmur sensörü pille çalışır ve her 30 dakikada bir yağmur olup olmadığını kontrol eder. Ayrıca kendilerini tanımlamak için benzersiz bir numarası vardır.

Yağmur sensörü analog ve dijital pinler kullanıyor. Dijital pin yağmur yağıp yağmadığını kontrol etmek içindir, (Dijital sadece evet veya hayır gösterir) ve "yağmur" hakkında uyarmak için uygun olduğunda yağmur sensörü modülündeki tencereyi ayarlamanız gerekir (sensördeki su seviyesi). yağmur yağdığını gösterir.)

Analog pin, sensör üzerinde ne kadar ıslak olduğunu yüzde olarak bildirmek için kullanılır.

Dijital pin yağmur olduğunu algılarsa, sensör onu ana sisteme gönderir. Ve temel sistem "yağmur" olduğu sürece bitkileri sulamayacak. Sensör ayrıca ne kadar ıslak olduğunu ve pil durumunu da gönderir.

Yağmur sensörüne yalnızca, dijital bir pim aracılığıyla etkinleştirilen transistör aracılığıyla okuma zamanı geldiğinde güç veriyoruz.

Bu sensör için ihtiyacınız olan:

  • ATMEGA328P-PU çipi
  • 1x 16 000 MHz Kristal
  • 2x 22 pF Kondansatör
  • 1x Yağmur sensörü modülü
  • 1x 100 uF kapasitör
  • 1x NRF24L01 modülü
  • 1x RGB Led (Ortak anot kullandım, GND yerine VCC)
  • 3x 270 Ohm dirençler
  • 1x NPN BC547 transistör
  • 1x Pil (Li-Po kullanıyorum)
  • 1x Li-Po Şarj Modülü (eğer Li-Po pil kullanılıyorsa)

Her şeyi elektrik sayfasında gördüğünüz gibi bağlayın (pdf veya resimde) Ardından kodu GitHub sayfamda Yağmur sensörü altında bulabileceğiniz gibi ATMEGA çipine yükleyin. Doğru kimlik numarasını almak için sensörü tanımlamayı unutmayın.

Ve artık her 30 dakikada bir çalışan bir yağmur sensörünüz olacak. Daha az veya daha fazla istemiyorsanız bunun üzerindeki zamanı değiştirebilirsiniz.

CounterHandler() fonksiyonunda chip için uyanma süresini ayarlayabilirsiniz. Şu şekilde hesaplarsınız: Chipler her 8 saniyede bir uyanır ve her seferinde bir değer artar. Yani 30 dakika boyunca, işlem yapmadan önce 225 kez alacaksınız.. Yani yarım saatte 1800 saniye var. Yani 8'e (1800 / 8) bölün, 225 elde edersiniz. Bu, sensörü 225 kez çalışana kadar kontrol etmeyeceği ve yaklaşık 30 dakika olacağı anlamına gelir. Aynısını toprak sensöründe de yaparsınız.

Adım 5: Hayvan Siren

hayvan siren
hayvan siren
hayvan siren
hayvan siren
hayvan siren
hayvan siren
hayvan siren
hayvan siren

Hayvan sireni basittir, hayvan sensörü hareket algıladığında sirenin devreye gireceği açıktır. Gerçek bir siren kullanıyorum, böylece insanları onunla korkutabilirim. Ancak sadece hayvanların duyduğu sirenleri de kullanabilirsiniz.

Bu projede Arduino nano kullanıyorum ve 12v ile çalıştırıyorum. Siren de 12 v olduğundan sireni etkinleştirmek için röle yerine 2N2222A transistör kullanacağım. Aynı toprağa sahipken röle kullanırsanız Arduino'nuza zarar verebilirsiniz. Bu yüzden sireni etkinleştirmek için bir transistör kullanıyorum.

Ancak sireniniz ve Arduino'nuz aynı toprağı kullanmıyorsa bunun yerine bir röle kullanabilirsiniz. Transistörü ve 2.2K direncini atlayın ve bunun yerine bir röle kartı kullanın. Ayrıca, etkinleştirildiğinde Arduino kodundaki değişiklik, YÜKSEK'ten DÜŞÜK'e değişir ve devre dışı bırakıldığında, DÜŞÜK'ten YÜKSEK'e geçiş yapılır ve pin 10 için dijital okuma yapılır, günahlar, röle etkinleştirmek için DÜŞÜK kullanır ve transistör YÜKSEK kullanır, bu yüzden bunu değiştirmeniz gerekir.

Bu yapı için ihtiyacınız olan:

  • 1x Arduino nano
  • 1x 2.2K Direnç (Röle kartı kullanılıyorsa atlayın)
  • 1x 2N2222 Transistör
  • 1x Siren
  • 3x 270 Ohm Direnç
  • 1x RGB Led (GND yerine ortak anot, VCC kullanıyorum)
  • 1X NRF24L01 modülü
  • 1x 100 uF kapasitör

Elektrik sayfasında gördüğünüz gibi PDF'de veya resimde gördüğünüz gibi her şeyi bağlayın. GitHub sayfamda Animal Siren altında bulduğunuz kodu Arduino'ya yükleyin. Doğru ID numarası için sensörü tanımlamayı unutmayın.

Ve şimdi çalışan bir sireniniz var.

Adım 6: Ana Sistem

Ana Sistem
Ana Sistem
Ana Sistem
Ana Sistem
Ana Sistem
Ana Sistem

Ana sistem tüm modüllerin en önemlisidir. Onsuz bu sistemi kullanamazsınız. Ana sistem ESP-01 modülü ile internete bağlıdır ve bağlanmak için Arduino Megas Seri1 pinlerini kullanıyoruz. Mega'daki RX, ESP'deki TX'e, ancak voltajı 3,3'e düşürmek için iki dirençten geçmemiz gerekiyor. Ve Mega'daki TX'den ESP'deki RX'e.

ESP Modülünü kurun

ESP'yi kullanmak için önce baud hızını 9600'e ayarlamanız gerekiyor, bu projede kullandığım şey bu ve ESP'nin en iyi şekilde çalıştığını buldum. Kutunun dışında 115200 baud hızına ayarlandı, deneyebilirsiniz ama benimki o kadar kararlı değildi. Bunu yapmak için bir Arduino'ya ihtiyacınız var (Mega iyi çalışıyor) ve ESP'nin TX'ini (sayfada gördüğünüz gibi dirençler aracılığıyla) Seri TX'e (Mega kullanılıyorsa Seri1 değil) ve ESP'deki RX'i Arduino Seri'ye bağlamanız gerekiyor. RX.

Yanıp sönen çizimi (veya seri kullanmayan herhangi bir çizimi) yükleyin ve seri monitörü açın ve baud hızını hatlarda 115200 ve NR & CR olarak ayarlayın

Komut satırına AT yazın ve enter tuşuna basın. Tamam yazan bir yanıt almalısınız, şimdi ESP'nin çalıştığını biliyoruz. (Bağlantı sorunu veya bozuk ESP-01 modülü yoksa)

Şimdi komut satırına AT+UART_DEF=9600, 8, 1, 0, 0 yazın ve enter tuşuna basın.

Tamam ile yanıt verecektir ve bu, baud hızını 9600'e ayarladığımız anlamına gelir. Aşağıdaki komutla ESP'yi yeniden başlatın: AT+RST ve enter'a basın. Seri monitördeki baud hızını 9600 olarak değiştirin ve AT girin ve enter tuşuna basın. Geri dönerseniz, ESP 9600'e ayarlanmıştır ve proje için kullanabilirsiniz.

SD Kart Modülü

Yeni bir şifre veya wifi adı değiştiğinde, sistemin WIFI ayarlarını değiştirmenin kolay olmasını istiyorum. Bu yüzden SD Kart modülüne ihtiyacımız var. SD Kartın içinde config.txt adında bir metin dosyası oluşturun ve okumak için JSON kullanıyoruz, bu nedenle bir JSON formatına ihtiyacımız var. Bu nedenle, metin dosyası aşağıdaki metne sahip olmalıdır:

{ "ssid": "SİZİNWIFISSID", "kaybedilen": "WIFIPAROLUNUZ"

}

Wi-Fi ağınızı düzeltmek için BÜYÜK harflerle metni değiştirin.

Günahlarımız SPI kullanan NRF24L01 ve SD Kart Okuyucu da SPI kullanıyor SoftwareSPI kullanabilmemiz için SDFat kütüphanesini kullanmamız gerekiyor (herhangi bir pin üzerine SD kart okuyucu ekleyebiliriz)

DHT Sensörü

Bu sistem dışarıya yerleştirilir ve havanın nemini ve sıcaklığını kontrol edebilmemiz için bir DHT sensörüne sahiptir. Sıcak günlerde ekstra sulama için kullanılır.

Bu yapı için ihtiyacınız olan:

  • 1x Arduino Mega
  • 1x NRF24L01 Modülü
  • 1x ESP-01 Modülü
  • 1x SPI Mikro SD Kart Modülü
  • 1x DHT-22 Sensör
  • 1x RGB Led (GND yerine ortak anot, VCC kullandım)
  • 3x 270 Ohm dirençler
  • 1x 22 K Ohm direnç
  • 2x 10 K Ohm direnç

Lütfen, ESP-01 modülünü kararlı hale getiremezseniz, harici bir 3.3v güç kaynağından çalıştırmayı deneyin.

PDF dosyasındaki veya resimdeki elektrik sayfasında gördüğünüz gibi her şeyi bağlayın.

Kodu Arduino Mega'nıza yükleyin ve yorumlar için tüm kodu kontrol etmeyi unutmayın, çünkü ana bilgisayarı sunucuya birden çok yerde ayarlamanız gerekir (bildiğim en iyi çözüm bu değil).

Artık Base sisteminiz kullanıma hazırdır. Toprak nem günahları için koddaki değişkenleri değiştirmenize gerek yok, web sayfasından boğazdan yapabilirsiniz.

7. Adım: Web Sistemi

Web Sistemi
Web Sistemi
Web Sistemi
Web Sistemi
Web Sistemi
Web Sistemi
Web Sistemi
Web Sistemi

Sistemi kullanmak için bir web sunucusuna da ihtiyacınız var. Apache, PHP, Mysql, Gettext ile ahududu pi kullanıyorum. Web sistemi çok dillidir, böylece kendi dilinizde kolayca yapabilirsiniz. İsveççe ve İngilizce ile birlikte gelir (İngilizce'de yanlış ingilizce olabilir, benim çevirim %100 değil.) Bu yüzden sunucunuz için Gettext'in ve ayrıca yerel ayarların kurulu olması gerekir.

Yukarıda sistemden bazı ekran görüntüleri gösteriyorum.

Basit bir giriş sistemi ile birlikte gelir ve ana giriş: kullanıcı olarak admin ve şifre olarak su.

Kullanmak için üç cron işi ayarlamanız gerekir (bunları cronjob klasörü altında bulabilirsiniz)

Her saniye çalıştırmanız gereken timer.php dosyası. Bu, delik sistemi için tüm otomasyonu tutar. Sıcaklık.php dosya adı, sisteme hava sıcaklığını okumasını ve kaydetmesini söylemek için kullanılır. Bu nedenle, onu ne sıklıkla çalıştıracağınıza dair bir cron işi ayarlamanız gerekir. Her 5 dakikada bir alıyorum. O zaman dagstatistik.php adlı dosya gece yarısından önce (23:30, 23:30 gibi) sadece bir kez çalışmalı. Gün içerisinde sensörlerden raporlanan değerleri alır ve haftalık ve aylık istatistikler için kaydeder.

Lütfen bu sistemin sıcaklığı santigrat cinsinden sakladığını unutmayın, ancak Fahrenheit olarak değiştirebilirsiniz.

db.php dosyasında sistem için mysql veritabanı bağlantısını kurarsınız.

İlk olarak, sensörleri sisteme ekleyin. Ardından bölgeler oluşturun ve bölgelere sensörler ekleyin.

Sistemde herhangi bir sorunuz veya bug bulursanız lütfen GitHub sayfasından bildiriniz. Web sistemini kullanabilirsiniz ve satmanıza izin verilmez.

gettext için yerel ayarlarla ilgili sorunlarınız varsa, lütfen sunucu olarak ahududu kullanırsanız, bunların genellikle en_US. UTF-8 gibi adlandırıldığını unutmayın, bu nedenle bu değişiklikleri i18n_setup.php dosyasında ve yerel ayar klasörü altında yapmanız gerekir. Aksi takdirde İsveç diline takılıp kalırsınız.

GitHub sayfasından indiriyorsunuz.

Önerilen: