Mundarija:
- Ta'minotlar
- 1 -qadam: Qurilmani qurish
- 2 -qadam: DOL Starter Connections
- 3 -qadam: Adafruit IO bilan hisob yarating (io.adafruit.com)
- 4 -qadam: Dasturiy ta'minotni yaratish va o'rnatish
- 5 -qadam: MQTT Dash APP -ni mobil telefoningizga o'rnating va sozlang
- 6-qadam: Oxirgi qadam:-) Sinov va oxirgi sozlash
Video: Sug'orish nasoslari uchun IOT asosidagi DOL boshlang'ich boshqaruvchisi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Salom Do'stlar
Bu ko'rsatma Internet orqali sug'orish nasosini masofadan turib qanday boshqarish va boshqarish haqida.
Hikoya: Mening fermer xo'jaligida men mahalliy tarmoqdan kuniga atigi 6 soat energiya olaman. Vaqt muntazam emas, elektr ta'minoti ertalab yoki kechqurun yoki hatto yarim tunda bo'lishi mumkin. Har safar quduq qudug'iga borib, dvigatelni ishga tushirish yoki to'xtatish juda og'riqli jarayon edi. Bundan tashqari, tomchilatib yuborish tizimiga etarli miqdorda suv etkazib berish uchun har kuni kamida 2-3 soat motor ishlashini ta'minlashim kerak edi. Bir muncha vaqt men dvigatelni masofadan boshqarib, uning holatini bilish orqali bu muammoni hal qilish variantlarini o'rganib chiqdim. Bozorda dvigatelni quvvat manbai bilan ishga tushiradigan qurilmalar mavjud, lekin ular biz xohlagan vaqtda motorni to'xtatish xususiyatiga ega emas. Bundan tashqari, har qanday vaqtda yoqish/o'chirish dvigatelining holatini bilishning iloji yo'q. Bu, odatda, sug'orishning haddan tashqari ko'payishiga olib keladi, bu esa tuproq unumdorligini yo'qotishiga va elektr energiyasini isrof qilinishiga olib keladi. Nihoyat, men o'zim hal qildim, u erda men motorni masofadan turib mobil/planshetdan/kompyuterdan xohlagan vaqtda, ishga tushiraman va to'xtata olaman … !!. Shuningdek, men har doim tarmoqdan quvvat manbai borligini, shuningdek motor holatini (ON/OFF) kuzatib boraman. Umid qilamanki, bu qishloq xo'jaliklarining xo'jayinlariga har doim boshlang'ich joyiga bormasdan sug'orish tizimini boshqarishga yordam beradi.
Ta'minotlar
Old shartlar:
Bu qurilmani o'rnatmoqchi bo'lgan joyda Internet mavjud bo'lishi kerak (wifi/mobil internetli keng polosali tarmoq)
Sizga kerak bo'lgan narsalar:
- NodeMCU /ESP12
- Ikki kanalli o'rni
- WCS1700 - oqim sensori
- TP4056 batareyasini zaryadlash moduli
- LD313, Kondensator - 1000uF Ro'yxatdan o'tish - 5k ohmli ikkita registr
- Hotspot /internetga ega bo'lgan har qanday (eski) smartfon.
U qanday ishlaydi:
Bu NodeMCU/ESP12 va masofaviy MQTT brokeridan foydalangan holda oddiy bulutli IOT yechimi. NodeMCU IOT shlyuzi sifatida ishlaydi, shuningdek DOL boshlang'ichini boshqaradi. U Internet orqali masofaviy MQTT brokeriga ulanadi. Android mobil operatsion tizimida ishlaydigan ilova brokerga ulanadi, u orqali biz sug'orish nasoslarini har doim kuzatib boramiz va boshqaramiz. Mosquitto, cloudmqtt va boshqalar kabi ko'plab bepul brokerlar mavjud. Siz kodni serverini va port raqamini o'zgartirsangiz, istalgan brokerni tanlashingiz mumkin. NodeMCU Internetga mobil hotspotdan WiFi yordamida ulanadi. Yon har qanday eski yoki arzon uyali telefondan Wi -Fi tarmog'iga ulanish nuqtasi orqali yoki Wi -Fi orqali Internetni ta'minlashning boshqa vositalaridan foydalanishi mumkin. Mobil zaryadlovchiga ulangan bo'lishi kerak, chunki u 24X7 da bo'lishi kerak.
NodeMCU dvigatelning ishga tushishi va to'xtashini nazorat qilish uchun ikkita o'rni bilan bog'langan. Dvigatel oqimini sezish uchun WCS1700 oqim sensori ishlatilgan. Sensorning analog chiqishi dvigatel yoqilgan yoki o'chirilganligini bilish uchun ishlatiladi. Shuningdek, u tarmoqdagi quvvat mavjudligini sezadi va uni istalgan vaqtda tarmoq holatini bilishimiz uchun brokerga e'lon qiladi. Dvigatelni yoqish va o'chirish so'rovini olish uchun qurilma ikkita kanalga yoziladi. Bu tasmalarga ma'lum qiymatlarni yuborish orqali biz motorni START yoki STOP holatida boshqarishimiz mumkin.
Nihoyat, men Android telefonimga MQTT Dash ilovasini o'rnatdim va uni MQTT brokeriga ulanish va uning boshqaruv panelidagi/gui tasmalaridan foydalanish uchun sozladim. Ilovada boshqaruv paneli yaratish uchun tugmalar, o'lchagich, kalit va boshqalar bilan juda yaxshi piktogrammalar mavjud. Ammo siz mqtt protokolini qo'llab -quvvatlaydigan har qanday IOT uy avtomatlashtirish mobil ilovasidan foydalanishingiz mumkin.
WCS1700 qanday ishlaydi:
WCS1700 asosan Hall effekti sensori bo'lib, u oqimning lasan orqali oqishi natijasida hosil bo'ladigan magnit maydonga mutanosib chiqish voltajini ishlab chiqaradi. Bu yerdagi lasan - bu motorga ulanadigan elektr ta'minoti liniyasi. U o'zgaruvchan tokni 70 ampergacha o'lchashi mumkin. Ishlash kuchlanishi 3,3 dan 12 V gacha. Qo'shimcha ma'lumot olish uchun uning ma'lumot varag'iga qarang. Men ESP12 dan foydalanayotganimda, WCS1700 uchun ishchi kuchlanish bilan bir xil 3,3V quvvat manbai ishlatilgan. Ma'lumotlar varag'ida ko'rsatilgandek, 3,3 V da, qurilma lasan orqali tokning har bir amperiga taxminan 32 dan 38 mV gacha bo'lgan differentsial kuchlanishni ishlab chiqarishi kerak. Ammo u bobinning kattaligiga / havo bo'shlig'iga va qurilmadagi o'zgarishlarga qarab farq qilishi mumkin. Shuning uchun men uni Ampere Meter yordamida sinab ko'rishim kerak edi. Men qurilmaning aniqligidan mamnun emasman, lekin u Dvigatel holatini ON/OFF holatida hal qilish uchun etarlicha yaxshi. WCS1700 chiqish pimi ESP12 A0 ga ulanadi. Agar oqim bo'lmasa, ESP12 556 ga yaqin qiymatni o'qishi kerak. Bobinning joriy o'sishi kabelning sensordan qanday o'tishiga bog'liq. Kodda men qiymatlar farqini (x - 556) mutlaq qiymati sifatida qabul qildim. Natijani 15 ga bo'lish orqali men sensordan o'tadigan taxminiy oqimni oldim. Sizga kerakli raqamni olish uchun siz tajriba o'tkazishingiz kerak bo'ladi. Qurilma tomonidan 5 amperdan yuqori bo'lgan har qanday oqim o'lchovi men dvigatelni yoqilgan va 5 amperdan past deb hisoblayman, chunki vosita o'chirilgan. Tajriba qilish orqali siz qurilmangiz uchun to'g'ri raqamdan foydalanishingiz mumkin. Kodga mos ravishda WCS1700_CONST va MIN_CURRENT ni o'zgartirish kerak.
1 -qadam: Qurilmani qurish
Yuqoridagi diagrammada barcha komponentlarni qanday ulash kerakligi haqida to'liq ma'lumot berilgan.
Quvvat manbai: Men batareyalarni zaryad qilish uchun TP4056 va LM313 -ni ishlatib, NodeMCU -ni quvvatlantirish uchun 3,7 V - 4,2 V batareya quvvatini 3,3 V ga sozlashdi. 3.3V barqaror ta'minotini olish uchun Vin va LM313 topraklama o'rtasida 1000mF kondansatör ishlatilgan. TP4056 -ni yoqish uchun siz oddiy USB mobil zaryadlovchi qurilmasidan foydalanishingiz mumkin. Batareyani haddan tashqari zaryadlashdan himoya qilish uchun batareyani himoya qilish davri mavjud.
Tarmoq quvvat manbai sezgisi: 5k ohmli kuchlanish bo'luvchi 5 V dan 2,5 V gacha kamayadi. NodeMCU -ning D5 pinasi kuchlanishni sezadi.
WCS1700 chiqish pinasi sensordan analog kuchlanishni o'qish uchun A0 ga ulangan. Quvvat tarmog'i oqimni o'lchash uchun teshikdan o'tishi kerak. Men 0,01 uF kondansatör ishlatdim, WCS1700 barqaror o'qish shaklini olaman.
NodeMCU ning D1 va D2 o'rni kirish pimlarining IN0 va IN1 ga ulanadi.
2 -qadam: DOL Starter Connections
Men START va STOP kalitlarining boshqa to'plamini kiritish uchun DOL starterining boshqaruv sxemasini o'zgartirdim. Bu o'zgarish qo'lda ishga tushirish/to'xtatish jarayoniga ta'sir qilmaydi va ular avvalgidek ishlashda davom etadilar.
Diqqat !!!! DOL boshlang'ichi yuqori voltli qurilma bo'lgani uchun qutini ochishdan oldin asosiy kalit o'chirilganligiga ishonch hosil qiling. To'g'ridan -to'g'ri sim bilan aloqa qilish xavfli bo'lishi mumkin. Agar ishonchingiz komil bo'lmasa, ulanishni o'rnatish uchun elektrchidan yordam so'rang
Men START va STOP tugmachalari sifatida 2 kanalli 5 V o'rni modulidan foydalanardim. Bu o'rni ESP12 tomonidan boshqariladi.
O'rnimizni - 0 START tugmasi sifatida ishlaydi - YO'Q sifatida simli (Odatda ochiq).
O'rnimizni -1 STOP tugmasi sifatida ishlaydi - NC sifatida simli (Odatda yopiq). Boshlang'ichda allaqachon yuqori kontaktordan NVC ga ulanadigan sim bo'ladi. Siz uni olib tashlashingiz va ko'rsatilgandek o'rni -1 simlarini almashtirishingiz kerak bo'ladi.
Boshlang'ich va o'rni modullari orasidagi aloqa xavfsizligi uchun to'liq izolyatsiya qilinganligiga ishonch hosil qiling. Men ESPni START/STOP tugmachasini taqlid qilish uchun ikkala o'rni 2 soniya ushlab turishni dasturlashtirdim.
3 -qadam: Adafruit IO bilan hisob yarating (io.adafruit.com)
Men Adafruit io mqtt brokeridan foydalandim, uni bir nechta cheklovlarsiz ishlatish mumkin, lekin u biz uchun yaxshi. Men buni afzal ko'raman, chunki men uni boshqa loyihalarda ham qo'lladim va juda ishonchli deb topdim, shuningdek, boshqaruv paneli kabi juda yaxshi interfeysga ega va hatto biz tetiklardan ham foydalanishimiz mumkin. Adafruit io -dan foydalanish uchun siz hisob qaydnomasini yaratishingiz va foydalanuvchi nomi va faol kalitni qayd qilishingiz kerak.
4 -qadam: Dasturiy ta'minotni yaratish va o'rnatish
To'liq kod eskizda mavjud. Siz buni Arduino IDE -da ochishingiz va dasturiy ta'minotni kompilyatsiya qilishdan oldin yuklashingiz kerak. NodeMCU 1.0 sifatida taxta turini tanlang. IDE va tegishli kutubxonalarning o'rnatilishi ushbu hujjat doirasiga kirmaydi.
Quyidagi satrlarni kod sifatida o'zgartiring.
#dexin WLAN_SSID "xxx" // Sizning mobil hotspot WiFi SSID
#WLAN_PASS -ni belgilang "……" //
/************************* Adafruit.io ni sozlash ******************** *************/
#IO_SERVER "io.adafruit.com" ni aniqlang
#Define AIO_SERVERPORT 1883 // SSL uchun 8883 dan foydalaning
#deofine AIO_USERNAME "xyz" // Sizning adafruit hisobingiz foydalanuvchi nomi
AIO_KEY "abcd ……" ni belgilang // faol kalit …
MQTT kanallari haqida: Qurilma va mijoz (mobil ilova) MQTT brokeri orqali pub sub modeli yordamida xabarlar tasmasi orqali ma'lumot almashadi. Xabarni qabul qilish uchun har qanday mijoz yoki qurilma oldindan belgilangan tasmaga obuna bo'lishi kerak va xabarni tasmaga yuborish uchun nashr qilish usulini ishlatishi kerak. Bizning loyihamiz uchun taxminan 5 ta kanal kerak. Quyida kodda ko'rib turganingizdek, har bir tasma va ularning qanday ishlashini tushuntirish mumkin.
Tarmoq holati: tarmoqdan quvvat manbai mavjudligi/feedlar/grid. Adafruit_MQTT_Publish grid_stat = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/grid") tasmasida e'lon qilinadi;
0 elektr ta'minoti mavjud emasligini va 1 ta quvvat manbai mavjudligini ko'rsatadi.
Dvigatel holati: Qurilma dvigatel holatini…/feed/gridda e'lon qiladi.
Adafruit_MQTT_Publish motor_status = Adafruit_MQTT_Publish (& mqtt, AIO_USERNAME "/feeds/motor")
O'chirish uchun 0 va ON uchun 1 qiymati
Dvigatelni yoqish tugmasi: bu besleme dvigatelni ishga tushirish so'rovini qabul qilish uchun ishlatiladi. Qurilma lentani = 1 qiymatidagi motorni ishga tushirish so'rovini olish uchun obuna bo'ladi va 0 tasmali xabarni e'lon qilish uchun xuddi shu tasmadan foydalanadi. Shunday qilib, biz ishga tushirish so'rovi xabari qurilma tomonidan qabul qilinganligini tasdiqlay olamiz.
Adafruit_MQTT_Subscribe motoronbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_on");
Dvigatelni o'chirish tugmasi:
Start so'roviga o'xshab, bu tasma motorni to'xtatish so'rovini qabul qilish uchun ishlatiladi. Qurilma tasmaga to'xtash so'rovini qabul qilish uchun obuna bo'ladi = 1 va tasdiqlash xabarini 0 sifatida e'lon qilish uchun.
Adafruit_MQTT_Subscribe motoroffbutton = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/feeds/motor_off");
Ulanish:
Bu "oxirgi iroda" opsiyasi yoqilgan maxsus tasma. Qurilma har bir belgilangan vaqt oralig'ida yaxshi ishlayotganda, u foydalanuvchiga hamma narsa yaxshi ekanligini aytib berish uchun ulanishni = 1 e'lon qiladi. Agar tizim uzilib qolsa yoki aloqa uzilsa, qurilma broker bilan aloqa qila olmaydi. Bunday hollarda, MQTT brokerining o'zi foydalanuvchiga biror narsa noto'g'ri ketayotganini va qurilmaga internet orqali ulanish mumkin emasligini bildirish uchun tasmani aloqa = 0 sifatida e'lon qiladi. Biz jismonan borib, qurilmani tekshirishimiz kerak. Kod juda oddiy. "Oxirgi iroda" qanday ishlashi haqida batafsil ma'lumot olish uchun MQTT hujjatlariga qarang.
agar (u <= 0)
{
mqtt.publish (AIO_USERNAME "/feeds/connection", "1", 1);
itr = CON_LIVE_ITR;
}
Kodning qolgan qismi o'z -o'zidan tushunarli va o'zgartirish talab qilinmaydi. Agar sizga qo'shimcha ma'lumot kerak bo'lsa, sharh qoldiring.
5 -qadam: MQTT Dash APP -ni mobil telefoningizga o'rnating va sozlang
- Android telefoningizga MQTT Dash -ni o'rnating va dasturni oching
- Qurilmani qo'shish uchun yuqori o'ng burchakdagi + belgisini bosing.
- Yuqoridagi birinchi rasmda ko'rsatilgandek, qurilmangizga "MyFarm-IPSet" deb nom bering. Manzil maydoni io.adafruit.com va port 1883, foydalanuvchi nomi sizning adafruit bo'lishi kerak va parolingiz adafruitdan faol kalitingiz bo'lishi kerak. Qolgan maydonlarni xuddi shunday qoldiring. Oxirida saqlashni bosing.
- Siz qurilmangizni yaratdingiz. Endi asboblar panelini qo'shish uchun ustiga bosing.
- + Ni bosing va kalit/tugma sifatida turini tanlang. Yuqorida ko'rsatilgandek, nom maydoniga sys kiriting. va mavzu maydoniga tasma nomini kiriting. har bir tasma foydalanuvchi nomi/feeds/bilan boshlanishi kerak. Buning uchun biz /oziqlantiramiz /ulanamiz. Nashr etishni yoqish o'chirilganligiga ishonch hosil qiling. Ko'rsatish uchun belgini bosish orqali siz boshqaruv panelida qanday ko'rinishda bo'lishini xohlaysiz. 1 -qiymat uchun ranglardan birini tanlang (yashil deb ayting) va 0 qiymati uchun kulrang yoki qizil rangni tanlang. Nihoyat, yuqori o'ng burchakdagi saqlashni bosing. Xuddi shunday, yana ikkita piktogramma yarating, bunda foydalanuvchi nomi/tasmalari/panjarasi Grid va mavzu sifatida foydalanuvchi nomi/tasmalari/dvigateli. Nashr etishni yoqish o'chirilganligiga ishonch hosil qiling.
- Nihoyat, Motorni yoqish tugmachasini yarating. Bu yana kalit/tugma bilan bir xil. Mavzu /feed /motor_on bo'lishi kerak va bu safar nashr etishni yoqish va QOS = 1 bo'lishi kerak. Xuddi shunday, Motorni o'chirish uchun boshqa tugmachani yarating. Mavzu /ücretli /motor_off bo'lishi kerak.
6-qadam: Oxirgi qadam:-) Sinov va oxirgi sozlash
- Xavfsiz bo'lish uchun siz o'rni DOL starteriga ulashdan oldin qurilmani START va STOP operatsiyalarini sinab ko'rishingiz kerak. Internet yoqilgan holda mobil telefonda Hotspot -ni yoqing. Rivojlanish muhiti bo'lgan noutbukni bir vaqtning o'zida TP4056 ga ulangan boshqa zaryadlovchi bilan NodeMCU USB portiga ulang. Agar qurilma Internetga muvaffaqiyatli ulangan bo'lsa, siz smartfonda ulanish nuqtasiga ulangan 1 qurilmani ko'rishingiz kerak.
- MQTT Dash -ni o'rnatgan boshqa smartfonda dasturlar panelini oching. Ko'rinib turibdiki, NET belgisi yashil rangda va Grid belgisi yashil rangda, ularning qiymati 1 ga teng. Dvigatel belgisi 0 sifatida motor bilan o'chirilgan holda ko'rsatilishi kerak.
- Dvigatelni yoqish tugmachasini bosganingizda, start rölesi ikki soniya oralig'ida ikki marta bosish ovozini chiqarishi kerak. Dvigatelni o'chirish tugmasi ham xuddi shunday.
- Xavfsizlik uchun endi DOL boshlang'ichining asosiy ta'minotini o'chiring va 2-bosqichda ko'rsatilganidek o'rni DOL starteriga ulang. Dvigatel o'chirilganligiga ishonch hosil qiling. NodeMCU -da tiklash tugmachasini bosing. Seriya monitorining chiqishida siz WC1700 sensori, uchburchagi va hisoblangan oqimdan qiymatlarni chop etadigan disk raskadrovka bayonotlarini ko'rishingiz mumkin. Dvigatel yopiq holatda va "#define WCS1700_CONST 15" bilan maxCur izchil ravishda 2dan kam bo'lishi kerak. Agar u 2 dan katta bo'lsa, WCS1700_CONST ning yuqori qiymatlari bilan harakat qilib ko'ring. Har safar siz kodni qayta kompilyatsiya qilishingiz va dasturiy ta'minotni yuklashingiz kerak bo'ladi.
- Endi dvigatelni yoqing va joriy ko'rsatkichlarni qayta qidiring. Dvigatelni taxminan 10-15 daqiqaga yoqing va barqaror oqim ko'rsatkichiga e'tibor bering. Oqim taxminan 10 dan 20 ampergacha o'zgarishi mumkin va aniq bo'lishi shart emas.
- Kodga qayting va "#define MIN_CURRENT X ni o'rnating. Bu erda X maksimal oqimning 40 foizini raqamli qiymatga yaqinlashtiradi. Mening holatimda MIN_CURRENTni 5 ga o'rnatdim. Dasturiy ta'minotni NodeMCU -ga qayta o'rnating va qayta o'rnating.
- USB kabelini NodeMCU -dan chiqarib oling. TP4056 ga ulangan USB zaryadlovchi qurilmani o'chiring va yoqing. Mobil ilovadagi "Motor ON" tugmasini bosish dvigatelni ishga tushirishi kerak. Dvigatel yoqilgandan so'ng, vosita boshqaruv panelida ON holatida aks ettirilishi kerak. To'xtatish tugmachasini bosish dvigatelni to'xtatishi kerak.
Xursand bo'ling !!!!
Tavsiya:
Arduino asosidagi DIY o'yin boshqaruvchisi - Arduino PS2 o'yin boshqaruvchisi - DIY Arduino Gamepad bilan Tekken o'ynash: 7 qadam
Arduino asosidagi DIY o'yin boshqaruvchisi | Arduino PS2 o'yin boshqaruvchisi | DIY Arduino Gamepad bilan Tekken o'ynash: Salom bolalar, o'yin o'ynash har doim qiziqarli, lekin o'zingizning shaxsiy o'yiningiz bilan o'ynash yanada qiziqarli, shuning uchun biz ushbu qo'llanmada arduino pro micro yordamida o'yin boshqaruvchisi qilamiz
Wemos D1 Mini va H-Bridge bilan sug'orish uchun impulsli elektromagnitlardan foydalanish: 7 qadam
Wemos D1 Mini va H-Bridge bilan sug'orish uchun pulsli elektromagnitlardan foydalanish impulsli solenoidlar. Bu solenoidlar juda kam quvvat sarflaydilar, chunki ular qabul qilganda
Uzoq sug'orish tizimini boshqarish va nazorat qilish uchun mikrokontrollerlardan foydalanish: 4 qadam
Uzoq sug'orish tizimini boshqarish va nazorat qilish uchun mikrokontrollerlardan foydalanish: arzon sug'orish tizimi uchun fermerlar va issiqxona operatorlari. Loyihada biz tuproq namligi elektron sensori mikrokontroller bilan birlashtirib, odamlarning aralashuvisiz tuproq juda quruq bo'lganda o'simliklarni avtomatik ravishda sug'oramiz
Kultivatsiya sozlamalari uchun WiFi signallari bilan avtomatik sug'orish suv ombori yarating: 11 qadam
Kultivatsiya uchun WiFi ogohlantirishlari bilan avtomatik sug'orish suv omborini yarating: Ushbu DIY o'quv qo'llanmasida biz sizga qanday qilib etishtirishni sozlash uchun yoki uy hayvonlari uchun itlar, mushuklar, tovuqlar va boshqalar
Arduino asosidagi sug'orish tizimi: 8 qadam
Arduino -ga asoslangan sug'orish tizimi: kontekstualizatsiyalashganidan so'ng, Braziliya, sayyora va erni sug'orish bilan shug'ullanadi, 65%ni tashkil qiladi, shuningdek, Organizacão das Nações Unidas va Alimentacão a qishloq xo'jaligi. Mumkin bo'lgan imkoniyatlar