Мазмуну:

Сигнал PIR WiFi (жана үйдү автоматташтыруу): 7 кадам (сүрөттөр менен)
Сигнал PIR WiFi (жана үйдү автоматташтыруу): 7 кадам (сүрөттөр менен)

Video: Сигнал PIR WiFi (жана үйдү автоматташтыруу): 7 кадам (сүрөттөр менен)

Video: Сигнал PIR WiFi (жана үйдү автоматташтыруу): 7 кадам (сүрөттөр менен)
Video: ТАКУЮ ТЫ ЕЩЕ НЕ ВИДЕЛ!!! PTZ Wifi камера со СЛЕЖЕНИЕМ ЗА ЧЕЛОВЕКОМ 2024, Ноябрь
Anonim
Image
Image
Сигнал PIR WiFi (жана үйдү автоматташтыруу)
Сигнал PIR WiFi (жана үйдү автоматташтыруу)

Обзор

Бул көрсөтмө сизге үйүңүздүн автоматташтыруу программасында үй сигналынын PIRлери (пассивдүү инфракызыл сенсорлор) иштетилген акыркы датаны/убакытты (жана кошумча жолу менен тарыхты) көрүү мүмкүнчүлүгүн берет. Бул долбоордо мен OpenHAB менен кантип колдонуу керектигин талкуулайм (акысыз үй автоматташтыруу программасы, мен жеке колдоном), бирок ал MQTT колдогон башка үй автоматташтыруу программасы же тиркемеси менен иштейт (бул макалада кийинчерээк сүрөттөлгөн). Бул үйрөткүч сизди сигналдык башкаруу кутуңуздагы ойготкуч зоналарга кирип кеткен схеманы жана Wemos D1 мини (ESP8266 чипин колдонгон IOT платасы) менен кантип камсыздоо боюнча керектүү кадамдарды аткарат. бир же бир нече PIRs) иштетилгенде, Wemos MQTT протоколун колдонуп зымсыз билдирүүнү үйүңүздүн автоматташтыруу программасына жөнөтөт, ал ошол триггердин акыркы күнүн/убактысын көрсөтөт. Wemos программасы үчүн Arduino коду да берилет.

Киришүү

Жогорудагы сүрөттү мен iPhone'умдагы OpenHAB колдонмосундагы экрандардын бири аркылуу көрүп жатам. Күн/убакыт тексти PIRдин качан иштетилгенин тезирээк чагылдыруу үчүн түс менен коддолгон - ал кызыл (акыркы 1 мүнөттө ишке киргизилген), кызгылт сары (акыркы 5 мүнөттө ишке киргизилген), жашыл (акыркы 30 мүнөттө ишке киргизилген) көрсөтөт., көк (акыркы сааттын ичинде ишке киргизилген) же башка, кара. Күндү/убакытты чыкылдатуу менен, PIR триггерлеринин тарыхый көрүнүшү көрсөтүлөт, мында 1 1 иштетилет жана 0 бош турат. Мунун көптөгөн колдонуулары бар, мисалы, бул сиздин үйүңүздө болуу чечимин толукташы мүмкүн, ал сиз жок болсоңуз, кыймылды аныктай алат жана OpenHAB эрежелери аркылуу, телефонуңузга эскертмелерди жөнөтөт, сиз менин балдарымдын бар же жок экенин билүү үчүн колдоно аласыз. түн ортосунда туруу, алардын уктоочу бөлмөсүнүн сыртында жашаган PIRдин жардамы менен!

OpenHAB - бул мен колдонгон үй автоматташтыруу программасы, дагы көптөгөн башка нерселер бар - эгер алар MQTTди колдошсо, анда бул проектти сиз колдонгон программалык камсыздоого ылайыкташтырсаңыз болот.

Божомолдор

Бул көрсөтмө сизде мурунтан эле бар (же орнотот):

  • Албетте, үй сигнализациясы PIR (пассивдүү инфракызыл сенсорлор) менен жана сиз керектүү зымдарды туташтыруу үчүн сигнализациянын кутусуна кире аласыз.
  • OpenHAB (акысыз ачык булак үй автоматташтыруу программасы) иштеп жатат, бирок талкуулангандай ал MQTT тутумун камтышы мүмкүн болгон ар кандай үй автоматташтыруу программасы менен иштеши керек. Же болбосо, сиз кодду өзүңүздүн муктаждыктарыңызга жараша өзгөртө аласыз.
  • OpenHAB менен конфигурацияланган Mosquitto MQTT (же ушуга окшош) брокери

Эгерде сиз OpenHAB жана MQTT брокерин иштетпесеңиз, MakeUseOf веб -сайтындагы бул сонун макаланы караңыз

Мага эмне керек?

Зымсыз контроллерди түзүү үчүн сиз төмөнкү бөлүктөрдү булакташыңыз керек болот:

  • Wemos D1 mini V2 (камтылган ESP8266 зымсыз CHIP бар)
  • An LM339 салыштыргыч (бул PIRдин бош туруп калуусун текшерет)
  • Wemos үчүн 5V DC кубат булагы (ЖЕ, DC-DC buck converter. Эскертүү: LM7805 чыңалуу жөндөгүчү бул долбоордо кийин талкуулангандай бул колдонмо үчүн иштебеши мүмкүн)
  • Чыңалуу бөлүштүргүч үчүн эки резистор (өлчөмү сиздин сигналдык чыңалууңузга жараша болот, долбоордо кийинчерээк талкууланат)
  • Бир 1K ом резистору LM339 кубатын көзөмөлдөө үчүн ылдый каршылыктын ролун аткарат
  • LM339ду логикалык түрдө күйгүзүү үчүн бир 2N7000 (же окшош) MOSFET (мүмкүн кошумча, долбоордун кийинчерээк талкууланат)
  • Районду орнотуу жана тестирлөө үчүн ылайыктуу өлчөмдөгү нан
  • Баарын бири -бирине туташтыра турган панель зымдары
  • Керектүү шаймандар: каптал кескичтер, бир өзөктүү зым
  • DC көп метр (милдеттүү!)

1 -кадам: Ойготкуч системасын башкаруу кутусу

Сигнал системасын башкаруу кутусу
Сигнал системасын башкаруу кутусу

Биринчиден, эскертүүлөр жана баш тартуу

Жеке менде Bosch сигнализациясы бар. Мен сизге өзгөчө сигнализация тутумуңуз үчүн тиешелүү колдонмону жүктөп алууну жана аны менен таанышууну сунуштаар элем, анткени сиз зоналарды зым менен жабуу үчүн сигнализация системасын өчүрүшүңүз керек болот. Мен дагы башталардан мурун бул макаланы толугу менен окуп чыгууну сунуштаар элем!

Төмөндө сиз баштаардан мурун билишиңиз керек болгон нерселердин тизмеси келтирилген - улантуудан мурун алардын ар бирин окуп, түшүнүп алыңыз! Эгерде сиз сигнализация системаңызды бузуп койсоңуз жана/же аны оңдоо үчүн орнотуучусуна акча төлөсөңүз, мен эч кандай жоопкерчиликти албайм. Эгерде сиз төмөнкүлөрдү окуп, түшүнсөңүз жана зарыл болгон чараларды көрсөңүз, анда жакшы болушуңуз керек:

1. Менин ойготкуч тутумумда кутунун ичинде камдык батарейка бар болчу, ошондой эле капкактын ичиндеги бурмалоочу которгуч бар болчу (сигнализация тутумуна кирүүгө мүмкүндүк берет), ал тургай, сигналды сырттан өчүрүү, башкаруунун алдыңкы панелин алып салганда кутуча сигналды иштетти! Мен бул проекттин үстүндө иштеп жатып, айланып өтүү үчүн, мен бурмалоо коргоосун ажыратып, андан кийин бурмалоо которгучун кыска туташтырдым (жогорудагы сүрөттө көрсөтүлгөн калың кызыл зым)

2. Сигнал системасын кайра иштеткенде, болжол менен ~ 12 сааттан кийин сигнализациянын башкаруу панели ката коддору менен бип баштады. Колдонмо аркылуу ката коддорун аныктагандан кийин, бул мага эскертүү бергенин билдим:

  • Күн/убакыт коюлган эмес (мага кайра конфигурациялоо үчүн колдонмодон башкы код жана ачкыч ырааттуулугу керек болчу)
  • Камдык батарея туташтырылган эмес (оңдоо оңой, мен батарейканы кайра туташтырууну унутуп койгом)

3. Менин ойготкучумда, негизги сигнал тактасында PIRдин зымга туташтырылышы үчүн 4 х зоналуу байланыш блоктору (Z1 -Z4 менен белгиленген) бар, бирок менин сигнал системам чындыгында 8 зонага жөндөмдүү. Ар бир зонанын туташуу блогу чындыгында 2 х зонаны иштете алат (Z1 Z1 жана Z5, Z2 Z2 жана Z6 ж.б. кылат). Сигнал системасында кимдир бирөөнүн айтуусун токтотуу үчүн, жогоруда айтылгандай сигнализациянын капкагын ачуу же зымдарды PIRге кесүү үчүн камтылган коргоо бар. Бул EOL (линиянын аягы) резисторлору аркылуу ар бир зонанын бузулушун айырмалайт. Бул "линиянын аягында" жайгашкан атайын өлчөмдөгү резисторлор - башкача айтканда, PIRдин ичинде (же контролдоо кутусунун бузулган которгучунун, же сиренанын кутусунун же ошол зонага туташкан нерсенин) ичинде айтылгандай, бул резисторлор "бузуку" катары колдонулат коргоо ' - техникалык жактан, эгер кимдир бирөө PIRге кабелдерди кесип салса - анткени сигнализация системасы ошол PIRден белгилүү бир каршылыкты көрүүнү күтүп жатат, эгерде каршылык өзгөрсө, анда кимдир бирөө системаны бузган жана сигналды иштетет деп ойлойт.

Мисалы:

Менин ойготкучумда, "Z4" зонасында 2 зым бар, бири менин коридорумдагы PIRге, экинчиси сигнализацияны башкаруу кутусунун бузуучу которгучуна өчөт. PIR коридорунун ичинде 3300 омдук резистор бар. Башкаруу кутусунун бурмалоочу которгучуна чуркаган башка зымдын 6800 Ом резистору бар. Сигнал системасы "логикалык жактан" "Z4" менен "Z8" тамперлерин ушинтип айырмалайт. Ошо сыяктуу эле, "Z3" зонасында "Z7" түзгөн PIR (анын ичинде 3300 омдук каршылыгы бар) жана сиренанын бузуу которгучу (6800 омдук резистору бар) бар. Ойготкучту орнотуучу сигнализация системасын алдын ала конфигурациялаган болмок, ошондуктан ал ар бир зонага кандай түзмөк туташканын билет (жана EOL резисторунун өлчөмүн ылайыкташтырып өзгөрткөн, анткени сигнал системасы ар кандай EOL резисторлорун билүү үчүн программаланган. эч кандай шартта бул резисторлордун баасын өзгөртпөшүңүз керек!)

Жогоруда айтылгандардын негизинде, анткени ар бир зонада бир нече түзүлүштөр тиркелиши мүмкүн (каршылыктын ар кандай мааниси менен) жана V = IR (чыңалуу = ампер x каршылык) формуласын эстеп, анда бул ар бир зона ар кандай чыңалууга ээ болушу мүмкүн экенин билдириши мүмкүн. Бул бизди кийинки кадамга алып барат, ар бир зонаны өлчөө IDLE vs TRIGGERED чыңалуусу …

2 -кадам: Сигналдык зонанын чыңалуусун өлчөө

Сигнал зонасынын чыңалуусун өлчөө
Сигнал зонасынын чыңалуусун өлчөө
Сигнал зонасынын чыңалуусун өлчөө
Сигнал зонасынын чыңалуусун өлчөө

Сигнал тутумуңуздун башкы тактасына кирүү мүмкүнчүлүгүн алгандан кийин (жана эгер бар болсо, бурмалоо которгучун айланып өтүңүз; мурунку кадам боюнча), сигнализация системаңызды кайра күйгүзүңүз. Биз азыр ар бир зонанын чыңалуусун өлчөөбүз керек, качан анын ИДЛЕСИ (PIRдин алдында эч кандай кыймыл жок) vs TRIGGERED (PIR кыймылды аныктады) Калем менен кагазды алыңыз, ошондо сиз чыңалууңуздун көрсөткүчтөрүн жаза аласыз.

ЭСКЕРТҮҮ: Сигнал тутумуңуздун басымдуу бөлүгү 12В туруктуу токто иштейт окшойт, бирок анын баштапкы кубаттуулугу 220В (же 110В) AC болот, трансформатору ACдан DCге өзгөртөт. Колдонмону окуңуз жана эч кандай AC терминалын өлчөбөөңүздү камсыз кылыңыз !!! Бул беттеги менин сигнализациямдын скриншотуна ылайык, сүрөттүн эң ылдыйында AC кубаты бар экенин көрө аласыз, ал 12V DCге айландырылган. Биз белгилеген кызыл кутучаларда 12В DCди өлчөп жатабыз. Эч качан AC кубаттуулугуна тийбеңиз. Өтө этият болуңуз!

PIR чыңалуусун өлчөө

Менде 4 x ZIR Z1 аркылуу Z4ке туташкан. Ар бир зонаңызды төмөндөгүдөй өлчөңүз.

  1. Биринчиден, сигнал панелиндеги GND терминалын жана зонанын терминалдарын аныктаңыз. Мен муну Bosch ойготкучумдун көрсөтмөсүндө көрсөтүлгөн сүрөттө баса белгилеп койдум.
  2. Мультиметрди колго алып, чыңалууңузду 20 В туруктуу токко коюңуз. Кара (COM) кабелин мультиметрден сигналдын GND терминалына туташтырыңыз. Мультиметрден келген кызыл (+) коргошун биринчи зонага коюңуз - менин учурда "Z1" деп белгиленген. Чыңалуу көрсөткүчүн жазыңыз. Калган зоналар үчүн ошол эле кадамдарды жасаңыз. Менин чыңалуу өлчөөлөрүм төмөнкүчө:
  • Z1 = 6.65V
  • Z2 = 6.65V
  • Z3 = 7.92V
  • Z4 = 7.92V

Жогоруда айтылгандай, менин алгачкы эки зонамда PIRдин тиркемелери бар. Акыркы эки зонада PIRлер да, корголбогон коргоо да бар (Z3 башкаруу кутусунун бузулушу, Z4 сиренанын бузулушу) Чыңалуудагы айырмачылыктарга көңүл буруңуз.

3. Бул кийинки кадам үчүн сизге 2 адам керек болот. Сиз ошондой эле кайсы зонада PIR экенин билишиңиз керек болот. Артка кайтып, биринчи зонадагы чыңалууну окуңуз. Эми үйүңүзгө кимдир бирөөнү PIRдин алдына алып келиңиз, чыңалуу төмөндөшү керек. Жаңы чыңалуу көрсөткүчүнө көңүл буруңуз. Менин учурда, PIRлер иштетилгенде, чыңалуу төмөнкүчө окулат:

  • Z1 = 0V
  • Z2 = 0V
  • Z3 = 4.30V
  • Z4 = 4.30V

Жогоруда айтылгандай, мен зоналар 1 жана 2 иштетилгенде, чыңалуу 6,65Вдан 0Вге чейин төмөндөй турганын көрө алам. Бирок 3 жана 4 зоналар иштетилгенде, чыңалуу 7.92Vдан 4.30Vга чейин төмөндөйт.

12V электр булагын өлчөө

Биз долбоорубузду кубаттоо үчүн сигнализациянын кутусунан 12V DC терминалын колдонобуз. Биз чыңалууну сигналда 12В туруктуу токтон тартып өлчөөбүз керек. Бул 12V деп айтылганы менен, биз такыраак окууну билишибиз керек. Менин учурда, ал иш жүзүндө 13.15V окуйт. Муну жазыңыз, кийинки баскычта сизге бул баа керек болот.

Эмне үчүн биз чыңалууну өлчөп жатабыз?

Ар бир PIR үчүн чыңалууну өлчөөбүздүн себеби, биз түзө турган схема. Биз бул долбоордун негизги электр компоненти катары LM339 төрт дифференциалдык салыштыруучу чипти (же төрт оп-амп компараторун) колдонобуз. LM339до 4 көз карандысыз чыңалуу салыштыргычтары бар (4 канал), анда ар бир канал 2 х кирүү чыңалуусун алат (бир инверттөө (-) жана бир инвертир эмес (+) киргизүү, диаграмманы караңыз) Эгерде инверттик кирүү чыңалуусунун чыңалуусу андан төмөн түшүшү керек айландырылбаган чыңалуу, анда анын тиешелүү өндүрүшү жерге тартылат. Ошо сыяктуу эле, эгерде инвертирленбеген киргизүү чыңалуусу инверттик кирүүдөн төмөн түшүп кетсе, анда чыгаруу Vccке чейин тартылат. Ыңгайлуу, менин үйүмдө менде 4 жолу сигналдык PIR/зонасы бар - андыктан ар бир зона компаратордун ар бир каналына зым тартылат. Эгерде сизде 4 x PIRден ашык болсо, сизге көбүрөөк каналы бар компаратор же башка LM339 керек болот!

Эскертүү: LM339 нано-амперде энергияны керектейт, ошондуктан учурдагы сигнал системасынын EOL каршылыгына таасир этпейт.

Эгерде бул түшүнүксүз болсо, кийинки кадамга өтүңүз, баары бир биз аны зымга байлагандан кийин мааниси жакшыра баштайт!

3 -кадам: Чыңалуу бөлүштүргүчтү түзүү

Image
Image

Чыңалуу бөлүштүргүч деген эмне?

Чыңалуу бөлүштүргүч - 2 х резистору (же андан көп) катары менен келген схема. Биз биринчи каршылыгыбызга (R1) чыңалуу беребиз (R1) R1дин экинчи буту экинчи каршылыктын биринчи бутуна (R2), R2дин экинчи учу GNDге туташат. Андан кийин R1 жана R2 ортосундагы байланыштан чыгуу чыңалуусун (Vout) алабыз. Бул чыңалуу LM339 үчүн биздин таяныч чыңалуубузга айланат. Чыңалуу бөлүштүргүчтөрдүн иштеши жөнүндө көбүрөөк маалымат алуу үчүн Adohms youtube видеосун караңыз

(Эскертүү: резисторлордун полярдуулугу жок, андыктан аларды эки жакка тең зым менен туташтырса болот)

Биздин шилтеме чыңалуусун эсептөө

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

Менин ойготкучумду мисал кылып…

Зонанын боштук чыңалуусу Z1 = 6.65V, Z2 = 6.65V, Z3 = 7.92V, Z4 = 7.92V болгон. Эң төмөнкү боштук чыңалуусу 6.65В

Зонанын чыңалуусу: Z1 = 0V, Z2 = 0V, Z3 = 4.30V, Z4 = 4.30V. Эң жогорку чыңалуу 4.30V

Ошентип, биз 4.30V менен 6.65V ортосунда жарым жолду тандашыбыз керек (так болушу керек эмес, болжол менен) Менин учурда, менин чыңалуу чыңалуум 5.46V тегерегинде болушу керек. Эскертүү: Эгерде эң төмөнкү боштук жана эң көп иштетилген чыңалуу ар кандай чыңалууга алып келген бир нече зоналарга байланыштуу бири -бирине абдан жакын болсо, анда 2 же андан көп чыңалуу бөлүштүргүчтөрүн түзүү керек болушу мүмкүн.

Чыңалуу бөлүүчү үчүн каршылыгыбыздын маанилерин эсептөө

Азыр бизде чыңалуу чыңалуусу бар, биз чыңалуу бөлүштүргүчтү түзүш үчүн кандай чоңдуктагы резисторлорду эсептеп чыгышыбыз керек. Биз сигналдан 12V туруктуу чыңалуу булагын (Vs) колдонобуз. Бирок, мурунку кадамга ылайык, биз 12V DC тоюн ченегенде, биз 13.15V алдык. Булак катары бул маанини колдонуп, чыңалуу бөлүштүргүчүн эсептешибиз керек.

Ом мыйзамын колдонуп Voutту эсептөө …

Vout = Vs x R2 / (R1 + R2)

… Же онлайн чыңалуу бөлүштүргүч эсептегичти колдонуңуз:-)

Сиз каалаган натыйжага жеткенге чейин резистордун баалуулуктары менен эксперимент жүргүзүшүңүз керек болот. Менин учурда, ал R1 = 6.8k ohm жана R2 = 4.7K ohm менен иштелип чыккан, узак формада төмөнкүдөй эсептелген:

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61, 805/11, 500

Vout = 5.37V

4 -кадам: WM Up LM339

Wemos D1 Mini'ди кошуу
Wemos D1 Mini'ди кошуу

LM339 инверттөөчү киргизүүлөргө чыңалуу бөлүүчү

LM339 компаратору жөнүндө мурда айтылгандай, ага 2 жолу кирүү керек. Бири ар бир каналга инверттелбеген (+) терминалга ар бир PIRден чыңалуу болот, экинчиси-биздин инверттөөчү (-) терминалга болгон референс чыңалуубуз болот. Шилтеме чыңалуусу бардык 4 компаратордун инверттөөчү киришин тойгузушу керек. Бул кадамдарды жасоодон мурун сигнализация системаңызды өчүрүңүз.

  • Сигнал тутумундагы 12В DC блогунан + панелдеги темир жолго чейин өткөрүңүз *
  • Сигнал системасындагы GND блогунан зым өткөрүңүз
  • LM339 компараторун нан тактасынын ортосуна орнотуңуз (оюк 1 -пинге жакын экенин көрсөтөт)
  • Чыңалуу бөлүүчү схеманы жана бөлүнгөн чыңалуу үчүн зымды түзүү үчүн 2 х резисторлорду орнотуңуз
  • Зымдарды "чыңалууга бөлүнгөн" Voutтан ар бир LM339 инверттөөчү терминалга өткөрүңүз

* КЕҢЕШ: мүмкүн болсо кубаттуулук үчүн аллигатор клипин колдонуңуз, анткени бул сиздин долбоорго ON/OFF кубатын берүүнү жеңилдетет ** МААНИЛҮҮ! Эгерде сиз Wemosту Ойготкуч панелинен иштетип жатсаңыз, MOSFET талап кылынышы мүмкүн! Менин учурда, LM339, Wemos жана Alarm бардыгы бир эле булактан энергия алышат (б.а. сигнализация системасынын өзү) Бул мага бирдиктүү кубат туташуусу менен бардык нерсеге кубаттуулукту күйгүзүүгө мүмкүндүк берет. Бирок, демейки боюнча, Wemosдогу GPIO казыктары "INPUT" казыктары катары аныкталат - демек, алар кандай гана чыңалса да, ошол булакка таянып, туура чыңалуу деңгээлин камсыз кылуу үчүн (мин/максималдуу деңгээлдер) Wemos утуп алган. кулап же күйүп кетпейт. Менин учурда, сигнализация системасы өз күчүн алат жана жүктөө ырааттуулугун өтө тез баштайт - ушунчалык тез, муну Wemos жүктөп, GPIO казыктарын "INPUT_PULLUP" деп жарыялоодон мурун жасайт (чыңалуу ички ичинде тартылган) чип). Бул чыңалуудагы айырмачылыктар бүт система кубатка ээ болгондо Wemosтун кыйрашына алып келет дегенди билдирбейт. Мунун бирден бир жолу - кол менен өчүрүү жана Вемосту күйгүзүү. Муну чечүү үчүн MOSFET кошулат жана LM339ду иштетүү үчүн "логикалык которгуч" катары иштейт. Бул Wemosко жүктөөгө, 4 х GPIO казыктарын "INPUT_PULLUP" деп коюуга, бир нече секундга кечиктирүүгө жана андан кийин (башка GPIO пин D5 аркылуу OUTPUT катары) GPIO pin D5 аркылуу "HIGH" сигналын MOSFETке жөнөтүүгө мүмкүндүк берет, LM339ду логикалык түрдө күйгүзөт. Мен жогоруда көрсөтүлгөндөй зым менен туташууну сунуштайт элем, бирок эгер сиз Wemos меникиндей кыйрап жатканын байкасаңыз, анда сиз MOSFETти 1 к омдук резистор менен кошууга туура келет. Муну кантип жасоо керектиги жөнүндө көбүрөөк маалымат алуу үчүн, бул көрсөтмөнүн аягына караңыз.

Ойготкуч зоналар LM339 инверттик эмес киргизүүлөргө

Биз азыр сигналдарды башкаруу панелиндеги ар бир зонадан зымдарды LM339 компараторунун киришине чейин иштетишибиз керек. Сигнал системасы дагы эле өчүк болгондо, ар бир зона үчүн LM339 компараторундагы ар бир инверттелбеген (+) киришке зым кошулат. Мисалы, менин системамда:

  • Z1 тартып Wire LM339 киргизүү 1+ барат
  • Z2ден келген зым LM339 киришине 2+ барат
  • Z3 тартып Wire LM339 киргизүү 3+ барат
  • Z4 тартып Wire LM339 киргизүү 4+ барат

Эгерде сиз эскертүү берсеңиз, LM339 3-кадамдын астындагы пин-чыккыла. Бүткөндөн кийин, сиздин нанды бул кадамда көрсөтүлгөн сүрөттө окшош болушу керек.

Сигнал системасын күйгүзүңүз жана чыңалуу бөлүштүргүчтөн чыккан чыңалууну өлчөңүз, бул сиздин эсептөө чыңалууңузга чейин эсептелгендей.

5 -кадам: Wemos D1 Mini'ди туташтыруу

Wemos D1 мини зымдары

Азыр бизде бардык LM339 кириштери кам көрүлдү, эми биз Wemos D1 мини менен зымдануубуз керек. Ар бир LM339 чыгаруу пини Wemos GPIO (жалпы максаттагы киргизүү/чыгаруу) пинине барат, биз аны код аркылуу кирүүчү пин катары белгилейбиз. Wemos анын Vcc (киргизүү булагы) чыңалуусу катары 5В максимумга чейин жетет (бирок муну 3.3Vга чейин жөнгө салат) Биз LV7805 чыңалуу жөндөгүчүн колдонобуз (EDIT: төмөндө караңыз) Wemosко кубат берүү үчүн 5V. LM7805 маалымат табличкасы, панелдин сүрөтүндө көрсөтүлгөндөй, кубаттуулукту жумшартуу үчүн жөнгө салуучунун ар бир тарабына зымдуу конденсатор керек экенин көрсөтүп турат. Конденсатордун узун буту оң (+), андыктан анын туура жолго салынганын текшериңиз.

Чыңалуу жөндөгүчү чыңалууну алат (сол капталдагы пин), жерге (ортоңку пин) жана чыңалууга (оң капталдагы пин) Сиздин чыңалуучуңуз LM7805тен айырмаланып турса, эки жолу текшерип көрүңүз.

(EDIT: Мен сигнализация панелинен келген амперлер LM7805 иштете албаган өтө жогору экенин көрдүм. Бул LM7805тин кичинекей жылыткычында көп жылуулукту пайда кылып, анын иштебей калышына алып келди жана өз кезегинде Wemosтун токтоп калышына алып келди. Мен LM7805ти жана конденсаторлорду DC-DC бак конвертерине алмаштырдым жана андан бери эч кандай көйгөй болгон жок. Буларды туташтыруу абдан оңой. Сигналдан кирүү чыңалуусун туташтырып, адегенде мультиметрге туташтырып, потенциометрдин бурамасын колдонуңуз жана чыгаруу чыңалуусу ~ 5V болгонго чейин тууралаңыз)

GPIO киргизүү казыктары

Бул долбоор үчүн биз төмөнкү казыктарды колдонуп жатабыз:

  • Z1 => пин D1
  • Z2 зонасы => пин D2
  • Z3 зонасы => пин D3
  • Z4 зонасы => пин D5

Бул кадамда көрсөтүлгөн панелдин сүрөтү боюнча LM339дан Wemos тактасындагы тиешелүү GPIO казыктарына чейин чыгууларды өткөрүңүз. Дагы, мен эмнени билдирерин түшүнүүнү жеңилдетүү үчүн, кириштерди жана дал келген чыгууларды түстүү код менен жаздым. Ардуинодогу ар бир GPIO пини "INPUT_PULLUP" деп аныкталат, демек алар кадимки колдонууда (IDLE) 3.3V чейин тартылат жана LM339 аларды PIR иштетилсе жерге түшүрөт. Код Өтө ТӨМӨНДӨН өзгөрүүнү аныктайт жана үй автоматташтыруу программасына зымсыз билдирүү жөнөтөт. Эгерде сизде бул көйгөй менен көйгөйлөр болсо, анда сиздин инверттөөңүз жана инверттенбөөңүз туура эмес болушу мүмкүн (эгер сиздин ПИРдин чыңалуусу көпчүлүк хобби PIRлерде болгондой эле жогору болуп кетсе, анда сиз байланыштарды каалайсыз. башкача)

Arduino IDE

Wemosту панелден алып салыңыз, биз азыр ага кодду жүктөшүбүз керек (бул жерде башка шилтеме) Мен муну кантип жасоо жөнүндө майда -чүйдөсүнө чейин айтпайм, анткени интернетте Wemosко же башка ESP8266га кодду жүктөө боюнча көптөгөн макалалар бар. такталар. USB кабелиңизди Wemos тактасына жана компьютериңизге сайыңыз жана Arduino IDEди күйгүзүңүз. Кодду жүктөп алып, долбооруңузда ачыңыз. Сиз туура такта орнотулганын жана долбооруңузга жүктөлгөнүн, ошондой эле туура COM порту тандалганын камсыз кылышыңыз керек (Куралдар, Порт). Сизге ошондой эле тийиштүү китепканалар орнотулган болушу керек (PubSubClient, ESP8266Wifi) Wemos тактасын эскизге киргизүү үчүн бул макаланы караңыз.

Төмөнкү коддорду өзгөртүп, зымсыз туташууңуз үчүн өзүңүздүн SSID жана сырсөзүңүздү алмаштырышыңыз керек болот. Ошондой эле, өзүнүн MQTT брокерине көрсөтүү үчүн IP дарегин өзгөртүңүз.

// WiFi

const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (172, 16, 223, 254)

Өзгөртүлгөндөн кийин, кодуңузду текшерип, USB кабели аркылуу Wemos тактасына жүктөңүз.

Эскертүүлөр:

  • Эгерде сиз башка GPIO портторун колдонуп жатсаңыз, анда кодду тууралашыңыз керек болот. Эгерде сиз менден көбүрөөк же азыраак зоналарды колдонуп жатсаңыз, анда кодду жана TOTAL_ZONES = 4 тууралашыңыз керек болот; ылайыктуу туруктуу.
  • Менин ойготкуч системамды ишке киргизгенде, сигнализация системасы бардык 4 x PIR'лердин кубаттуулугун текшерет, алар бардык байланышкан GPIO -ны жерге түшүрүшөт, бул Wemosтун зоналар иштей баштады деп ойлоосуна алып келет. Код, эгер сигнализация системасы иштеп жатат деп ойлогондой, бир убакта бардык 4 х зоналарды активдүү көрсө, MQTT билдирүүлөрдү жөнөтүүнү этибарга албайт.

Жүктөө үчүн башка шилтеме бул жерде

6 -кадам: Тестирлөө жана OpenHAB конфигурациясы

Тестирлөө жана OpenHAB конфигурациясы
Тестирлөө жана OpenHAB конфигурациясы

MQTT тестирлөө

MQTT "жазылуу / жарыялоо" билдирүү тутуму. Бир же бир нече түзмөк "MQTT брокери" менен сүйлөшүп, белгилүү бир темага "жазыла" алат. Ошол эле темага "жарыяланган" башка түзмөктөн келген бардык билдирүүлөр брокер тарабынан ага жазылган бардык түзмөктөргө сүрүлүп чыгарылат. Протоколду колдонуу өтө жеңил жана жөнөкөй жана бул жердегидей эле жөнөкөй иштетүүчү система катары кемчиликсиз. Тестирлөө үчүн, сиз Wemosтон MQTT брокерине MQTT келген билдирүүлөрдү Mosquitto сервериңизде төмөнкү буйрукту аткаруу менен көрө аласыз (Mosquitto - бул MQTT Broker программалык камсыздоонун бири). Бул буйрук кирүүчү каттарга жазылат:

mosquitto_sub -v -t openhab/alarm/status

Сиз Wemosтон келген билдирүүлөрдү 30 секунд сайын же "1" ("мен тирүүмүн" деген мааниси менен) келип турушу керек. Эгерде сиз туруктуу "0" (же жооп жок) көрсөңүз, анда эч кандай байланыш жок. Сиз келе жаткан 1 санын көргөндөн кийин, бул Wemos MQTT брокери менен байланышып жатат дегенди билдирет (бул кантип иштээри жөнүндө көбүрөөк маалымат алуу үчүн "MQTT Last Will and Testament" издеңиз же бул чын эле жакшы блогго кирүүнү көрүңүз).

Байланыш функционалдуу экенин далилдегенден кийин, биз MQTT аркылуу зонанын абалы жөнүндө кабар алып жатканын текшере алабыз. Төмөнкү темага жазылыңыз (# - бул жапайы белги)

mosquitto_sub -v -t openhab/alarm/#

Кадимки статус билдирүүлөрү, ошондой эле Wemosтун IP дареги кириши керек. PIRдин алдында жүрүңүз, жана сиз ошондой эле зонанын маалыматы АЧЫК экенин, андан кийин экинчисине жакыныраак убакыттан кийин жабык экенин көрсөтүшүңүз керек:

openhab/ойготкуч/абал 1

openhab/alarm/zone1 АЧЫК

openhab/alarm/zone1 ЖАБЫК

Бул иштеп баштагандан кийин, биз OpenHABты GUIде сонун чагылдырылышы үчүн конфигурациялай алабыз.

OpenHAB конфигурациясы

OpenHAB үчүн төмөнкү өзгөртүүлөр талап кылынат:

'alarm.map' файлын өзгөртүү: (милдеттүү эмес, тестирлөө үчүн)

CLOSED = IdleOPEN = TriggeredNULL = Белгисиз- = Белгисиз

'status.map' файлын өзгөртүү:

0 = Ишке ашкан жок

1 = Онлайн -= ТӨМӨН! NULL = белгисиз

'items' файлы:

String alarmMonitorState "Alarm Monitor [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAddress "Alarm Monitor IP [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Number zone1_Chart_Period "Zone 1 Chart" Contact alarmZone1State "Zone 1 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: state: default "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Number zone2_Chart_Period" Zone 2 Chart "Contact alarmZone2State" Zone 2 State [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" First Hall PIR [%1 $ ta %1 $ tr] "Number zone3_Chart_Period" Zone 3 Chart "Contact alarmZone3State" Zone 3 абал [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" Bedroom PIR [%1 $ ta%1 $ tr] "Номери zone4_Chart_Period "Zone 4 Chart" Contact alarmZone4State "Zone 4 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: абал: демейки "} String alarmZone4Trigger" Башкы зал PIR [%1 $ ta %1 $ tr]"

'сайт картасы' файлы (анын ичинде rrd4j графиги):

Текст пункту = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Item item = zone1_Chart_Period label = "Мезгил" карталары = [0 = "Саат", 1 = "Күн", 2 = "Апта"] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0, zone1_Chart_Period = = Башталбаган] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} Текст пункту = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Item item = zone2_Chart_Period label = "Период" карталары = [0 = "Саат", 1 = "Күн", 2 = "Апта"] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0, zone2_Chart_Period == Башталбаган] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} Текст пункт = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone3_Chart_Period label = "Period" mappings = [0 = "Саат", 1 = "Күн", 2 = "Апта"] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0, zone3_Chart_Period == Башталбаган] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} Текст item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch item = zone4_Chart_Period label = " Мөөнөт "салыштыруулар = [0 =" Саат ", 1 =" Күн ", 2 =" Апта "] Сүрөт url =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0, zone4_Chart_Period == Башталбаган] Сүрөт url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] Image url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // ОПЦИОНАЛДЫ, бирок статусун жана IP адресин диагноздоо үчүн ыңгайлуу ss Text item = alarmMonitorState Text item = alarmMonitorIPAddress

"эрежелер" файлы:

эреже "Ойготуу зонасы 1 абалын өзгөртүү"

качан ItemZarZone1State АЧЫК болуп өзгөргөндө postUpdate (alarmZone1Trigger, жаңы DateTimeType ()) alarmZone1State.state = ЖАБЫК аягы

эреже "Ойготуу зонасы 2 абалын өзгөртүү"

качан ItemZarZone2State АЧЫК болуп өзгөргөндө postUpdate (alarmZone2Trigger, жаңы DateTimeType ()) alarmZone2State.state = ЖАБЫК аягы

эреже "Сигнал зонасынын 3 абалынын өзгөрүшү"

качан ItemZarZone3State АЧЫК болуп өзгөргөндө postUpdate (alarmZone3Trigger, жаңы DateTimeType ()) alarmZone3State.state = ЖАБЫК аягы

эреже "Сигнал зонасы 4 абалын өзгөртүү"

качан ItemZarZone4State АЧЫК болуп өзгөргөндө postUpdate (alarmZone4Trigger, жаңы DateTimeType ()) alarmZone4State.state = ЖАБЫК аягы

OpenHAB конфигурациясын өзүңүздүн ыңгайлаштырууңуз үчүн бир аз өзгөртүшүңүз керек болот.

Эгерде сизде PIRлердин иштетилишинде кандайдыр бир көйгөйлөр бар болсо, анда башынан баштаңыз жана чынжырдын ар бир бөлүгү үчүн чыңалууну өлчөңүз. Сиз буга ыраазы болгондон кийин, зымыңызды текшериңиз, жалпы негиз бар экенин текшериңиз, Wemosтогу билдирүүлөрдү сериялык мүчүлүштүктөрдү оңдоо консолу аркылуу текшериңиз, MQTT байланышын текшериңиз жана трансформацияңыздын, элементтердин жана сайт картасынын файлдарынын синтаксисин текшериңиз.

Жакшы ийгилик!

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