Mündəricat:

Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru: 7 Addım (Şəkillərlə birlikdə)
Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru: 7 Addım (Şəkillərlə birlikdə)

Video: Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru: 7 Addım (Şəkillərlə birlikdə)

Video: Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru: 7 Addım (Şəkillərlə birlikdə)
Video: Замена отопления в новостройке. Подключение. Опрессовка. #17 2024, Iyul
Anonim
Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru
Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru
Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru
Batareya ilə işləyən Su Kollektoru Səviyyə Sensoru

Evimizin damına düşən yağışdan qidalanan və tualet, paltaryuyan maşın və bağdakı suvarma bitkiləri üçün istifadə olunan su çəni var. Son üç ildə yaz çox quraq keçdi, buna görə də tankdakı suyun səviyyəsini izlədik. İndiyə qədər bir taxta çubuq istifadə etdik, onu tanka qoyduq və səviyyəni qeyd etdik. Ancaq şübhəsiz ki, bunu yaxşılaşdırmaq mümkün olmalıdır!

Bu layihənin gəldiyi yer budur. Fikir tankın üstünə ultrasəs məsafə sensoru bağlamaqdır. Bu sensor, səs dalğaları yayan sonar kimi işləyir və sonra su səthində əks olunur. Dalğaların geri qayıtması və səs sürətindən başlayaraq su səthinə olan məsafəni hesablaya və tankın nə qədər dolu olduğunu təyin edə bilərsiniz.

Tankın yaxınlığında bir elektrik bağlantısı olmadığından, cihazın batareyalarda işləməsi vacibdir. Bu o deməkdir ki, bütün hissələrin enerji istehlakı haqqında şüurlu olmalıydım. Məlumatları geri göndərmək üçün bir ESP8266 mikroçipinin daxili Wifi-dən istifadə etmək qərarına gəldim. Wifi kifayət qədər enerjiyə ehtiyacı olsa da, başqa bir radio əlaqəsi üstünlüyünə malikdir: röle rolunu oynayan başqa bir cihaz qurmadan evinizin simsiz routerinə birbaşa qoşula bilərsiniz.

Enerjiyə qənaət etmək üçün ESP8266 -nı çox vaxt dərin yuxuya atacağam və hər saat bir ölçü götürəcəyəm. Su səviyyəsini izləmək məqsədim üçün bu kifayət edər. Məlumatlar ThingSpeak -a göndəriləcək və sonra bir tətbiq vasitəsilə bir smartfonda oxuna bilər.

Daha bir detal! Məsafənin ölçülməsi üçün vacib olan səsin sürəti temperaturdan və daha az dərəcədə rütubətdən asılıdır. Mövsüm ərzində xaricdən dəqiq ölçmək üçün temperaturu, rütubəti və təzyiqi ölçən BME280 sensoruna atacağıq. Bonus olaraq, bu, su səviyyəsi sensorumuzdan həm də bir mini hava stansiyasından ibarətdir.

Parçalar:

  • 1x ESP8266 ESP-12F.
  • 1x ESP-12F adapter lövhəsi.
  • 1x FT232RL FTDI: USB -dən Seriyalı adapter.
  • 1x HC-SR04-P: ultrasəs məsafə ölçmə modulu. P -nin vacib olduğunu unutmayın, çünki bu, minimum 3V işləmə gərginliyinə malik olan bir versiyadır.
  • 1x BME280 3.3V versiyası: temperatur, təzyiq və rütubət sensoru.
  • 1x IRL2203N: n kanallı MOSFET tranzistoru.
  • 1x MCP1700-3302E 3.3V versiyası: gərginlik tənzimləyicisi.
  • 3x şarj edilə bilən AA batareya, məs. 2600mAh.
  • 3 batareya üçün 1x batareya tutacağı.
  • 1 x çörək taxtası.
  • Rezistorlar: 1x 470K, 1x 100K, 4x 10K.
  • Kondansatörler: 2x keramika 1 uF.
  • 3x keçid açarı.
  • U şəkilli çörək taxtası telləri.
  • Jumper telləri.
  • Plastik şorba qabı 1l.
  • Konteyner üçün bağlama halqası.

Kodu GitHub -da təqdim etdim.

Addım 1: Ultrasonik Məsafə Sensoru ilə tanış olmaq

Ultrasonik Məsafə Sensoru ilə tanış olmaq
Ultrasonik Məsafə Sensoru ilə tanış olmaq
Ultrasonik Məsafə Sensoru ilə tanış olmaq
Ultrasonik Məsafə Sensoru ilə tanış olmaq

Su səthinə olan məsafəni ultrasəs sensoru HC-SR04-P ilə ölçəcəyik. Bir yarasa kimi, bu sensor da sonar istifadə edir: insan qulağı üçün çox yüksək olan bir səs nəbzi göndərir, bu səbəbdən ultrasəs verir və bir cismin vurmasını, əks olunmasını və geri qayıtmasını gözləyir. Məsafə, əks -səda və səs sürətini qəbul etmək üçün lazım olan müddətdən sonra hesablana bilər.

Konkret olaraq, Trig pin ən az 10 μs yüksək çəkilirsə, sensor 40 Hz tezliyində 8 impuls partlayışı göndərir. Cavab daha sonra ultrasonik nəbzi göndərmək və qəbul etmək arasındakı müddətə bərabər olan bir nəbz şəklində Echo pinində əldə edilir. Sonra 2-ə bölməliyik, çünki ultrasəs nəbzi irəli və irəli gedir və birtərəfli səyahət müddətinə ehtiyacımız var və təxminən 340 m/s olan səs sürəti ilə çarpırıq.

Ancaq bir dəqiqə gözləyin! Əslində səsin sürəti temperaturdan və daha az dərəcədə rütubətdən asılıdır. Düşürəmmi və ya bu əlaqəlidirmi? Bir hesablama vasitəsi ilə qışda (-5 ° C) 328,5 m/s, yayda (25 ° C) 347,1 m/s ola biləcəyimizi görürük. Tutaq ki, bir tərəfli səyahət müddəti 3 ms. Qışda bu 98,55 sm, yayda isə 104,13 sm deməkdir. Bu olduqca fərqlidir! Mövsüm boyu və hətta gecə -gündüz kifayət qədər dəqiqlik əldə etmək üçün quruluşumuza bir termometr əlavə etməliyik. İstilik, rütubət və təzyiqi ölçən BME280 -i daxil etmək qərarına gəldim. SpeedOfSound funksiyasında istifadə etdiyim kodda, səsin sürətini hər üç parametr baxımından hesablayan bir formula var, baxmayaraq ki, temperatur həqiqətən də ən vacib amildir. Rütubət hələ də daha az təsir göstərir, ancaq təzyiqin təsiri əhəmiyyətsizdir. Yalnız speedOfSoundSimple -də tətbiq etdiyim temperaturu nəzərə alaraq daha sadə bir düsturdan istifadə edə bilərik.

HC-SR04-də daha bir vacib məqam var. İki versiya mövcuddur: standart versiya 5V-də, HC-SR04-P isə 3V-dən 5V-a qədər gərginlik aralığında işləyə bilər. 3 şarj edilə bilən AA batareyası təxminən 3x1.25V = 3.75V təmin etdiyi üçün P versiyasını əldə etmək vacibdir. Bəzi satıcılar səhv göndərə bilərlər. Bir satın alsanız, şəkillərə baxın. Bu səhifədə izah edildiyi kimi, iki versiya həm arxada, həm də öndə fərqli görünür. P versiyasının arxa tərəfində hər üç çip üfüqi, standart versiyada isə şaquli. Ön tərəfdə standart versiya əlavə bir gümüş komponentə malikdir.

Elektron dövrədə qurğumuz batareyanın ömrünü qorumaq üçün dərin yuxuya getdikdə ultrasəs sensorunun gücünü söndürmək üçün bir keçid olaraq istifadə edəcəyik. Əks təqdirdə, hələ də təxminən 2mA istehlak edərdi. Digər tərəfdən, BME280 yalnız hərəkətsiz olduqda təxminən 5 μ istehlak edir, buna görə də tranzistorla söndürmək lazım deyil.

Addım 2: ESP8266 lövhəsinin seçimi

ESP8266 lövhəsinin seçimi
ESP8266 lövhəsinin seçimi

Sensoru batareyada mümkün qədər uzun müddət işlətmək üçün enerji istehlakına qənaət etməliyik. ESP8266-nın Wifi, sensorumuzu buluda bağlamaq üçün çox əlverişli bir yol təqdim etsə də, eyni zamanda çox enerji tələb edir. Əməliyyat zamanı ESP8266 təxminən 80mA istehlak edir. Beləliklə, 2600 mAh həcmli batareyalarla cihazımız boşalmadan ən çox 32 saat işləyə bilərik. Təcrübədə, daha az olacaq, çünki gərginlik çox aşağı düşməzdən əvvəl tam 2600 mAh tutumundan istifadə edə bilməyəcəyik.

Xoşbəxtlikdən ESP8266, demək olar ki, hər şeyin söndüyü bir dərin yuxu rejiminə malikdir. ESP8266 -nı tez -tez dərin yuxuya qoymaq və tez -tez oyatmaq və Wifi üzərindən məlumatları ThingSpeak -a göndərmək üçün plan budur. Bu səhifəyə görə maksimum dərin yuxu müddəti təxminən 71 dəqiqə idi, lakin ESP8266 Arduino core 2.4.1-dən bəri təxminən 3.5 saata qədər artdı. Kodumda bir saatlıq məskunlaşdım.

Əvvəlcə rahat NodeMCU inkişaf etdirmə lövhəsini sınadım, amma bummer, dərin yuxuda hələ də təxminən 9 mA istehlak etdi ki, bu da oyanma aralıqlarını nəzərə almadan bizə ən çox 12 gün təmiz dərin yuxu verir. Əhəmiyyətli bir günahkar, batareyanı birbaşa 3.3V pinə bağlayaraq atlamağa çalışsanız da güc istifadə edən AMS1117 gərginlik tənzimləyicisidir. Bu səhifə, gərginlik tənzimləyicisini və USB UART -ı necə çıxarmaq lazım olduğunu izah edir. Ancaq lövhəmi məhv etmədən bunu bacarmadım. Üstəlik, USB UART -ı çıxardıqdan sonra nəyin səhv olduğunu anlamaq üçün artıq ESP8266 -ya qoşula bilməzsiniz.

ESP8266 inkişaf lövhələrinin çoxu israfçı AMS1117 gərginlik tənzimləyicisini istifadə edir. İstisnalardan biri daha qənaətli ME6211 ilə gələn WEMOS D1 mini (soldakı şəkil). Həqiqətən də, WEMOS D1 mini -nin dərin yuxuda daha çox buna bənzəyən təxminən 150 μA istifadə etdiyini gördüm. Çoxu, ehtimal ki, USB UART -dan qaynaqlanır. Bu lövhə ilə sancaqlar üçün başlıqları özünüz lehimləməlisiniz.

Bununla birlikdə, USB UART və ya gərginlik tənzimləyicisi olmayan ESP-12F (sağdakı şəkil) kimi çılpaq bir lövhə istifadə edərək daha yaxşı işlər görə bilərik. 3.3V pinini qidalandırarkən, yalnız 22 μA dərin yuxu istehlakını tapdım!

Ancaq ESP-12F-ni işə salmaq üçün onu bir az lehimləmə və bir az daha proqramlaşdırmağa hazırlayın! Bundan əlavə, batareyalar 3V ilə 3.6V arasında olan doğru gərginliyi birbaşa vermədikcə, öz gərginlik tənzimləyicimizi təmin etməliyik. Praktikada, tam boşalma dövrü ərzində bu diapazonda bir gərginlik verən bir batareya sistemi tapmaq çətindir. Unutmayın ki, nəzəri olaraq 3V qədər aşağı bir gərginliklə işləyə bilən, lakin gərginlik daha yüksək olduqda daha dəqiq işləyən HC-SR04-P sensorunu da gücləndirməliyik. Bundan əlavə, diaqramda HC-SR04-P kiçik bir əlavə gərginlik düşməsinə səbəb olan bir tranzistor tərəfindən açılır. MCP1700-3302E gərginlik tənzimləyicisindən istifadə edəcəyik. Maksimum giriş gərginliyi 6V -dir, buna görə 4 AA -a qədər batareya ilə qidalanırıq. 3 AA batareyadan istifadə etmək qərarına gəldim.

Addım 3: ThingSpeak Kanalı yaradın

Verilərimizi saxlamaq üçün IoT bulud xidməti ThingSpeak -dan istifadə edəcəyik. Https://thingspeak.com/ saytına daxil olun və hesab yaradın. Daxil olduqdan sonra kanal yaratmaq üçün Yeni Kanal düyməsini basın. Kanal Ayarlarında ad və təsviri istədiyiniz kimi doldurun. Sonra kanal sahələrini adlandırırıq və sağdakı onay qutularını tıklayaraq aktivləşdiririk. Kodumu dəyişdirmədən istifadə etsəniz, sahələr aşağıdakı kimidir:

  • Sahə 1: suyun səviyyəsi (sm)
  • Sahə 2: batareya səviyyəsi (V)
  • Sahə 3: temperatur (° C)
  • Sahə 4: rütubət (%)
  • Sahə 5: təzyiq (Pa)

Gələcək arayış üçün API ID düymələri menyusunda tapa biləcəyiniz Kanal ID, Read API Açarı və API Açarını yazın.

Bir tətbiqdən istifadə edərək smartfonunuzdakı ThingSpeak məlumatlarını oxuya bilərsiniz. Android telefonumda IoT ThingSpeak Monitor vidjetindən istifadə edirəm. Kanal ID və Oxu API Açarı ilə konfiqurasiya etməlisiniz.

Addım 4: ESP-12F-ni necə proqramlaşdırmaq olar

ESP-12F-ni necə proqramlaşdırmaq olar
ESP-12F-ni necə proqramlaşdırmaq olar
ESP-12F-ni necə proqramlaşdırmaq olar
ESP-12F-ni necə proqramlaşdırmaq olar

Batareyanın ömrünə qənaət etmək üçün çılpaq bir lövhəyə ehtiyacımız var, amma mənfi tərəfi, quraşdırılmış USB UART ilə inkişaf etdirmə lövhəsindən daha çətin olduğunu proqramlaşdırmaqdır.

Arduino IDE -dən istifadə edəcəyik. Necə istifadə ediləcəyini izah edən digər təlimatlar var, buna görə burada qısa olacağam. ESP8266 üçün hazırlamaq üçün addımlar:

  • Arduino IDE proqramını yükləyin.
  • ESP8266 lövhəsi üçün dəstəyi quraşdırın. Fayl - Tercihlər - Ayarlar menyusunda Əlavə İdarəçi URL -lərinə https://arduino.esp8266.com/stable/package_esp8266com_index.json URL əlavə edin. Menyuda Alətlər - İdarə Heyəti - İdarəetmə Paneli meneceri esp8266 icması tərəfindən esp8266 quraşdırılır.
  • Kart olaraq seçin: Ümumi ESP8266 Modulu.

ESP-12F-ni idarə etmək üçün ümumiyyətlə onlayn mağazalarda satılan bir adapter boşqabından istifadə etdim. Çipi lövhəyə lehimlədim və sonra başlıqları lövhəyə lehimlədim. Yalnız bundan sonra adapter plitəsinin standart çörək taxtası üçün çox geniş olduğunu kəşf etdim! Əlaqələr qurmaq üçün yan tərəfdə heç bir pulsuz pin qoymur.

Getdiyim həll, U şəkilli tellərdən istifadə etmək və ESP8266-nı çörək taxtasına adapter plakası ilə bağlamadan əvvəl sağdakı şəkildəki kimi bağlamaqdır. Beləliklə, GND və VCC çörək taxtasının raylarına bağlanır və qalan sancaqlar çörək taxtasının daha aşağı hissəsində yerləşdirilir. Dezavantajı, tam dövrəni bitirdikdən sonra çörək taxtanız tellərlə dolu olacağıdır. Başqa bir həll, bu videoda göstərildiyi kimi iki çörək taxtasını bir araya gətirməkdir.

Bundan sonra, ESP-12F-ni kompüterinizin USB portu ilə proqramlaşdırmaq üçün USB-dən serial adapterə ehtiyacımız var. FT232RL FTDI proqramçısından istifadə etdim. Proqramçıda 3.3V və ya 5V arasında seçim etmək üçün bir tullanan var. ESP8266 üçün 3.3V -ə qoyulmalıdır. Bunu unutmayın, 5V çipinizi qızardacaq! Sürücülərin quraşdırılması avtomatik olmalıdır, amma proqramlaşdırma işləmirsə, onları bu səhifədən əl ilə quraşdırmağa cəhd edə bilərsiniz.

ESP8266, flaşa yeni proqram təminatı yükləmək üçün proqramlaşdırma rejiminə və cari firmware proqramını flaş yaddaşdan idarə etmək üçün flaş rejiminə malikdir. Bu rejimlər arasında seçim etmək üçün bəzi pinlər açılış zamanı müəyyən bir dəyər almalıdır:

  • Proqramlaşdırma: GPIO0: aşağı, CH-PD: yüksək, GPIO2: yüksək, GPIO15: aşağı
  • Flaş: GPIO0: yüksək, CH-PD: yüksək, GPIO2: yüksək, GPIO15: aşağı

Adapter lövhəsi artıq CH-PD-nin çəkilməsi və 10K rezistorlu GPIO15-in aşağı çəkilməsi ilə məşğul olur.

Beləliklə, elektron dövrəmizdə hələ də GPIO2-ni çəkməliyik. EST8266 -nı proqramlaşdırmaya və ya flaş rejiminə salmaq üçün bir keçid və RST -ni yerə bağlayaraq onu sıfırlamaq üçün bir keçid də təqdim edirik. Bundan əlavə, FT232RL-in TX pinini ESP8266-nın RXD pininə və əksinə bağladığınızdan əmin olun.

Proqramlaşdırma ardıcıllığı belədir:

  • Proqramlaşdırma düyməsini bağlayaraq GPIO2 -ni aşağı səviyyəyə qoyun.
  • Sıfırlama açarını bağlayaraq yenidən açaraq ESP8266 sıfırlayın. ESP8266 indi proqramlaşdırma rejimində çəkilir.
  • Proqramlaşdırma açarını açaraq GPIO2 -ni yenidən yüksək səviyyəyə qoyun.
  • Yeni firmware proqramını Arduino IDE -dən yükləyin.
  • Sıfırlama açarını bağlayaraq yenidən açaraq ESP8266 sıfırlayın. ESP8266 indi flaş rejimində çəkilir və yeni firmware ilə işləyir.

İndi məşhur Blink eskizini yükləyərək proqramlaşdırmanın işlədiyini yoxlaya bilərsiniz.

Bütün bunlar ən azından işləyirsə, GND, VCC, GPIO2, RST, TXD və RXD pinləri düzgün lehimlənmiş və bağlanmışdır. Nə rahatlıq! Ancaq davam etməzdən əvvəl digər pinləri də multimetrinizlə sınamağı məsləhət görürəm. Pimlərdən biri ilə özümdə problem var idi. Bütün sancaqları 5 saniyə bir -bir yüksəklərə qoyan və sonra ESP8266 -nı 20 saniyə dərin yuxuya qoyan bu eskizdən istifadə edə bilərsiniz. ESP8266 -nın dərin yuxudan sonra oyanmasını təmin etmək üçün RST -ni oyanış siqnalı verən GPIO16 -ya bağlamalısınız.

Addım 5: Eskizin yüklənməsi

Kodu GitHub-da təqdim etdim, bu yalnız bir faylıdır: Level-Sensor-Deepsleep.ino. Sadəcə yükləyin və Arduino IDE -də açın. Və ya Fayl - Yeni seçə və kodu kopyalayıb yapışdıra bilərsiniz.

Faylın əvvəlində doldurmalı olduğunuz bəzi məlumatlar var: istifadə ediləcək WLAN -ın adı və şifrəsi, statik IP detalları və ThingSpeak Kanalının Kanal ID və Yazı API Açarı.

Bu blogdakı ipucundan sonra, yönlendiricinin dinamik olaraq bir IP təyin etdiyi DHCP əvəzinə, ESP8266 -nın IP ünvanını özümüz təyin etdiyimiz statik IP istifadə edirik. Bunun daha sürətli olduğu ortaya çıxır, buna görə aktiv vaxta və beləliklə batareya enerjisinə qənaət edirik. Beləliklə, marşrutlaşdırıcının IP (şluz), alt şəbəkə maskası və DNS serverinin mövcud statik IP ünvanını təqdim etməliyik. Nə dolduracağınızdan əmin deyilsinizsə, marşrutlaşdırıcınızın təlimatında statik bir IP qurmaq haqqında oxuyun. Routerinizə Wifi vasitəsi ilə qoşulmuş bir Windows kompüterində bir qabığa başlayın (Windows düyməsi-r, cmd) və ipconfig /all daxil edin. Lazım olan məlumatların çoxunu Wi-Fi bölməsi altında tapa bilərsiniz.

Kodu araşdırarkən görürsünüz ki, digər Arduino kodlarından fərqli olaraq əksər hərəkətlər loop funksiyası yerinə quraşdırma funksiyasında olur. Bunun səbəbi, ESP8266 qurma funksiyasını bitirdikdən sonra dərin yuxuya getməsidir (OTA rejimində başlamadıqca). Uyandıqdan sonra, təzə bir yenidən başlatma kimidir və yenidən qurulur.

İşdə kodun əsas xüsusiyyətləri:

  • Uyandıqdan sonra kod switchPin (standart GPIO15) səviyyəsini yüksək olaraq təyin edir. Bu, HC-SR04-P sensorunu işə salan tranzistoru işə salır. Dərin yuxuya getməzdən əvvəl, pimi aşağıya endirir, tranzistoru və HC-SR04-P-ni söndürür, daha qiymətli batareya enerjisi istehlak etmədiyinə əmin olur.
  • ModePIN (standart GPIO14) aşağıdırsa, kod ölçü rejimi əvəzinə OTA rejiminə keçir. OTA (havadan yeniləmə) ilə, proqram təminatını serial portu əvəzinə Wifi üzərindən yeniləyə bilərik. Bizim vəziyyətimizdə bu olduqca əlverişlidir, çünki əlavə yeniləmələr üçün artıq serialı USB adapterə bağlamaq məcburiyyətində deyilik. Yalnız GPIO14 -ü aşağı səviyyəyə qoyun (elektron dövrədəki OTA açarı ilə), ESP8266 -ı sıfırlayın (sıfırlama açarı ilə) və yükləmək üçün Arduino IDE -də mövcud olmalıdır.
  • Analog PİN -də (A0) batareyanın gərginliyini ölçürük. Batareyaları həddindən artıq boşalmadan qorumaq üçün gərginlik çox aşağı olduqda, minVoltajın altındadırsa, bu daimi dərin yuxu kimi cihazımızı söndürməyə imkan verir. Analog ölçmə çox dəqiq deyil, numMeasuresBattery (standart 10) ölçmə aparırıq və dəqiqliyi artırmaq üçün ortalamanı götürürük.
  • HC-SR04-P sensorunun məsafə ölçülməsi məsafə Ölçmə funksiyasında aparılır. Dəqiqliyi artırmaq üçün ölçü numMeasuresDistance (default 3) dəfə təkrarlanır.
  • BME280 sensoru ilə temperatur, rütubət və təzyiq ölçüsündən speedOfSound hesablamaq üçün bir funksiya var. BME280 -in standart I2C ünvanı 0x76 -dır, amma işləmirsə onu 0x77 -ə dəyişmək lazım ola bilər: bool bme280Started = bme280.begin (0x77);
  • BME280 -ni məcburi rejimdə istifadə edəcəyik, yəni gücə qənaət etmək üçün bir ölçmə aparıb yuxuya gedir.
  • Əgər tutumu (l), fullDistance (sm) və sahəni (m2) təyin etsəniz, kod su anbarının qalan həcmini məsafə ölçməsindən hesablayır: ikiqat qalanVolume = tutum+10.0*(fullDistance-distance)*sahəsi; və bunu ThingSpeak -a yükləyin. Varsayılan dəyərləri saxlasanız, su səthinə olan məsafəni sm olaraq yükləyir.

Addım 6: Elektron Dövrün Qurulması

Elektron dövrənin qurulması
Elektron dövrənin qurulması

Yuxarıda elektron dövrənin diaqramı verilmişdir. Bir çörək taxtası üçün olduqca böyükdür, xüsusən də böyük ölçülü adapter lövhəsi və U şəkilli telləri olan hiylə ilə. Bir nöqtədə, əlbəttə ki, iki çörək taxtasını birləşdirmək alternativindən istifadə etməyimi arzulayırdım, amma sonunda bacardım.

Dövrün vacib xüsusiyyətlərini təqdim edirik:

  • Bir rol oynayan iki gərginlik var: batareyadan giriş gərginliyi (təxminən 3.75V) və ESP8266 və BME280 -i qidalandıran 3.3V. 3.3V -nü kəsmə lövhəsinin sol rayına, 3.75V -u isə sağ relsə qoydum. Gərginlik tənzimləyicisi 3.75V -dan 3.3V -ə çevirir. Məlumat cədvəlindəki təlimatları izləyərək sabitliyi artırmaq üçün gərginlik tənzimləyicisinin giriş və çıxışına 1 μF kondansatör əlavə etdim.
  • ESP8266 -nın GPIO15 tranzistor qapısına bağlıdır. Bu, ESP8266 -nın tranzistoru və buna görə də ultrasəs sensorunu aktiv olduqda açmasına və dərin yuxuda gedərkən onu söndürməsinə imkan verir.
  • GPIO14, bir açara, OTA açarına bağlıdır. Anahtarı bağlamaq, sonrakı OTA rejimində başlamaq istədiyimiz ESP8266-ya bir siqnal verir, yəni RESET düyməsini basdıqdan (bağladıqdan və açdıqdan) sonra havada yeni bir eskiz yüklədikdən sonra.
  • RST və GPIO2 pinləri proqramlaşdırma diaqramında olduğu kimi bağlanır. RST pin, ESP8266 -nın dərin yuxudan oyanmasına imkan vermək üçün GPIO16 -ya da qoşulub.
  • Ultrasonik sensorun TRIG və ECHO sancaqları GPIO12 və GPIO13 -ə, BME280 -in SCL və SDA sancaqları GPIO5 və GPIO4 -ə qoşulur.
  • Nəhayət, analog pin ADC, giriş gərginliyinə bağlı bir gərginlik bölücü vasitəsi ilədir. Bu, batareyaların doldurulmasını yoxlamaq üçün giriş gərginliyini ölçməyə imkan verir. ADC pin 0V ilə 1V arasındakı gərginliyi ölçə bilər. Gərginlik bölücü üçün 100K və 470K rezistorlar seçdik. Bu o deməkdir ki, ADC pinindəki gərginlik V_ADC = 100K/(100K+470K) V_in tərəfindən verilir. V_ADC = 1V alaraq V_in = 570/100 V_ADC = 5.7V -ə qədər giriş gərginliklərini ölçə biləcəyimiz deməkdir. Güc istehlakına gəldikdə, gərginlik bölücüdən bir az cərəyan var. Batareyalardan V_in = 3.75V ilə I_leak = 3.75V/570K = 6.6 μA tapırıq.

Dövrə batareyalardan işləyərkən belə, USB -ni serial adapterə bağlamaq mümkündür. Yalnız adapterin VCC -ni çıxardığınızdan və GND, RX və TX -ni proqramlaşdırma diaqramında olduğu kimi bağladığınızdan əmin olun. Bu, hata ayıklama mesajlarını oxumaq və hər şeyin gözlənildiyi kimi işlədiyinə əmin olmaq üçün Arduino IDE -də Serial Monitoru açmağa imkan verir.

Tam dövrə üçün, batareyalardan işləyərkən dərin yuxuda 50 μA cərəyan ölçdüm. Bura ESP8266, BME280, ultrasəs sensoru (tranzistor tərəfindən söndürülmüş) və gərginlik bölücüdən sızma və bəlkə də digər sızmalar daxildir. Buna görə də çox pis deyil!

Ümumi aktiv vaxtın təxminən 7 saniyə olduğunu gördüm, onlardan 4.25 saniyəsi Wifi -yə qoşulmaq üçün və 1.25 saniyə məlumatı ThingSpeak -ə göndərmək üçün. Beləliklə, 80mA aktiv bir cərəyanla aktiv vaxt üçün saatda 160 μAh tapdım. Dərin yuxu vəziyyətinə saatda 50 μAh əlavə etməklə saatda 210 μAh gücünə sahibik. Bu o deməkdir ki, 2600 mAh batareya nəzəri olaraq 12400 saat = 515 gün davam edir. Batareyaların tam tutumundan istifadə edə bilsək (bu belə deyil) və indiki ölçmələrimdə tapmadığım heç bir sızma olmadıqda bu mütləq maksimumdur. Buna görə də bunun gerçəkləşib -dağılmadığını hələ görməmişəm.

Addım 7: Sensoru bitirmək

Sensoru bitirmək
Sensoru bitirmək
Sensoru bitirmək
Sensoru bitirmək
Sensoru bitirmək
Sensoru bitirmək

Sensoru əvvəllər şorba olan plastik 1 litrlik bir qaba qoydum. Aşağıda HC-SR04-P sensorunun "gözlərinə" uyğun iki deşik düzəltdim. Deliklərdən başqa, konteyner suya davamlı olmalıdır. Daha sonra yağış suyunun drenaj borusu üçün istifadə olunan dairəvi halqa ilə su çəninin divarına yapışdırılır.

Layihə ilə əylənin!

Tövsiyə: