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

IoT усны дохиолол: 5 алхам (зурагтай)
IoT усны дохиолол: 5 алхам (зурагтай)

Видео: IoT усны дохиолол: 5 алхам (зурагтай)

Видео: IoT усны дохиолол: 5 алхам (зурагтай)
Видео: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Долдугаар сарын
Anonim
IoT усны дохиолол
IoT усны дохиолол

Би саяхан гал тогооны өрөөний ус зайлуулах хоолойн нөөцийг туршиж үзсэн. Хэрэв би тэр үед гэртээ байгаагүй бол энэ нь миний орон сууцны шал, хуурай хананд гэмтэл учруулах байсан. Аз болоход, би энэ асуудлыг мэдэж байсан бөгөөд хувингаар усыг зайлуулахад бэлэн байв. Энэ нь намайг үерийн дохиолол худалдаж авах талаар бодоход хүргэсэн. Би Амазон дээрээс боломжийн үнэтэй олон бүтээгдэхүүн олж нээсэн боловч интернет холболттой хүмүүс сөрөг үнэлгээний нэлээд хувийг эзэлж байсан бөгөөд энэ нь өмчлөлийн мэдэгдлийн үйлчилгээтэй холбоотой асуудлуудаас үүдэлтэй юм. Тийм ч учраас би өөрийн сонгосон найдвартай мэдэгдлийн хэрэгслийг ашиглах IoT усны дохиоллыг өөрөө хийхээр шийдсэн.

Алхам 1: Үйл ажиллагааны зарчим

Үйл ажиллагааны зарчим
Үйл ажиллагааны зарчим

Сэрүүлгийн тархи нь AVR ATtiny85 микроконтроллертой. Энэ нь батерей ба усны мэдрэгчээс хүчдэлийн заалтыг авч, ус байгаа эсэх, батерейны цэнэг багатай байдлыг илрүүлэхийн тулд тэдгээрийг урьдчилан тодорхойлсон утгатай харьцуулдаг.

Усны мэдрэгч нь ойролцоогоор 1 мм -ийн зайтай хоёр утас юм. Утаснуудын нэг нь 3.3 В -т холбогдсон, нөгөө нь микроконтроллерийн мэдрэгч зүүтэй холбогдсон бөгөөд энэ нь мөн 0.5 МОм эсэргүүцэлээр газардуулагдсан байна. Ердийн үед мэдрэгчийн утас хоорондын эсэргүүцэл маш өндөр байдаг (10 МОм -ээс дээш), тиймээс мэдрэгч тээглүүрийг бүхэлд нь 0 В хүртэл татдаг. Гэхдээ утаснуудын хооронд ус байгаа үед эсэргүүцэл нь 1 МОм -оос доош буурдаг. мөн мэдрэгч зүү нь зарим хүчдэлийг хардаг (миний хувьд 1.5 В орчим). ATtiny85 нь мэдрэгч зүү дээрх энэ хүчдэлийг илрүүлэх үед дуут дохиог асаахын тулд MOSFET-ийг идэвхжүүлж, сэрүүлгийн дохиог ESP8266 модульд илгээдэг бөгөөд энэ нь анхааруулга (имэйл болон түлхэх мэдэгдэл) илгээх үүрэгтэй. Нэг минут дуугарсны дараа дохиоллыг зэвсэггүй болгож, зөвхөн цахилгаан унадаг дугуйгаар тохируулж болно.

Энэ төхөөрөмж нь хоёр шүлтлэг эсвэл NiMH эсээс ажилладаг. Микроконтроллер батерейгаа хэмнэхийн тулд ихэвчлэн унтдаг бөгөөд усны мэдрэгч, батерейны хүчдэлийг шалгахын тулд үе үе сэрдэг. Хэрэв батерейны хэмжээ бага байвал микроконтроллер нь ESP8266 модулийг сэрээж, батерейны хэмжээ бага байгааг анхааруулж байна. Анхааруулгын дараа батерейг хэт цэнэггүй болгохын тулд дохиоллыг зэвсэггүй болгоно.

ESP8266 модуль нь батерейны цэнэг багатай, мөн үерийн аюулын тухай анхааруулга илгээх үүрэгтэй тул ATiny85 -аас хяналтын дохио шаарддаг. Хязгаарлагдмал тооны зүү байгаа тул энэхүү хяналтын дохио нь батерейны LED заалтыг хариуцдаг ижил зүүгээр үүсгэгддэг. Хэвийн ажиллагааны үед (дохиолол зэвсэглэсэн, батерейг цэнэглэдэг) LED үе үе анивчдаг. Батерейны цэнэг багатай байгааг илрүүлэх үед LED асч, ESP модулийн RX зүү рүү өндөр дохио өгдөг. Хэрэв ус илэрвэл ESP8266 сэрүүн байхад батерейны LED унтрах болно.

Алхам 2: Дизайн ба угсралт

Дизайн ба угсралт
Дизайн ба угсралт
Дизайн ба угсралт
Дизайн ба угсралт
Дизайн ба угсралт
Дизайн ба угсралт

Би хэлхээг ихэвчлэн 0805 SMD эд анги ашиглан 4x6 см хэмжээтэй хоёр талт протобоард дээр бүтээх схемийг зохион бүтээсэн. Энэхүү схемийг энэхүү бүтцэд үндэслэсэн боловч нүхний хэсгүүдэд хялбархан дасан зохицох боломжтой (зөвлөмж: орон зайг багасгах, нүхээр дамжин резисторыг босоо байдлаар гагнах).

Дараахь хэсгүүдийг оруулах шаардлагатай.

- Эсэргүүцэл: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Нэг 10 µF керамик конденсатор- Нэг логик түвшний N-сувгийн MOSFET (жишээ нь RFP30N06LE эсвэл AO3400)- Нэг улаан, нэг шар LED (эсвэл хэрэв хүсвэл бусад өнгө).- Хоёр утастай шураг терминал холбогч x 3 (тэдгээр нь тийм биш) туйлын зайлшгүй шаардлагатай боловч туршилтын явцад захын хэсгүүдийг холбох, салгах ажлыг хөнгөвчилдөг)- 3.3 V- ATtiny85 микроконтроллерт сайн нийцдэг чанга чанга дуугаруулагч (PDIP хувилбар)- Микроконтроллерт зориулсан 8 зүүтэй PDIP залгуур- ESP-01 модуль (үүнийг ESP8266 дээр суурилсан өөр модулаар орлуулж болно, гэхдээ энэ тохиолдолд зохион байгуулалтанд маш их өөрчлөлт орох болно)-2.2 м-т 200 мА (500 мА тэсрэлт) гүйдэл дамжуулах чадвартай 3.3 В DC-DC өргөлтийн хөрвүүлэгч. оролт. (Хэт нам тайван гүйдлийн улмаас https://www.canton-electronics.com/power-converter… зөвлөж байна)-Нэг 3 зүү эмэгтэй толгой-4 4 зүү эмэгтэй хоёр толгой эсвэл 2x4 толгой-22 AWG хатуу утас усны мэдрэгчийн хувьд- 22 AWG судалтай утас (эсвэл ул мөр үүсгэх өөр төрлийн нимгэн ил утас)

Би дээр дурдсан эсэргүүцлийн утгыг санал болгож байна, гэхдээ та тэдгээрийн ихэнхийг ижил төстэй утгуудаар орлуулж болно. Таны ашиглахыг хүсч буй LED-ийн төрлөөс хамааран хүссэн гэрэлтүүлгийг авахын тулд одоогийн хязгаарлах эсэргүүцлийн утгыг тохируулах шаардлагатай байж магадгүй юм. MOSFET нь нүх эсвэл SMT (SOT23) байж болно. Зөвхөн 330 Ом эсэргүүцлийн чиг хандлага нь MOSFET -ийн төрөлд нөлөөлдөг. Хэрэв та энэ хэлхээг NiMH батерейгаар ашиглахаар төлөвлөж байгаа бол PTC гал хамгаалагч (жишээ нь 1 А үнэлгээтэй) ашиглахыг зөвлөж байна. Гэсэн хэдий ч шүлтлэг батерейны хувьд энэ нь шаардлагагүй юм. Зөвлөгөө: Энэхүү дохиололд шаардлагатай эд ангиудыг ebay эсвэл aliexpress -аас хямд үнээр худалдаж авах боломжтой.

Нэмж дурдахад ESP-01 модулийг програмчлахын тулд танд талх, хэд хэдэн нүх бүхий 10к резистор, олон эрэгтэй, эрэгтэй, эмэгтэй эрэгтэй холбогч ("дупонт") утас, USB-UART адаптер хэрэгтэй болно.

Усны мэдрэгчийг янз бүрийн аргаар хийж болох боловч хамгийн энгийн нь ойролцоогоор 1 мм -ийн зайтай (1 см урт) ил үзүүртэй, 22 ширхэг AWG гэсэн хоёр утас юм. Зорилго нь ус байгаа үед мэдрэгчийн контактуудын хооронд 5 МОм -ээс бага эсэргүүцэлтэй байх явдал юм.

Энэхүү хэлхээ нь батерейны хамгийн их хэмнэлтэд зориулагдсан болно. Энэ нь хяналтын горимд ердөө 40-60 мкА-ыг авдаг (ESP-01 модуль дээр цахилгаан LED-ийг салгаснаар). Сэрүүлгийг ажиллуулсны дараа хэлхээ нь 300-500 мА (2.4 В оролттой) секунд эсвэл түүнээс бага хугацаанд зурах бөгөөд үүний дараа гүйдэл 180 мА-аас доош бууна. ESP модулийг мэдэгдэл илгээж дууссаны дараа дуут дохио унтрах хүртэл одоогийн хэрэглээ 70 мА хүртэл буурна. Дараа нь дохиолол өөрөө зэвсэглэх бөгөөд одоогийн хэрэглээ 30 мкА -аас бага байх болно. Тиймээс AA батерейны багц нь хэлхээг олон сараар (нэг жилээс илүү хугацаанд) тэжээх боломжтой болно. Хэрэв та өөр хүчдэл хувиргагч ашиглаж байгаа бол 500 мкА -ийн тайван гүйдэлтэй бол батерейг илүү олон удаа өөрчлөх шаардлагатай болно.

Ассемблейн зөвлөмж:

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

- дээд талын SMT LED ба тусгаарлагдсан утсан гүүр

-дээд талын MOSFET (анхаарна уу: хэрэв танд SOT-23 MOSFET байгаа бол зураг дээрх шиг диагналаар байрлуулна уу. Хэрэв та нүхний MOSFET ашиглаж байгаа бол хаалганы зүүг I3 байрлалд хэвтээ байрлуулна уу.)

- дээд талын нүхний хэсэг

- SMT -ийн урвуу хэсэг ба ул мөр (жишээ нь AWG22 утаснаас тусдаа утас)

Алхам 3: Firmware

ATtiny85 -ийн C код

Main.c нь эмхэтгэж, микроконтроллерт байршуулах шаардлагатай кодыг агуулдаг. Хэрэв та Arduino самбарыг програмист болгон ашиглах гэж байгаа бол холболтын схемийг энэ хичээлээс олж болно. Та зөвхөн дараах хэсгүүдийг дагаж мөрдөх шаардлагатай (үлдсэн хэсгийг үл тоомсорлох):

-Arduino Uno-г ISP болгон тохируулах (систем доторх програмчлал)

- ATtiny85 -ийг Arduino Uno -той холбох.

Програм хангамжийг хөрвүүлэх, байршуулахын тулд танд CrossPack (Mac OS -ийн хувьд) эсвэл AVR хэрэгслийн сүлжээ (Windows -ийн хувьд) хэрэгтэй болно. Кодыг хөрвүүлэхийн тулд дараах тушаалыг гүйцэтгэх шаардлагатай байна.

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j.data -O ihex main.elf main.hex

Програм хангамжийг байршуулахын тулд дараахь зүйлийг ажиллуулна уу.

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

"/Dev/cu.usbmodem1411" -ний оронд та Arduino -той холбогдсон цуваа портыг оруулах хэрэгтэй болно (та үүнийг Arduino IDE: Tools Port дээрээс олж болно).

Код нь олон функцийг агуулдаг. deep_sleep () нь микроконтроллерийг маш бага чадлын төлөвт ойролцоогоор 8 секундын турш оруулдаг. read_volt () нь зай болон мэдрэгчийн хүчдэлийг хэмжихэд хэрэглэгддэг. Батерейны хүчдэлийг дотоод хүчдэлийн лавлагаагаар (2.56 В нэмэх эсвэл хасах хэдэн хувь) харьцуулж хэмждэг бол мэдрэгчийн хүчдэлийг Vcc = 3.3 В -ийн дагуу хэмждэг. ~ 2.3 ба 0.3 V. Та батерейны ашиглалтын хугацааг сайжруулахын тулд батерейны босго хэмжээг бууруулах боломжтой боловч үүнийг ашиглахыг зөвлөдөггүй (Дэлгэрэнгүй мэдээлэл авахыг хүсвэл батерейны талаар авч үзнэ үү).

activate_alarm () нь ус илрүүлэх талаар ESP модульд мэдэгдэж, дуут дохиог дуугаргадаг. low_batt_notification () нь ESP модульд батерейны цэнэг багатай байгааг мэдэгдэхээс гадна дуугарах дуугардаг. Хэрэв та шөнө дунд зайг солихын тулд сэрээхийг хүсэхгүй байгаа бол low_batt_notification () хэсэгт "| 1 <" -ийг арилгаарай.

ESP-01-ийн Arduino ноорог

Би ESP модулийг Arduino HAL ашиглан програмчлахаар сонгосон (тохируулах зааврыг линкээр орж үзнэ үү). Үүнээс гадна би дараах хоёр номын санг ашигласан.

ESP8266 Górázz Péter -ээс имэйл илгээх

Arduino Hannover багийн ESP8266 түлхэлт

Эхний номын сан нь SMTP серверт холбогдож, таны имэйл хаяг руу анхааруулга илгээдэг. Зүгээр л өөрийн ESP -д зориулсан Gmail данс үүсгээд итгэмжлэлийг код дээр нэмээрэй. Хоёрдахь номын сан нь түлхэх мэдэгдлийг Pushover үйлчилгээгээр дамжуулан илгээдэг (мэдэгдэл үнэ төлбөргүй байдаг, гэхдээ програмыг гар утас/таблет дээрээ суулгахын тулд та нэг удаа төлбөр төлөх ёстой). Хоёр номын санг татаж авах. И -мэйл илгээх номын сангийн агуулгыг ноорог хавтсандаа оруулна уу (arduino ноорогыг анх нээхэд arduino үүнийг үүсгэх болно). Pushover номын санг IDE -ээр дамжуулан суулгана уу (Sketch -> Include Library -> Add. ZIP library).

ESP-01 модулийг програмчлахын тулд та дараах зааварчилгааг дагаж болно: https://www.allaboutcircuits.com/projects/breadbo… Гарын авлагад үзүүлсэн шиг нэг эгнээ тээглүүрийг дахин зарах шаардлагагүй-зөвхөн эмэгтэй эрэгтэй дупон ашиглана уу. модулийн тээглүүрийг талхны самбартай холбох утас. Өргөлтийн хөрвүүлэгч болон USB-UART адаптер нь газар хуваалцах ёстой гэдгийг битгий мартаарай (анхаарна уу: та USB-UART адаптерийн 3.3 В хүчдэлийг хүчдэл хөрвүүлэгчийн оронд ашиглах боломжтой байж магадгүй, гэхдээ энэ нь ажиллахгүй байх магадлалтай. хангалттай гүйдэл гаргах чадвартай байх).

Алхам 4: Батерейны талаархи мэдээлэл

Оруулсан програм хангамжийн кодыг батерейны цэнэг багатай болохыг анхааруулж, ~ 2.3 Вт унтраахаар урьдчилан тохируулсан бөгөөд энэ босго нь хоёр NiMH батерейг цувралаар ашигладаг гэсэн таамаглал дээр үндэслэсэн болно. NiMH -ийн бие даасан эсийг 1 В -оос доогуур гаргахыг зөвлөдөггүй. Хоёр эсийн хүчин чадал ба ялгадасын шинж чанар тэнцүү гэж үзвэл хоёулаа ~ 1.15 В -т аюулгүйгээр хязгаарлагдана. Гэсэн хэдий ч олон гадагшлуулах мөчлөгт ашиглагдаж байсан NiMH эсүүд хүчин чадлаараа ялгаатай байдаг. Хүчин чадлын 30% хүртэлх зөрүүг тэвчиж болно, учир нь энэ нь 1 В орчимд хамгийн бага хүчдэлийн эсийн таслах цэгийг бий болгоно.

Програм хангамжийн батерейны бага босгыг бууруулах боломжтой боловч аюулгүй байдлын хязгаарыг арилгаж, батерейны хэт цэнэггүй байдал, эвдрэлд хүргэж болзошгүй бөгөөд батерейны ашиглалтын хугацаа бага зэрэг нэмэгдэх болно (NiMH үүр нь> 85% нь 1.15 В -д цэнэглэгддэг).

Анхаарах ёстой өөр нэг хүчин зүйл бол өргөлтийн хөрвүүлэгч нь бага батерей дээр 300-500 мА оргил гүйдэлд хамгийн багадаа 3.0 В (анекдот нотолгооны дагуу 2.5 В) өгөх чадвартай байдаг. NiMH батерейны дотоод эсэргүүцэл багатай нь оргил гүйдэлд 0.1 В -ийн бага зэрэг бууралтыг бий болгодог тул 2.3 В (нээлттэй хэлхээ) хүртэл цэнэглэгдсэн хос NiMH эсийг өргөлтийн хөрвүүлэгчийг дор хаяж 2.2 В хүчдэлээр хангах боломжтой болно. Гэхдээ энэ нь шүлтлэг батерейны хувьд илүү төвөгтэй байдаг. Хос АА батерей 2.2-2.3 В (нээлттэй хэлхээ) дээр сууж байх үед хамгийн их гүйдэлд 0.2-0.4 В хүчдэлийн уналт гарах төлөвтэй байна. Хэдийгээр би хэлхээ нь хамгийн их гүйдэлд оруулдаг 1.8 В -оос бага хүчдэл бүхий санал болгож буй өсгөгч хөрвүүлэгчтэй ажилладаг эсэхийг шалгасан ч энэ нь гаралтын хүчдэлийг Эспрессифийн санал болгож буй утгаас түр зуур буурах магадлалтай юм. Тиймээс 2.3 В-ийн босго хэмжээ нь шүлтлэг батерейны аюулгүй байдлын хязгаарыг бага байлгадаг (микроконтроллерийн хүчдэлийн хэмжилт нь зөвхөн нэмэх эсвэл хасах хэдэн хувийн дотор үнэн зөв байдаг гэдгийг санаарай). Шүлтлэг батерей багатай үед ESP модуль ажиллахгүй байхын тулд таслах хүчдэлийг 2.4 В хүртэл нэмэгдүүлэхийг зөвлөж байна (#DATFINE BATT_THRESHOLD 973). 1.2 В (нээлттэй хэлхээ) үед шүлтлэг эс 70% орчим гадагшилдаг бөгөөд энэ нь нэг эсийн 1.15 В-ийн цэнэгийн түвшингээс 5-10 хувиар бага байдаг.

NiMH болон шүлтлэг эсүүд хоёулаа энэ програмын давуу болон сул талуудтай байдаг. Шүлтлэг батерейнууд нь илүү аюулгүй байдаг (богино хугацаанд гал авалцдаггүй), өөрөө цэнэглэх чадвар хамаагүй бага байдаг. Гэсэн хэдий ч NiMH батерей нь дотоод эсэргүүцэл багатай тул ESP8266-ийн найдвартай ажиллах нөхцлийг баталгаажуулдаг. Гэхдээ эцэст нь аль ч төрлийг урьдчилан сэргийлэх зорилгоор ашиглаж болох тул энэ нь зөвхөн хувийн сонголтын асуудал юм.

Алхам 5: Хуулийн хариуцлагаас татгалзах

Энэ хэлхээг мэргэжлийн бус хоббичин зөвхөн хоббигийн хэрэглээнд зориулан бүтээсэн болно. Энэхүү загварыг үнэнчээр хуваалцсан боловч ямар ч баталгаа өгөхгүй. Үүнийг ашиглаад бусадтай хуваалцаарай. Цахилгаан хэлхээг дахин бүтээснээр зохион бүтээгч нь энэхүү хэлхээний эвдрэл эсвэл ердийн хэрэглээнээс шууд болон шууд бусаар учирч болзошгүй аливаа хохирлын (үүнд хөрөнгийн үнэ цэнийн бууралт, хувийн гэмтэл гэх мэт) хамаарахгүй болно. Хэрэв танай улсын хууль тогтоомж энэхүү хариуцлагаас чөлөөлөхийг хүчингүй болгож, хориглосон бол та энэ загварыг ашиглахгүй байж болно. Хэрэв та энэ загвар эсвэл энэхүү загвар дээр суурилсан өөрчлөгдсөн хэлхээг хуваалцаж байгаа бол энэхүү зааварчилгааны хаягийг зааж өгөх замаар анхны зохион бүтээгчийг үнэлэх ёстой.

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