Satura rādītājs:

Bezvadu durvju sensors - īpaši zema jauda: 5 soļi
Bezvadu durvju sensors - īpaši zema jauda: 5 soļi

Video: Bezvadu durvju sensors - īpaši zema jauda: 5 soļi

Video: Bezvadu durvju sensors - īpaši zema jauda: 5 soļi
Video: Mio MiVue 798 Dual TEST для автомобильного видеорегистратора с GPS и задней камерой A30 2024, Novembris
Anonim
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda
Bezvadu durvju sensors - īpaši zema jauda

Vēl viens durvju sensors !! Motivācija man izveidot šo sensoru bija tā, ka daudziem internetā redzētajiem bija viens vai otrs ierobežojums. Daži no sensora mērķiem man ir:

1. Sensoram jābūt ļoti ātram - vēlams mazāk nekā 5 sek

2. Sensoram vajadzētu iztukšot 3,7 V litija jonu akumulatoru, jo man ir vairāki desmiti

3. Sensoram vajadzētu darboties daudzus mēnešus ar vienu akumulatora uzlādi. Miega režīmā tam vajadzētu patērēt <10uA

4. Sensoram vajadzētu būt iespējai pamosties, lai pārsūtītu kritiskus datus, piemēram, akumulatora stāvokli, pat ja durvis ilgu laiku netiek darbinātas.

5. Sensoram būtu jānosūta dati uz MQTT tēmu, kad durvis tiek atvērtas, kā arī tad, kad durvis ir aizvērtas

6. Sensoram vajadzētu patērēt tikpat daudz enerģijas neatkarīgi no durvju stāvokļa

Sensora darbība:

Sensoram ir 2 galvenie kontrolieri. Pirmais ir niecīgs mikrokontrolleris ATiny 13A. Otrais ir ESP, kas parasti ir miega režīmā un pamostas tikai tad, kad ATiny to iespējo. Visu ķēdi var izveidot arī tikai ar ESP, izmantojot to miega režīmā, taču tā patērētā strāva ir daudz lielāka, nekā nepieciešams, lai akumulators darbotos vairākus mēnešus, tāpēc ATTiny nāk palīgā. Tas kalpo tikai tam, lai pamostos ik pēc N sekundēm, meklētu durvju notikumu vai veselības pārbaudes notikumu, ja tāds ir, tas tur ESP CH_PD tapu uz HIGH un nosūta ESP atbilstošu notikuma veida signālu. Ar to tā loma beidzas.

Pēc tam ESP pārņem vadību, nolasa signāla veidu, izveido savienojumu ar WiFi/MQTT, publicē nepieciešamos ziņojumus, ieskaitot akumulatora uzlādes līmeni, un pēc tam izslēdzas, atgriežot EN tapu zemā līmenī.

Šādi izmantojot šīs mikroshēmas, es izmantoju ATtiny zemo miega strāvu un ESP nulles tukšgaitas strāvu, kad mikroshēma tiek atspējota, izmantojot CH_PD tapu.

Piegādes

Iepriekšēja prasība:

- zināšanas par ATTiny & ESP 01 programmēšanu

- zināšanas par lodēšanas komponentiem uz PCB

ESP-01 (vai jebkurš ESP)

ATTiny 13A - AVR

LDO 7333 -A - zema pārtraukuma sprieguma regulators

Rezistori - 1K, 10K, 3K3

Kondensatori: 100uF, 0,1 uF

Spiedpogas slēdzis, mikro ON/OFF slēdzis - (abi pēc izvēles)

Diode - IN4148 (vai jebkurš līdzvērtīgs)

Litija jonu akumulators

Niedru slēdzis

Lieta, kur to visu izmitināt

Lodēt, PCB utt

1. darbība. Shēmas un avota kods

Shēmas un avota kods
Shēmas un avota kods

Shēmas ir parādītas pievienotajā diagrammā.

Esmu iekļāvis P kanāla MOSFET, lai aizsargātu pret polaritāti. Ja jums tas nav vajadzīgs, varat to izlaist. Tiks piemērots jebkurš P kanāla MOSFET ar zemu ieslēgtu Rds.

Pašlaik ESP nav OTA iespējas, bet tas ir paredzēts turpmākiem uzlabojumiem.

Avota kods viedo durvju sensors

2. darbība. Ķēdes darbība

ATTiny Darba plūsma

Maģija šeit notiek tajā, kā ATTiny uzrauga durvju slēdža stāvokli.

Parastā iespēja būtu pie slēdža piestiprināt uzvilktu rezistoru un pastāvīgi uzraudzīt tā stāvokli. Tam ir negatīvs faktors, ka pastāvīgais strāva tiek patērēts uzvilkšanas rezistorā. No tā izvairījās tas, ka slēdža uzraudzībai esmu izmantojis divas tapas, nevis vienu. Šeit es izmantoju PB3 un PB4. PB3 ir definēts kā ieeja un PB4 kā izeja ar PB3 iekšējo INPUT_PULLUP. Parasti PB4 tiek turēts HIGH, kad ATtiny ir miega režīmā. Tas nodrošina, ka caur ieejas pacelšanas rezistoru nenotiek strāva neatkarīgi no niedru slēdža stāvokļa. ti. Ja slēdzis ir aizvērts, gan PB3, gan PB4 ir AUGSTAS, un tāpēc starp tām neplūst strāva. Ja slēdzis ir atvērts, starp tiem nav ceļa, tāpēc strāva ir nulle. Kad ATtiny pamostas, tas uzraksta LOW uz PB4 un pēc tam pārbauda PB3 stāvokli. Ja PB3 ir AUGSTS, tad niedru slēdzis ir ATVĒRTS, citādi tas ir Slēgts. Pēc tam tas atraksta HIGH uz PB4.

Saziņa starp ATtiny un ESP notiek, izmantojot divas tapas PB1 / PB2, kas savienotas ar ESP Tx / RX. Es definēju signālu kā

PB1 PB2 ====== Tx Rx

0 0 ====== WAKE_UP (veselības pārbaude)

0 1 ====== SENSOR_OPEN

1 0 ====== SENSOR_CLOSED

1 1 ====== NELIETOTS

Papildus signāla nosūtīšanai uz ESP tas arī nosūta HIGH impulsu uz PB0, kas ir savienots ar ESP CH_PD tapu. Tas pamodina ESP. Pirmā lieta, ko ESP dara, lai turētu GPIO0 HIGH, kas ir savienots ar CH_PD, tādējādi nodrošinot tās pilnvaras pat tad, ja ATTiny atņem PB0 HIGH. Vadība tagad ir ar ESP, lai noteiktu, kad tā vēlas izslēgt.

Pēc tam tas izveido savienojumu ar WiFi, MQTT, ievieto ziņojumu un izslēdzas, GPIO0 ierakstot LOW.

ESP 01 Darba plūsma:

ESP plūsma ir taisna uz priekšu. Tas pamostas un nolasa Tx/Rx tapas vērtības, lai noteiktu, kāda veida ziņojums tiks publicēts. Savienojums ar WiFi un MQTT, ievieto ziņojumu un izslēdzas.

Pirms izslēgšanas tas vēlreiz pārbauda ievades tapu vērtības, lai redzētu, vai tās ir mainījušās kopš pēdējās nolasīšanas. Tas jārūpējas par ātru durvju atvēršanu un aizvēršanu. Ja jums nav šīs pārbaudes, dažos gadījumos jūs varat palaist garām durvju aizvēršanu, ja tās tiek aizvērtas 5-6 sekunžu laikā pēc atvēršanas. Praktisku scenāriju, kad durvis tiek atvērtas un aizvērtas aptuveni 2 sekunžu laikā, labi atspoguļo kamēr cilpa, kas turpina publicēt ziņojumus, kamēr durvju pašreizējais stāvoklis atšķiras no iepriekšējā. Vienīgais scenārijs, ko var palaist garām, ierakstot visu atvēršanas/aizvēršanas notikumu, ir tas, ka durvis tiek atkārtoti atvērtas/aizvērtas 4-5 sekunžu laikā, kas ir ļoti maz ticams gadījums - iespējams, gadījums, kad kāds bērns spēlējas ar durvīm.

3. darbība: veselības pārbaude

Man arī vajadzēja veidu, kā ESP saņemt veselības pārbaudes ziņojumu, kur tas nosūta ESP akumulatora uzlādes līmeni, lai nodrošinātu, ka sensors darbojas labi bez manuālas pārbaudes. Šim nolūkam ATTiny ik pēc 12 stundām nosūta WAKE_UP signālu. To var konfigurēt, izmantojot ATtiny koda mainīgo WAKEUP_COUNT. Tas ir ļoti noderīgi durvīm vai logiem, kas tiek reti atvērti, tāpēc jūs, iespējams, nezināt, vai ar sensoru vai tā akumulatoru kaut kas nav kārtībā.

Ja jums nav nepieciešama veselības pārbaudes funkcionalitāte, nav nepieciešama visa ATTiny izmantošanas koncepcija. Tādā gadījumā jūs varat atrast citus dizainus, ko cilvēki ir izveidojuši, kur ESP padeve tiek padota caur MOSFET, un tādējādi jūs varat sasniegt nulles strāvas patēriņu, kad durvis netiek darbinātas. Ir arī citas lietas, par kurām jārūpējas, piemēram, pašreizējā vilkšana ir vienāda atvērtu durvju un durvju aizvēršanas stāvoklī - tāpēc es kaut kur redzēju dizainu, kas izmantoja 3 stāvokļa niedru slēdzi, nevis parasto 2 stāvokli.

4. solis: jaudas mērījumi un akumulatora darbības laiks

Esmu izmērījis ķēdes strāvas patēriņu, un tas aizņem ~ 30uA guļot un apkārt. Iet uz ATTiny datu lapām, tai vajadzētu būt aptuveni 1-4 uA visai ķēdei, ieskaitot LDO kluso strāvu, bet tad mani mērījumi rāda 30. MOSFET un LDO patērē nenozīmīgu strāvu.

Tātad 800 mAh akumulatoram vajadzētu kalpot ilgu laiku. Man nav precīzas statistikas, bet es to izmantoju uz divām savām durvīm jau vairāk nekā gadu, un katra 18650 šūna ar aptuveni 800 mAh paliek apmēram 5-6 mēnešus manās galvenajās durvīs, kuras atveras un aizveras plkst. vismaz 30 reizes dienā. Uz jumta durvīm, kas atveras tikai dažas reizes nedēļā, tas ilgst 7–8 mēnešus.

5. darbība. Turpmākie uzlabojumi

1. ESP neatzīst MQTT ziņojuma piegādi. Programmu var uzlabot, abonējot tēmu, kurā tiek publicēts ziņojums, lai apstiprinātu piegādi, vai Async MQTT bibliotēku var izmantot, lai ievietotu ziņojumu ar QoS 1.

2. OTA atjauninājums: ESP kodu var modificēt, lai nolasītu atjauninājuma MQTT tēmu un tādējādi ieslēgtu OTA režīmu, lai saņemtu failu.

3. ESP01 var aizstāt ar ESP-12, lai piekļūtu vairākiem ievades PIN kodiem, un tādējādi tam var pievienot vairāk sensoru. Tādā gadījumā saziņa, izmantojot 2 bitu metodi, nav iespējama. Pēc tam to var uzlabot, lai ieviestu I2C komunikāciju starp ATtiny un ESP. Tas ir nedaudz sarežģīti, bet praktiski. Man tas darbojas citā ierīcē, kur ATTiny nosūta rotācijas kodētāja vērtības uz ESP pa I2C līniju.

4. Pašreizējā shēma uzrauga ESP iekšējo Vcc. Ja mēs izmantojam ESP12, to var mainīt, lai nolasītu faktisko akumulatora līmeni, izmantojot ADC tapu.

5. Nākotnē es publicēšu arī izmaiņas, ko var izmantot kā atsevišķu sensoru, neizmantojot MQTT vai jebkuru mājas automatizācijas sistēmu. Sensors darbosies atsevišķi un var aktivizēt tālruņa zvanu - protams, tam ir nepieciešams interneta savienojums.

6. Un saraksts turpinās …

7. Aizsardzība pret akumulatoru - GATAVS (faktiskie ierīces attēli ir veci un tāpēc neatspoguļo MOSFET)

Ieteicams: