Mundarija:

Batareya bilan ishlaydigan suv yig'uvchi sath sensori: 7 qadam (rasmlar bilan)
Batareya bilan ishlaydigan suv yig'uvchi sath sensori: 7 qadam (rasmlar bilan)

Video: Batareya bilan ishlaydigan suv yig'uvchi sath sensori: 7 qadam (rasmlar bilan)

Video: Batareya bilan ishlaydigan suv yig'uvchi sath sensori: 7 qadam (rasmlar bilan)
Video: QUYOSH PANELLARINI O'RNATISH Quyosh batareyalari o'rnatish 2-qsim 2024, Noyabr
Anonim
Batareya bilan ishlaydigan suv yig'uvchi darajali sensori
Batareya bilan ishlaydigan suv yig'uvchi darajali sensori
Batareya bilan ishlaydigan suv yig'uvchi darajali sensori
Batareya bilan ishlaydigan suv yig'uvchi darajali sensori

Uyimizda tomga tushgan yomg'irdan oziqlanadigan va hojatxona, kir yuvish mashinasi va bog'da sug'oriladigan o'simliklar uchun ishlatiladigan suv idishi bor. So'nggi uch yil davomida yoz juda quruq edi, shuning uchun biz tankdagi suv sathini kuzatdik. Hozircha biz yog'och tayoqdan foydalanganmiz, uni tankga qo'yib, darajani belgilab qo'yganmiz. Lekin, albatta, buni yaxshilash mumkin!

Bu erda bu loyiha paydo bo'ladi. G'oya tankning yuqori qismiga ultratovushli masofa sensori ulash. Bu sensor tovush to'lqinlarini chiqaruvchi sonar vazifasini bajaradi, keyinchalik ular suv yuzasida aks etadi. To'lqinlar qaytib kelishi va tovush tezligidan boshlab, siz suv sathigacha bo'lgan masofani hisoblab, tank qanchalik to'lganligini aniqlashingiz mumkin.

Tankga yaqin tarmoqqa ulanmaganligim uchun, qurilmaning to'liq batareyada ishlashi muhim. Bu shuni anglatadiki, men barcha qismlarning quvvat sarfi haqida xabardor bo'lishim kerak edi. Ma'lumotni qaytarish uchun men ESP8266 mikrochipining o'rnatilgan Wi-Fi tarmog'idan foydalanishga qaror qildim. Wi-Fi kuchsiz bo'lsa-da, u boshqa turdagi radio ulanishdan ustun: siz o'z o'rni vazifasini bajaradigan boshqa qurilmani o'rnatmasdan, uyingizning simsiz routeriga to'g'ridan-to'g'ri ulanishingiz mumkin.

Quvvatni tejash uchun men ko'pincha ESP8266 ni qattiq uyquga qo'yaman va har soatda o'lchov o'tkazaman. Suv sathini kuzatib borish maqsadim uchun bu etarli emas. Ma'lumotlar ThingSpeak -ga yuboriladi va uni smartfonda ilova orqali o'qish mumkin.

Yana bir tafsilot! Masofani o'lchash uchun zarur bo'lgan tovush tezligi haroratga va ozgina darajada namlikka bog'liq. Fasl davomida aniq tashqi o'lchov uchun biz harorat, namlik va bosimni o'lchaydigan BME280 sensoriga tashlanamiz. Bonus sifatida, bu bizning suv sathi sensori, shuningdek, kichik ob -havo stantsiyasidan.

Qismlar:

  • 1x ESP8266 ESP-12F.
  • 1x ESP-12F adapter plitasi.
  • 1x FT232RL FTDI: USB -dan seriyali adapter.
  • 1x HC-SR04-P: ultratovushli masofani o'lchash moduli. E'tibor bering, P juda muhim, chunki bu 3V minimal ish kuchlanishiga ega bo'lgan versiya.
  • 1x BME280 3.3V versiyasi: harorat, bosim va namlik sensori.
  • 1x IRL2203N: n-kanalli MOSFET tranzistor.
  • 1x MCP1700-3302E 3.3V versiyasi: voltaj regulyatori.
  • 3x qayta zaryadlanuvchi AA batareyasi, masalan. 2600 mA / soat.
  • 3 ta batareya uchun 1x batareya ushlagichi.
  • 1x non paneli.
  • Rezistorlar: 1x 470K, 1x 100K, 4x 10K.
  • Kondensatorlar: 2x keramik 1uF.
  • 3x o'tish tugmasi.
  • U shaklidagi non paneli simlari.
  • Jumper simlari.
  • Plastik sho'rva idishi 1l.
  • Idish uchun biriktiruvchi halqa.

Men kodni GitHub -da taqdim qildim.

1 -qadam: Ultrasonik masofa sensori bilan tanishish

Ultrasonik masofa sensori bilan tanishish
Ultrasonik masofa sensori bilan tanishish
Ultrasonik masofa sensori bilan tanishish
Ultrasonik masofa sensori bilan tanishish

Biz suv yuzasiga masofani HC-SR04-P ultratovush sensori bilan o'lchaymiz. Xuddi ko'rshapalak kabi, bu sensor sonarni ishlatadi: u odam qulog'i uchun juda yuqori chastotali tovush impulsini yuboradi, shuning uchun ultratovushli bo'lib, uning ob'ektga tegishini, aksini va qaytishini kutadi. Keyin masofani aks -sadoni qabul qilish uchun zarur bo'lgan vaqt va tovush tezligidan hisoblash mumkin.

Aniq qilib aytganda, agar Trig pimi kamida 10 mks baland tortilsa, sensor 40 Gts chastotali 8 ta impulsni yuboradi. Javob Echo pinida ultratovush pulsini yuborish va qabul qilish orasidagi vaqtga teng bo'lgan puls shaklida olinadi. Keyin bizni ikkiga bo'lishimiz kerak, chunki ultratovush pulsi oldinga va orqaga ketmoqda va biz bir tomonlama harakatlanish vaqtini talab qilamiz va ovoz tezligiga 340 m/s ga ko'paytiramiz.

Lekin bir daqiqa kutib turing! Darhaqiqat, tovush tezligi haroratga va ozgina darajada namlikka bog'liq. Men yig'layapmanmi yoki bu muhimmi? Hisoblash vositasi yordamida biz qishda (-5 ° S haroratda) bizda 328,5 m/s, yozda (25 ° C da) 347,1 m/s tezlikka ega bo'lishimiz mumkinligini aniqlaymiz. Faraz qilaylik, biz bir martalik sayohat vaqtini 3 ms. Qishda bu 98,55 sm, yozda esa 104,13 sm. Bu juda farq! Shunday qilib, mavsum davomida va hatto kechayu kunduz etarlicha aniqlikka erishish uchun biz sozlamamizga termometr qo'shishimiz kerak. Men harorat, namlik va bosimni o'lchaydigan BME280 ni qo'shishga qaror qildim. Kodda men speedOfSound funktsiyasida ovoz tezligini har uch parametr bo'yicha hisoblaydigan formuladan foydalanganman, lekin harorat haqiqatan ham eng muhim omil. Namlik hali ham kichikroq ta'sir ko'rsatadi, lekin bosimning ta'siri ahamiyatsiz. Biz speedOfSoundSimple -da amalga oshirgan haroratni hisobga olgan holda oddiy formuladan foydalanishimiz mumkin.

HC-SR04da yana bir muhim nuqta bor. Ikkita versiya mavjud: standart versiya 5V da ishlaydi, HC-SR04-P esa 3V dan 5V gacha kuchlanish oralig'ida ishlashi mumkin. 3 ta qayta zaryadlanuvchi AA batareyasi 3x1.25V = 3.75V atrofida bo'lganligi sababli, P-versiyasini olish muhim. Ba'zi sotuvchilar noto'g'ri xat yuborishlari mumkin. Shunday qilib, agar siz uni sotib olsangiz, rasmlarga qarang. Ushbu sahifada tasvirlanganidek, ikkala versiya ham orqa, ham old tomondan farq qiladi. P-versiyaning orqa tomonida uchta chip gorizontal, standart versiyada esa vertikal. Old tomondan standart versiyada qo'shimcha kumush komponent mavjud.

Elektron sxemada biz batareyaning ishlash muddatini tejash uchun chuqur uyqu holatiga o'tganda, biz ultratovush sensori quvvatini o'chirish uchun kalit sifatida tranzistordan foydalanamiz. Aks holda, u hali ham taxminan 2mA iste'mol qiladi. Boshqa tomondan, BME280 faqat 5 mk ni faol bo'lmagan holatda iste'mol qiladi, shuning uchun uni tranzistor bilan o'chirish shart emas.

2 -qadam: ESP8266 kartasini tanlash

ESP8266 kartasini tanlash
ESP8266 kartasini tanlash

Sensorni batareyada iloji boricha uzoqroq ishlatish uchun biz quvvat sarfini tejashimiz kerak. ESP8266 Wi-Fi sensori bulutga ulanishning juda qulay usulini taqdim etsa-da, u ham quvvatga muhtoj. Ish paytida ESP8266 taxminan 80mA sarflaydi. Shunday qilib, 2600 mA / soat quvvatga ega batareyalar bilan biz qurilmamizni bo'sh vaqtigacha ko'pi bilan 32 soat ishlatishimiz mumkin edi. Amalda, bu kamroq bo'ladi, chunki biz kuchlanish juda past darajaga tushgunga qadar 2600 mA / soat quvvatni to'liq ishlata olmaymiz.

Yaxshiyamki, ESP8266-da deyarli hamma narsa o'chirilgan chuqur uyqu rejimi mavjud. Shunday qilib, ESP8266 ni tez -tez uyquga yotqizish va tez -tez uyg'otish, uni o'lchash va Wi -Fi orqali ThingSpeak -ga yuborish. Bu sahifaga ko'ra, chuqur uyquning maksimal vaqti taxminan 71 minut edi, lekin ESP8266 Arduino yadrosi 2.4.1dan boshlab u taxminan 3,5 soatgacha oshdi. Mening kodimda men bir soatga joylashdim.

Men birinchi marta NodeMCU-ni ishlab chiqish uchun qulay taxtani sinab ko'rdim, lekin bamer, uxlab yotganida u hali ham 9 mA iste'mol qilgan, bu bizga uyg'onish vaqtlarini hisobga olmagan holda 12 kunlik toza chuqur uyqu beradi. Muhim aybdor - AMS1117 kuchlanish regulyatori, u batareyani to'g'ridan -to'g'ri 3.3V piniga ulab, uni chetlab o'tishga harakat qilsangiz ham quvvat ishlatadi. Bu sahifada voltaj regulyatori va USB UARTni qanday olib tashlash mumkinligi tushuntiriladi. Biroq, men hech qachon taxtani buzmasdan buni uddalay olmadim. Bundan tashqari, USB UARTni olib tashlaganingizdan so'ng, nima noto'g'ri bo'lganini aniqlash uchun ESP8266 ga ulana olmaysiz.

Ko'pchilik ESP8266 ishlab chiqish platalari AMS1117 isrofgar kuchlanish regulyatoridan foydalanganga o'xshaydi. Istisnolardan biri WEMOS D1 mini (chapdagi rasm) bo'lib, u yanada tejamkor ME6211 bilan birga keladi. Haqiqatan ham, men WEMOS D1 mini -da chuqur uyquda taxminan 150 mkA ishlatilishini aniqladim, bu unga ko'proq o'xshaydi. Ehtimol, ko'pchilik USB UART tufayli. Ushbu taxtadan foydalanib, siz pinlar uchun sarlavhalarni o'zingiz lehimlashingiz kerak.

Biroq, biz USB UART yoki kuchlanish regulyatori bo'lmagan ESP-12F (o'ngdagi rasm) kabi yalang'och taxtadan foydalanib, ancha yaxshi ish qila olamiz. 3.3V pinni oziqlantirishda men faqat 22 mkA chuqur uyqu sarfini topdim!

Ammo ESP-12F-ni ishlashga tayyorlash uchun uni lehimlashga tayyorlang va uni dasturlashda biroz murakkabroq bo'ling! Bundan tashqari, batareyalar 3V dan 3.6V gacha bo'lgan to'g'ri kuchlanishni to'g'ridan -to'g'ri etkazib bermasa, biz o'z voltaj regulyatorimizni ta'minlashimiz kerak. Amalda, to'liq zaryadsizlanish davrida bu diapazonda kuchlanishni ta'minlaydigan batareya tizimini topish qiyin bo'lib chiqadi. Shuni ham yodda tutingki, biz HC-SR04-P sensorini quvvat bilan ta'minlashimiz kerak, u nazariy jihatdan 3V gacha past kuchlanish bilan ishlashi mumkin, lekin kuchlanish yuqori bo'lsa aniqroq ishlaydi. Bundan tashqari, mening diagrammada HC-SR04-P tranzistor tomonidan yoqilgan, bu esa qo'shimcha kuchlanish pasayishiga olib keladi. Biz MCP1700-3302E kuchlanish regulyatoridan foydalanamiz. Maksimal kirish voltaji 6V, shuning uchun biz uni 4 ta AA batareyasi bilan ta'minlaymiz. Men 3 ta AA batareyasini ishlatishga qaror qildim.

3 -qadam: ThingSpeak kanalini yarating

Biz ma'lumotlarni saqlash uchun ThingSpeak, IoT bulutli xizmatidan foydalanamiz. Https://thingspeak.com/ saytiga o'ting va hisob yarating. Tizimga kirganingizdan so'ng kanal yaratish uchun Yangi kanal tugmasini bosing. Kanal sozlamalarida ism va tavsifni xohlaganingizcha to'ldiring. Keyin biz kanal maydonlarini nomlaymiz va o'ngdagi katakchalarni bosib ularni faollashtiramiz. Agar siz mening kodimni o'zgarishsiz ishlatsangiz, maydonlar quyidagicha:

  • 1 -maydon: suv sathi (sm)
  • 2 -maydon: batareya quvvati (V)
  • 3 -maydon: harorat (° C)
  • 4 -maydon: namlik (%)
  • 5 -maydon: bosim (Pa)

Kelgusida ma'lumot olish uchun API identifikatorlari menyusida joylashgan kanal identifikatorini, API o'qish kalitini va API yozish kalitini yozing.

ThingSpeak ma'lumotlarini smartfoningizdagi ilova yordamida o'qishingiz mumkin. Android telefonimda IoT ThingSpeak Monitor vidjetidan foydalanaman. Siz uni kanal identifikatori va API o'qish kaliti yordamida sozlashingiz kerak.

4-qadam: ESP-12F-ni qanday dasturlash kerak

ESP-12F-ni qanday dasturlash kerak
ESP-12F-ni qanday dasturlash kerak
ESP-12F-ni qanday dasturlash kerak
ESP-12F-ni qanday dasturlash kerak

Batareyaning ishlash muddatini tejash uchun bizga yalang'och taxta kerak, biroq uning salbiy tomoni shundaki, dasturlash USB UART o'rnatilgan plataga qaraganda biroz qiyinroq.

Biz Arduino IDE -dan foydalanamiz. Buni qanday ishlatishni tushuntiradigan boshqa ko'rsatmalar mavjud, shuning uchun men bu erda qisqacha. ESP8266 ga tayyor bo'lish uchun qadamlar:

  • Arduino IDE -ni yuklab oling.
  • ESP8266 platasiga tayanchni o'rnating. Fayl - Tanlovlar - Sozlamalar menyusida https://arduino.esp8266.com/stable/package_esp8266com_index.json manzilini qo'shimcha boshqaruv menejeri URL manzillariga qo'shing. Keyingi menyuda Asboblar - Kengash - Kengashlar menejeri esp8266 hamjamiyati tomonidan esp8266 -ni o'rnatadi.
  • Kengash sifatida tanlang: Umumiy ESP8266 moduli.

ESP-12F-ni boshqarish uchun men odatda onlayn-do'konlarda sotiladigan adapter plastini ishlatardim. Men chipni plastinkaga lehimladim, keyin sarlavhalarni plastinkaga lehimladim. Shundagina men adapter plastinkasi standart non paneli uchun juda keng ekanligini aniqladim! Ulanish uchun yon tomonda bo'sh pinlar qolmaydi.

ESP8266 ni plastinka paneliga qo'yishdan oldin, men U-simli simlardan foydalanish va ularni o'ngdagi rasmdagi kabi ulashdan boshladim. Shunday qilib, GND va VCC non panelining relslariga ulanadi va qolgan pinlar taxtadan pastga qo'yiladi. Kamchilik shundaki, siz to'liq sxemani tugatgandan so'ng, sizning taxtangiz simlar bilan to'lib toshadi. Yana bir yechim - bu videoda ko'rsatilgandek ikkita taxtani bir -biriga ulash.

Keyinchalik, ESP-12F-ni kompyuteringizning USB-porti orqali dasturlash uchun bizga USB-dan ketma-ket adapter kerak. Men FT232RL FTDI dasturchisidan foydalandim. Dasturchi 3,3V yoki 5V ni tanlash uchun o'tish moslamasiga ega. ESP8266 uchun uni 3,3 V ga qo'yish kerak. Buni unutmang, chunki 5V sizning chipingizni qovurishi mumkin! Drayvlarni o'rnatish avtomatik bo'lishi kerak, lekin agar dasturlash ishlamasa, ularni ushbu sahifadan qo'lda o'rnatishga urinib ko'rishingiz mumkin.

ESP8266 -da fleshka yangi dasturiy ta'minotni yuklash uchun dasturlash rejimi va flesh -xotiradan joriy dasturiy ta'minotni ishga tushirish uchun flesh rejimi mavjud. Ushbu rejimlardan birini tanlash uchun yuklash vaqtida ba'zi pinlar ma'lum qiymatga ega bo'lishi kerak:

  • Dasturlash: GPIO0: past, CH-PD: yuqori, GPIO2: yuqori, GPIO15: past
  • Fleshli: GPIO0: yuqori, CH-PD: yuqori, GPIO2: yuqori, GPIO15: past

Adapter plitasi allaqachon CH-PDni ko'tarish va 10K rezistorli GPIO15ni pastga tushirish bilan shug'ullanadi.

Shunday qilib, elektron sxemada biz hali ham GPIO2-ni tortib olishimiz kerak. Shuningdek, biz ESP8266 -ni dasturlash yoki flesh rejimiga qo'yish uchun kalit va uni qayta o'rnatish uchun kalitni ta'minlaymiz, bu RSTni erga ulash orqali amalga oshiriladi. Bundan tashqari, FT232RL ning TX pinini ESP8266 ning RXD piniga ulaganingizga ishonch hosil qiling va aksincha.

Dasturlash ketma -ketligi quyidagicha:

  • Dastur tugmachasini yopib, GPIO2 ni past darajaga qo'ying.
  • Qayta tiklash tugmachasini yopib, keyin qayta ochish orqali ESP8266 -ni qayta o'rnating. ESP8266 endi dasturlash rejimida yuklanadi.
  • Dasturlash tugmachasini ochish orqali GPIO2 -ni yuqori holatiga qaytaring.
  • Arduino IDE -dan yangi dasturiy ta'minotni yuklang.
  • Qayta tiklash tugmachasini yopish va qayta ochish orqali ESP8266 -ni qayta o'rnating. ESP8266 endi flesh rejimda yuklanadi va yangi dasturiy ta'minotni ishga tushiradi.

Endi siz dasturlash ishlayotganini mashhur Blink eskizini yuklash orqali tekshirishingiz mumkin.

Agar bularning barchasi hech bo'lmaganda GND, VCC, GPIO2, RST, TXD va RXD pinlari to'g'ri lehimlangan va ulangan bo'lsa. Qanday yengillik! Ammo davom etishdan oldin, boshqa pinlarni ham multimetr bilan sinab ko'rishni tavsiya qilaman. Men pinlardan biri bilan o'zim muammoga duch keldim. Siz barcha eskizlarni 5 soniya davomida birma -bir baland qilib, so'ngra ESP8266 ni 20 soniya davomida qattiq uyquga qo'yadigan eskizdan foydalanishingiz mumkin. ESP8266 -ni chuqur uyqudan keyin uyg'otish uchun siz RST -ni GPIO16 -ga ulashingiz kerak.

5 -qadam: Eskizni yuklash

Men kodni GitHub-da taqdim qildim, bu faqat bitta fayl: Level-Sensor-Deepsleep.ino. Uni yuklab oling va Arduino IDE -da oching. Yoki Fayl - Yangi -ni tanlashingiz va kodni nusxalash/joylashtirishingiz mumkin.

Faylning boshini to'ldirishingiz kerak bo'lgan ba'zi ma'lumotlar mavjud: WLAN tarmog'ining nomi va paroli, statik IP tafsilotlari va ThingSpeak kanalining kanal identifikatori va API yozish kaliti.

Ushbu blogdagi maslahatga binoan, yo'riqnoma IP -ni dinamik ravishda tayinlaydigan DHCP o'rniga biz statik IP -dan foydalanamiz, bu erda biz ESP8266 -ning IP -manzilini o'zimiz o'rnatamiz. Bu ancha tezroq bo'lib chiqdi, shuning uchun biz faol vaqtni va shu tariqa batareya quvvatini tejaymiz. Shunday qilib, biz mavjud statik IP -manzilni, shuningdek yo'riqnoma IP -manzilini (shlyuz), pastki tarmoq niqobini va DNS -serverni taqdim etishimiz kerak. Agar nima to'ldirishni bilmasangiz, marshrutizator qo'llanmasida statik IP -ni sozlash haqida o'qing. Wi-Fi orqali yo'riqchiga ulangan Windows kompyuterida qobiqni ishga tushiring (Windows tugmasi-r, cmd) va ipconfig /all kiriting. Siz Wi-Fi bo'limida kerakli ma'lumotlarni topasiz.

Kodni tekshirib ko'rsangiz, boshqa Arduino kodidan farqli o'laroq, aksariyat harakatlar loop funktsiyasi o'rniga sozlash funktsiyasida sodir bo'ladi. Buning sababi shundaki, ESP8266 sozlash funktsiyasini tugatgandan so'ng chuqur uyquga ketadi (agar biz OTA rejimida boshlamagan bo'lsak). Uyg'onganidan so'ng, bu qayta ishga tushirishga o'xshaydi va u yana sozlamalarni ishga tushiradi.

Bu erda kodning asosiy xususiyatlari:

  • Uyg'otgandan so'ng, kod switchPin (standart GPIO15) ni yuqori darajaga o'rnatadi. Bu HC-SR04-P sensorini yoqadigan tranzistorni yoqadi. Chuqur uyquga ketishdan oldin, u pinni past darajaga tushiradi, tranzistorni va HC-SR04-P ni o'chiradi, shuning uchun u qimmatbaho batareya quvvatini iste'mol qilmaydi.
  • Agar modePIN (standart GPIO14) past bo'lsa, kod o'lchash rejimining o'rniga OTA rejimiga o'tadi. OTA (havodan yangilanish) yordamida biz dasturiy ta'minotni ketma-ket port o'rniga Wifi orqali yangilashimiz mumkin. Bizning holatimizda bu juda qulay, chunki keyingi yangilanishlar uchun ketma -ketlikni USB adapterga ulash shart emas. GPIO14 -ni past darajaga qo'ying (elektron davrada OTA tugmasi bilan), ESP8266 -ni qayta o'rnating (reset tugmasi bilan) va u yuklash uchun Arduino IDE -da mavjud bo'lishi kerak.
  • Analog PIN -kodda (A0) biz batareyaning kuchlanishini o'lchaymiz. Bu batareyani haddan tashqari zaryadsizlanishdan himoya qilish uchun, agar biz juda past, minVoltdan past bo'lsa, qurilmamizni doimiy uyqu rejimida o'chirishga imkon beradi. Analog o'lchov juda aniq emas, biz numMeasuresBattery (standart 10) o'lchovlarini qilamiz va aniqlikni yaxshilash uchun o'rtacha ko'rsatkichni olamiz.
  • HC-SR04-P sensori masofasini o'lchash masofaviy o'lchov funktsiyasida amalga oshiriladi. Aniqlikni oshirish uchun o'lchov numMeasuresDistance (standart 3) marta takrorlanadi.
  • BME280 sensori yordamida harorat, namlik va bosim o'lchovidan speedOfSound -ni hisoblash funktsiyasi mavjud. BME280 standart I2C manzili 0x76, lekin u ishlamasa, uni 0x77 ga o'zgartirishingiz kerak bo'ladi: bool bme280Started = bme280.begin (0x77);
  • Biz BME280 -ni majburiy rejimda ishlatamiz, ya'ni quvvatni tejash uchun bitta o'lchovni oladi va uxlashga qaytadi.
  • Agar siz sig'im (l), fullDistance (sm) va maydonni (m2) o'rnatgan bo'lsangiz, kod suv tankining qolgan hajmini masofa o'lchovidan hisoblab chiqadi: ikki baravar qolganVolume = sig'im+10.0*(fullDistance-distance)*maydoni; va buni ThingSpeak -ga yuklang. Agar siz standart qiymatlarni saqlasangiz, u suv yuzasiga masofani sm bilan yuklaydi.

6 -qadam: Elektron sxemani yaratish

Elektron davrni qurish
Elektron davrni qurish

Yuqorida elektron sxemaning diagrammasi ko'rsatilgan. Bu bitta non taxtasi uchun juda katta, ayniqsa katta o'lchamli adapter plitasi va U shaklidagi simlar bilan hiyla. Bir payt men, albatta, ikkita non taxtasini ulashning alternativasini ishlatgan bo'lardim, lekin oxir -oqibat men bunga muvaffaq bo'ldim.

Bu erda sxemaning muhim xususiyatlari:

  • Ikkita kuchlanish rol o'ynaydi: batareyadan kirish voltaji (3,75V atrofida) va ESP8266 va BME280 quvvatlantiruvchi 3,3V. Men 3.3Vni to'xtatuvchi paneldagi chap relsga va 3.75V ni o'ngga qo'ydim. Voltaj regulyatori 3.75V ni 3.3V ga o'zgartiradi. Ma'lumotlar varag'idagi ko'rsatmalarga binoan, barqarorlikni oshirish uchun voltaj regulyatorining kirish va chiqishiga 1 mF kondansatör qo'shdim.
  • ESP8266 GPIO15 tranzistor eshigiga ulangan. Bu ESP8266 -ga tranzistorni, shu bilan birga ultratovushli sensorni faol holatda yoqish va chuqur uyquda uni o'chirish imkonini beradi.
  • GPIO14 kalitga, OTA kalitiga ulangan. Kalitni yopish ESP8266 ga signal beradi, biz keyingi vaqtda OTA rejimida boshlamoqchimiz, ya'ni RESET tugmachasini bosgandan so'ng (yopamiz va ochamiz) va yangi eskizni havoda yuklaymiz.
  • RST va GPIO2 pinlari dasturlash sxemasidagi kabi ulanadi. Endi EST8266 qattiq uyqudan uyg'onishi uchun RST pin GPIO16 ga ulangan.
  • Ultrasonik sensorning TRIG va ECHO pinlari GPIO12 va GPIO13 ga ulangan, BME280 ning SCL va SDA pinlari GPIO5 va GPIO4 ga ulangan.
  • Nihoyat, analog pin ADC kirish voltajiga ulangan kuchlanish bo'luvchi orqali amalga oshiriladi. Bu batareyalarning zaryadlanishini tekshirish uchun kirish voltajini o'lchash imkonini beradi. ADC pimi 0V dan 1V gacha bo'lgan kuchlanishni o'lchashi mumkin. Voltaj bo'linishi uchun biz 100K va 470K rezistorlarni tanladik. Bu shuni anglatadiki, ADC pinidagi kuchlanish quyidagicha berilgan: V_ADC = 100K/(100K+470K) V_in. V_ADC = 1V ni qabul qilish shuni anglatadiki, biz V_in = 570/100 V_ADC = 5.7V gacha bo'lgan kirish kuchlanishlarini o'lchashimiz mumkin. Quvvat iste'moliga kelsak, kuchlanish taqsimlagichidan bir oz oqim oqadi. Batareyalardan V_in = 3.75V bilan biz I_leak = 3.75V/570K = 6.6 mA ni topamiz.

Hattoki kontaktlarning zanglashiga olib keladigan batareyadan ishlayotgan bo'lsa ham, USB -ni ketma -ket adapterga ulash mumkin. Adapterning VCC -ni ajratib, GND, RX va TX -ni dasturlash diagrammasidagi kabi ulang. Bu nosozliklarni tuzatish xabarlarini o'qish va hamma narsa kutilganidek ishlayotganiga ishonch hosil qilish uchun Arduino IDE -da Serial monitorni ochishga imkon beradi.

To'liq kontaktlarning zanglashiga olib, men batareyadan ishlayotganda chuqur uyquda 50 mA oqim sarfini o'lchadim. Bunga ESP8266, BME280, ultratovush sensori (tranzistor tomonidan o'chirilgan) va kuchlanish bo'luvchi orqali oqish va ehtimol boshqa qochqinlar kiradi. Shunday qilib, bu unchalik yomon emas!

Men shuni aniqladimki, umumiy faol vaqt taxminan 7 soniya, shundan 4.25 soniya Wifi -ga ulanish uchun va 1.25 soniya ma'lumotlarni ThingSpeak -ga yuborish uchun. Shunday qilib, 80mA faol oqim bilan men faol vaqt uchun soatiga 160 mA / soat topdim. Chuqur uyqu holatiga soatiga 50 mA / soat qo'shilsa, bizda jami 210 mA / soat bo'ladi. Bu shuni anglatadiki, 2600 mA / soat batareyalar nazariy jihatdan 12400 soat = 515 kun davom etadi. Agar biz batareyalarning to'liq quvvatidan foydalana olsak (bu unday emas) va hozirgi o'lchovlarimda topa olmagan qochqinlar bo'lmasa, bu mutlaq maksimal. Men bu haqiqatan ham amalga oshadimi yoki yo'qligini hali ko'rmaganman.

7 -qadam: Sensorni tugatish

Sensorni tugatish
Sensorni tugatish
Sensorni tugatish
Sensorni tugatish
Sensorni tugatish
Sensorni tugatish

Men datchikni sho'rva bo'lgan plastik 1 litrli idishga joylashtirdim. Pastki qismida HC-SR04-P sensorining "ko'zlari" ga mos keladigan ikkita teshik qildim. Teshiklardan tashqari, idish suv o'tkazmaydigan bo'lishi kerak. Keyin u suv idishining devoriga odatda yomg'ir suvini to'kish trubkasi uchun ishlatiladigan dumaloq halqa bilan biriktiriladi.

Loyihadan zavqlaning!

Tavsiya: