Мазмуну:

MQTT/Google Home DoorBell ESP-01ди колдонуу: 6 кадам
MQTT/Google Home DoorBell ESP-01ди колдонуу: 6 кадам

Video: MQTT/Google Home DoorBell ESP-01ди колдонуу: 6 кадам

Video: MQTT/Google Home DoorBell ESP-01ди колдонуу: 6 кадам
Video: MQTT Doorbell - Home Assistant and Google Home Integrated 2024, Ноябрь
Anonim
MQTT/Google Home DoorBell ESP-01ди колдонуу
MQTT/Google Home DoorBell ESP-01ди колдонуу

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

Эгерде мага окшоп, сиздин үйүңүздүн бир нече жеринде бир же бир нече Google үй динамиктери бар болсо, анда бул сизге керектүү болушу мүмкүн.

Бул Нускамада мен MQTT брокерине NodeRED аркылуу google home / pushbullet кулактандыруусу менен баарлашуу үчүн бар болгон эшиктин коңгуроосуна MQTT кардарын кантип кошууну көрсөтөм. Бул долбоор эшиктин коңгуроосун же коңгуроону алмаштырбайт. Ал дагы эле эшиктин коңгуроосу үчүн кадимки механикалык баскычты колдонот.

Биз ESP-01 модулун MQTT брокерине билдирүү жөнөтүү үчүн MQTT функциясын кошуп, бар 16VAC эшик коңгуроо системасына кошобуз (эшик коңгуроосу басылганда). MQTT брокери билдирүүнү NodeREDге өткөрүп берет. MQTT билдирүүсүн алгандан кийин, NodeRED бир нече Google үй түзмөктөрүнө кулактандырууну жөнөтүп, ошондой эле pushbullet аркылуу уюлдук телефонго/браузерге билдирүү жөнөтөт.

Менде DIY үйүн автоматташтырууга болгон кумарым бар жана акырындык менен үйүмө IOT кошуп жатам. Google үйү менин үйүмдү автоматташтыруунун негизги функцияларынын бири болуп калды.

Уулум мага бул долбоордун идеясын берди, эгерде кимдир бирөө биздин коңгурообузду чалган сайын Google үйүн жарыялай аламбы деп сураганда. Бизде 2 кабат бар + жертөлө үйдү бүтүрөт жана эшик жабык же сыналгы бар уктоочу бөлмөдө подвалда же үстүнкү кабатта болгондо биз көп жолу үнүн уга алган жокпуз.

Биздин үйдө ар кандай жерлерде/бөлмөлөрдө 4 google home mini бар, жана коңгуроону жарыялоо үчүн Google үйүн колдонуу менен, кимдир бирөө эшиктин коңгуроосун басса, дароо үйдүн каалаган жеринен билебиз.

Менин үйүмдө, мен RaspberryPi ZeroW менен Mosquitto MQTT серверин жана NodeREDди кабыл алам. Ал бир жылдан бери эч кандай көйгөйсүз иштеп жатат.

Шилтемелер:

  • Эшиктин коңгуроо схемалары:
  • Raspberry Pi'ге Mosquitto MQTT брокерин орнотуңуз:
  • NodeREDди Raspberry Piге орнотуңуз:

1-кадам: ESP-01 жана Door Chime Interface схемасын түзүңүз

Interface ESP-01 жана Door Chime схемасын түзүңүз
Interface ESP-01 жана Door Chime схемасын түзүңүз
Interface ESP-01 жана Door Chime схемасын түзүңүз
Interface ESP-01 жана Door Chime схемасын түзүңүз
Interface ESP-01 жана Door Chime схемасын түзүңүз
Interface ESP-01 жана Door Chime схемасын түзүңүз

Биринчи кадам ESP-01 менен Door Chime ортосундагы интерфейс боло турган схеманы түзүү болмок. Биринчи сүрөттө көрсөтүлгөндөй "TRANS (мурдагы)" менен "FRONT/REAR" пиндеринин ортосунда 16VAC болгондо кадимки эшик коңгуроосу иштетилет. Чыңалуу эшиктин коңгуроосу басылганда ошол казыктарда пайда болот.

Мен иштеп чыккан схема бул 16VAC сигналын сезүү жана аны болжол менен 3.3VDC санариптик сигналга айландыруу. Бул D1 жана C1 тарабынан түзүлгөн негизги жарым толкундуу түзөтүүчү. Бул кырдаалда бизге толук толкундуу түзөткүчтүн кереги жок, анткени DC өндүрүшүнө жүктөө өтө аз, тактада бизди бир аз кыймылсыз мүлктү үнөмдөйт. Мен досканы мүмкүн болушунча азыраак кылгым келет, ошондо мен аны учурдагы коңгуроонун ичине кое алам.

R1 жана R2 чыңалуу бөлүштүргүчтү түзүп, DC чыңалуусун 3,3В айланасына түшүрөт.

R3, TR1 жана R4 ESP-01 GPIO-2 үчүн тескери логиканы камсыз кылуу үчүн инверторду түзөт. Бул ESP-01дин флештен жүктөлүшү үчүн, жүктөө учурунда (R4 жана R5 тартылуусу менен) ЖОГОРУ логиканы камсыз кылуу үчүн керек. Эшик коңгуроосу басылганда, ал GPIO-2. TR1ге LOW логикасын берет, кичинекей NPN транзистору болушу мүмкүн, мен 2N3904 колдондум.

V1 - бул мен кийинки кадамда көрсөтө турган AMS1117 3.3VDC жөндөгүчү менен коштолгон эски 5В уюлдук телефондун заряддагычын колдонуу менен курган 3.3VDC электр менен камсыздоо.

ESP-01 розеткасы үчүн мен 8 пиндүү стандарттуу IC розеткасын колдоном жана катарлардын ортосундагы боштукту пайда кылган пластикалык көпүрөлөрдү кесип, анан 2 катарды жабыштырам.

2-кадам: ESP-01 үчүн 3.3VDC Power Supply

ESP-01 үчүн 3.3VDC Power Supply
ESP-01 үчүн 3.3VDC Power Supply
ESP-01 үчүн 3.3VDC Power Supply
ESP-01 үчүн 3.3VDC Power Supply
ESP-01 үчүн 3.3VDC Power Supply
ESP-01 үчүн 3.3VDC Power Supply

Бул кадамда биз ESP-01 үчүн 3.3VDC электр булагын курабыз. Менде бир нече эски 500mA жана 700mA 5VDC USB заряддагыч адаптер бар, мен бул долбоорду кайра иштеп чыктым. 5V чыңалуусун 3.3V чейин түшүрүү үчүн бизге 3.3VDC регулятору керек, бул үчүн мен ebayдан сатып алган арзан AMS1117 негизделген регулятор модулун колдонуп жатам. Сиз "3.3V AMS1117 модулун" издеп, өзүңүзгө ылайыктуусун таба аласыз.

Бул 3.3V жөнгө салуучу модуль абдан кичинекей, аны чынында 5В USB заряддагыч корпусунун ичине салып коём, аны потенциалдуу кыска туташуудан коопсуз кылат. Мен кубаттоочу модулдан AC дубалдын тиштерин алып салдым жана аны учурдагы коңгуроонун артындагы дубалдан 120VACка туташтырылган эки кабель менен алмаштырдым. Бирок кийинки кадамда тестирлөөнү жасамайынча, бул кадамдын тиштерин алып салбаңыз.

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

Менин коңгуроонун артында 120VAC зымдары жана коңгуроонун 16VAC трансформатору турганын көрүү үчүн менин сүрөтүмдүн бирин караңыз.

3.3V жөндөгүчтөн чыгуу андан кийин мурунку кадамга ылайык ESP-01 интерфейс тактасына туташмак.

3-кадам: ESP-01дин жарыгы

Бул кадамда биз ESP-01ди ардуино эскизи менен жаркырайбыз. Эгерде сиз эч качан ESP-01 модулун күйгүзбөсөңүз, анда менин көрсөтмөмдү аткарсаңыз болот:

Сиз менин эскизимди github баракчамдан таба аласыз:

Эскизде, эң аз дегенде, сиз үй тармагыңызга/орнотууга тиешелүү төмөнкү маалыматты өзгөртүүңүз керек:

#define MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

Менин үй тармагымда 2 башка SSIDди таратуучу 2 башка кирүү түйүнү бар жана бул эскиз учурдагы АР менен байланыш үзүлүп калса, кийинки SSIDге туташуу менен ашыкча болууга мүмкүндүк берет. Эгерде сизде бир гана SSID болсо, ssid1 жана ssid2 экөөнү бирдей мааниде толтуруңуз.

Өзгөртүүнү киргизгенден кийин, эскизди ESP-01ге жүктөп, ESP-01ди интерфейс тактасына сайыңыз.

4 -кадам: Test Run

Test Run
Test Run
Test Run
Test Run
Test Run
Test Run

1-кадамдан тартып биз ESP-01 интерфейс тактасын курдук, ал эми 2-кадамдан тартып ESP-01 тактасы үчүн 3.3В электр менен камсыз кылдык. Биз азыр V1 катары көрсөтүлгөн схемага ылайык, электр менен камсыздоо өндүрүшүн тактага туташтырабыз.

Эми кийинки кадам - Чыңгыроо/Терезе терминалдарын "Door Chime Terminals" катары көрсөтүлгөн интерфейс тактасынын туташууларына туташтыруу. Менин коңгуроом дубалга бийик орнотулгандыктан, сыноо үчүн, мен электр булагын туташтыруу үчүн, коңгуроонун терминалдарынан тактага чейин узун жуп кабелди иштетем.

Биздин карама -каршылыктын иштээрин текшерүү үчүн, тармакта MQTT билдирүүлөрүн көзөмөлдөө эң оңой болмок. Бул үчүн, чиркей брокерине SSH сессиясын ачып, төмөнкү буйрукту беришиңиз керек:

mosquitto_sub -v -t '#'

Жогорудагы буйрук брокерге келген бардык MQTT билдирүүлөрүн көрүүгө мүмкүнчүлүк берет.

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

stat/DoorBell/LWT Online

Азыр сыртка чыгып, эшиктин коңгуроосун баскыла, жана сиз бул билдирүүнү көрүшүңүз керек:

tele/DoorBell ON

Эгер сиз бул билдирүүлөрдү көрсөңүз, анда сиздин долбоор ийгиликтүү болот.

Мен ошондой эле сиз колдоно турган эскизге бир нече пайдалуу MQTT темаларын киргиздим:

"stat/DoorBellInfo": бул билдирүү иштөө убактысын жана башка маалыматты берүү үчүн мүнөт сайын жөнөтүлөт.

"cmnd/DoorBellInfo": ESP-01 бул теманы '1' (ascii = 49) "cmnd/DoorBellCPUrestart" менен алса, маалыматты жөнөтөт: ESP-01 бул теманы '1 мааниси менен алганда кайра башталат. '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 бул теманы' 1 'мааниси менен алса, баштапкы абалга келтирилет (ascii = 49)

"tele/FrontDoorBell": ESP-01 эгер эшиктин коңгуроосу басылса, "ON" мааниси менен бул темада msg жөнөтөт.

5 -кадам: Башкарманы жана электр менен камсыздоону коңгуроого киргизүү

Башкарманы жана электр менен камсыздоону коңгуроого киргизүү
Башкарманы жана электр менен камсыздоону коңгуроого киргизүү
Башкарманы жана электр менен камсыздоону коңгуроого киргизүү
Башкарманы жана электр менен камсыздоону коңгуроого киргизүү
Башкарманы жана электр менен камсыздоону коңгуроого киргизүү
Башкарманы жана электр менен камсыздоону коңгуроого киргизүү

Эми биз ийгиликтүү тестирлөөдөн өткөндөн кийин, эшиктин коңгуроосунун ичине (эгер мүмкүн болсо) тактаны жана электр менен камсыздоону чогултуубуз керек. Учурдагы коңгуроодо боштук бар, мен аны кесип, ошол зонанын ичиндеги электр булагын туура келтире алдым. ESP-01 тактайы кичинекей мейкиндикке туура келбейт, бирок дагы эле жалпы коңгуроонун кутусуна туура келет. Мен жөн гана ESP-01 интерфейс тактасын орнотуу үчүн коюу эки тараптуу лента колдондум.

Эми биз USB заряддагычтан металл тиштерди алып салабыз жана аларды үйдүн зымдарына туташтыра турган жоон кабель менен алмаштыра алабыз. Звоноктун чынжырын электр менен камсыз кылган өчүргүчтү өчүрүүнү унутпаңыз.

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

6 -кадам: Final Touch

Final Touch
Final Touch

Эми бизде долбоор иштеп жатат жана MQTT билдирүүсүн брокерге жарыялай алдык, кийинки кадам - бул менен эмне кылуу керек экенин ойлонуу.

Менин долбоорумда, мен Node-REDди колдонуп, ошол коңгуроонун MQTT темасын угуу/жазылуу жана бир нече Google үй динамиктерине жарыялоо. Мындан тышкары, мен агымды pushbull түйүнү менен байланыштырып, андроид телефонума билдирүү жөнөтүү үчүн, эгерде мен үйдө эмес болсом дагы кимдир бирөө коңгуроону кагып койсо, билем. Pushbullet эскертмеси кээ бирөөлөр үчүн пайдалуу эмес, бирок мен үчүн бир нече жолу пайдалуу болду, менин кире беришимдеги видеокамера менен кошо, мен жеткирүүнү таштоого кимдер келгенин көрө алам (алар көбүнчө эшиктин коңгуроосун кагышат). Ар кандай тоскоолдуктардан, айрыкча бак -дарактардын көлөкөлөрүнөн улам камеранын кыймыл аныктоо өзгөчөлүгүнө көп ишене албайм.

Бул кадамдагы сүрөт муну аткаруу үчүн Node-RED агымын көрсөтөт. Сиз ошондой эле менин github баракчамдагы агымды Node-REDге чаптай аласыз:

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

Көңүл ачуу…

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