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

Утасгүй хаалганы мэдрэгч - Хэт бага хүч: 5 алхам
Утасгүй хаалганы мэдрэгч - Хэт бага хүч: 5 алхам

Видео: Утасгүй хаалганы мэдрэгч - Хэт бага хүч: 5 алхам

Видео: Утасгүй хаалганы мэдрэгч - Хэт бага хүч: 5 алхам
Видео: SCP-093 Красное море Объект (Все тесты и вторичного сырья Журналы) 2024, Арваннэгдүгээр
Anonim
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч
Утасгүй хаалганы мэдрэгч - Хэт бага хүч

Бас нэг хаалганы мэдрэгч !! Энэ мэдрэгчийг бий болгох миний урам зориг бол интернет дээр харсан олон зүйл нэг хязгаарлалттай байсан юм. Миний хувьд мэдрэгчийн зорилтуудын зарим нь:

1. Мэдрэгч нь маш хурдан байх ёстой - 5 секундээс бага байх ёстой

2. Мэдрэгч нь 3.7V лити-ион батерейгаар цэнэглэгдэх ёстой

3. Мэдрэгч нь батерейны нэг цэнэглэлтээр олон сар ажиллах ёстой. Унтах горимд <10uA байх ёстой

4. Хаалга удаан хугацаанд ажиллахгүй байсан ч мэдрэгч нь батерейны байдал гэх мэт чухал мэдээллийг дамжуулахын тулд сэрэх боломжтой байх ёстой.

5. Мэдрэгч нь хаалгыг онгойлгох, түүнчлэн хаалттай байх үед MQTT сэдвээр мэдээлэл дамжуулах ёстой

6. Мэдрэгч нь хаалганы төлөв байдлаас үл хамааран ижил хэмжээний эрчим хүч зарцуулах ёстой

Мэдрэгчийн ажил:

Мэдрэгч нь 2 үндсэн хянагчтай. Эхнийх нь ATiny 13A жижиг микро хянагч юм. Хоёр дахь нь ихэвчлэн унтах горимд байдаг ESP бөгөөд ATiny үүнийг идэвхжүүлсэн үед л сэрдэг. Бүх хэлхээг зөвхөн ESP ашиглан унтах горимд хийж болно, гэхдээ зарцуулж буй гүйдэл нь батерейны хэдэн сар ажиллахад шаардагдах хэмжээнээс хамаагүй их тул ATTiny аврах ажилд ирдэг. Энэ нь зөвхөн N секунд тутамд сэрэх, хаалганы үйл явдал эсвэл эрүүл мэндийн үзлэгт хамрагдах зорилготой бөгөөд хэрэв байгаа бол ESP -ийн CH_PD зүүг HIGH руу барьж, үйл явдлын төрөлд тохирох дохиог ESP рүү илгээдэг.. Түүний үүрэг үүгээр дуусдаг.

Дараа нь ESP нь үүргээ гүйцэтгэж, дохионы төрлийг уншиж, WiFi/MQTT -тэй холбогдож, батерейны түвшинг багтаасан шаардлагатай мессежийг нийтэлж, дараа нь EN зүүг LOW болгож буцааж унтраана.

Эдгээр бичил схемийг ашигласнаар би ATtiny -ийн унтах бага гүйдэл, чипийг CH_PD зүүгээр идэвхгүй болгох үед ESP -ийн тэг сул зогсолтын давуу талыг ашигладаг.

Хангамж

Урьдчилсан шаардлага:

- ATTiny & ESP 01 програмчлалын мэдлэгтэй

- ПХБ -д бүрэлдэхүүн хэсгүүдийг гагнах талаар мэдлэгтэй байх

ESP-01 (эсвэл бусад ESP)

ATTiny 13A - AVR

LDO 7333 -A - Бага уналтын хүчдэлийн зохицуулагч

Эсэргүүцэл - 1K, 10K, 3K3

Конденсатор: 100uF, 0.1 uF

Pushbutton switch, micro ON/OFF унтраалга - (хоёулаа заавал биш)

Диод - IN4148 (эсвэл түүнтэй адилтгах)

Ли-ион батерей

Рид шилжүүлэгч

Бүгдийг байрлуулах тохиолдол

Гагнуур, ПХБ гэх мэт

Алхам 1: Схем ба эх код

Схем ба эх код
Схем ба эх код

Схемийг хавсаргасан диаграммд үзүүлсэн шиг харуулав.

Би урвуу туйлшралыг хамгаалах зориулалттай P Channel MOSFET -ийг оруулсан болно. Хэрэв танд энэ шаардлагагүй бол та үүнийг орхиж болно. Rds ON багатай P сувгийн MOSFET хийх болно.

Одоогийн байдлаар ESP нь OTA -ийн чадавхитай биш боловч үүнийг ирээдүйд сайжруулах болно.

Ухаалаг хаалга-мэдрэгчийн эх код

Алхам 2: Хэлхээний ажил

ATTiny Ажлын урсгал

ATTiny хаалганы унтраалгын байрлалыг хэрхэн хянаж байгаа нь энд ид шидтэй болно.

Ердийн сонголт бол шилжүүлэгч рүү татах эсэргүүцлийг холбож, түүний төлөв байдлыг хянах явдал юм. Энэ нь татах эсэргүүцэлтэй тогтмол гүйдэл зарцуулдаг сөрөг талтай. Эндээс зайлсхийх арга бол би нэг товчлуурыг биш харин хоёр товчлуурыг хянах явдал юм. Би энд PB3 & PB4 -ийг ашигласан. PB3 нь PB3 дээрх дотоод INPUT_PULLUP -тай оролт, PB4 -ийг гаралт гэж тодорхойлдог. ATtiny нь унтах горимд байх үед PB4 -ийг өндөр түвшинд байлгадаг бөгөөд ингэснээр зэгс шилжүүлэгчийн байрлалаас үл хамааран оролтын татах эсэргүүцэлээр гүйдэл гүйхгүй болно. өөрөөр хэлбэл. Хэрэв унтраалга хаагдсан бол PB3 ба PB4 хоёулаа өндөр байх тул тэдгээрийн хооронд гүйдэл гүйдэггүй. Хэрэв унтраалга нээлттэй байвал тэдгээрийн хооронд ямар ч зам байхгүй тул гүйдэл тэг болно. ATtiny сэрэхэд PB4 дээр LOW гэж бичээд PB3 -ийн төлөв байдлыг шалгадаг. Хэрэв PB3 нь өндөр бол зэгс шилжүүлэгч нь НЭЭЛТТЭЙ бол ХААЛТТАЙ болно. Дараа нь PB4 дээр HIGH гэж бичдэг.

ATtiny & ESP хоорондын харилцаа холбоо нь ESP -ийн Tx / RX -тэй холбогдсон PB1 / PB2 гэсэн хоёр зүүгээр дамждаг. Би дохиог дараах байдлаар тодорхойлсон

PB1 PB2 ====== Tx Rx

0 0 ====== СЭРЭХ (Эрүүл мэндийн үзлэг)

0 1 ====== SENSOR_OPEN

1 0 ====== SENSOR_CLOSED

1 1 ====== АШИГЛААГҮЙ

ESP руу дохио илгээхээс гадна ESP CH_PD зүүтэй холбогдсон PB0 дээр өндөр импульс илгээдэг. Энэ нь ESP -ийг сэрээдэг. ESP -ийн хийх хамгийн эхний зүйл бол CH_PD -тэй холбогдсон GPIO0 HIGH -ийг барих бөгөөд ингэснээр ATTiny нь PB0 HIGH -ийг авч байсан ч түүний хүчийг нэмэгдүүлэх болно. Хяналт нь ESP -тэй бөгөөд хэзээ унтраахыг хүсч байгаагаа тодорхойлох болно.

Дараа нь WiFi, MQTT -тэй холбогдож, мессежийг илгээж, GPIO0 дээр LOW гэж бичээд өөрийгөө унтраадаг.

ESP 01 Ажлын урсгал:

ESP урсгал шууд урагшаа чиглэсэн байна. Энэ нь сэрж, ямар төрлийн мессеж байршуулахыг тодорхойлохын тулд Tx/Rx -ийн утгыг уншдаг. WiFi болон MQTT -тэй холбогдож, зурвасыг байрлуулж, өөрөө унтраадаг.

Цахилгаан тэжээлийг унтраахаасаа өмнө оролтын тээглүүрүүдийн утгыг дахин уншиж дууссанаас хойш өөрчлөгдсөн эсэхийг шалгадаг. Энэ нь хаалгыг хурдан нээх, хаах ажлыг хийх явдал юм. Хэрэв танд ийм чек байхгүй бол зарим тохиолдолд хаалга онгойлгосноос хойш 5-6 секундын дотор хаагдсан тохиолдолд хаалгаа хаах тохиолдол гардаг. Хаалга 2 секундын дотор нээгдэж хаагдах практик хувилбарыг хаалганы өнөөгийн байдал өмнөх хувилбараасаа ялгаатай байх үед мессежийг илгээдэг. Нээлттэй/хаалттай үйл явдлыг тэмдэглэх цорын ганц хувилбар бол хаалгыг 4-5 секундын дотор дахин дахин нээх/хаах явдал юм.

Алхам 3: Эрүүл мэндийн үзлэг

Надад ESP -ээс эрүүл мэндийн байдлыг шалгах мессеж авах арга хэрэгтэй байсан бөгөөд энэ нь ESP -ийн батерейны түвшинг илгээж, мэдрэгчийг гараар шалгахгүйгээр сайн ажиллаж байгааг баталгаажуулах шаардлагатай байв. Үүний тулд ATTiny нь 12 цаг тутамд WAKE_UP дохиог илгээдэг. Үүнийг ATtiny кодын WAKEUP_COUNT хувьсагчаар тохируулж болно. Энэ нь ховор нээгддэг хаалга, цонхны хувьд маш хэрэгтэй байдаг тул мэдрэгч эсвэл батерейнд ямар нэгэн алдаа гарсан эсэхийг та мэдэхгүй байж магадгүй юм.

Хэрэв танд эрүүл мэндийн үзлэгийн функц хэрэггүй бол ATTiny -ийг ашиглах талаархи бүх ойлголт шаардлагагүй болно. Энэ тохиолдолд та ESP -ийн нийлүүлэлтийг MOSFET -ээр тэжээдэг хүмүүсийн бүтээсэн бусад загварыг олж мэдэх боломжтой бөгөөд ингэснээр хаалга ажиллахгүй байгаа үед гүйдлийн тэг гүйдэлд хүрэх боломжтой болно. Одоогийн сугалаа нь хаалга онгойлгох, хаалганы ойролцоо байрлалд ижил байх зэрэг бусад анхаарах ёстой зүйлүүд байдаг - үүний тулд би ердийн 2 төлөвийн оронд 3 төлөвт зэгс унтраалгыг ашигласан загварыг хаа нэгтээ харсан.

Алхам 4: Цахилгаан эрчим хүчний хэмжилт ба батерейны ашиглалтын хугацаа

Би хэлхээний одоогийн хэрэглээг хэмжсэн бөгөөд унтаж байхдаа ойролцоогоор 30uA зарцуулдаг. ATTiny-ийн өгөгдлийн хүснэгтийг үзвэл LDO-ийн тайван гүйдлийг багтаасан бүх хэлхээний хувьд ойролцоогоор 1-4 uA байх ёстой, гэхдээ миний хэмжилт 30-ийг харуулав. MOSFET ба LDO нь бага хэмжээний гүйдэл хэрэглэдэг.

Тиймээс 800 мАч батерей нь удаан хугацаанд ажиллах ёстой. Надад яг тодорхой статистик мэдээлэл алга, гэхдээ би үүнийг жил гаруйн турш 2 хаалган дээрээ хэрэглэж ирсэн бөгөөд ойролцоогоор 800 мА хүчин чадалтай 18650 үүр бүр нээгдэж хаагддаг үндсэн хаалган дээр 5-6 сар орчим үргэлжилдэг. өдөрт дор хаяж 30 удаа. Дээврийн хаалган дээр долоо хоногт хэдхэн удаа нээгддэг хаалга 7-8 сар үргэлжилдэг.

Алхам 5: Ирээдүйн сайжруулалтууд

1. ESP нь MQTT мессежийг хүргэхийг хүлээн зөвшөөрдөггүй. Хөтөлбөрийг хүргэхийг баталгаажуулахын тулд мессеж нийтэлдэг сэдвийг захиалснаар сайжруулж болно, эсвэл QoS 1 -тэй мессеж нийтлэхийн тулд Async MQTT номын санг ашиглаж болно.

2. OTA шинэчлэлт: ESP кодыг шинэчлэхийн тулд MQTT сэдвийг уншихаар өөрчилж болох тул OTA горимд орж файл хүлээн авна.

3. ESP01-ийг ESP-12-ээр сольж илүү олон оролтын ПИН кодонд нэвтрэх боломжтой бөгөөд үүн дээр илүү олон мэдрэгч хавсаргаж болно. Энэ тохиолдолд 2 битийн аргаар харилцах боломжгүй болно. Үүнийг дараа нь ATtiny & ESP хооронд I2C холболтыг хэрэгжүүлэхийн тулд сайжруулж болно. Энэ нь жаахан төвөгтэй боловч ажиллах боломжтой. ATTiny нь эргэдэг кодлогчын утгыг I2C шугамаар ESP руу илгээдэг өөр нэг төхөөрөмж дээр би үүнийг ажиллуулж байна.

4. Одоогийн хэлхээ нь ESP -ийн дотоод Vcc -ийг хянадаг, хэрэв бид ESP12 -ийг ашигладаг бол үүнийг ADC зүүгээр дамжуулан батерейны бодит түвшинг уншихын тулд өөрчилж болно.

5. Ирээдүйд би MQTT эсвэл гэрийн автоматжуулалтын систем шаардлагагүй бие даасан мэдрэгч болгон ашиглах боломжтой өөрчлөлтийг оруулах болно. Мэдрэгч нь дангаараа ажиллах бөгөөд идэвхжсэн үед утсаар ярих боломжтой - мэдээж үүнд интернет холболт шаардлагатай.

6. Жагсаалт үргэлжилсээр байна …

7. Урвуу батерейны хамгаалалт - ДУУСГАА (Бодит төхөөрөмжийн зургууд хуучирсан тул MOSFET -ийг тусгаагүй болно)

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