Агуулгын хүснэгт:

Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч: 7 алхам (зурагтай)
Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч: 7 алхам (зурагтай)

Видео: Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч: 7 алхам (зурагтай)

Видео: Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч: 7 алхам (зурагтай)
Видео: Ошибки в сантехнике. Вводной узел в квартиру. 2024, Долдугаар сарын
Anonim
Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч
Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч
Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч
Зайгаар ажилладаг ус цуглуулагчийн түвшний мэдрэгч

Манай байшин дээвэр дээр унасан борооноос тэжээгддэг усны савтай бөгөөд бие засах газар, угаалгын машин, цэцэрлэгт усалгааны зориулалтаар ашигладаг. Сүүлийн гурван жил зун маш хуурай байсан тул бид савны усны түвшинг ажиглаж байв. Одоогийн байдлаар бид модон саваа ашиглаж, сав руу хийж түвшинг тэмдэглэв. Гэхдээ үүнийг сайжруулах боломжтой нь гарцаагүй!

Эндээс энэ төсөл хэрэгжиж байна. Санаа нь савны дээд хэсэгт хэт авианы зайны мэдрэгчийг холбох явдал юм. Энэхүү мэдрэгч нь дууны долгион ялгаруулдаг sonar хэлбэрээр ажилладаг бөгөөд дараа нь усны гадаргуугаас тусдаг. Долгион эргэж ирэх, дууны хурд гарахаас эхлээд та усны гадаргуу хүртэлх зайг тооцоолж, савны дүүргэлтийг тодорхойлж чадна.

Надад танкийн ойролцоо цахилгаан сүлжээ байхгүй тул иж бүрэн төхөөрөмж нь батерейгаар ажиллах нь чухал юм. Энэ нь би бүх эд ангиудын эрчим хүчний хэрэглээний талаар ухамсартай байх ёстой гэсэн үг юм. Өгөгдлийг буцааж илгээхийн тулд би ESP8266 микро чипт суурилуулсан Wifi ашиглахаар шийдсэн. Wifi нь цахилгаан эрчим хүчээр маш их цэнэглэдэг боловч өөр төрлийн радио холболтоос давуу талтай байдаг: та релений үүрэг гүйцэтгэдэг өөр төхөөрөмж суурилуулахгүйгээр гэрийнхээ утасгүй чиглүүлэгчтэй шууд холбогдох боломжтой.

Цахилгаан хэмнэхийн тулд би ESP8266 -г ихэнхдээ гүн нойронд оруулж, цаг тутамд хэмжилт хийдэг. Усны түвшинг ажиглахын тулд энэ нь хангалттай биш юм. Өгөгдлийг ThingSpeak руу илгээх бөгөөд дараа нь програмаар дамжуулан ухаалаг гар утсан дээр унших боломжтой болно.

Бас нэг дэлгэрэнгүй! Зайг хэмжихэд шаардлагатай дууны хурд нь температураас бага хэмжээгээр чийгшилээс хамаардаг. Улирлын турш гадуур нарийвчлалтай хэмжихийн тулд бид температур, чийгшил, даралтыг хэмждэг BME280 мэдрэгч рүү шиднэ. Урамшууллын хувьд энэ нь манай усны түвшний мэдрэгчээс цаг агаарын мини станцыг бий болгодог.

Эд анги:

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

Би кодыг GitHub дээр ашиглах боломжтой болгосон.

Алхам 1: Хэт авианы зайн мэдрэгчтэй танилцах

Хэт авианы зайн мэдрэгчтэй танилцах
Хэт авианы зайн мэдрэгчтэй танилцах
Хэт авианы зайн мэдрэгчтэй танилцах
Хэт авианы зайн мэдрэгчтэй танилцах

Бид усны гадаргуу хүртэлх зайг HC-SR04-P хэт авианы мэдрэгчээр хэмжих болно. Сарьсан багваахай шиг энэ мэдрэгч нь sonar ашигладаг: энэ нь хүний чихэнд хэт өндөр давтамжтай дууны импульс илгээдэг, улмаар хэт авианы долгионоор дамжин объект руу цохиж, тусч, эргэж ирэхийг хүлээдэг. Дараа нь цуурай, дууны хурдыг хүлээн авах хугацаа зайг тооцоолж болно.

Тодруулбал, хэрэв Триг зүүг 10 мс -ээс багагүй өндөрт татвал мэдрэгч нь 40 Гц давтамжтай 8 импульсийн тэсрэлтийг илгээдэг. Үүний хариуг Echo зүү дээр хэт авианы импульсийг илгээх ба хүлээн авах хоорондох хугацаатай адил импульс хэлбэрээр авна. Дараа нь хэт авианы импульс нааш цааш явж байгаа тул бидэнд нэг талын аялалын хугацаа хэрэгтэй байгаа бөгөөд дууны хурдаар 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 хувилбарын ар талд бүх гурван чип хэвтээ, стандарт хувилбар дээр нэг босоо байна. Урд талд стандарт хувилбар нь нэмэлт мөнгөний бүрэлдэхүүнтэй байдаг.

Цахим хэлхээнд бид транзисторыг ашиглан хэт авианы мэдрэгчийн унтраалгыг унтраах болно. Үгүй бол энэ нь ойролцоогоор 2 мА зарцуулдаг. Нөгөө талаар BME280 нь идэвхгүй үед зөвхөн 5 μ орчим зарцуулдаг тул транзистороор унтраах шаардлагагүй болно.

Алхам 2: ESP8266 ТУЗ -ийн сонголт

ESP8266 ТУЗ -ийн сонголт
ESP8266 ТУЗ -ийн сонголт

Мэдрэгчийг батерейгаар аль болох удаан ажиллуулахын тулд бид эрчим хүчний хэрэглээгээ хэмнэх ёстой. ESP8266-ийн Wifi нь бидний мэдрэгчийг үүл рүү холбох маш тохиромжтой аргыг санал болгодог боловч энэ нь бас эрчим хүч их шаарддаг. Ашиглалтын явцад ESP8266 нь ойролцоогоор 80 мА зарцуулдаг. Тиймээс 2600 мАч батерейтай бол бид төхөөрөмжөө хоосон болохоос өмнө хамгийн ихдээ 32 цагийн турш ажиллуулах боломжтой болно. Практик дээр бид хүчдэл хэт бага түвшинд унахаас өмнө 2600 мАч хүчин чадлыг бүрэн ашиглах боломжгүй тул бага байх болно.

Аз болоход ESP8266 нь гүн унтлагын горимтой бөгөөд бараг бүх зүйл унтраалттай байдаг. Тиймээс ESP8266 -г ихэнхдээ гүн нойронд оруулж, байнга сэрээж, хэмжилт хийж, өгөгдлийг Wifi -аар ThingSpeak руу илгээх төлөвлөгөөтэй байдаг. Энэ хуудасны дагуу гүн нойрсох хамгийн дээд хугацаа нь ойролцоогоор 71 минут байсан бол ESP8266 Arduino цөм 2.4.1-ээс хойш 3.5 цаг болж нэмэгдсэн байна. Миний кодонд би нэг цаг суусан.

Би эхлээд NodeMCU-ийн хөгжлийн самбарыг туршиж үзсэн боловч гүн нойрондоо 9 мА зарцуулсан хэвээр байгаа бөгөөд энэ нь сэрэх интервалыг ч тооцохгүй 12 хоног цэвэр гүн нойр өгдөг. Чухал буруутан бол AMS1117 хүчдэлийн зохицуулагч бөгөөд батерейг 3.3V зүү рүү шууд холбож, тойрч гарахыг оролдсон ч гэсэн хүч хэрэглэдэг. Энэ хуудсан дээр хүчдэлийн зохицуулагч болон USB UART -ийг хэрхэн салгах талаар тайлбарласан болно. Гэсэн хэдий ч би самбараа устгахгүйгээр үүнийг хийж чадаагүй. Нэмж дурдахад USB UART -ийг салгасны дараа та ESP8266 -тай холбогдож, юу буруу болохыг олж мэдэх боломжгүй болно.

Ихэнх ESP8266 хөгжлийн самбарууд нь үрэлгэн AMS1117 хүчдэлийн зохицуулагчийг ашигладаг бололтой. Нэг үл хамаарах зүйл бол илүү хэмнэлттэй ME6211 -тэй ирдэг WEMOS D1 мини (зүүн талын зураг) юм. Үнэндээ би WEMOS D1 mini нь 150 мкА орчим гүн нойронд ашигладаг болохыг олж мэдсэн нь үүнтэй төстэй юм. Ихэнх нь USB UART -ээс болсон байх. Энэ самбарын тусламжтайгаар та голын толгойг өөрөө гагнах хэрэгтэй.

Гэсэн хэдий ч бид USB UART эсвэл хүчдэлийн зохицуулагчгүй ESP-12F (баруун талын зураг) гэх мэт нүцгэн хавтанг ашиглан илүү сайн хийж чадна. 3.3V зүү тэжээхэд би зөвхөн 22 мкА гүн нойрны хэрэглээтэй болохыг олж мэдсэн.

Гэхдээ ESP-12F-ийг ажиллуулахын тулд бага зэрэг гагнах ажилд бэлтгэх, програмчлахад арай илүү төвөгтэй байх болно! Цаашилбал, батерей нь 3V -аас 3.6V -ийн хоорондох хүчдэлийг шууд дамжуулахгүй бол бид өөрсдийн хүчдэлийн зохицуулагчийг өгөх ёстой. Практик дээр бүрэн цэнэглэх мөчлөгийн туршид энэ хүрээнд хүчдэл өгдөг батерейны системийг олоход хэцүү байдаг. Бид мөн HC-SR04-P мэдрэгчийг тэжээх хэрэгтэй бөгөөд энэ нь онолын хувьд 3V хүртэл бага хүчдэлтэй ажиллах боломжтой боловч хүчдэл өндөр байвал илүү нарийвчлалтай ажилладаг. Үүнээс гадна миний диаграммд HC-SR04-P нь транзистороор асдаг бөгөөд энэ нь бага хүчдэлийн уналтыг өдөөдөг. Бид MCP1700-3302E хүчдэлийн зохицуулагчийг ашиглах болно. Хамгийн их оролтын хүчдэл нь 6V бөгөөд 4 АА хүртэлх зайгаар тэжээдэг. Би 3 АА батерей ашиглахаар шийдсэн.

Алхам 3: ThingSpeak суваг үүсгээрэй

Бид өгөгдлөө хадгалахын тулд ThingSpeak, IoT үүл үйлчилгээг ашиглах болно. Https://thingspeak.com/ руу орж данс үүсгэнэ үү. Нэвтэрсний дараа суваг үүсгэхийн тулд Шинэ суваг товчийг дарна уу. Сувгийн тохиргоонд нэр, тайлбарыг хүссэн хэлбэрээр оруулна уу. Дараа нь бид сувгийн талбаруудыг нэрлээд баруун талд байгаа хайрцгийг дарж идэвхжүүлнэ үү. Хэрэв та миний кодыг өөрчлөхгүй бол талбарууд дараах байдалтай байна.

  • Талбар 1: усны түвшин (см)
  • 2 -р талбар: батерейны түвшин (V)
  • Талбар 3: температур (° C)
  • Талбар 4: чийгшил (%)
  • Талбар 5: даралт (Па)

Ирээдүйд лавлахын тулд API түлхүүрүүдийг цэснээс олж болох Channel ID, Read 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 хавтангийн дэмжлэгийг суулгана уу. Файл - Тохиргоо - Тохиргоо цэсэнд https://arduino.esp8266.com/stable/package_esp8266com_index.json URL -ийг Нэмэлт зөвлөлийн менежерийн URL -д нэмнэ үү. Дараа нь Tools - Board - Board Board менежер цэсэнд esp8266 хамтлагийн esp8266 -ийг суулгана.
  • Самбар болгон сонгоно уу: Ерөнхий ESP8266 модуль.

ESP-12F-ийг зохицуулахын тулд би онлайн дэлгүүрүүдэд түгээмэл хэрэглэгддэг адаптер хавтанг ашигласан. Би чипийг хавтан дээр гагнаж, дараа нь толгойнуудыг хавтан дээр гагнав. Зөвхөн үүний дараа би адаптерийн хавтан нь стандарт талхны хавтангийн хувьд хэтэрхий өргөн болохыг олж мэдэв! Энэ нь холболт хийхийн тулд хажуу тийш үнэгүй зүү оруулдаггүй.

Миний хайж байсан шийдэл бол ESP8266-ийг талхны тавцан дээр адаптер хавтангаар байрлуулахаас өмнө U хэлбэрийн утас ашиглаж, тэдгээрийг баруун талын зураг дээрх шиг холбох явдал юм. Тиймээс GND ба VCC нь талхны хавтангийн төмөр замд холбогдсон бөгөөд үлдсэн тээглүүрийг талхны хавтангийн доор байрлуулна. Сул тал бол бүрэн хэлхээг дуусгасны дараа таны талхны самбар утастай байх болно. Өөр нэг шийдэл бол энэ видеонд үзүүлсэн шиг хоёр талхны хавтанг хооронд нь холбох явдал юм.

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

ESP8266 нь флаш руу шинэ firmware байршуулах програмчлалын горимтой бөгөөд одоогийн програмыг флаш санах ойгоос ажиллуулах флаш горимтой. Эдгээр горимуудын аль нэгийг сонгохын тулд ачаалах үед зарим тээглүүрүүд тодорхой утгыг авах ёстой.

  • Програмчлал: GPIO0: бага, CH-PD: өндөр, GPIO2: өндөр, GPIO15: бага
  • Flash: GPIO0: өндөр, CH-PD: өндөр, GPIO2: өндөр, GPIO15: бага

Тохируулагч хавтан нь CH-PD-ийг татаж, 10K резистортой GPIO15-ийг буулгахад аль хэдийн анхаарал тавьдаг.

Тиймээс манай электрон хэлхээнд 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 дээр нээнэ үү. Эсвэл та File - New -ийг сонгоод кодыг хуулж/буулгаж болно.

Файлын эхэнд бөглөх шаардлагатай зарим мэдээлэл байдаг: ашиглах WLAN -ийн нэр, нууц үг, статик IP -ийн мэдээлэл, ThingSpeak сувгийн сувгийн ID ба бичих API түлхүүр.

Энэ блог дээрх зөвлөмжийг дагаж, чиглүүлэгч нь IP -ийг динамикаар хуваарилдаг DHCP -ийн оронд бид статик IP ашигладаг бөгөөд ESP8266 -ийн IP хаягийг бид өөрсдөө тохируулдаг. Энэ нь илүү хурдан болж хувирдаг тул бид идэвхтэй цагийг хэмнэж, батерейны энергийг хэмнэдэг. Тиймээс бид боломжтой статик IP хаяг, чиглүүлэгчийн IP (гарц), дэд сүлжээний маск, DNS серверийг өгөх ёстой. Хэрэв та юу бөглөхөө мэдэхгүй байгаа бол чиглүүлэгчийн гарын авлагаас статик IP тохируулах талаар уншина уу. Wifi-ээр дамжуулан чиглүүлэгчтэй холбогдсон Windows компьютер дээр бүрхүүлийг (Windows button-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 (cm) ба талбай (m2) -г тохируулсан бол код нь усны савны үлдсэн эзлэхүүнийг зайн хэмжилтээс тооцоолно. мөн үүнийг ThingSpeak -д байршуулна уу. Хэрэв та анхдагч утгыг хадгалах юм бол усны гадаргуу хүртэлх зайг см -ээр байршуулна.

Алхам 6: Цахилгаан хэлхээг бий болгох

Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох

Дээрх нь электрон хэлхээний диаграм юм. Энэ нь нэг талхны хавтангийн хувьд маш том хэмжээтэй, ялангуяа том хэмжээтэй адаптер хавтан ба U хэлбэрийн утастай заль мэх юм. Хэзээ нэгэн цагт би хоёр талхны самбарыг холбох хувилбарыг ашиглахыг хүсч байсан ч эцэст нь би амжилтанд хүрсэн.

Энд хэлхээний чухал шинж чанарууд байна.

  • Гол үүрэг гүйцэтгэдэг хоёр хүчдэл байдаг: батерейны оролтын хүчдэл (3.75V орчим) ба ESP8266 ба BME280 тэжээлийг өгдөг 3.3V. Би 3.3V -ийг таслах самбарын зүүн төмөр зам дээр, 3.75V -ийг баруун талын төмөр зам дээр тавив. Хүчдэл зохицуулагч нь 3.75V -ийг 3.3V болгон хувиргадаг. Мэдээллийн хуудсан дээрх зааврыг дагаж би тогтвортой байдлыг нэмэгдүүлэхийн тулд хүчдэлийн зохицуулагчийн оролт, гаралтанд 1 μF конденсатор нэмсэн.
  • ESP8266 -ийн GPIO15 нь транзисторын хаалгатай холбогддог. Энэ нь ESP8266 -ийг транзисторыг идэвхжүүлж, хэт авианы мэдрэгчийг идэвхжүүлж, гүн нойронд унтрааж байхдаа унтраах боломжийг олгодог.
  • GPIO14 нь OTA унтраалга руу шилждэг. Шилжүүлэгчийг хаах нь ESP8266-д дохио өгдөг бөгөөд бид дараа нь OTA горимд эхлэхийг хүсч байна, өөрөөр хэлбэл бид RESET товчлуурыг дарж (хааж, нээж), агаарт шинэ ноорог байршуулсны дараа.
  • RST ба GPIO2 тээглүүрүүд нь програмчлалын диаграм дээрх шиг холбогдсон байна. RST зүү нь GPIO16 -тай холбогдсон бөгөөд ESP8266 -ийг гүн нойрноос сэрээх боломжийг олгодог.
  • Хэт авианы мэдрэгчийн 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 дахь Serial Monitor -ийг нээж, дибаг хийх мессежүүдийг уншиж, бүх зүйл хүлээгдэж буй шиг ажиллаж байгаа эсэхийг шалгах боломжийг олгодог.

Бүрэн хэлхээний хувьд би зайг цэнэглэх үед гүн унтах үед 50 мкА гүйдлийн хэрэглээг хэмжсэн. Үүнд ESP8266, BME280, хэт авианы мэдрэгч (транзистороор унтраасан), хүчдэл хуваагчаас нэвчих, магадгүй бусад алдагдал орно. Тиймээс энэ нь тийм ч муу биш юм!

Нийт идэвхтэй цаг нь ойролцоогоор 7 секунд байдаг бөгөөд үүний 4.25 секунд нь Wifi -д холбогдоход 1.25 секунд нь ThingSpeak руу өгөгдөл илгээх боломжтой болохыг олж мэдсэн. Тиймээс 80mA идэвхтэй гүйдэлтэй үед би идэвхтэй цагт 160 мкАч цагийг олсон. Удаан унтах төлөвт нэг цагт 50 мкАч нэмбэл 210 мкАц байна. Энэ нь 2600 мАч батерей нь онолын хувьд 12400 цаг = 515 хоног үргэлжилдэг гэсэн үг юм. Хэрэв бид батерейны бүрэн хүчин чадлыг ашиглаж чадвал энэ нь туйлын дээд хэмжээ юм (энэ нь тийм биш юм), одоогийн хэмжилтээр олж чадаагүй алдагдал байхгүй байна. Тиймээс энэ нь үнэхээр үр дүнгээ өгч байгаа эсэхийг би хараахан харж амжаагүй байна.

Алхам 7: Мэдрэгчийг дуусгах

Мэдрэгчийг дуусгах
Мэдрэгчийг дуусгах
Мэдрэгчийг дуусгах
Мэдрэгчийг дуусгах
Мэдрэгчийг дуусгах
Мэдрэгчийг дуусгах

Би мэдрэгчийг 1 литрийн багтаамжтай хуванцар саванд хийж, өмнө нь шөл байсан. Доод талд нь би HC-SR04-P мэдрэгчийн "нүдэнд" тохирсон хоёр нүх гаргав. Нүхнээс гадна сав нь ус нэвтэрдэггүй байх ёстой. Дараа нь борооны ус зайлуулах хоолойд ихэвчлэн ашигладаг дугуй цагираг бүхий усны савны хананд наалддаг.

Төслийг хөгжилтэй өнгөрүүлээрэй!

Зөвлөмж болгож буй: