Suvarma Pompası üçün IOT əsaslı DOL Başlanğıc Nəzarətçisi: 6 addım
Suvarma Pompası üçün IOT əsaslı DOL Başlanğıc Nəzarətçisi: 6 addım
Anonim
Suvarma Pompası üçün IOT əsaslı DOL Başlanğıc Nəzarətçisi
Suvarma Pompası üçün IOT əsaslı DOL Başlanğıc Nəzarətçisi
Suvarma Pompası üçün IOT əsaslı DOL Başlanğıc Nəzarətçisi
Suvarma Pompası üçün IOT əsaslı DOL Başlanğıc Nəzarətçisi

Salam dostlar

Bu təlimat, internet üzərindən bir suvarma pompası qurğusunu uzaqdan necə izləmək və idarə etmək haqqında.

Hekayə: Təsərrüfatımda yerli şəbəkədən gündə təxminən 6 saat enerji alıram. Vaxtlar müntəzəm deyil, gücün mövcudluğu səhər erkən və ya axşam gec və ya hətta gecə yarısı ola bilər. Hər dəfə qazma yerini yoxlamaq üçün mühərriki işə salmaq və ya dayandırmaq üçün quyuya getmək çox ağrılı bir proses idi. Damlama sistemi üçün lazımi su təmin etmək üçün motorun hər gün ən az 2-3 saat çalışmasını təmin etməliydim. Bir müddətdir ki, motoru uzaqdan idarə edərək bu problemi həll etmək üçün variantları araşdırırdım və vəziyyəti də bilirdim. Bazarda elektrik təchizatı mövcud olan kimi motoru işə salan qurğular var, amma istədiyimiz zaman motoru dayandırmaq xüsusiyyətinə malik deyillər. Həm də motorun ON/OFF vəziyyətini heç bir zaman bilmək mümkün deyil. Bu, adətən, torpağın məhsuldarlığının itirilməsinə və elektrik enerjisinin israf edilməsinə gətirib çıxarır. Nəhayət, motoru mobil/planşetdən/PC -dən uzaqdan işə sala və dayandıra biləcəyim bir həll qurdum … HƏR YERDƏ … !!. Həm də kəmərdən enerji təchizatı və motor vəziyyətini (ON/OFF) hər zaman izləyə bilərəm. Ümid edirik ki, ölkə tərəfindəki təsərrüfat sahiblərinə hər zaman başlanğıc yerinə getmədən suvarma sistemlərini idarə etməyə kömək edəcək.

Təchizat

Ön şərtlər:

Bu cihazı qurmaq istədiyiniz məkanda internet mövcudluğu olmalıdır (wifi/mobil internet ilə genişzolaqlı)

Lazım olan şeylər:

  1. NodeMCU /ESP12
  2. İki kanal rölesi
  3. WCS1700 - Cari sensor
  4. TP4056 batareya şarj modulu
  5. LD313, Kondansatör - 1000uF Qeydiyyatı - 5k ohm iki qeyd
  6. İsti nöqtəsi /interneti olan istənilən (Köhnə) Smartfon.

Bu necə işləyir:

NodeMCU/ESP12 və uzaq MQTT brokerindən istifadə edən sadə bulud əsaslı IOT həllidir. NodeMCU, IOT ağ geçidi olaraq işləyir, DOL başlanğıcını da idarə edir. İnternet üzərindən uzaq MQTT brokerinə qoşulur. Bir Android mobil cihazında çalışan bir tətbiq, hər zaman suvarma nasos dəstimizi izləyə və idarə edə biləcəyimiz brokerə qoşulur. Adafruit IO -dan pulsuz mövcud MQTT brokerindən istifadə etdim. Sivrisinek, cloudmqtt və s. Kimi bir çox pulsuz broker var. Kodun serverini və port nömrəsini dəyişdirmək şərtilə hər hansı bir broker seçə bilərsiniz. NodeMCU, mobil qaynar nöqtədən WiFi istifadə edərək internetə qoşulur. Yon, hər hansı bir köhnə və ya aşağı qiymətli mobil telefondan hotspot vasitəsilə wifi girişi və ya wifi vasitəsilə internet təmin etmək üçün başqa vasitələrdən istifadə edə bilər. Cib telefonu 24X7 -də olduğu kimi şarj cihazına da qoşulmalıdır.

NodeMCU, motorun işə salınmasını və dayandırılmasını idarə etmək üçün iki röle ilə əlaqələndirilir. Mühərrikdəki cərəyanı hiss etmək üçün WCS1700 cərəyan sensoru istifadə etdim. Sensorun analoq çıxışı, motorun AÇILI və ya KAPALI olduğunu bilmək üçün istifadə olunur. Həm də şəbəkədəki gücün mövcudluğunu hiss edir və istədiyiniz vaxt şəbəkə vəziyyətini bilə biləcəyimiz üçün brokerə yayımlayır. Cihaz, motorun AÇIQ və motorun söndürülməsi ilə bağlı sorğunu qəbul etmək üçün iki yemə abunə olur. Bu qidalanmalara xüsusi dəyərlər göndərərək motoru START və ya STOP olaraq idarə edə bilərik.

Nəhayət, android telefonuma MQTT Dash tətbiqini qurdum və onu MQTT brokerinə qoşulmaq və tablosundakı/gui -dəki xəbərləri istifadə etmək üçün konfiqurasiya etdim. Tətbiqdə cəlbedici tablosuna yaratmaq üçün düymələr, ölçü, keçid və s. Olan çox yaxşı nişanlar var. Bununla birlikdə, mqtt protokolunu dəstəkləyən hər hansı bir IOT ev avtomatlaşdırma mobil tətbiqindən istifadə edə bilərsiniz.

WCS1700 necə işləyir:

WCS1700, əsasən, cərəyanın bobindən axması nəticəsində yaranan maqnit sahəsinə mütənasib olaraq çıxış gərginliyi istehsal edəcək Hall effektli bir sensordur. Buradakı bobin, motora bağlanacaq bir enerji təchizatı xəttidir. AC cərəyanını 70 Amperə qədər ölçə bilir. İşləmə gərginliyi 3,3 ilə 12 V arasındadır. Ətraflı məlumat üçün məlumat vərəqinə baxın. ESP12 istifadə edərkən, WCS1700 üçün işləmə gərginliyi ilə eyni 3.3V enerji təchizatı istifadə etdim. Məlumat vərəqində 3.3 V -də göstərildiyi kimi, cihaz bobindən keçən cərəyanın hər ampulü üçün təxminən 32-38 mV -lik diferensial gərginlik istehsal etməlidir. Ancaq bobin ölçüsünə / hava boşluğuna və cihazdakı dəyişikliklərə görə dəyişə bilər. Buna görə onu Amper Meter ilə sınayaraq kalibr etməli oldum. Cihazın dəqiqliyindən məmnun deyiləm, ancaq Motorun ON/OFF vəziyyətinə qərar vermək üçün kifayət qədər yaxşıdır. WCS1700 -ün çıxış pimi ESP12 -nin A0 -na qoşulur. Cərəyan olmadıqda, ESP12 556 ətrafında olan dəyəri oxumalıdır. Bobindəki cari artım kimi, kabelin sensordan necə keçdiyindən asılı olaraq gərginlik hər iki tərəfdə də ola bilər. Kodda dəyərlərin fərqini mütləq dəyər olaraq qəbul etdim (x - 556). Nəticəni 15 -ə bölməklə sensordan axan təxmini cərəyanı əldə etdim. Sizin üçün doğru nömrəni əldə etmək üçün bunu sınamalı olacaqsınız. Cihazın 5 Amperdən yuxarı olduğu hər hansı bir cərəyanı mühərrik AÇIQ və mühərrik OFF olaraq 5 Amperdən aşağı hesab edirəm. Təcrübə edərək cihazınız üçün doğru nömrəni istifadə edə bilərsiniz. Buna görə kodda WCS1700_CONST və MIN_CURRENT dəyişdirməlisiniz.

Addım 1: Cihazın qurulması

Cihaz Tikintisi
Cihaz Tikintisi
Cihaz Tikintisi
Cihaz Tikintisi

Yuxarıdakı diaqram, bütün komponentləri necə bağlayacağınıza dair ətraflı məlumat verir.

Enerji təchizatı: Batareyaları doldurmaq üçün TP4056 və NodeMCU -nu gücləndirmək üçün 3.7V - 4.2V batareya çıxışını 3.3 V -a qədər tənzimləmək üçün LM313 istifadə etdim. 3.3V sabit təchizatı əldə etmək üçün Vin ilə LM313 -ün zəmini arasında 1000 mF kondansatör istifadə edilmişdir. TP4056 -nı gücləndirmək üçün adi USB mobil şarj cihazından istifadə edə bilərsiniz. Batareyanı həddindən artıq yüklənmədən qorumaq üçün batareya qoruma sxeminə malikdir.

Şəbəkə Güc təchizatı algılama: 5k ohm gərginlik bölücü 5 V -dan 2,5 V -a qədər azaldacaq. NodeMCU pin D5 gərginliyi hiss edəcək.

Sensordan analoq gərginliyi oxumaq üçün WCS1700 çıxış pin A0 -a bağlıdır. Şəbəkə gücü xətti cərəyanı ölçmək üçün çuxurdan keçməlidir. WCS1700 sabit oxu formasını əldə etmək üçün 0.01 uF kondansatör istifadə etdim.

NodeMCU -nun D1 və D2 röle giriş pinlərinin IN0 və IN1 -ə bağlanacaq.

Addım 2: DOL Başlanğıc Bağlantıları

DOL Başlanğıc Əlaqələri
DOL Başlanğıc Əlaqələri
DOL Başlanğıc Əlaqələri
DOL Başlanğıc Əlaqələri

Başqa bir START və STOP keçidini təqdim etmək üçün DOL başlanğıcının idarəetmə sxemini dəyişdirdim. Bu dəyişiklik əllə başlatma/dayandırma əməliyyatına təsir etməyəcək və onlar olduğu kimi işləməyə davam edəcəklər.

Diqqət !!!! DOL başlanğıcı Yüksək Gərginlikli bir cihaz olduğundan, qutuyu açmadan əvvəl əsas açarın söndürüldüyünə əmin olun. Canlı tellə birbaşa təmas təhlükəli ola bilər. Əmin deyilsinizsə, əlaqəni qurmaq üçün elektrikçidən kömək istəyin

START və STOP açarı olaraq 2 kanal 5 V relay modulundan istifadə etdim. Bu röleler ESP12 tərəfindən idarə olunacaq.

Relay - 0 START açarı kimi işləyəcək - NO olaraq bağlanır (Normal Açıq).

Relay -1, STOP açarı olaraq işləyəcək - NC olaraq bağlanır (Normalda Bağlıdır). Başlanğıcda artıq yuxarı kontaktordan NVC -yə bağlanan bir tel olacaq. Göstərildiyi kimi onu çıxarıb röle -1 telləri ilə əvəz etməlisiniz.

Təhlükəsizlik üçün başlanğıc və Relay modulları arasındakı əlaqələrin tamamilə izolyasiya olunduğundan əmin olun. START/STOP düyməsini basmaq üçün ESP -ni hər iki röleyi 2 saniyə basıb saxlamağı proqramlaşdırdım.

Addım 3: Adafruit IO ilə Hesab yaradın (io.adafruit.com)

Adafruit io mqtt brokerindən istifadə etdim, bir neçə məhdudiyyət ilə istifadə etmək pulsuzdur, amma istifadəmiz üçün yaxşıdır. Bunu digər layihələrdə də istifadə etdiyim və olduqca etibarlı tapdığım üçün, həm də gözəl GUI ilə İdarəetmə Paneli kimi bir çox xüsusiyyətə sahib olduğum üçün və hətta tətiklərdən istifadə edə bildiyimiz üçün buna üstünlük verirəm. Adafruit io istifadə etmək üçün bir hesab yaratmalı və İstifadəçi Adını və Aktiv Açarı qeyd etməlisiniz.

Addım 4: Proqramı qurun və quraşdırın

Tam kod eskizdə mövcuddur. Bunu Arduino IDE -də açmalı və firmware tərtib etməzdən əvvəl bir neçə dəyişiklik etməlisiniz. NodeMCU 1.0 olaraq lövhə növünü seçin. IDE və əlaqədar kitabxanaların quraşdırılması bu sənədlərin əhatəsinə daxil deyil.

Koddakı aşağıdakı sətirləri pay olaraq dəyişdirin.

#define WLAN_SSID "xxx" // Mobil Hotspot WiFi SSID

#WLAN_PASS -ı təyin edin "……" //

/************************* Adafruit.io Quraşdırması ******************** *************/

#o AIO_SERVER "io.adafruit.com" u təyin edin

#deo AIO_SERVERPORT 1883 // SSL üçün 8883 istifadə edin

#deifine AIO_USERNAME "xyz" // Adafruit hesabınızın istifadəçi adı

#deoine AIO_KEY "abcd ……" // aktiv açarınız…

MQTT Feeds haqqında: Cihaz və müştəri (mobil tətbiq), MQTT brokeri vasitəsi ilə pub alt modelindən istifadə edərək mesaj ötürmələri vasitəsilə məlumat mübadiləsi aparır. Bir mesajı almaq üçün hər hansı bir müştəri və ya cihaz əvvəlcədən təyin edilmiş bir yemə abunə olmalı və bir xəbərə mesaj göndərmək üçün dərc metodundan istifadə etməlidir. Layihəmiz üçün təxminən 5 yem lazımdır. Aşağıda, kodda gördüyünüz kimi hər bir yemin izahı və necə işlədikləri verilmişdir.

Şəbəkə Vəziyyəti: Şəbəkədən enerji təchizatının mövcudluğu/feedlər/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid") lentində yayımlanır;

0 enerji təchizatının mövcud olmadığını və 1 enerji təchizatı üçün mövcud olduğunu göstərir.

Motor Vəziyyəti: Cihaz, motorun vəziyyətini feed…/feeds/grid -də dərc edəcək.

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

OFF üçün 0 və ON üçün 1 dəyər

Motor AÇMA Düyməsi: Bu qidalanma motorun işə salınması tələbini qəbul etmək üçün istifadə olunur. Cihaz, motorun işə salınması istəyini = 1 dəyəri ilə alacaq və təsdiq mesajını 0 olaraq yayımlamaq üçün eyni lentdən istifadə edəcək. Bu yolla, başlanğıc sorğusu mesajının həqiqətən cihaz tərəfindən alındığını təsdiq edə bilərik.

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

Motor OFF düyməsi:

Başlanğıc sorğusuna bənzər şəkildə, bu ötürmə motorun dayandırılması tələbini almaq üçün istifadə olunur. Cihaz, dayandırma sorğusunu dəyər = 1 ilə alması və təsdiq mesajını 0 olaraq yayımlamaq üçün eyni lentdən istifadə etməsi üçün lentə abunə olacaq.

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

Bağlantı:

Bu, "son iradə" seçimi aktiv olan xüsusi bir yemdir. Cihaz hər sabit bir zamanda yaxşı işləyərkən istifadəçiyə hər şeyin yaxşı olduğunu bildirmək üçün bağlantı = 1 dərc edəcək. Sistem kəsildikdə və ya əlaqə kəsildikdə cihaz brokerlə əlaqə qura bilməyəcək. Belə hallarda MQTT brokerinin özü, istifadəçiyə bir şeyin səhv getdiyini və cihazın internet üzərindən əldə edilə bilməyəcəyini bildirmək üçün feed = connection = 0 olaraq yayımlayacaq. Fiziki olaraq gedib cihazı yoxlamalıyıq. Kod çox sadədir. "Son İstək" in necə işlədiyinə dair daha ətraflı məlumat üçün MQTT sənədlərinə baxın.

əgər (bu <= 0)

{

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

itr = CON_LIVE_ITR;

}

Kodun qalan hissəsi özünü izah edir və heç bir dəyişiklik tələb olunmur. Ətraflı məlumat lazımdırsa şərh yazmaqdan çekinmeyin.

Addım 5: Cibinizə MQTT Dash APP qurun və konfiqurasiya edin

Cibinizə MQTT Dash APP quraşdırın və konfiqurasiya edin
Cibinizə MQTT Dash APP quraşdırın və konfiqurasiya edin
Cibinizə MQTT Dash APP qurun və konfiqurasiya edin
Cibinizə MQTT Dash APP qurun və konfiqurasiya edin
Cibinizə MQTT Dash APP qurun və konfiqurasiya edin
Cibinizə MQTT Dash APP qurun və konfiqurasiya edin
  1. Android telefonunuza MQTT Dash quraşdırın və proqramı açın
  2. Cihaz əlavə etmək üçün sağ üst küncdəki + işarəsini vurun.
  3. Yuxarıdakı ilk şəkildə göstərildiyi kimi cihazınıza bir ad verin "MyFarm-IPSet" deyin. İo.adafruit.com kimi ünvan sahəsi və 1883 olaraq liman, istifadəçi adı adafruit istifadəçi adınız və şifrəniz adafruitdən Aktiv Açarınız olmalıdır. Qalan sahələri olduğu kimi buraxın. Sonda qənaət düyməsini vurun.
  4. Cihazınızı yaratdınız. İndi tablosuna əlavə etmək üçün üzərinə vurun.
  5. + Düyməsini basın və keçid/düymə olaraq növü seçin. Yuxarıda göstərildiyi kimi, ad alanına sys daxil edin. və mövzu sahəsinə yem adını daxil edin. hər bir yem istifadəçi adı/feeds/ilə başlamalıdır. Bunun üçün /qidalanırıq /əlaqə qururuq. Enable Publish -in deaktiv olduğundan əmin olun. Göstərmək üçün simvolu tıklayaraq, tablosuna bənzəmək istədiyiniz simvol növünü seçə bilərsiniz. Dəyər 1 üçün rənglərdən birini seçin (yaşıl deyin) və 0 dəyəri üçün boz və ya qırmızı rəng seçin. Nəhayət sağ üst küncdəki Saxla düyməsini vurun. Eynilə, mövzu olaraq istifadəçi adı/qidalanmalar/ızgara ilə Grid və istifadəçi adı/qidalanmalar/motorlu Motor üçün iki nişan daha yaradın. Enable Publish -in deaktiv olduğundan əmin olun.
  6. Nəhayət Motor ON düyməsini yaradın. Yenə də keçid/düymə ilə eynidir. Mövzu /feeds /motor_on olmalıdır və bu dəfə Enable Publish -in aktiv olmasını təmin edin və QOS = 1. Eyni şəkildə Motor OFF üçün başqa bir düymə yaradın. Mövzu /ücretli /motor_off olmalıdır.

Addım 6: Son addım:-) Test və Finetuning

  1. Təhlükəsiz olmaq üçün, röleleri DOL başlanğıcına bağlamadan əvvəl cihazı START və STOP əməliyyatları üçün yoxlamalısınız. İnternet aktiv olduqda cib telefonunda Hotspotu aktiv edin. İnkişaf mühitinə malik olan dizüstü kompüteri, eyni zamanda TP4056 -ya qoşulmuş başqa bir şarj cihazı ilə birbaşa NodeMCU USB portuna qoşun. Cihaz İnternetə uğurla qoşulursa, smartfonda qaynar nöqtəyə qoşulmuş 1 cihazı görməlisiniz.
  2. MQTT Dash -i quraşdırdığınız digər smartfonda tətbiq panelini açın. NET simvolunun yaşıl və Şəbəkə simvolunun da yaşıl rəngdə olduğunu görürsünüz. 1 olaraq. Motor işarəsi 0 olaraq dəyəri olan motor olaraq göstərilməlidir.
  3. Motor ON düyməsini tıkladığınız zaman başlanğıc rölesi iki saniyə aralığında iki klik səsi çıxarmalıdır. Eyni şəkildə Motor OFF düyməsini də basın.
  4. Təhlükəsizlik üçün indi DOL başlanğıcının əsas təchizatını söndürün və yuxarıdakı addım 2-də göstərildiyi kimi röleləri DOL başlanğıcına bağlayın. Motorun söndüyündən əmin olun. NodeMCU -da sıfırlama düyməsini basın. Serial monitor çıxışından WC1700 sensoru, delta və bobindəki hesablanmış cərəyandan dəyərləri çap edən ayıklama ifadələrini görə bilərsiniz. Motor sönük vəziyyətdə və "#define WCS1700_CONST 15" ilə maxCur ardıcıl olaraq 2 -dən az olmalıdır. 2 -dən çox göstərərsə, daha yüksək WCS1700_CONST dəyərləri ilə sınayın. Hər dəfə kodu yenidən yığmalı və firmware yükləməli olacaqsınız.
  5. İndi mühərriki işə salın və yenidən oxunan göstəriciləri axtarın. Təxminən 10-15 dəqiqə motoru AÇIK buraxın və sabit cərəyan göstəricisini qeyd edin. Cərəyan təxminən 10 ilə 20 Amper arasında dəyişə bilər və dəqiq olmamalıdır.
  6. Koda qayıdın və "#define MIN_CURRENT X. X -in sayısal dəyərə yaxınlaşdırılmış maksimum cərəyanın 40 faizi olduğu yerdədir. Mənim vəziyyətimdə MIN_CURRENT -i 5 -ə qoydum. Proqramı yenidən NodeMCU -ya yığın və yenidən yükləyin.
  7. USB kabelini NodeMCU -dan çıxarın. TP4056 -ya qoşulmuş USB şarj cihazı olan cihazı söndürün və yandırın. Mobil tətbiqdə "Motor ON" düyməsini basaraq motor işə düşməlidir. Mühərrik işə düşdükdən sonra, tətbiq panelində ON olaraq əks olunmalıdır. Stop düyməsini basmaqla mühərriki dayandırmaq lazımdır.

Zövq alın !!!!

Tövsiyə: