İçindekiler:

ESP8266 ile Solar Toprak Nem Ölçer: 10 Adım (Resimlerle)
ESP8266 ile Solar Toprak Nem Ölçer: 10 Adım (Resimlerle)

Video: ESP8266 ile Solar Toprak Nem Ölçer: 10 Adım (Resimlerle)

Video: ESP8266 ile Solar Toprak Nem Ölçer: 10 Adım (Resimlerle)
Video: Akıllı Tarım Ambarı | Arduino ile Nem Kontrolü Yapılan Tarım Ambarı - Silo | (Kod+Şema) 2024, Temmuz
Anonim

Bu Eğitilebilir Kitapta, güneş enerjisiyle çalışan bir toprak nemi monitörü yapıyoruz. Düşük güç kodu çalıştıran bir ESP8266 wifi mikro denetleyici kullanır ve her şey su geçirmezdir, böylece dışarıda bırakılabilir. Bu tarifi birebir uygulayabilir veya kendi projeleriniz için faydalı teknikleri ondan alabilirsiniz.

Mikrodenetleyici programlamada yeniyseniz, kablolama, kodlama ve internete bağlanmanın temellerini öğrenmek için lütfen Arduino Sınıfımı ve Nesnelerin İnterneti Sınıfımı inceleyin.

Bu proje, gravür ve güneş panelleri aracılığıyla güneş enerjisinden yararlanmanın daha fazla yolunu öğrenebileceğiniz ücretsiz Güneş Sınıfımın bir parçasıdır.

Ne üzerinde çalıştığımı takip etmek için beni YouTube, Instagram, Twitter, Pinterest'te takip edin ve bültenime abone olun.

Adım 1: İhtiyacınız Olan Şeyler

Neye ihtiyacınız olacak
Neye ihtiyacınız olacak

Bir güneş pili şarj kartına ve NodeMCU ESP8266 veya Huzzah gibi bir ESP8266 çıkışına, ayrıca bir toprak sensörüne, pile, güç anahtarına, bir kabloya ve devrenizi içine yerleştirmek için bir muhafazaya ihtiyacınız olacak.

Toprak nemi monitörü için kullanılan bileşenler ve malzemeler şunlardır:

  • ESP8266 NodeMCU mikro denetleyici (veya benzeri, Vin 6V'a kadar tolere etmelidir)
  • Opsiyonel termistörlü ve 2.2K ohm dirençli Adafruit solar şarj kartı
  • 2200mAh li-ion pil
  • Perma-proto kartı
  • Toprak nemi/sıcaklık sensörü
  • 2 kablo rakoru
  • Su geçirmez muhafaza
  • Su geçirmez DC güç kablosu çifti
  • Isıyla daralan makaron
  • 3.5W güneş paneli
  • Düğme güç anahtarı
  • Çift çubuklu köpük bant

İşte ihtiyacınız olacak araçlar:

  • Havya ve lehim
  • Yardım eller aracı
  • Tel striptizci
  • gömme keskin nişancılar
  • Cımbız (isteğe bağlı)
  • Isı tabancası veya çakmak
  • Multimetre (isteğe bağlı ancak sorun giderme için kullanışlı)
  • USB A-microB kablosu
  • Makas
  • Adım matkap

io.adafruit.com ve IFTTT bulut veri sitelerinde ücretsiz hesaplara ihtiyacınız olacak.

Bir Amazon İş Ortağı olarak, bağlı kuruluş bağlantılarımı kullanarak yaptığınız nitelikli satın alımlardan kazanıyorum.

Adım 2: Breadboard Prototipi

Breadboard Prototip
Breadboard Prototip

Bunun gibi projeler için lehimsiz bir devre tahtası prototipi oluşturmak önemlidir, böylece herhangi bir kalıcı bağlantı yapmadan önce sensörünüzün ve kodunuzun çalıştığından emin olabilirsiniz.

resim
resim
resim
resim
resim
resim
resim
resim

Bu durumda, toprak sensörü çok telli kablolara sahiptir; lehim, yardımcı eller ve bir miktar ısıyla daralan makaron kullanarak sensör tellerinin uçlarına geçici olarak katı başlıklar eklemek gerekliydi.

resim
resim

Sensörün güç, toprak, saat ve veri pinlerini bağlamak için devre şemasını takip edin (veriler ayrıca toprak sensörüyle birlikte gelen 10K'lık bir çekme direnci alır).

  • GND'ye giden yeşil sensör kablosu
  • Sensör kırmızı kablosu 3.3V'a
  • NodeMCU pin D5'e giden sensör sarı kablosu (GPIO 14)
  • NodeMCU pin D6'ya giden sensör mavi kablosu (GPIO 12)
  • Mavi veri pini ile 3.3V arasında 10K çekme direnci

Bunu tercih ettiğiniz mikrodenetleyiciye çevirebilirsiniz. Arduino Uno veya benzeri kullanıyorsanız, kartınız zaten Arduino yazılımı tarafından desteklenmektedir. ESP8266 kullanıyorsanız, Arduino'da ESP8266 kurulumuna ilişkin adım adım yardım için lütfen Nesnelerin İnterneti Sınıfıma göz atın (Arduino'nun tercihlerindeki Ek Kurullar Yöneticisi URL'leri alanına ek URL'ler ekleyerek, ardından ve kurul yöneticisinden yeni kurulların seçilmesi). NodeMCU ESP8266 kartını programlamak için Adafruit ESP8266 Huzzah kart tipini kullanma eğilimindeyim, ancak Genel ESP8266 kart desteğini de kurabilir ve kullanabilirsiniz. Ayrıca SiLabs USB iletişim çip sürücüsüne de ihtiyacınız olacak (Mac/Windows/Linux için mevcuttur).

Sensörü Arduino uyumlu kartımla çalıştırmak ve çalıştırmak için Practical Arduino'nun github sayfasından SHT1x Arduino Library'yi indirdim, ardından dosyayı açtım ve kütüphane klasörünü Arduino/libraries klasörüme taşıdım, ardından SHT1x olarak yeniden adlandırdım. Örnek çizimi ReadSHT1xValues açın ve pin numaralarını 12 (dataPin) ve 14 (clockPin) olarak değiştirin veya değiştirilmiş çizimi buraya kopyalayın:

#Dahil etmek

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // SHT1x nesnesi void kurulumunu başlat() { Serial.begin(38400); // Değerleri ana bilgisayara bildirmek için seri bağlantıyı açın Serial.println("Başlıyor"); } void loop() { float temp_c; kayan temp_f; yüzer nem; temp_c = sht1x.readTemperatureC(); // Sensörden değerleri oku temp_f = sht1x.readTemperatureF(); nem = sht1x.readHumidity(); Serial.print("Sıcaklık: "); // Değerleri seri bağlantı noktasına yazdırın Serial.print(temp_c, DEC); Seri.print("C / "); Serial.print(temp_f, Aralık); Serial.print("F. Nem: "); Seri.print(nem); Serial.println("%"); gecikme(2000); }

Bu kodu panonuza yükleyin ve sensör veri akışını görmek için seri monitörü açın.

Kodunuz derlenmiyorsa ve SHT1x.h'nin bulunamadığından şikayet ediyorsa, gerekli sensör kitaplığını doğru şekilde yüklememişsinizdir. Arduino/kütüphaneler klasörünüzü SHT1x adlı biri için kontrol edin ve indirme klasörünüz gibi başka bir yerdeyse, onu Arduino kitaplıkları klasörünüze taşıyın ve gerekirse yeniden adlandırın.

Kodunuz derleniyor ancak panonuza yüklenmiyorsa, pano ayarlarınızı iki kez kontrol edin, panonuzun takılı olduğundan emin olun ve Araçlar menüsünden doğru bağlantı noktasını seçin.

Kodunuz yükleniyor ancak seri monitör girişiniz tanınmıyorsa, çiziminizde belirtilen baud hızı eşleşmelerinizi iki kez kontrol edin (bu durumda 38400).

Seri monitör girişiniz doğru görünmüyorsa, devre şemasına göre kablolamanızı iki kez kontrol edin. 10K pull-up direnciniz veri pini ile 3.3V arasında mı? Veri ve saat doğru pinlere bağlı mı? Güç ve toprak devre boyunca olması gerektiği gibi bağlı mı? Bu basit çizim çalışana kadar devam etmeyin!

Sonraki adım, ESP8266'ya özeldir ve örnek projenin isteğe bağlı kablosuz sensör raporlama bölümünü yapılandırır. Standart (kablosuz olmayan) Arduino uyumlu bir mikro denetleyici kullanıyorsanız, son Arduino taslağınızı geliştirmeye devam edin ve Solar Charge Board'u Hazırlayın bölümüne geçin.

Adım 3: Yazılım Kurulumu

Yazılım Kurulumu
Yazılım Kurulumu

Bu projenin kodunu ESP8266 ile derlemek için birkaç Arduino kütüphanesi daha kurmanız gerekecek (kütüphane yöneticisi aracılığıyla edinilebilir):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpİstemci

Bu adıma eklenen kodu indirin, ardından dosyayı açın ve Arduino yazılımınızda Solar_Powered_Soil_Moisture_Monitor_Tutorial'ı açın.

#Dahil etmek

#include #include #include #include // Veri ve saat bağlantılarını belirtin ve SHT1x nesnesini somutlaştırın #dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x(dataPin, clockPin); // beslemeyi ayarla AdafruitIO_Feed *humidity = io.feed("nem"); AdafruitIO_Feed *sıcaklık = io.feed("sıcaklık"); const int uykuZamanı = 15; // 15 dakika

geçersiz kurulum()

{ Seri.başla(115200); // Değerleri ana bilgisayara bildirmek için seri bağlantıyı açın Serial.println("Başlıyor"); // io.adafruit.com'a bağlanın Serial.print("Adafruit IO'ya Bağlanıyor"); io.connect(); // bağlantı bekleyin while(io.status() < AIO_CONNECTED) { Serial.print("."); gecikme(500); } // bağlıyız Serial.println(); Serial.println(io.statusText()); }

boşluk döngüsü()

{ io.run(); // io.run(); istemciyi bağlı tutar ve tüm çizimler için gereklidir. kayan temp_c; kayan temp_f; yüzer nem; temp_c = sht1x.readTemperatureC(); // Sensörden değerleri oku temp_f = sht1x.readTemperatureF(); nem = sht1x.readHumidity(); Serial.print("Sıcaklık: "); // Değerleri seri bağlantı noktasına yazdırın Serial.print(temp_c, DEC); Seri.print("C / "); Seri.print(temp_f, Aralık); Serial.print("F. Nem: "); Serial.print(nem); Serial.println("%"); nem->kaydet(nem); sıcaklık->kaydet(temp_f); Serial.println("ESP8266 uyuyor…"); ESP.deepSleep(uyku Zamanı * 1000000 * 60); // Uyku }

Bu kod, bu öğreticide daha önce yer alan sensör kodunun bir karışımı ve bulut veri hizmeti Adafruit IO'dan temel bir örnektir. Program düşük güç moduna girer ve çoğu zaman uyur, ancak her 15 dakikada bir uyanarak toprağın sıcaklığını ve nemini okur ve verilerini Adafruit IO'ya bildirir. config.h sekmesine gidin ve Adafruit IO kullanıcı adınızı ve anahtarınızı, ayrıca yerel wifi ağ adınızı ve şifrenizi girin, ardından kodu ESP8266 mikro denetleyicinize yükleyin.

resim
resim

io.adafruit.com'da biraz hazırlık yapmanız gerekecek. Sıcaklık ve nem için beslemeler oluşturduktan sonra, monitörünüz için sensör değerlerinin bir grafiğini ve her iki gelen beslemenin verilerini içeren bir gösterge panosu oluşturabilirsiniz. Adafruit IO'yu kullanmaya başlamak için tazelemeye ihtiyacınız varsa, Nesnelerin İnterneti Sınıfımdaki bu derse göz atın.

Adım 4: Solar Şarj Panosunu Hazırlayın

Solar Şarj Panosunu Hazırlayın
Solar Şarj Panosunu Hazırlayın

Solar şarj kartını, kondansatörü ve bazı kabloları yük çıkış pedlerine lehimleyerek hazırlayın. İsteğe bağlı bir ek dirençle (PROG'da 2,2K lehimli) daha hızlı şarj etmek için benimkini özelleştiriyorum ve yüzeye montaj direncini pilin kendisine bağlı 10K termistörle değiştirerek gözetimsiz bırakmayı daha güvenli hale getiriyorum. Bu, güvenli bir sıcaklık aralığı için şarjı sınırlayacaktır. Bu değişiklikleri Solar USB Charger projemde daha ayrıntılı olarak ele aldım.

Adım 5: Mikrodenetleyici Devresi Oluşturun

Mikrodenetleyici Devresi Oluştur
Mikrodenetleyici Devresi Oluştur
resim
resim
resim
resim

Mikrodenetleyici kartını lehimleyin ve güç anahtarını kalıcı bir protokol kartına çevirin.

resim
resim

Solar şarj cihazının güç çıkışını, anahtarınızın en az 1 amp olarak derecelendirilmesi gereken girişine bağlayın.

resim
resim

Sensörün veri hattındaki 10K çekme direnci de dahil olmak üzere, yukarıdaki devre şemasında (veya kişisel sürümünüzün özelliklerine) açıklanan devre tahtası kablo bağlantılarını oluşturun ve lehimleyin.

Solar şarj cihazının Yük pimleri, güneş enerjisi olmadığında 3,7V pil gücü sağlar, ancak prize takılı ve güneşliyse doğrudan güneş panelinden güç alır. Bu nedenle mikrodenetleyici, 3,7V kadar düşük ve 6V DC'ye kadar çeşitli voltajları tolere edebilmelidir. 5V gerektirenler için, Yük voltajını 5V'a modüle etmek için bir PowerBoost (gerekli akıma bağlı olarak 500 veya 1000) kullanılabilir (Solar USB Şarj Cihazı projesinde gösterildiği gibi). İşte bazı yaygın kartlar ve giriş voltaj aralıkları:

  • NodeMCU ESP8266 (burada kullanılır): 5V USB veya 3.7V-10V Vin
  • Arduino Uno: 5V USB veya 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB veya 3.4-6V VBat

Mümkün olan en uzun pil ömrünü elde etmek için, mevcut çektiğiniz toplam akımı düşünmek ve optimize etmek için biraz zaman ayırmalısınız. ESP8266, güç tüketimini önemli ölçüde azaltmak için Arduino çiziminde kullandığımız derin uyku özelliğine sahiptir. Sensörü okumak için uyanır ve sensörün değerini bildirmek için ağa bağlanırken daha fazla akım çeker, ardından belirli bir süre uyku moduna geçer. Mikrodenetleyiciniz çok fazla güç çekiyorsa ve kolayca uyku moduna geçemiyorsa, projenizi daha az güç çeken uyumlu bir karta taşımayı düşünün. Projeniz için hangi panonun doğru olabileceğini belirleme konusunda yardıma ihtiyacınız varsa, aşağıdaki yorumlara bir soru bırakın.

Adım 6: Kablo Rakorlarını Takın

resim
resim

Güneş paneli kablosu ve sensör kablosu için hava koşullarına dayanıklı giriş noktaları yapmak için, hava koşullarına dayanıklı muhafazanın yanına iki kablo rakoru takacağız.

resim
resim
resim
resim

İdeal yerleşimi belirlemek için bileşenlerinizi test edin, ardından kademeli bir matkap kullanarak su geçirmez bir muhafazada delikleri işaretleyin ve delin. İki kablo rakorunu takın.

resim
resim

Adım 7: Devre Montajını Tamamlayın

Komple Devre Montajı
Komple Devre Montajı

Su geçirmez bir güç kablosunun port tarafını birine takın ve solar şarj cihazının DC girişine lehimleyin (kırmızı ila + ve siyah ila -).

resim
resim

Toprak sensörünü diğer salmastradan geçirin ve devre şemasına göre perma-proto'ya bağlayın.

resim
resim

Termistör probunu aküye bantlayın. Bu, proje gözetimsiz bırakılırken şarjı güvenli bir sıcaklık aralığıyla sınırlayacaktır.

resim
resim

Çok sıcak veya çok soğukken şarj etmek pile zarar verebilir veya yangın çıkmasına neden olabilir. Aşırı sıcaklıklara maruz kalmak pilin zarar görmesine ve ömrünün kısalmasına neden olabilir, bu nedenle donma noktasının altında veya 45℃/113F'nin üzerindeyse pili içeri getirin.

resim
resim

İlgili kabloların çevresinde hava koşullarına dayanıklı bir yalıtım oluşturmak için kablo rakorlarını sıkın.

Adım 8: Güneş Panelini Hazırlayın

Güneş Paneli Hazırlayın
Güneş Paneli Hazırlayın

Güneş panelinizin kablosunu su geçirmez DC güç kablosu setinin fiş tarafıyla birleştirmek için Talimatımı izleyin.

9. Adım: Test Edin

Dene
Dene

Pilinizi takın ve güç anahtarına basarak devreyi açın.

resim
resim

Muhafazayı kapatmadan ve sensörü bitki bahçenize, değerli saksı bitkinize veya wifi ağınızın sinyal aralığındaki diğer toprağa kurmadan önce test edin ve internete bildirdiğinden emin olun.

resim
resim

Sensörden gelen veriler çevrimiçi olarak günlüğe kaydedilirken, API ağ geçidi sitesinde If This Then That That e-posta veya metin uyarıları için bir reçete oluşturmak kolaydır. Madeni toprak nem seviyesi 50'nin altına düşerse bana e-posta gönderecek şekilde yapılandırdım.

Tesisimin kurumasını beklemeden test etmek için, Adafruit IO'daki nem beslememe eşiğin altına düşen bir veri noktasını manuel olarak girdim. Birkaç dakika sonra e-posta gelir! Toprağın seviyeleri benim belirlediğim seviyenin altına düşerse, toprağı sulayana kadar besleme her güncellendiğinde bir e-posta alırım. Akıl sağlığım için, kodumu toprağı örneklemek için her 15 dakikada bir çok daha az sıklıkta güncelledim.

Adım 10: Dışarıda Kullanın

Dışarıda Kullanın!
Dışarıda Kullanın!
Dışarıda Kullanın!
Dışarıda Kullanın!

Bu, tesisinizin hidrasyon ihtiyaçlarına göre özelleştirmek için eğlenceli bir projedir ve sensörleri değiştirmek veya eklemek veya güneş enerjisi özelliklerini diğer Arduino projelerinize entegre etmek kolaydır.

Takip ettiğiniz için teşekkürler! Ne düşündüğünüzü duymayı çok isterim; lütfen yorumlara yazın. Bu proje, kolay arka bahçe projeleri ve güneş panelleri ile çalışma konusunda daha fazla ders bulabileceğiniz ücretsiz Güneş Sınıfımın bir parçasıdır. Kontrol edin ve kaydolun!

Bu projeyi beğendiyseniz, diğerlerinden bazıları da ilginizi çekebilir:

  • ücretsiz Nesnelerin İnterneti Sınıfı
  • ESP8266 ile YouTube Abone Sayacı
  • ESP8266 ile Sosyal İstatistik İzleyici Ekranı
  • ESP8266 ile WiFi Hava Durumu Göstergesi
  • internet sevgililer günü

Üzerinde çalıştığım şeye ayak uydurmak için beni YouTube, Instagram, Twitter, Pinterest ve Snapchat'te takip edin.

Önerilen: