Мазмуну:

Батарея менен иштеген суу коллекторунун деңгээл сенсору: 7 кадам (сүрөттөр менен)
Батарея менен иштеген суу коллекторунун деңгээл сенсору: 7 кадам (сүрөттөр менен)

Video: Батарея менен иштеген суу коллекторунун деңгээл сенсору: 7 кадам (сүрөттөр менен)

Video: Батарея менен иштеген суу коллекторунун деңгээл сенсору: 7 кадам (сүрөттөр менен)
Video: КҮН БАТАРЕЯЛАРЫ || Кантип ИШТЕЙТ || БААСЫ 2024, Июль
Anonim
Батарея менен иштеген суу коллекторунун деңгээл сенсору
Батарея менен иштеген суу коллекторунун деңгээл сенсору
Батарея менен иштеген суу коллекторунун деңгээл сенсору
Батарея менен иштеген суу коллекторунун деңгээл сенсору

Үйүбүздүн үстүндө жамгырдан төшөлгөн суу сактагыч бар жана дааратканага, кир жуугуч машина менен бакчадагы сугаруучу өсүмдүктөргө колдонулат. Акыркы үч жылдын ичинде жай абдан кургак болгондуктан, биз резервуардагы суунун деңгээлине көз салып турдук. Азырынча жыгач таякчаны колдонуп, аны бакка салып, деңгээлин белгиледик. Бирок, албетте, муну жакшыртууга мүмкүнчүлүк болушу керек!

Бул жерде бул долбоор ишке ашат. Идея - танктын үстүнө УЗИ аралык аралык сенсорун тиркөө. Бул сенсор үн толкундарын чыгаруучу сонар болуп иштейт, андан кийин алар суу бетине чагылдырылат. Толкундар кайтып келгенден жана үндүн ылдамдыгынан баштап, сиз суунун бетине чейинки аралыкты эсептеп, резервуар канчалык толгонун аныктай аласыз.

Менде резервуарга жакын электр тармагы жок болгондуктан, толук шайман батареяларда иштеши керек. Бул мен бардык бөлүктөрдүн энергия керектөөсү жөнүндө аң -сезимдүү болушум керектигин билдирет. Дайындарды кайра жөнөтүү үчүн мен ESP8266 микрочипинин камтылган Wifi'сын колдонууну чечтим. Wi-Fi энергияга абдан муктаж, бирок анын радио байланыштын башка түрүнөн артыкчылыгы бар: реленин милдетин аткаруучу башка түзмөктү курбай эле үйүңүздүн зымсыз роутерине түз туташа аласыз.

Электр кубатын үнөмдөө үчүн, мен ESP8266ди көбүнчө терең уйкуга коём жана саат сайын өлчөө жүргүзөм. Суунун деңгээлине көз салуу үчүн бул жетиштүү. Маалыматтар ThingSpeakке жөнөтүлөт жана андан кийин смартфондо тиркеме аркылуу окулат.

Дагы бир детал! Аралыкты өлчөө үчүн зарыл болгон үндүн ылдамдыгы температурага жана бир аз нымдуулукка көз каранды. Мезгил боюнча сырттан так өлчөө үчүн биз температураны, нымдуулукту жана басымды өлчөгөн BME280 сенсоруна ыргытабыз. Бонус катары бул биздин суунун деңгээлинин сенсорунан мини метеостанцияны түзөт.

Бөлүктөр:

  • 1x ESP8266 ESP-12F.
  • 1x ESP-12F адаптер плитасы.
  • 1x FT232RL FTDI: USBден сериялык адаптер.
  • 1x HC-SR04-P: УЗИ аралыкты өлчөө модулу. P маанилүү экенин эске алыңыз, анткени бул 3V минималдуу иштөө чыңалуусу бар версия.
  • 1x BME280 3.3V версиясы: температура, басым жана нымдуулук сенсору.
  • 1x IRL2203N: n-канал MOSFET транзистору.
  • 1x MCP1700-3302E 3.3V версиясы: чыңалуу жөндөгүчү.
  • 3x заряддалуучу АА батареясы, мис. 2600mAh.
  • 3 батарея үчүн 1х батарея кармагыч.
  • 1x нан.
  • Резисторлор: 1x 470K, 1x 100K, 4x 10K.
  • Конденсаторлор: 2x керамикалык 1uF.
  • 3x которгуч которгуч.
  • U формасындагы нан плитасынын зымдары.
  • Өткөргүч зымдар.
  • Пластикалык шорпо идиш 1л.
  • Контейнер үчүн тиркеме шакеги.

Мен кодду GitHubда жеткиликтүү кылдым.

1 -кадам: Ultrasonic Distance Sensor менен таанышуу

Ultrasonic Distance Sensor менен таанышуу
Ultrasonic Distance Sensor менен таанышуу
Ultrasonic Distance Sensor менен таанышуу
Ultrasonic Distance Sensor менен таанышуу

Биз суунун бетине чейинки аралыкты HC-SR04-P УЗИ сенсору менен өлчөйбүз. Жарганат сыяктуу эле, бул сенсор сонарды колдонот: ал адамдын кулагы үчүн өтө бийик жыштыкта үн импульсун жиберет, демек УЗИ, жана анын бир нерсеге тийгенин, чагылышын жана кайра келишин күтөт. Бул аралыкты жаңырыкты жана үндүн ылдамдыгын кабыл алуу убактысынан эсептесе болот.

Конкреттүү түрдө, эгерде Trig пини эң аз дегенде 10 μs бийик тартылса, сенсор 40 Гц жыштыгы менен 8 импульстун жарылуусун жөнөтөт. Жооп Эхо пининде УЗИ импульсун жөнөтүү менен алуунун ортосундагы убакытка барабар болгон импульс түрүндө алынат. Андан кийин биз 2ге бөлүшүбүз керек, анткени УЗИ импульсу алдыга жана артка кетет жана бизге бир тараптуу саякат убактысы керек жана үн ылдамдыгына көбөйөт, бул болжол менен 340 м/с.

Бирок бир аз күтө туруңуз! Чынында, үндүн ылдамдыгы температурага жана бир аз нымдуулукка көз каранды. Мен чукулап жатамбы же бул тиешелүүбү? Эсептөө куралын колдонуп, биз кыш мезгилинде (-5 ° C) 328,5 м/с, ал эми жайында (25 ° C алуу) 347,1 м/с ээ боло аларыбызды көрөбүз. Ошентип, биз 3 мс бир тараптуу саякат убактысын табабыз дейли. Кышында бул 98,55 см, жайында 104,13 см дегенди билдирет. Бул такыр башкача! Ошентип, бардык мезгилдерде, ал тургай күнү -түнү жетиштүү тактыкты алуу үчүн, биздин орнотууга термометрди кошуу керек. Мен температураны, нымдуулукту жана басымды өлчөгөн BME280ди киргизүүнү чечтим. Мен SpeedOfSound функциясында колдонгон коддо үн ылдамдыгын бардык үч параметр боюнча эсептейт, бирок температура чындыгында эң маанилүү фактор. Нымдуулук азыраак таасирин тийгизет, бирок басымдын таасири анча чоң эмес. Биз speedOfSoundSimpleде киргизген температураны гана эске алуу менен жөнөкөй формуланы колдонсок болот.

HC-SR04 боюнча дагы бир маанилүү жагдай бар. Жеткиликтүү эки версия бар: стандарттык версия 5Вде иштейт, ал эми HC-SR04-P 3Vдан 5Vга чейинки чыңалууда иштей алат. 3 кайра заряддалуучу АА батареялары 3x1.25V = 3.75V тегерегинде камсыз кылгандыктан, P-версиясын алуу маанилүү. Кээ бир сатуучулар туура эмес жөнөтүшү мүмкүн. Андыктан, эгер сиз аны сатып алсаңыз, сүрөттөрдү карап көрүңүз. Бул баракта түшүндүрүлгөндөй эки версия арткы жана алдыңкы жагынан айырмаланат. P-версиясынын арт жагында үч чип тең горизонталдуу, ал эми стандарттык версияда бирөө тик. Алдыңкы жагында стандарттык версия кошумча күмүш компонентке ээ.

Электрондук схемада биз транзисторду батарейканын өмүрүн үнөмдөө үчүн терең уйкуга кеткенде УЗИ сенсорунун кубатын өчүрүү үчүн колдонобуз. Болбосо, ал дагы эле 2mA керектейт. Башка жагынан алганда, BME280 активдүү эмес болгондо болжол менен 5 мкм керектейт, андыктан аны транзистор менен өчүрүүнүн кажети жок.

2 -кадам: ESP8266 тактасын тандоо

ESP8266 тактасын тандоо
ESP8266 тактасын тандоо

Батареяда сенсорду мүмкүн болушунча көбүрөөк иштетүү үчүн, биз энергия керектөөнү үнөмдөшүбүз керек. ESP8266 Wifi сенсорубузду булутка туташтыруунун эң ыңгайлуу жолун камсыз кылганы менен, ал дагы энергияга абдан муктаж. Иштетүүдө ESP8266 болжол менен 80мА керектейт. Ошентип, 2600 мАч батарейкалар менен, биз бош турганга чейин эң көп дегенде 32 саат иштете алабыз. Иш жүзүндө, бул азыраак болот, анткени биз чыңалуу өтө төмөн деңгээлге түшмөйүнчө 2600 мАч сыйымдуулугун толук пайдалана албайбыз.

Бактыга жараша, ESP8266 дагы терең уйку режимине ээ, анда дээрлик баары өчүк. Ошентип, план ESP8266ны көбүнчө терең уйкуга калтыруу жана аны дайыма ойготуп, өлчөө жүргүзүү жана Wifi аркылуу маалыматты ThingSpeakке жөнөтүү. Бул баракчага ылайык, терең уйкунун максималдуу убактысы болжол менен 71 мүнөт болчу, бирок ESP8266 Arduino core 2.4.1ден бери ал болжол менен 3,5 саатка чейин көбөйдү. Менин кодумда мен бир саатка жайгаштым.

Мен биринчи жолу ыңгайлуу NodeMCU иштеп чыгуу тактасын сынап көрдүм, бирок бамер, терең уйкуда дагы эле 9 мА керектелген, бул бизге ойгонуу аралыктарын эске албастан 12 күн таза терең уйку берет. Маанилүү күнөөкөр AMS1117 чыңалуу жөндөгүчү болуп саналат, ал батареяны түз 3.3V пинге туташтырып, аны айланып өтүүгө аракет кылсаңыз дагы, кубатты колдонот. Бул барак чыңалуу жөндөгүчүн жана USB UARTти кантип алып салуу керектигин түшүндүрөт. Бирок, мен тактайымды талкалабай туруп, муну кыла алган жокмун. Мындан тышкары, USB UARTти алып салгандан кийин, эмне болгонун билүү үчүн ESP8266га туташа албайсыз.

Көпчүлүк ESP8266 өнүктүрүү такталары ысырапкорчулук AMS1117 чыңалуу жөндөгүчүн колдонот окшойт. Бир гана өзгөчө WEMOS D1 мини (сол жактагы сүрөт), ал үнөмдүү ME6211 менен келет. Чынында эле, мен WEMOS D1 мини ага окшош болгон терең уйкуда болжол менен 150 мкАны колдонорун таптым. Мунун көбү USB UART аркылуу болушу мүмкүн. Бул такта менен сиз өзүңүздүн төөнөгүчтөрдүн башын ширетишиңиз керек.

Бирок, биз USB UART же чыңалуу жөндөгүчү жок ESP-12F (оң жактагы сүрөт) сыяктуу жылаңач тактайды колдонуп алда канча жакшыраак иштей алабыз. 3.3V төөнөгүчтү тамактандыруу Мен терең уйку керектөөнү 22 мкА гана таптым!

Бирок ESP-12Fди иштетүү үчүн, аны бир аз ширетүүгө даярдаңыз жана аны программалоодо бир аз кыйынчылыктар болот! Андан тышкары, батарейкалар 3V менен 3.6V ортосундагы туура чыңалууну түз жеткирбесе, биз өзүбүздүн чыңалуу жөндөгүчүбүздү беришибиз керек. Иш жүзүндө, бул диапазондо чыңалуусун камсыз кылган батарейка системасын табуу кыйын болуп калат. Эсиңизде болсун, биз HC-SR04-P сенсорун кубатташыбыз керек, ал теориялык жактан 3В төмөн чыңалуу менен иштей алат, бирок чыңалуу жогору болсо, так иштейт. Мындан тышкары, менин диаграммамда HC-SR04-P кичине кошумча чыңалууга алып келген транзистор тарабынан күйгүзүлгөн. Биз MCP1700-3302E чыңалуу жөндөгүчүн колдонобуз. Максималдуу кирүү чыңалуусу 6В, андыктан биз аны 4 АА батареяга чейин азыктандырабыз. Мен 3 АА батарейканы колдонууну чечтим.

3 -кадам: ThingSpeak каналын түзүү

Биз маалыматты сактоо үчүн ThingSpeak, IoT булут кызматын колдонобуз. Https://thingspeak.com/ дарегине өтүп, каттоо эсебин түзүңүз. Сиз киргенден кийин канал түзүү үчүн Жаңы канал баскычын басыңыз. Каналдын жөндөөлөрүндө атын жана сүрөттөмөсүн каалагандай толтуруңуз. Андан кийин биз каналдын талааларына ат беребиз жана аларды оң жактагы белгилөө кутучаларын чыкылдатуу менен активдештиребиз. Эгерде сиз менин кодумду өзгөрүүсүз колдонгон болсоңуз, анда талаалар төмөнкүдөй:

  • 1 -талаа: суунун деңгээли (см)
  • 2 -талаа: батарейканын деңгээли (V)
  • 3 -талаа: температура (° C)
  • 4 -талаа: нымдуулук (%)
  • 5 -талаа: басым (Па)

Келечекте маалымат алуу үчүн, каналдын идентификаторун, API API ачкычтарын жана API баскычтарын жазыңыз, менюну API ачкычтарынан табууга болот.

Колдонмону колдонуу менен смартфонуңуздагы ThingSpeak маалыматын окуй аласыз. Менин андроид телефонумда IoT ThingSpeak Monitor виджети колдонулат. Аны Channel ID жана Read API ачкычы менен конфигурациялашыңыз керек.

4-кадам: ESP-12Fди кантип программалоо керек

ESP-12F кантип программалоо керек
ESP-12F кантип программалоо керек
ESP-12F кантип программалоо керек
ESP-12F кантип программалоо керек

Батарея өмүрүн үнөмдөө үчүн бизге жылаңач такта керек, бирок анын кемчилиги-USB UART орнотулган өнүгүү тактасына караганда программалоо бир аз кыйыныраак.

Биз Arduino IDE колдонобуз. Аны кантип колдонууну түшүндүргөн башка көрсөтмөлөр бар, ошондуктан мен бул жерде кыскача болом. Аны ESP8266га даяр кылуу кадамдары:

  • Arduino IDE жүктөп алыңыз.
  • ESP8266 тактасына колдоо орнотуңуз. Менюда Файл - Тандоолор - Орнотуулар URLди https://arduino.esp8266.com/stable/package_esp8266com_index.json Кошумча Башкаруу Жетекчисинин URL'дерине кошот. Кийинки менюда Куралдар - Такта - Такта менеджери esp8266 жамааты тарабынан esp8266 орнотот.
  • Такта катары тандоо: Жалпы ESP8266 модулу.

ESP-12F менен иштөө үчүн адатта интернет-дүкөндөрдө бар адаптер пластинасын колдондум. Мен чипти пластинкага, андан кийин баштарды пластинага коштум. Ошондо гана мен адаптер табак стандарттык нан үчүн өтө кенен экенин билдим! Бул байланыштарды түзүү үчүн тарапта бекер казыктарды калтырбайт.

Мен барган чечим-U-формасындагы зымдарды колдонуу жана ESP8266ны адаптер плитасы менен нан тактасына коюудан мурун, аларды оң жактагы сүрөттөгүдөй туташтыруу. Ошентип, GND жана VCC нан тактасынын рельсине туташат, ал эми калган казыктар нандын ары жагында берилет. Кемчилиги, сиз толук схеманы бүтүргөндөн кийин, сиздин нан тактаңыз зымдарга толуп калат. Дагы бир чечим - бул видеодо көрсөтүлгөндөй эки нан тактасын бири -бирине жабыштыруу.

Андан кийин, ESP-12Fти компьютериңиздин USB портуна программалоо үчүн бизге USBден сериялык адаптер керек. Мен FT232RL FTDI программистин колдондум. Программистте 3.3V же 5V ортосунда тандоо үчүн секиргич бар. Бул ESP8266 үчүн 3.3V коюлушу керек. Муну унутпаңыз, анткени 5В сиздин чипти куурушу мүмкүн! Драйверлерди орнотуу автоматтык түрдө болушу керек, бирок эгерде программалоо иштебесе, бул барактан аларды кол менен орнотууга аракет кылсаңыз болот.

ESP8266да флэшке жаңы камтылган программаны жүктөө үчүн программалоо режими жана флеш -эстен учурдагы программаны иштетүү үчүн флеш режими бар. Бул режимдердин бирин тандоо үчүн кээ бир казыктар жүктөө учурунда белгилүү бир мааниге ээ болушу керек:

  • Программалоо: GPIO0: төмөн, CH-PD: жогорку, GPIO2: жогорку, GPIO15: төмөн
  • Flash: GPIO0: жогорку, CH-PD: жогорку, GPIO2: жогору, GPIO15: төмөн

Адаптер плитасы буга чейин CH-PD'ди көтөрүп, GPIO15ти 10K каршылыгы менен жулуп салууга кам көрөт.

Ошентип, биздин электрондук схемада дагы эле GPIO2ди тартуу керек. Биз ошондой эле ESP8266ны программалоого же флэш режимине коюуга жана аны калыбына келтирүү үчүн которууну камсыздайбыз, ал RSTти жерге туташтыруу аркылуу жасалат. Андан ары FT232RLдин TX пинин ESP8266нын RXD пинине жана тескерисинче туташтырганыңызды текшериңиз.

Программалоо ырааттуулугу төмөнкүчө:

  • Программалоо которгучун жабуу менен GPIO2ни төмөн коюңуз.
  • ESP8266ди баштапкы абалга келтирүү которгучун жаап, кайра ачуу менен. ESP8266 азыр программалоо режиминде өтөт.
  • Программалоо которгучун ачуу менен GPIO2ди кайра бийикке коюңуз.
  • Жаңы камтылган программаны Arduino IDEден жүктөп бериңиз.
  • Кайра коюу которгучун жаап, кайра ачуу менен ESP8266ны кайра коюңуз. ESP8266 азыр флеш режиминде өтөт жана жаңы программаны иштетет.

Эми сиз программалоонун иштээрин атактуу Blink эскизин жүктөө менен текшере аласыз.

Эгерде мунун баары жок дегенде GND, VCC, GPIO2, RST, TXD жана RXD төөнөгүчтөрү туура ширетилген жана туташтырылган болсо. Кандай жеңилдик! Бирок улантуудан мурун мен мультиметр менен башка казыктарды сынап көрүүнү сунуштайт элем. Мен казыктардын бири менен өзүмдүн көйгөйүм бар болчу. Бул эскизди колдонсоңуз болот, ал бардык казыктарды биринин артынан бири 5 секундага коюп, кийин ESP8266ны 20 секундга чейин терең уйкуга коёт. ESP8266нын терең уйкудан кийин ойгонуусун иштетүү үчүн, RSTди GPIO16га туташтыруу керек, ал ойгонуу сигналын берет.

5 -кадам: Эскизди жүктөө

Мен кодду GitHubда жеткиликтүү кылдым, бул бир эле файл: Level-Sensor-Deepsleep.ino. Жөн гана жүктөп алып, Arduino IDEде ачыңыз. Же болбосо Файл - Жаңы дегенди тандай аласыз жана жөн эле кодду көчүрүп/чаптаңыз.

Файлдын башында толтурушуңуз керек болгон кээ бир маалыматтар бар: WLANдын аты жана сырсөзү, статикалык IP маалыматтары жана ThingSpeak каналынын каналынын идентификатору жана API API ачкычы.

Бул блогдогу кеңешке ылайык, роутер IPди динамикалык түрдө дайындай турган DHCPдин ордуна, биз статикалык IPди колдонобуз, анда биз ESP8266нын IP дарегин өзүбүз орнотобуз. Бул алда канча ылдамыраак болуп чыкты, андыктан активдүү убактыбызды үнөмдөйбүз жана батарея энергиясын үнөмдөйбүз. Ошентип, биз жеткиликтүү статикалык IP дарегин, ошондой эле роутердин IP дарбазасын (шлюз), субнет маскасын жана DNS серверин беришибиз керек. Эгерде сиз эмне толтурууну билбей жатсаңыз, роутериңиздин көрсөтмөсүндө статикалык IP орнотуу жөнүндө окуңуз. Wifi аркылуу роутериңизге туташкан Windows компьютеринде кабыкты баштаңыз (Windows баскычы-r, cmd) жана ipconfig /all киргизиңиз. Сиз керектүү маалыматтын көбүн Wi-Fi бөлүмүнөн таба аласыз.

Кодду карап чыгып, башка Arduino кодунан айырмаланып, көпчүлүк аракеттер цикл функциясынын ордуна орнотуу функциясында болорун көрөсүз. Себеби, ESP8266 орнотуу функциясын аяктагандан кийин терең уйкуга кетет (эгер биз OTA режиминде баштабасак). Ал ойгонгондон кийин, бул жаңы кайра иштетүү сыяктуу жана ал кайра орнотууну иштетет.

Бул жерде коддун негизги өзгөчөлүктөрү:

  • Ойгонгондон кийин код switchPinди (демейки GPIO15) жогорку деңгээлге коёт. Бул транзисторду күйгүзөт, ал HC-SR04-P сенсорун күйгүзөт. Терең уйкуга кетүүдөн мурун, пинди кайра төмөн түшүрүп, транзисторду жана HC-SR04-Pди өчүрүп, батарейканын баалуу кубатын сарптабашын камсыз кылат.
  • Эгерде modePIN (демейки GPIO14) төмөн болсо, код өлчөө режиминин ордуна OTA режимине өтөт. OTA (аба жаңыртуусу) менен биз сериялык порттун ордуна Wifi аркылуу микрофонду жаңырта алабыз. Биздин учурда бул абдан ыңгайлуу, анткени мындан ары жаңыртуулар үчүн серияны USB адаптерине туташтыруунун кажети жок. Жөн эле GPIO14'ты эң төмөнкү деңгээлге коюңуз (электрондук схемада OTA которгучу менен), ESP8266ди баштапкы абалга келтириңиз (баштапкы абалга келтирүү которгучу менен) жана жүктөө үчүн Arduino IDEде жеткиликтүү болушу керек.
  • Аналогдук PIN (A0) боюнча, биз батареянын чыңалуусун өлчөйбүз. Бул батарейкаларды ашыкча заряддан коргоп, чыңалуу өтө төмөндөп кетсе, минВольттон төмөн болсо, аппаратты өчүрүп коюуга мүмкүндүк берет. Аналогдук өлчөө өтө так эмес, биз numMeasuresBattery (демейки 10) чараларды кылабыз жана тактыкты жакшыртуу үчүн орточо көрсөткүчтү алабыз.
  • HC-SR04-P сенсорунун аралыкты өлчөө функциясы расстояние өлчөөдө жүргүзүлөт. Тактыкты жакшыртуу үчүн өлчөө numMeasuresDistance (демейки 3) жолу кайталанат.
  • BME280 сенсорунун жардамы менен температуранын, нымдуулуктун жана басымдын ченеминен speedOfSound эсептөө үчүн бир функция бар. BME280дин демейки I2C дареги 0x76, бирок ал иштебесе, аны 0x77ге алмаштырышыңыз керек болот: bool bme280Started = bme280.begin (0x77);
  • Биз BME280ди мажбурлоо режиминде колдонобуз, бул бир өлчөөнү талап кылат жана электр энергиясын үнөмдөө үчүн кайра уктайт.
  • Эгерде сиз кубаттуулукту (l), fullDistance (см) жана аянтты (м2) койсоңуз, код суу сактагычынын калган көлөмүн аралыкты өлчөөдөн эсептеп чыгарат: double kalanVolume = сыйымдуулугу+10.0*(fullDistance-dististance)*аянты; жана муну ThingSpeakке жүктөңүз. Эгерде сиз демейки баалуулуктарды сактасаңыз, ал суунун бетине чейинки аралыкты см менен жүктөйт.

6 -кадам: Электрондук схеманы куруу

Электрондук схеманы куруу
Электрондук схеманы куруу

Жогоруда электрондук схеманын диаграммасы. Бул бир нан үчүн абдан чоң, айрыкча чоң өлчөмдөгү адаптер плитасы жана U түрүндөгү зымдар менен амал. Кээ бир учурда мен, албетте, эки нан тактасын туташтыруунун альтернативасын колдонгум келет, бирок аягында жетиштим.

Бул жерде схеманын маанилүү өзгөчөлүктөрү бар:

  • Роль ойногон эки чыңалуу бар: батареянын кирүү чыңалуусу (3,75В тегерегинде) жана ESP8266 менен BME280ди азыктандыруучу 3,3В. Мен 3.3Вну сол плитанын сол темир жолуна жана 3.75V оң рельске койдум. Чыңалуу жөнгө салуучу 3.75Вту 3.3Vга айландырат. Маалыматтар баракчасындагы көрсөтмөлөрдү аткарып, туруктуулукту жогорулатуу үчүн чыңалуу жөндөгүчүнүн киришине жана чыгышына 1 μF конденсатор коштум.
  • ESP8266 GPIO15 транзистордун дарбазасына туташкан. Бул ESP8266га активдүү болгондо транзисторду, ошону менен УЗИ сенсорун күйгүзүүгө жана терең уйкуда жатканда өчүрүүгө мүмкүндүк берет.
  • GPIO14 которгучка, OTA которгучка туташкан. Коммутатордун жабылышы ESP8266 сигналын берет, биз кийинки OTA режиминде баштоону каалайбыз, б.а. RESET которгучун баскандан кийин (жабуу жана ачуу), жана жаңы эскизди абага жүктөө.
  • RST жана GPIO2 казыктары программалоо диаграммасындагыдай туташкан. RST пин азыр ESP8266га терең уйкудан ойгонууга мүмкүнчүлүк берүү үчүн GPIO16га да туташкан.
  • УЗИ сенсорунун TRIG жана ECHO казыктары GPIO12 жана GPIO13 менен туташат, ал эми BME280дин SCL жана SDA казыктары GPIO5 жана GPIO4 менен туташат.
  • Акырында, ADC аналогдук пин кирүү чыңалуусуна туташкан чыңалуу бөлүштүргүч аркылуу болот. Бул батареялардын зарядын текшерүү үчүн кирүү чыңалуусун өлчөөгө мүмкүндүк берет. ADC пини 0V менен 1V ортосундагы чыңалууларды өлчөй алат. Чыңалуу бөлүштүргүч үчүн биз 100K жана 470K резисторлорун тандап алдык. Бул ADC пиндеги чыңалуу V_ADC = 100K/(100K+470K) V_in тарабынан берилгенин билдирет. V_ADC = 1V алуу бул V_in = 570/100 V_ADC = 5.7V чейин киргизүү чыңалуусун өлчөй алабыз дегенди билдирет. Электр энергиясын керектөөгө келсек, чыңалуу бөлүштүргүч аркылуу бир аз ток агып жатат. Батареялардан V_in = 3.75V менен I_leak = 3.75V/570K = 6.6 мкА табабыз.

Район батареялардан иштеп жатса дагы, USBди сериялык адаптерге туташтырууга болот. Жөн гана адаптердин VCC розеткасынан ажыратып, GND, RX жана TX программалык схемасындагыдай туташтырыңыз. Бул Arduino IDEдеги Сериялык Мониторду ачып, мүчүлүштүктөрдү оңдоо билдирүүлөрүн окуп, баары күтүлгөндөй иштеп жатканына ынанууга мүмкүндүк берет.

Толук схема үчүн мен батарейкадан иштеп жатканда терең уйкуда 50 мкА учурдагы керектөөнү өлчөдүм. Буга ESP8266, BME280, УЗИ сенсору (транзистор тарабынан өчүрүлгөн) жана чыңалуу бөлүштүргүч аркылуу агуу жана башка агып кетүүлөр кирет. Ошентип, бул өтө жаман эмес!

Мен жалпы активдүү убакыт болжол менен 7 секундду, анын ичинен Wifiга туташуу үчүн 4.25 секундду жана маалыматты ThingSpeakке жөнөтүү үчүн 1.25 секундду таптым. Ошентип, 80mA активдүү ток менен мен активдүү убакыт үчүн саатына 160 мкАч таптым. Терең уйку абалына саатына 50 мкАч кошуу, бизде саатына 210 мкАч бар. Бул 2600 мАч батареялар теориялык жактан 12400 саат = 515 күнгө созулат дегенди билдирет. Бул абсолюттук максимум, эгерде биз батарейкалардын толук кубаттуулугун колдонсок (андай эмес) жана учурдагы өлчөөлөрүмдө таппаган агып кетүүлөр жок. Демек, бул чын эле чыгып кетеби же жокпу, көрө элекмин.

7 -кадам: сенсорду бүтүрүү

Сенсорду бүтүрүү
Сенсорду бүтүрүү
Сенсорду бүтүрүү
Сенсорду бүтүрүү
Сенсорду бүтүрүү
Сенсорду бүтүрүү

Мен сенсорду 1 литрлик пластикалык идишке салдым, анда шорпо бар болчу. Ылдый жагында HC-SR04-P сенсорунун "көзүнө" туура келген эки тешик жасадым. Тешиктерден башка контейнер суу өткөрбөөчү болушу керек. Андан кийин ал суу сактагычтын дубалына адатта жамгыр суусун агызуучу түтүк үчүн колдонулган тегерек шакек менен бекитилет.

Долбоор менен көңүл ачыңыз!

Сунушталууда: