Mündəricat:

ESP8266 ilə Günəş Torpağı Nəm Ölçən: 10 Adım (Şəkillərlə)
ESP8266 ilə Günəş Torpağı Nəm Ölçən: 10 Adım (Şəkillərlə)

Video: ESP8266 ilə Günəş Torpağı Nəm Ölçən: 10 Adım (Şəkillərlə)

Video: ESP8266 ilə Günəş Torpağı Nəm Ölçən: 10 Adım (Şəkillərlə)
Video: Управляем адресными светодиодами на ESP32, прошивка WLED, применение в Home Assistant 2024, Noyabr
Anonim

Bu Təlimat kitabında günəş enerjisi ilə işləyən torpaq rütubət monitoru hazırlayırıq. Aşağı güc kodlu bir ESP8266 wifi mikro nəzarətçisindən istifadə edir və hər şey suya davamlıdır, belə ki kənarda qala bilər. Bu resepti tam olaraq izləyə və ya öz layihələriniz üçün faydalı texnikaları götürə bilərsiniz.

Mikro nəzarətçi proqramlaşdırma sahəsində yenisinizsə, kabellərin, kodlaşdırmanın və internetə qoşulmanın əsaslarını öyrənmək üçün Arduino Class və Əşyalar İnterneti sinifinə baxın.

Bu layihə oyma və günəş panelləri vasitəsilə günəş enerjisindən istifadə etməyin daha çox yollarını öyrənə biləcəyim pulsuz Günəş Sinifimin bir hissəsidir.

İşlədiklərimdən xəbərdar olmaq üçün məni YouTube, Instagram, Twitter, Pinterest -də izləyin və bülletenimə abunə olun.

Addım 1: Nə lazımdır

Ehtiyacınız olacaq
Ehtiyacınız olacaq

Günəş batareyası doldurma lövhəsinə və NodeMCU ESP8266 və ya Huzzah kimi ESP8266 qırılmasına, həmçinin dövrə daxil etmək üçün torpaq sensoru, batareya, güc açarı, bəzi tel və bir korpusa ehtiyacınız olacaq.

Torpağın nəmini ölçmək üçün istifadə olunan komponentlər və materiallar:

  • ESP8266 NodeMCU mikro nəzarətçisi (və ya bənzəri, Vin 6V -a qədər dözməlidir)
  • İsteğe bağlı termistor və 2.2K ohm rezistorlu Adafruit günəş şarj lövhəsi
  • 2200mAh li-ion batareya
  • Perma-proto lövhəsi
  • Torpağın nəm/temperatur sensoru
  • 2 kabel kəməri
  • Su keçirməyən korpus
  • Su keçirməyən DC elektrik kabel cütü
  • İstilik büzücü borular
  • 3.5W günəş paneli
  • Düymənin güc açarı
  • İkiqat çubuqlu köpük bant

İşdə sizə lazım olan vasitələr:

  • Lehimləmə dəmir və lehim
  • Əllərə köməkçi vasitə
  • Tel çıxarıcılar
  • Qırışları yuyun
  • Cımbız (isteğe bağlı)
  • İstilik silahı və ya daha yüngül
  • Multimetr (isteğe bağlı, lakin problemlərin aradan qaldırılması üçün əlverişlidir)
  • USB A-microB kabeli
  • Qayçı
  • Addımlı qazma

Bulud məlumat saytlarında io.adafruit.com və IFTTT -də pulsuz hesablara ehtiyacınız olacaq.

Amazon Associate olaraq, ortaqlıq bağlantılarımdan istifadə edərək etdiyiniz satınalmalardan qazanıram.

Addım 2: Breadboard Prototipi

Çörək Paneli Prototipi
Çörək Paneli Prototipi

Bu cür layihələr üçün lehimsiz bir çörək taxtası prototipi yaratmaq vacibdir, beləliklə daimi əlaqələr qurmadan əvvəl sensorunuzun və kodunuzun işlədiyinə əmin ola bilərsiniz.

Şəkil
Şəkil
Şəkil
Şəkil
Şəkil
Şəkil
Şəkil
Şəkil

Bu vəziyyətdə, torpaq sensoru telləri bağladı, buna görə lehim, kömək əlləri və bəzi istilik büzücü borulardan istifadə edərək sensor tellərinin uclarına müvəqqəti olaraq möhkəm başlıqlar bağlamaq lazım idi.

Şəkil
Şəkil

Sensorun gücünü, torpağını, saatını və məlumat pinlərini bağlamaq üçün dövrə diaqramını izləyin (məlumatlar da torpaq sensoru ilə birlikdə gələn 10K çəkmə müqavimətçisinə malikdir).

  • Sensor yaşıl tel GND -ə
  • Sensor qırmızı tel 3.3V
  • Sensor sarı tel NodeMCU pin D5 (GPIO 14)
  • Sensor mavi tel NodeMCU pin D6 (GPIO 12)
  • Mavi məlumat pin və 3.3V arasında 10K çəkmə müqaviməti

Bunu istədiyiniz mikro nəzarətçiyə tərcümə edə bilərsiniz. Bir Arduino Uno və ya bənzəri istifadə edirsinizsə, lövhəniz artıq Arduino proqramı tərəfindən dəstəklənir. ESP8266 istifadə edirsinizsə, Arduino'da ESP8266 ilə qurulmaq üçün addım-addım kömək üçün Əşyalar İnterneti Dərsimə baxın (Arduino seçimlərində Əlavə Panolar Meneceri URLləri sahəsinə əlavə URLlər əlavə edərək, sonra lövhə menecerindən yeni lövhələr seçmək). NodeMCU ESP8266 lövhəsini proqramlaşdırmaq üçün Adafruit ESP8266 Huzzah lövhə tipindən istifadə etməyə meylliyəm, ancaq Ümumi ESP8266 lövhə dəstəyini də quraşdırıb istifadə edə bilərsiniz. SiLabs USB rabitə çip sürücüsünə də ehtiyacınız olacaq (Mac/Windows/Linux üçün mövcuddur).

Sensoru Arduino ilə uyğun lövhəmlə işə salmaq üçün SHT1x Arduino Kitabxanasını Praktiki Arduino github səhifəsindən yüklədim, sonra faylı açdım və kitabxana qovluğunu Arduino/libraries qovluğuna köçürdüm, sonra adını SHT1x olaraq dəyişdirdim. ReadSHT1xValues nümunə eskizini açın və pin nömrələrini 12 (dataPin) və 14 (clockPin) olaraq dəyişdirin və ya dəyişdirilmiş eskizi buradan kopyalayın:

#daxil edin

#define dataPin 12 // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // SHT1x obyekt boşluğunun qurulması () {Serial.begin (38400); // Serial.println ("Başlanğıc") hostuna dəyərləri bildirmək üçün serial bağlantısını açın; } void loop () {float temp_c; float temp_f; üzən nəmlik; temp_c = sht1x.readTemperatureC (); // Sensor dəyərlərini oxuyun temp_f = sht1x.readTemperatureF (); rütubət = sht1x.readHumidity (); Serial.print ("Temperatur:"); // Dəyərləri Serial.print (temp_c, DEC) seriyalı porta çap edin; Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Rütubət:"); Serial çap (rütubət); Serial.println ("%"); gecikmə (2000); }

Bu kodu lövhənizə yükləyin və sensor məlumat axını görmək üçün serial monitoru açın.

Kodunuz tərtib edilməyəcəksə və SHT1x.h tapılmadığından şikayətlənirsə, lazımi sensor kitabxanasını düzgün yükləməmisiniz. SHT1x adlı Arduino/kitabxana qovluğunuzu yoxlayın və yükləmə qovluğunuz kimi başqa bir yerdədirsə, Arduino kitabxana qovluğuna köçürün və lazım gələrsə adını dəyişin.

Kodunuz tərtib edilir, ancaq lövhənizə yüklənmirsə, lövhə parametrlərinizi iki dəfə yoxlayın, lövhənizin qoşulduğundan əmin olun və Alətlər menyusundan düzgün portu seçin.

Kodunuz yüklənir, ancaq serial monitor girişiniz tanınmırsa, eskizinizdə göstərilən (bu halda 38400) ötürmə sürətinizə uyğunluğunu iki dəfə yoxlayın.

Serial monitorunuzun girişi düzgün görünmürsə, elektrik sxeminizi iki dəfə yoxlayın. Məlumat pin və 3.3V arasında 10K çəkmə müqavimətiniz yerindədirmi? Məlumat və saat düzgün pinlərə bağlıdır? Güc və torpaq bütün dövrədə olduğu kimi bağlıdırmı? Bu sadə eskiz işləməyincə davam etməyin!

Növbəti addım ESP8266 -ya xasdır və nümunə layihənin əlavə simsiz sensor hesabat hissəsini konfiqurasiya edir. Standart (simsiz) Arduino ilə uyğun bir mikro nəzarətçi istifadə edirsinizsə, son Arduino eskizinizi hazırlamağa davam edin və Günəş Şarj Lövhəsini Hazırlamağa keçin.

Addım 3: Proqram Quraşdırması

Proqram Quraşdırması
Proqram Quraşdırması

ESP8266 ilə bu layihənin kodunu tərtib etmək üçün daha bir neçə Arduino kitabxanası quraşdırmalısınız (kitabxana meneceri vasitəsi ilə mövcuddur):

  • Adafruit IO Arduino
  • Adafruit MQTT
  • ArduinoHttpClient

Bu addıma əlavə edilmiş kodu yükləyin, sonra faylı açın və Arduino proqramınızda Solar_Powered_Soil_Moisture_Monitor_Tutorial -ı açın.

#daxil edin

#include #include #include #include // Məlumat və saat əlaqələri göstərin və SHT1x obyektini yaradın #dataPin 12 təyin edin // NodeMCU pin D6 #define clockPin 14 // NodeMCU pin D5 SHT1x sht1x (dataPin, clockPin); // yemi qurun AdafruitIO_Feed *nem = io.feed ("rütubət"); AdafruitIO_Feed *temperatur = io.feed ("temperatur"); const int sleepTime = 15; // 15 dəqiqə

boş quraşdırma ()

{Serial.begin (115200); // Serial.println ("Başlanğıc") hostuna dəyərləri bildirmək üçün serial bağlantısını açın; // io.adafruit.com saytına qoşul Serial.print ("Adafruit IO -ya qoşulma"); io.connect (); // əlaqəni gözləyin (io.status () <AIO_CONNECTED) {Serial.print ("."); gecikmə (500); } // bağlıyıq Serial.println (); Serial.println (io.statusText ()); }

boşluq döngəsi ()

{io.run (); // io.run (); müştəri bağlı saxlayır və bütün eskizlər üçün tələb olunur. float temp_c; float temp_f; üzən nəm; temp_c = sht1x.readTemperatureC (); // Sensor dəyərlərini oxuyun temp_f = sht1x.readTemperatureF (); nəm = sht1x.readHumidity (); Serial.print ("Temperatur:"); // Dəyərləri Serial.print (temp_c, DEC) seriyalı porta yazdırın; Serial.print ("C /"); Serial.print (temp_f, DEC); Serial.print ("F. Rütubət:"); Serial çap (nəm); Serial.println ("%"); rütubət-> qənaət (nəm); temperatur-> qənaət (temp_f); Serial.println ("ESP8266 yatır …"); ESP.deepSleep (sleepTime * 1000000 * 60); // Yuxu}

Bu kod, əvvəllər bu təlimatda olan sensor kodunun məcmusudur və Adafruit IO bulud məlumat xidmətinin əsas nümunəsidir. Proqram aşağı güc rejiminə girir və çox vaxt yatır, ancaq torpağın temperaturunu və rütubətini oxumaq üçün hər 15 dəqiqədən bir oyanır və məlumatlarını Adafruit IO -ya bildirir. Config.h sekmesine gedin və Adafruit IO istifadəçi adınızı və açarınızı, yerli wifi şəbəkə adınızı və şifrənizi daxil edin, sonra kodu ESP8266 mikro nəzarətçinizə yükləyin.

Şəkil
Şəkil

İo.adafruit.com saytında bir az hazırlaşmalı olacaqsınız. Temperatur və rütubət üçün xəbərlər hazırladıqdan sonra, monitor dəyərlərinizin qrafikini və həm daxil olan məlumatların məlumatlarını əks etdirən bir tablosu yarada bilərsiniz. Adafruit IO -ya başlamağınız üçün bir yeniləmə lazımdırsa, Əşyalar İnterneti Dərsimdə bu dərsə baxın.

Addım 4: Günəş Şarj Kartı hazırlayın

Günəş Şarj Kartı hazırlayın
Günəş Şarj Kartı hazırlayın

Günəş şarj lövhəsini kondansatörünə və bəzi telləri yükləmə yastiqciklərinə lehimləyərək hazırlayın. İsteğe bağlı bir əlavə rezistorla (PROG boyunca 2.2K lehimli) daha sürətli bir şəkildə şarj etmək üçün özəlləşdirirəm və səthin montaj rezistorunu batareyanın özünə qoşulmuş 10K termistorla əvəz edərək nəzarətsiz qalmağı daha təhlükəsiz edirəm. Bu, təhlükəsiz bir temperatur aralığında şarj etməyi məhdudlaşdıracaq. Bu dəyişiklikləri Günəş USB Şarj Cihazı layihəmdə daha ətraflı izah etdim.

Addım 5: Mikrokontrolör Dövrini qurun

Mikrokontrolör Dövrini qurun
Mikrokontrolör Dövrini qurun
Şəkil
Şəkil
Şəkil
Şəkil

Mikro nəzarətçi lövhəsini və güc açarını bir perma-proto lövhəsinə lehimləyin.

Şəkil
Şəkil

Günəş şarj cihazının güc çıxışını ən azı 1 amp üçün qiymətləndirilməsi lazım olan açarınızın girişinə qoşun.

Şəkil
Şəkil

Sensorun məlumat xəttindəki 10K çəkmə müqaviməti də daxil olmaqla, yuxarıdakı sxemdə (və ya şəxsi versiyanızın spesifikasiyasına uyğun olaraq) təsvir olunan taxta tel əlaqələrini yaradın və lehimləyin.

Günəş şarj cihazının Yük pinləri, heç bir günəş enerjisi olmadıqda 3.7V batareya gücü təmin edəcək, ancaq takılı və günəşli olduqda birbaşa günəş panelindən işləyəcək. Buna görə mikro nəzarətçi 3.7V -dən aşağı və 6V DC -ə qədər müxtəlif gərginliklərə dözə bilməlidir. 5V tələb edənlər üçün, yük voltajını 5V -ə qədər dəyişdirmək üçün PowerBoost (500 və ya 1000) istifadə edilə bilər (Günəş USB Şarj Cihazı layihəsində göstərildiyi kimi). Budur bəzi ümumi lövhələr və onların giriş gərginliyi aralığı:

  • NodeMCU ESP8266 (burada istifadə olunur): 5V USB və ya 3.7V-10V Vin
  • Arduino Uno: 5V USB və ya 7-12V Vin
  • Adafruit Huzzah ESP8266 Breakout: 5V USB və ya 3.4-6V VBat

Mümkün olan ən uzun batareya ömrünü əldə etmək üçün cari çəkdiyiniz ümumi cərəyanı nəzərə almaq və optimallaşdırmaq üçün bir az vaxt lazımdır. ESP8266, enerji istehlakını əhəmiyyətli dərəcədə azaltmaq üçün Arduino eskizində istifadə etdiyimiz dərin yuxu xüsusiyyətinə malikdir. Sensoru oxumaq üçün oyanır və sensorun dəyərini bildirmək üçün şəbəkəyə qoşulduqda daha çox cərəyan çəkir, sonra müəyyən müddət yuxuya gedir. Mikro nəzarətçiniz çox güc çəkirsə və asanlıqla yatmaq mümkün deyilsə, layihənizi daha az güc çəkən uyğun bir lövhəyə köçürməyi düşünün. Layihəniz üçün hansı lövhənin uyğun olacağını müəyyən etmək üçün kömək istəsəniz, aşağıdakı şərhlərdə bir sual yazın.

Addım 6: Kabel Rakorlarını Qurun

Şəkil
Şəkil

Günəş paneli kabeli və sensor kabeli üçün hava keçirməyən giriş nöqtələri etmək üçün hava keçirməyən korpusun yan tərəfinə iki kabel kəməri quraşdıracağıq.

Şəkil
Şəkil
Şəkil
Şəkil

İdeal yerləşdirməni müəyyən etmək üçün komponentlərinizə uyğun test edin, sonra pilləli matkapla su keçirməyən bir korpusda deliklər qazın və qazın. İki kabel yuvasını quraşdırın.

Şəkil
Şəkil

Addım 7: Dövrə Quraşdırmasını Tamamlayın

Tam Dövrə Montajı
Tam Dövrə Montajı

Su keçirməyən elektrik kabelinin liman tərəfini birinə daxil edin və günəş şarj cihazının DC girişinə lehimləyin (qırmızıdan + qara qədər -).

Şəkil
Şəkil

Torpaq sensörünü digər bezdən keçirin və dövrə diaqramına uyğun olaraq perma-protoya bağlayın.

Şəkil
Şəkil

Termistor probunu batareyaya yapışdırın. Bu, layihə kənarda baxımsız qaldıqda şarjı təhlükəsiz bir temperatur aralığına məhdudlaşdıracaq.

Şəkil
Şəkil

Çox isti və ya çox soyuq vəziyyətdə şarj etmək batareyaya zərər verə bilər və ya yanğına səbəb ola bilər. Aşırı temperaturlara məruz qalma zərər verə bilər və batareyanın ömrünü qısalda bilər, buna görə donmanın altındadırsa və ya 45 ℃/113F -dən yuxarıdırsa onu içəriyə gətirin.

Şəkil
Şəkil

Müvafiq kabellərin ətrafına hava keçirməyən bir möhür vurmaq üçün kabel vintlərini sıxın.

Addım 8: Günəş Paneli hazırlayın

Günəş Paneli hazırlayın
Günəş Paneli hazırlayın

Günəş panelinizin kabelini suya davamlı DC elektrik kabel dəstinin fiş tərəfi ilə birləşdirmək üçün Təlimatlarımı izləyin.

Addım 9: Test edin

Test edin
Test edin

Batareyanı qoşun və güc düyməsini basaraq dövrə açın.

Şəkil
Şəkil

Bunu sınayın və cihazı bağlamadan və sensoru ot bağçanıza, qiymətli saksı bitkisinə və ya wifi şəbəkənizin siqnal diapazonuna daxil olan digər torpağa quraşdırmadan əvvəl internetə xəbər verdiyinə əmin olun.

Şəkil
Şəkil

Sensordan alınan məlumatlar onlayn olaraq qeydiyyata alındıqdan sonra, API Şluzları saytında e -poçt və ya mətn xəbərdarlıqları üçün bir resept qurmaq asandır. Torpağın rütubət səviyyəsi 50 -dən aşağı düşərsə, mənə e -poçt göndərmək üçün mina qurdum.

Zavodumun qurumasını gözləmədən sınamaq üçün, həddi aşan Adafruit IO üzərindəki rütubət yemimi əl ilə bir məlumat nöqtəsinə daxil etdim. Bir neçə dəqiqə sonra e -poçt gəlir! Torpağın səviyyələri müəyyən etdiyim səviyyədən aşağı düşərsə, torpağı sulayana qədər yem hər dəfə yenilənəndə bir e -poçt alacağam. Sağlamlığım üçün, hər 15 dəqiqədən bir az daha çox torpaq nümunəsi götürmək üçün kodumu yenilədim.

Addım 10: Xaricdə istifadə edin

Xaricdə istifadə edin!
Xaricdə istifadə edin!
Xaricdə istifadə edin!
Xaricdə istifadə edin!

Bu, bitkinizin nəmləndirmə ehtiyaclarına əsasən fərdiləşdirmək üçün əyləncəli bir layihədir və sensorları dəyişdirmək və ya əlavə etmək və ya günəş enerjisi xüsusiyyətlərini digər Arduino layihələrinizə inteqrasiya etmək asandır.

İzlədiyiniz üçün təşəkkürlər! Düşündüklərinizi eşitmək istərdim; zəhmət olmasa şərhlərdə yazın. Bu layihə, arxa həyət layihələrini və günəş panelləri ilə işləməklə bağlı daha çox dərslər tapa biləcəyim pulsuz Günəş Sinifimin bir hissəsidir. Yoxlayın və qeydiyyatdan keçin!

Bu layihəni bəyənirsinizsə, digərlərindən bəziləri ilə maraqlana bilərsiniz:

  • Əşyalar sinfi pulsuz internet
  • ESP8266 ilə YouTube Abunə Sayacı
  • ESP8266 ilə Sosial Statistika İzləyicisi Ekranı
  • ESP8266 ilə WiFi Hava Ekranı
  • İnternet Sevgililər Günü

İşlədiklərimdən xəbərdar olmaq üçün məni YouTube, Instagram, Twitter, Pinterest və Snapchat -da izləyin.

Tövsiyə: