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

WiFi дохиоллын PIR (мөн гэрийн автоматжуулалт): 7 алхам (зурагтай)
WiFi дохиоллын PIR (мөн гэрийн автоматжуулалт): 7 алхам (зурагтай)

Видео: WiFi дохиоллын PIR (мөн гэрийн автоматжуулалт): 7 алхам (зурагтай)

Видео: WiFi дохиоллын PIR (мөн гэрийн автоматжуулалт): 7 алхам (зурагтай)
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Долдугаар сарын
Anonim
Image
Image
WiFi дохиоллын PIR (мөн гэрийн автоматжуулалт)
WiFi дохиоллын PIR (мөн гэрийн автоматжуулалт)

Тойм

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

Танилцуулга

Дээрх зураг бол миний iPhone дээрх OpenHAB аппликейшны аль нэг дэлгэцээр харж байгаа зүйл юм. Огноо/цагийн текстийг өнгөт кодоор кодчилсон бөгөөд энэ нь PIR идэвхжсэн цагийг илүү хурдан харуулах болно - улаан (сүүлийн 1 минутын дотор идэвхжсэн), улбар шар (сүүлийн 5 минутын дотор идэвхжсэн), ногоон (сүүлийн 30 минутын дотор идэвхжсэн) харагдана., цэнхэр (сүүлийн нэг цагийн дотор идэвхжсэн) эсвэл өөрөөр хэлбэл хар. Огноо/цаг дээр дарахад PIR триггерүүдийн түүхэн дүрслэл гарч ирэх бөгөөд 1 нь идэвхжсэн, 0 нь идэвхгүй байна. Үүнийг ашиглах олон арга бий, жишээлбэл, энэ нь таны гэрт байх шийдлийг нэмж өгөх болно, хэрэв та хол байгаа бол хөдөлгөөнийг илрүүлж, OpenHAB дүрмээр дамжуулан утсандаа мэдэгдэл илгээж, миний хүүхдүүд байгаа эсэхийг мэдэхийн тулд үүнийг миний адил ашиглаж болно. унтлагын өрөөнийхөө гадаа байрладаг PIR -ийн өдөөгдсөн шөнө дунд босох!

OpenHAB бол миний ашигладаг гэрийн автоматжуулалтын програм юм, бусад олон програмууд байдаг бөгөөд хэрэв тэд MQTT -ийг дэмждэг бол та энэ төслийг өөрийн ашиглаж буй програм хангамжид тохируулан өөрчилж болно.

Таамаглал

Энэхүү зааварчилгаа нь танд аль хэдийн байгаа (эсвэл тохируулах болно) гэж үзнэ.

  • Мэдээжийн хэрэг, гэрийн дохиоллын систем нь идэвхгүй хэт улаан туяаны мэдрэгчтэй бөгөөд шаардлагатай утсыг холбохын тулд дохиоллын хяналтын хайрцагт нэвтрэх боломжтой болно.
  • OpenHAB (үнэгүй эх сурвалжтай гэрийн автоматжуулалтын програм хангамж) ажиллаж байгаа боловч энэ нь MQTT холболтыг багтаасан аливаа гэрийн автоматжуулалтын програмтай ажиллах ёстой. Эсвэл та өөрийн хэрэгцээнд нийцүүлэн кодыг өөрөө өөрчилж болно.
  • Шумуулын MQTT (эсвэл үүнтэй төстэй) брокер нь OpenHAB -ээр тохируулагдсан бөгөөд холбох үүргийг гүйцэтгэдэг (MQTT бол мессеж бичих, нийтлэх хэлбэрийн протокол бөгөөд хөнгөн бөгөөд төхөөрөмжүүдийн хоорондох харилцааг сайжруулдаг)

Хэрэв та OpenHAB болон MQTT брокер ажиллуулдаггүй бол MakeUseOf вэбсайт дээрх энэхүү гайхалтай нийтлэлийг үзнэ үү.

Надад юу хэрэгтэй вэ?

Утасгүй хянагчийг бий болгохын тулд та дараах хэсгүүдийг эх сурвалжаас авах шаардлагатай болно.

  • Wemos D1 mini V2 (ESP8266 утасгүй CHIP суулгагдсан)
  • LM339 харьцуулагч (энэ нь идэвхжсэн болон идэвхгүй болсон PIR -ийг шалгах болно)
  • Wemos-д зориулсан 5V тогтмол гүйдлийн тэжээлийн эх үүсвэр (OR, DC-DC buck хувиргагч. Анхаарна уу: LM7805 хүчдэлийн зохицуулагч нь энэ төслийн дараа хэлэлцсэн болно)
  • Хүчдэл хуваагчийн хоёр резистор (хэмжээ нь таны дохиоллын хүчдэлээс хамаарна, төслийн дараа хэлэлцсэн болно)
  • LM339 хүчийг удирдахын тулд доош татах эсэргүүцэл болох 1K ом эсэргүүцэл
  • LM339 -ийг логикоор асаахын тулд нэг 2N7000 (эсвэл үүнтэй төстэй) MOSFET (заавал биш, төслийн дараа хэлэлцсэн болно)
  • Хэлхээ тохируулах, туршихад тохиромжтой хэмжээтэй талхны хавтан
  • Бүгдийг хооронд нь холбох талхны хавтангийн утас
  • Шаардлагатай багаж хэрэгсэл: хажуу таслагч, нэг судалтай утас
  • DC олон метр (заавал байх ёстой!)

Алхам 1: Сэрүүлгийн системийн хяналтын хайрцаг

Сэрүүлгийн системийн хяналтын хайрцаг
Сэрүүлгийн системийн хяналтын хайрцаг

Нэгдүгээрт, зарим анхааруулга, анхааруулгаас татгалзаарай

Би хувьдаа Bosch дохиоллын системтэй. Бүсүүдийг холбохын тулд дохиоллын системийг унтраах шаардлагатай тул ажиллуулахаасаа өмнө дохиоллын системийнхээ холбогдох гарын авлагыг татаж аваад танилцахыг зөвлөж байна. Эхлэхээсээ өмнө энэ нийтлэлийг бүхэлд нь уншихыг танд зөвлөж байна!

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

1. Миний дохиоллын систем нь хайрцгийн дотор нөөц батерейтай байсан бөгөөд тагны дотор талд хөндлөнгийн унтраалга (дохиоллын системийн самбар руу нэвтрэх боломжийг олгодог) байсан тул удирдлагын урд самбарыг салгахдаа дохиоллыг гаднаас нь унтраасан байв. хайрцаг сэрүүлгийг өдөөсөн! Төсөл дээр ажиллаж байхдаа үүнийг тойрч гарахын тулд би хөндлөнгийн хамгаалалтыг тойрч, залгуурыг богино холбосон (дээрх зураг дээр үзүүлсэн зузаан улаан утас)

2. Сэрүүлгийн системийг дахин асаахад ойролцоогоор ~ 12 цагийн дараа дохиоллын хяналтын самбар алдааны кодтой дуугарч эхлэв. Гарын авлагын тусламжтайгаар алдааны кодыг тодорхойлсны дараа надад дараахь зүйлийг анхааруулж байгааг олж мэдэв.

  • Огноо/цагийг тохируулаагүй байна (дахин тохируулахын тулд надад гарын авлагаас өгсөн мастер код болон түлхүүр дараалал хэрэгтэй байсан)
  • Нөөц батерей холбогдоогүй байна (засварлахад хялбар, би зайгаа буцааж залгахаа мартсан байсан)

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

Жишээлбэл:

Миний сэрүүлэг дээр "Z4" бүсэд 2 утастай, нэг нь миний коридорын PIR руу, нөгөө нь дохиоллын хяналтын хайрцгийн хөндлөнгийн унтраалга руу унтардаг. Коридорын PIR дотор 3300 ом эсэргүүцэлтэй. Хяналтын хайрцгийн хөндлөнгийн унтраалга руу гүйдэг нөгөө утас нь 6800 ом эсэргүүцэлтэй байдаг. Дохиоллын систем (логикоор) "Z4" ба "Z8" tampers -ийг ингэж ялгаж харуулдаг. Үүний нэгэн адил "Z3" бүс нь PIR (дотор нь 3300 ом эсэргүүцэлтэй), мөн "Z7" -ийг бүрдүүлдэг дуут дохиоллын унтраалга (6800 ом эсэргүүцэлтэй) байдаг. Сэрүүлгийн суулгагч нь дохиоллын системийг урьдчилан тохируулсан байх ёстой бөгөөд ингэснээр бүс тус бүрт ямар төхөөрөмж холбогдсоныг мэддэг (мөн EOL резисторын хэмжээг өөрчилсөн, учир нь дохиоллын систем нь өөр өөр EOL резисторуудын хэмжээг мэдэхийн тулд програмчлагдсан байдаг. Та ямар ч нөхцөлд эдгээр резисторуудын утгыг өөрчлөх ёсгүй!)

Дээр дурдсан зүйлс дээр үндэслэн бүс бүрт хэд хэдэн төхөөрөмж хавсаргасан байж магадгүй (эсэргүүцлийн өөр утгатай), мөн V = IR (хүчдэл = ампер x эсэргүүцэл) томъёог санаж байгаа нь бүс тус бүр өөр өөр хүчдэлтэй байж болно гэсэн үг юм. Энэ нь биднийг IDLE ба TRIGGERED хүчдэлийн бүс бүрийг хэмжиж дараагийн алхам руу хөтөлнө.

Алхам 2: Сэрүүлгийн бүсийн хүчдэлийг хэмжих

Сэрүүлгийн бүсийн хүчдэлийг хэмжих
Сэрүүлгийн бүсийн хүчдэлийг хэмжих
Сэрүүлгийн бүсийн хүчдэлийг хэмжих
Сэрүүлгийн бүсийн хүчдэлийг хэмжих

Сэрүүлгийн системийн үндсэн самбар руу нэвтрэх эрхийг олж авсны дараа (хэрэв танд байгаа бол хөндлөнгийн унтраалгыг алгассан бол өмнөх алхамуудын дагуу) дохиоллын системийг дахин асаана уу. Идэвхгүй (PIR -ийн урд ямар ч хөдөлгөөнгүй) ба TRIGGERED (PIR хөдөлгөөнийг илрүүлээгүй) үед бид бүс бүрийн хүчдэлийг хэмжих хэрэгтэй бөгөөд ингэснээр та хүчдэлийн уншилтаа бичиж болно.

АНХААРУУЛГА: Таны дохиоллын системийн ихэнх хэсэг нь ихэвчлэн 12 В тогтмол гүйдэл дээр ажилладаг боловч эхний тэжээл нь 220 В (эсвэл 110 В) AC, трансформаторын хүчийг AC -аас DC болгон хувиргадаг. Гарын авлагыг уншиж, нэмэлт гүйдлийн терминал хэмжихгүй байхын тулд нэмэлт арга хэмжээ аваарай !!! Энэ хуудсан дээрх миний дохиоллын системийн дэлгэцийн зургаас харахад зургийн хамгийн доод хэсэг нь 12V DC болж хувирсан хувьсах гүйдлийн хүч байгааг харж болно. Бид онцолсон улаан хайрцагт 12V DC хэмжиж байна. АС тэжээлд хэзээ ч хүрч болохгүй. Маш болгоомжтой байгаарай!

PIR хүчдэлийг хэмжих

Надад Z1 -ээс Z4 -д холбогдсон 4 x PIR байна. Бүс бүрээ дараах байдлаар хэмжинэ.

  1. Нэгдүгээрт, дохиоллын самбар дээрх GND терминал ба бүсийн терминалуудыг тодорхойл. Би эдгээрийг Bosch дохиоллын гарын авлагаас үзүүлсэн зурган дээр онцлон тэмдэглэв.
  2. Мультиметрээ аваад хүчдэлийн хэмжилтийг 20V тогтмол гүйдэлд тохируулна уу. Мультиметрээс хар (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.30В
  • Z4 = 4.30В

Дээр дурдсанчлан 1 ба 2 -р бүсийг асаахад хүчдэл 6.65 В -оос 0 В хүртэл буурч байгааг би харж байна. Гэсэн хэдий ч 3 ба 4 -р бүсийг асаахад хүчдэл 7.92 В -оос 4.30 В хүртэл буурдаг.

12V цахилгаан хангамжийг хэмжих

Бид төслөө ажиллуулахын тулд дохиоллын хяналтын хайрцгаас 12V DC терминалыг ашиглах болно. Бид дохиоллын 12V DC тэжээлээс хүчдэлийг хэмжих хэрэгтэй. Хэдийгээр энэ нь аль хэдийн 12V гэж заасан боловч бид илүү нарийвчлалтай унших ёстой. Миний хувьд энэ нь үнэндээ 13.15V гэж уншдаг. Үүнийг бичээрэй, дараагийн алхамд танд энэ утга хэрэгтэй болно.

Бид яагаад хүчдэлийг хэмждэг вэ?

PIR бүрийн хүчдэлийг хэмжих шаардлагатай байгаа шалтгаан нь бидний үүсгэх хэлхээ юм. Бид энэ төслийн үндсэн цахилгаан бүрэлдэхүүн хэсэг болох LM339 дөрвөлжин дифференциал харьцуулагч чип (эсвэл дөрвөн оп-ампер харьцуулагч) ашиглах болно. LM339 нь 4 бие даасан хүчдэлийн харьцуулагчтай (4 суваг) бөгөөд суваг бүр нь 2х оролтын хүчдэл (нэг урвуу (-) ба нэг урвуу бус (+) оролт авдаг, диаграмыг үзнэ үү) урвуу хүчдэлгүй бол түүний холбогдох гаралтыг газардуулна. Үүний нэгэн адил хэрэв урвуу оролтын хүчдэл нь урвуу оролтоос доогуур байвал гаралтыг Vcc хүртэл татна. Тохиромжтой, миний байшинд надад 4 x дохиоллын PIR/бүс байдаг тул бүс бүрийг харьцуулагч дээрх суваг бүрт холбоно. Хэрэв танд 4 -өөс дээш PIR байгаа бол танд илүү олон сувагтай харьцуулагч эсвэл өөр LM339 хэрэгтэй болно!

Анхаарна уу: LM339 нь нано-ампер дахь хүчийг ашигладаг тул одоо байгаа дохиоллын системийн EOL эсэргүүцэлд нөлөөлөхгүй.

Хэрэв энэ нь ойлгомжгүй байвал дараагийн алхам руу үргэлжлүүлээрэй, гэхдээ бид үүнийг холбосны дараа илүү утга учиртай болно!

Алхам 3: Хүчдэл хуваагч үүсгэх

Image
Image

Хүчдэл хуваагч гэж юу вэ?

Хүчдэл хуваагч нь 2 x эсэргүүцэлтэй (эсвэл түүнээс дээш) цуваа бүхий хэлхээ юм. Бид эхний эсэргүүцэл (R1) -д (Вин) хүчдэл өгдөг. R1 -ийн нөгөө хөл нь хоёрдахь эсэргүүцлийн (R2) эхний хөлтэй, R2 -ийн нөгөө үзүүр нь GND -тэй холбогддог. Дараа нь бид R1 ба R2 хоорондох холболтоос гаралтын хүчдэл (Vout) авдаг. Энэ хүчдэл нь LM339 -ийн бидний лавлах хүчдэл болно. Хүчдэл хуваагч хэрхэн ажилладаг талаар нэмэлт мэдээлэл авахыг хүсвэл youtube дээрх Adohms видеог үзнэ үү

(Анхаарна уу: резисторууд нь туйлшралгүй тул аль ч утсаар холбож болно)

Манай лавлах хүчдэлийг тооцоолж байна

Таны 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.30 В байна

Тиймээс бид 4.30V -аас 6.65V -ийн хоорондох тоог сонгох хэрэгтэй (яг нарийн байх албагүй, ойролцоогоор) Миний хувьд миний лавлах хүчдэл 5.46V орчим байх ёстой. Тэмдэглэл: Хэрэв хамгийн бага сул зогсолт ба хамгийн их идэвхжүүлсэн хүчдэл нь өөр өөр хүчдэл үүсгэж болох олон бүсээс шалтгаалан хоорондоо маш ойрхон байвал та 2 ба түүнээс дээш хүчдэл хуваагч үүсгэх шаардлагатай болж магадгүй юм.

Хүчдэл хуваагчийн эсэргүүцлийн утгыг тооцоолох

Одоо бидэнд жишиг хүчдэл байгаа бөгөөд бид жишиг хүчдэлийг хангах хүчдэл хуваагчийг бий болгохын тулд ямар хэмжээтэй резистор хэрэгтэй болохыг тооцоолох хэрэгтэй. Бид сэрүүлгээс 12V тогтмол гүйдлийн хүчдэлийн эх үүсвэрийг (Vs) ашиглах болно. Гэсэн хэдий ч өмнөх алхамаар бид 12V DC тэжээлийг хэмжихдээ 13.15V хүчдэлтэй болсон. Бид энэ утгыг эх үүсвэр болгон ашиглан хүчдэл хуваагчийг тооцоолох хэрэгтэй.

Ом -ийн хуулийг ашиглан Vout -ийг тооцоолох …

Vout = Vs x R2 / (R1 + R2)

… эсвэл онлайн хүчдэл хуваагч тооцоолуур ашиглана уу:-)

Та хүссэн үр дүнд хүрэх хүртэл резисторын утгыг туршиж үзэх шаардлагатай болно. Миний хувьд энэ нь урт хэлбэрээр тооцоолсон R1 = 6.8k ом ба R2 = 4.7K ом -оор хийгдсэн.

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61, 805/11, 500

Vout = 5.37V

Алхам 4: LM339 утсыг холбоно уу

Wemos D1 Mini -ийг холбох
Wemos D1 Mini -ийг холбох

LM339 урвуу оролт руу хүчдэл хуваагч

LM339 харьцуулагчийн талаар өмнө дурдсанчлан 2 удаа оролт шаардагдана. Нэг нь PIR тус бүрээс урвуу биш (+) терминал бүрийн суваг хүртэлх хүчдэл, нөгөө нь бидний урвуу (-) терминал руу чиглүүлэх хүчдэл байх болно. Лавлах хүчдэл нь хөрвүүлэгч ороомгийн 4 харьцуулагчийг тэжээх шаардлагатай. Эдгээр алхамуудыг хийхээс өмнө дохиоллын системийг унтраа.

  • Сэрүүлгийн системийн 12V DC блокоос + талхны самбар дээрх + төмөр зам хүртэл утас ажиллуулаарай *
  • Сэрүүлгийн системийн GND блокоос талхны самбар дээрх төмөр зам руу утас тавь **
  • LM339 харьцуулагчийг талхны дунд байрлуулна (ховил нь 1 -р зүүтэй хамгийн ойр байгааг илтгэнэ)
  • Хүчдэл хуваах хэлхээг бий болгохын тулд 2 х резистор суурилуулж, хуваасан хүчдэлийг таслах утас
  • "Хүчдэл хуваагдсан" Vout -аас LM339 урвуу терминал бүр рүү утас ажиллуулна

* ЗӨВЛӨГӨӨ: боломжтой бол матрын хавчаарыг ашиглаарай, ингэснээр таны төслийг ON/OFF тэжээлээр хангах нь илүү хялбар болно ** ЧУХАЛ! Хэрэв та дохиоллын самбараас Wemos -ийг асааж байгаа бол MOSFET шаардлагатай байж магадгүй юм! Миний хувьд LM339, Wemos, Alarm бүгд нэг эх үүсвэрээс цахилгаан авдаг (өөрөөр хэлбэл дохиоллын систем өөрөө) Энэ нь нэг цахилгаан холболтоор бүх зүйлд хүчээ асаах боломжийг олгодог. Гэсэн хэдий ч анхдагч байдлаар Wemos дээрх GPIO тээглүүрийг "INPUT" тээглүүр гэж тодорхойлдог бөгөөд энэ нь тэд ямар ч хүчдэлийг авдаг бөгөөд тухайн эх үүсвэрт тулгуурлан хүчдэлийн зөв түвшинг (мин/дээд түвшин) хангаж өгдөг бөгөөд ингэснээр Wemos ялна. сүйрч, шатахгүй. Миний хувьд дохиоллын систем хүчээ авч, ачаалах дарааллаа маш хурдан эхлүүлж эхэлдэг бөгөөд үүнийг Wemos -ийг ачаалахаас өмнө GPIO зүүг "INPUT_PULLUP" гэж зарлахаас өмнө хийдэг. чип). Энэ нь хүчдэлийн зөрүү нь системийг бүхэлд нь хүчдэлд оруулахад Wemos -ийг сүйрүүлэх болно гэсэн үг биш юм. Үүнийг хийх цорын ганц арга бол Wemos -ийг гараар унтрааж, асаах явдал юм. Үүнийг шийдэхийн тулд MOSFET -ийг нэмж, LM339 -ийг асаах "логик унтраалга" болж ажилладаг. Энэ нь Wemos -ийг ачаалах, 4 x харьцуулагч GPIO тээглүүрээ "INPUT_PULLUP" болгон тохируулах, хэдэн секунд хойшлуулах, дараа нь (өөр GPIO зүү D5 -ээр OUTPUT гэж нэрлэгдэх замаар) GPIO pin D5 -ээр MOSFET руу "HIGH" дохиог илгээх, LM339 -ийг логикоор идэвхжүүлдэг. Дээрх шиг утсыг холбохыг зөвлөж байна, гэхдээ хэрэв та Wemos -ийг над шиг сүйрч байгааг анзаарсан бол MOSFET -ийг 1 к ом эсэргүүцэх эсэргүүцэлтэй оруулах хэрэгтэй болно. Үүнийг хэрхэн хийх талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл энэхүү зааварчилгааны төгсгөлийг үзнэ үү.

LM339 урвуу оролтгүй дохиоллын бүсүүд

Одоо бид дохиоллын хяналтын самбар дээрх бүс бүрээс утсыг LM339 харьцуулагчийн оролт руу оруулах шаардлагатай байна. Сэрүүлгийн системийг унтраасан хэвээр байхад бүс тус бүрт LM339 харьцуулагч дээрх урвуу оролтгүй (+) оролт бүрт утсыг холбоно. Жишээлбэл, миний системд:

  • Z1 утас нь LM339 оролт 1+ рүү ордог
  • Z2 утас нь LM339 оролт 2+ руу ордог
  • Z3 утас нь LM339 оролт 3+ руу ордог
  • Z4 утас нь LM339 оролт 4+ рүү ордог

Хэрэв та сануулах юм бол LM339-ийн 3-р алхамыг үзнэ үү. Үүнийг хийсний дараа таны талхны самбар энэ алхам дээр үзүүлсэн зурагтай төстэй байх ёстой.

Сэрүүлгийн системийг асааж, хүчдэл хуваагчаас гарч буй хүчдэлийг хэмжих нь өмнө нь тооцоолсон жишиг хүчдэлтэйгээ тэнцүү байгаа эсэхийг шалгаарай.

Алхам 5: Wemos D1 Mini -ийг холбох

Wemos D1 мини утсыг холбож байна

Одоо бид LM339 -ийн бүх оролтыг анхаарч үзсэн тул бид одоо Wemos D1 мини руу залгах хэрэгтэй. LM339 гаралтын зүү бүр нь Wemos GPIO (ерөнхий зориулалтын оролт/гаралт) зүү рүү ордог бөгөөд үүнийг бид кодоор оролтын зүү гэж тодорхойлдог. Wemos нь Vcc (оролтын эх үүсвэр) хүчдэлийн хувьд хамгийн ихдээ 5В хүртэл хүч зарцуулдаг (хэдийгээр үүнийг дотооддоо 3.3В хүртэл зохицуулдаг) Бид 12V төмөр замыг талхны тавцан дээр буулгахын тулд маш түгээмэл LM7805 хүчдэлийн зохицуулагч (EDIT: доороос үзнэ үү) ашиглана. Wemos -ийг тэжээхийн тулд 5V. LM7805 -ийн мэдээллийн хүснэгтэд талхны самбарын зураг дээр үзүүлсэн шиг хүчийг жигдрүүлэхийн тулд зохицуулагчийн хоёр тал дээр утастай конденсатор хэрэгтэй байгааг харуулж байна. Конденсаторын урт хөл нь эерэг (+) тул үүнийг зөв утсаар холбосон эсэхийг шалгаарай.

Хүчдэл зохицуулагч нь хүчдэлийг (зүүн талын зүү), газардуулгыг (дунд зүү) ба хүчдэлийг (баруун талын зүү) авдаг. Хэрэв таны хүчдэлийн зохицуулагч LM7805-аас ялгаатай бол залгуурыг дахин шалгана уу.

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

GPIO оролтын зүү

Энэ төслийн хувьд бид дараах тээглүүрүүдийг ашиглаж байна.

  • бүс Z1 => зүү D1
  • бүс Z2 => зүү D2
  • бүс Z3 => D3 зүү
  • бүс Z4 => D5 зүү

Энэ алхамд үзүүлсэн талхны зургийн дагуу LM339 -аас гаралтыг Wemos самбар дээрх холбогдох GPIO зүү рүү холбоно. Дахин хэлэхэд, би юу гэсэн үг болохыг ойлгоход хялбар болгох үүднээс оролт, тохирох гаралтыг өнгөөр кодчилсон болно. Arduino дахь GPIO зүү бүрийг 'INPUT_PULLUP' гэж тодорхойлсон бөгөөд энэ нь ердийн хэрэглээнд (IDLE) 3.3V хүртэл татагдах бөгөөд PIR идэвхжсэн тохиолдолд LM339 нь доош нь татах болно гэсэн үг юм. Код нь HIGH -аас LOW хүртэлх өөрчлөлтийг илрүүлж, гэрийн автоматжуулалтын програм хангамж руу утасгүй мессеж илгээдэг. Хэрэв танд энэ асуудалтай холбоотой асуудал байгаа бол таны урвуу болон эсрэг талын оролт буруу байж магадгүй (хэрэв ихэнх хобби PIR-ийн нэгэн адил идэвхжсэн үед таны PIR-ийн хүчдэл өндөр байвал та холболтыг хүсэх болно. өөрөөр)

Arduino IDE

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

Та дараах кодын мөрүүдийг өөрчилж, утасгүй холболт хийхдээ өөрийн SSID болон нууц үгээр солих шаардлагатай болно. Мөн IP хаягаа өөрийн MQTT зуучлагч руу зааж өгөөрэй.

// 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 x бүсийг нэгэн зэрэг идэвхтэй гэж үзвэл MQTT мессеж илгээхийг үл тоомсорлох болно.

Өөр код татаж авах линкийг ЭНД дарна уу

Алхам 6: Туршилт ба OpenHAB -ийн тохиргоо

Туршилт ба OpenHAB -ийн тохиргоо
Туршилт ба OpenHAB -ийн тохиргоо

MQTT тест

MQTT бол "захиалах / нийтлэх" мессежийн систем юм. Нэг буюу хэд хэдэн төхөөрөмж нь "MQTT брокер" -той ярилцаж, тодорхой сэдвийг "захиалах" боломжтой. Үүнтэй ижил сэдвээр "нийтлэгдсэн" бусад төхөөрөмжөөс ирсэн аливаа мессежийг брокер үүнийг захиалсан бүх төхөөрөмж рүү түлхэх болно. Энэ бол маш хөнгөн бөгөөд ашиглахад хялбар протокол бөгөөд энд байгаа шиг энгийн өдөөгч систем юм. Туршилт хийхийн тулд та Wemos -аас MQTT брокер руу ирж буй MQTT мессежүүдийг Mosquitto сервер дээрээ дараах тушаалыг ажиллуулах замаар үзэх боломжтой (Mosquitto бол MQTT брокерын олон програм хангамжийн нэг юм). Энэ тушаал нь ирж буй хадгалагдах мессежийг захиалдаг.

mosquitto_sub -v -t openhab/дохиолол/төлөв

Та 30 секунд тутамд Wemos -аас ирж буй мессежийг "1" ("Би амьд байна" гэсэн утгатай) ирэх ёстой. Хэрэв та тогтмол "0" (эсвэл хариу өгөхгүй) харвал харилцаа холбоо байхгүй болно. Та 1 дугаар орж ирж байгааг хараад Wemos нь MQTT брокертой харилцаж байна гэсэн үг юм (энэ нь хэрхэн ажилладаг талаар дэлгэрэнгүй мэдээллийг "MQTT Last Will and Testament" -ээс хайж олох эсвэл энэ үнэхээр сайн блог оруулгыг үзнэ үү).

Харилцаа холбоо ажиллаж байгааг нотолсны дараа бид бүсийн төлөв байдлыг MQTT -ээр дамжуулан мэдээлж байгааг шалгаж болно. Дараах сэдвийг захиалаарай (# бол орлуулагч тэмдэг юм)

шумуулын_буур -v -t openhab/дохиолол/#

Ердийн статусын мессежүүд, мөн Wemos -ийн IP хаяг ирэх ёстой. PIR -ийн урд алхаарай, та бүсийн мэдээллийг НЭЭЛТ, дараа нь хоёр дахь эсвэл түүнээс хойш ХААГДСАН болохыг харуулах ёстой.

openhab/сэрүүлэг/төлөв 1

openhab/дохиолол/бүс1 НЭЭЛТТЭЙ

openhab/дохиолол/бүс1 ХААЛТТАЙ

Үүнийг ажиллуулсны дараа бид OpenHAB -ийг GUI -д үүнийг сайн төлөөлөх байдлаар тохируулж болно.

OpenHAB тохиргоо

OpenHAB -д дараах өөрчлөлтүүдийг оруулах шаардлагатай байна.

'alarm.map' файлыг хөрвүүлэх: (заавал биш, турших зориулалттай)

CLOSED = IdleOPEN = TriggeredNULL = Үл мэдэгдэх- = Үл мэдэгдэх

'status.map' файлыг өөрчлөх:

0 = амжилтгүй болсон

1 = Онлайн -= ДООШ! NULL = тодорхойгүй

'items' файл:

String alarmMonitorState "Сэрүүлгийн хяналт [MAP (status.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAddress "Alarm Monitor IP [%s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Тоон бүс1_Chart_Period "Zone 1 Chart" Холбоо барих дохиололZone1State "Zone 1 State [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: төлөв: анхдагч "} String alarmZone1Trigger" Lounge PIR [%1 $ ta%1 $ tr] "Дугаар бүс2_Chart_Period" Zone 2 Chart "Contact alarmZone2State" Zone 2 State [MAP (alarm.map):% s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" Нэгдүгээр танхим PIR [%1 $ ta %1 $ tr] "Дугаар бүс3_Chart_Period" Zone 3 Chart "Холбоо барих дохиололZone3State" Zone 3 төлөв [MAP (alarm.map):%s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: төлөв: анхдагч "} String alarmZone3Trigger" Унтлагын өрөөний PIR [%1 $ ta%1 $ tr] "тоо zone4_Chart_Period "4 -р бүсийн диаграм" Холбоо барих дохиололZone4State "4 -р бүсийн төлөв [MAP (alarm.map):%s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: төлөв: анхдагч "} String alarmZone4Trigger" Үндсэн танхим PIR [%1 $ ta %1 $ tr]"

'sitemap' файл (rrd4j графикийг оруулаад):

Текстийн зүйл = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000", <= 300 = "#ffa500", <= 600 = "#008000", 3600 = "#000000"] {Frame {Switch 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"] {Хүрээ {Зүйлийг солих = 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] Зургийн 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 = " Period "mappings = [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 төлөвийн өөрчлөлт"

Item alarmZone1State нь НЭЭЛТ болж өөрчлөгдөхөд postUpdate (alarmZone1Trigger, шинэ DateTimeType ()) alarmZone1State.state = ХААГДСАН төгсгөл

дүрэм "Дохиоллын бүс 2 төлөвийн өөрчлөлт"

Item alarmZone2State нь НЭЭЛТ болж өөрчлөгдөхөд postUpdate (alarmZone2Trigger, шинэ DateTimeType ()) alarmZone2State.state = ХААГДСАН төгсгөл

дүрэм "Сэрүүлгийн 3 -р бүсийн төлөв байдлын өөрчлөлт"

Item alarmZone3State нь НЭЭЛТ болж өөрчлөгдөхөд postUpdate (alarmZone3Trigger, шинэ DateTimeType ()) alarmZone3State.state = ХААГДСАН төгсгөл

"Сэрүүлгийн 4 -р бүсийн төлөв байдлын өөрчлөлт" дүрэм

Item alarmZone4State нь НЭЭЛТ болж өөрчлөгдөхөд postUpdate (alarmZone4Trigger, шинэ DateTimeType ()) alarmZone4State.state = ХААГДСАН төгсгөл

Дээрх OpenHAB тохиргоог өөрийн тохиргоонд нийцүүлэн бага зэрэг өөрчлөх шаардлагатай болж магадгүй юм.

Хэрэв танд PIR -ийг ажиллуулахад ямар нэгэн асуудал гарвал эхнээс нь эхэлж хэлхээний хэсэг бүрийн хүчдэлийг хэмжинэ. Та үүнд сэтгэл хангалуун байгаа бол утсан холболтоо шалгаарай, нийтлэг ойлголт байгаа эсэхийг шалгаарай, Wemos дээрх мессежийг цуврал дибаг хийх консолоор шалгаж, MQTT холболтыг шалгаж, хөрвүүлэлт, эд зүйлс, сайтын газрын файлуудын синтаксийг шалгаарай.

Амжилт хүсье!

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