Sisukord:

MQTT/Google'i koduuksekell ESP-01 abil: 6 sammu
MQTT/Google'i koduuksekell ESP-01 abil: 6 sammu

Video: MQTT/Google'i koduuksekell ESP-01 abil: 6 sammu

Video: MQTT/Google'i koduuksekell ESP-01 abil: 6 sammu
Video: НАША ЖИЗНЬ ИЗМЕНИЛАСЬ ПОСЛЕ ПОЯВЛЕНИЯ ............ 2024, November
Anonim
MQTT/Google'i koduuksekell ESP-01 abil
MQTT/Google'i koduuksekell ESP-01 abil

Kas olete kunagi jätnud vastamata külalisele, kes helistas teie uksekella, lihtsalt sellepärast, et olete majaosas, mis on liiga kaugel, et kuulda uksekella helinat? näiteks kelder, suletud uksega magamistuba või võib -olla vaatasite televiisorit või kuulasite muusikat.

Kui teil, nagu minul, on teie majas üks või mitu Google'i kodukõlarit mitmes kohas, võib see juhend olla see, mida vajate.

Selles juhendis näitan teile, kuidas lisada MQTT klient olemasolevale uksekella helisignaalile, et suhelda MQTT maakleriga teatega Google home / pushbullet, kasutades NodeRED -i. See projekt ei asenda uksekella lülitit ega helisignaali. See kasutab endiselt uksekella jaoks tavalist mehaanilist nuppu.

Lisame ESP-01 mooduli olemasolevasse 16VAC uksekella süsteemi, lisades MQTT funktsionaalsuse, et saata sõnum MQTT maaklerile (kui uksekella lülitit vajutatakse). MQTT maakler edastab sõnumi NodeREDile. MQTT -sõnumi saamisel saadaks NodeRED teadaande mitmetele Google'i koduseadmetele ja lisaks soovi korral sõnumi mobiiltelefonile/brauserile pushbulleti kaudu.

Mul on kirg DIY koduautomaatika vastu ja lisan oma koju aeglaselt IOT -i. Google'i kodu on olnud minu koduautomaatika üks keskseid funktsioone.

Minu poeg andis mulle selle projekti idee, kui ta küsis minult, kas ma saan panna Google'i kodu teatama iga kord, kui keegi meie uksekella helistab. Meil on 2 korrust + lõpetame keldri kodu ja mitmel korral ei saanud me kuulda helisemist, kui oleme keldris või ülakorrusel magamistoas, kus on uks suletud või televiisor on sisse lülitatud.

Meie majas on neli google home mini erinevates kohtades/tubades ja kasutades google home'i uksekella teatamiseks, teame kohe kõikjal majas, kas keegi helistab uksekella.

Majas kasutan RaspberryPi ZeroW -i Mosquitto MQTT serveri ja NodeRED -i hostimiseks. See on töötanud üle aasta ilma probleemideta.

Viited:

  • Uksekella ühendusskeemid:
  • Installige Mosquitto MQTT Broker Raspberry Pi-le:
  • Installige NodeRED Raspberry Pi -le:

Samm: looge liidese ahel ESP-01 ja uksekell

Looge liidese ahel ESP-01 ja uksekell
Looge liidese ahel ESP-01 ja uksekell
Looge liidese ahel ESP-01 ja uksekell
Looge liidese ahel ESP-01 ja uksekell
Looge liidese ahel ESP-01 ja uksekell
Looge liidese ahel ESP-01 ja uksekell

Esimene samm oleks vooluahela loomine, mis oleks liides ESP-01 ja uksekella vahel. Tüüpiline uksekell aktiveerub, kui "TRANS (endine)" ja "FRONT/REAR" tihvtide vahel on 16VAC, nagu on näidatud minu esimesel fotol. Pinge esineb neil tihvtidel, kui uksekella nuppu vajutatakse.

Minu kavandatud vooluahel on selle 16VAC signaali tajumine ja selle ümberkujundamine umbes 3,3VDC digitaalsignaaliks. See on põhiline poollaine alaldi, mille moodustavad D1 ja C1. Sellises olukorras ei pea meil olema täislaine alaldit, kuna alalisvoolu väljundisse laaditakse väga vähe, säästes meid natuke kinnisvara pardal. Tahvlit tahan teha nii vähe kui võimalik, et saaksin selle oma olemasoleva kellamängu sisse paigutada.

R1 ja R2 moodustavad pingejaguri, et vähendada tipp -alalispinget umbes 3,3 V -ni.

R3, TR1 ja R4 moodustavad inverteri, et pakkuda ESP-01 GPIO-2 jaoks vastupidist loogikat. See on vajalik loogika HIGH tagamiseks alglaadimise ajal (koos tõmbega R4 ja R5), et ESP-01 saaks välklambist käivitada. Kui vajutada uksekella nuppu, esitab see GPIO-2. loogika LOW. TR1 võib olla mis tahes väikese võimsusega NPN-transistor, minu puhul kasutasin 2N3904.

V1 on 3,3 V alalisvoolu toiteallikas, mille ehitasin vana 5 V mobiililaadija abil koos AMS1117 3,3 V alalisvoolu regulaatoriga, mida näitan järgmises etapis.

Pistikupesa ESP-01 puhul kasutan 8-kontaktilist standardset IC-pistikupesa ja lõikan ridade vahele lõhe tekitavad plastist sillad ning seejärel liimin 2 rida kokku.

2. samm: 3.3VDC toiteallikas ESP-01 jaoks

3.3VDC toiteallikas ESP-01 jaoks
3.3VDC toiteallikas ESP-01 jaoks
3.3VDC toiteallikas ESP-01 jaoks
3.3VDC toiteallikas ESP-01 jaoks
3.3VDC toiteallikas ESP-01 jaoks
3.3VDC toiteallikas ESP-01 jaoks

Selles etapis ehitame ESP-01 jaoks 3.3VDC toiteallika. Mul on mõni vana 500mA ja 700mA 5VDC USB-laadijaadapter, mille ma selle projekti jaoks uuesti kavandasin. Meil on vaja ka 3,3 V alalisvoolu regulaatorit, et 5 V pinge langetada 3,3 V-le, selleks kasutan ebayst odavat eelvalmis AMS1117-põhist regulaatorimoodulit. Saate otsida "3.3V AMS1117 moodulit" ja leida, mis teile sobib.

See 3,3 V regulaatorimoodul on väga väike, et ma saan selle tegelikult toppida 5V USB laadija korpuse sisse, muutes selle võimaliku lühise eest ohutumaks. Eemaldasin laadimismoodulist vahelduvvoolu seinakinnitused ja asendasin selle kahe kaabliga, mis ühendatakse 120VAC -ga olemasoleva kellamängu tagant. Kuid ärge eemaldage selle sammu hambad enne, kui oleme järgmise sammu proovisõidu teinud.

Kui läheduses on pistikupesa või kui te ei ole rahul toiteallika otse maja juhtmestikuga ühendamisega, võite valikuliselt lihtsalt ühendada muudetud toiteallika seinakontaktiga ja juhtida kaabli helisignaali külge. ei pruugi tunduda nii puhas kui ühendada see otse maja juhtmestikuga.

Vaadake ühte minu fotost, et näha, et minu kellamängu taga on 120VAC juhtmestik ja 16VAC trafo.

3.3 V regulaatori väljund ühendaks seejärel vastavalt eelmisele sammule liidese ESP-01.

3. samm: ESP-01 vilkumine

Selles etapis vilgutame ESP-01 arduino visandiga. Kui te pole ESP-01 moodulit kunagi vilgutanud, võite alustamiseks järgida minu juhiseid:

Minu visandi leiate minu githubi lehelt:

Visandis peate vähemalt muutma järgmist koduvõrgu/seadistusega seotud teavet:

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

Minu koduvõrgus on mul 2 erinevat pääsupunkti, mis edastavad 2 erinevat SSID -d, ja see visand võimaldaks koondamist, ühendades järgmise SSID -ga, kui side praeguse AP -ga katkeb. Kui teil on ainult üks SSID, täitke ssid1 ja ssid2 sama väärtusega.

Kui olete muudatuse teinud, laadige eskiis üles ESP-01-sse ja ühendage ESP-01 liideseplaadiga.

Samm 4: testkäivitus

Proovisõit
Proovisõit
Proovisõit
Proovisõit
Proovisõit
Proovisõit

Alates esimesest etapist oleme ehitanud liidese plaadi ESP-01 ja alates 2. sammust on meil 3,3 V toiteallikas ESP-01 plaadi jaoks. Nüüd ühendame toiteallika väljund plaadiga vastavalt skeemile, mis on näidatud V1.

Järgmine samm on ühendada kellamängu Trans/Door klemmid liideseplaadi ühendustega, mis on näidatud kui "Door Chime Terminals". Kuna mu kellamäng on paigaldatud kõrgele seinale, viin proovisõidu ajaks ajutiselt pika paari kaablit kellamängu klemmidest plaadile, et saaksin toiteallika ühendada.

Et testida, kas meie seade töötab, oleks kõige lihtsam jälgida võrgus MQTT -sõnumeid. Selleks peate avama sääsemaaklerile SSH -seansi ja andma järgmise käsu:

mosquitto_sub -v -t '#'

Ülaltoodud käsk võimaldab meil näha kõiki vahendajale saabuvaid MQTT -sõnumeid.

Nüüd ühendage toitejuhe seinakontakti ja kui kõik töötab, peaksite mõne sekundi jooksul nägema vähemalt järgmist MQTT -teadet:

stat/DoorBell/LWT Online

Nüüd minge välja ja helistage uksekella ning peaksite nägema seda teadet:

tele/DoorBell ON

Kui näete neid sõnumeid, on teie projekt edukas.

Lisasin visandisse ka mitu kasulikku MQTT teemat, mida saate kasutada:

"stat/DoorBellInfo": see teade saadetakse iga minuti tagant, et pakkuda tööaega ja muud teavet.

"cmnd/DoorBellInfo": ESP-01 saadab teabe välja, kui saab selle teema väärtusega "1" (ascii = 49) "cmnd/DoorBellCPUrestart": ESP-01 taaskäivitub, kui saab selle teema väärtusega '1 '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 lähtestatakse, kui see teema saab väärtusega' 1 '(ascii = 49)

"tele/FrontDoorBell": ESP-01 saadab sellel teemal sõnumi väärtusega "ON", kui uksekella vajutatakse

Samm: plaadi ja toiteallika integreerimine kellamängu

Plaadi ja toiteallika integreerimine kellamängu
Plaadi ja toiteallika integreerimine kellamängu
Plaadi ja toiteallika integreerimine kellamängu
Plaadi ja toiteallika integreerimine kellamängu
Plaadi ja toiteallika integreerimine kellamängu
Plaadi ja toiteallika integreerimine kellamängu

Nüüd, kui meil on edukas proovisõit, peame plaadi ja toiteallika oma uksekella helisignaali (kui võimalik) kokku panema. Minu olemasolevas kellas on tühi korpus, mille suutsin lahti lõigata ja selle ruumi toiteallika sobitada. ESP-01 tahvel ei mahu selle väikese ruumi sisse, kuid mahub siiski üldise kellamängu kasti sisse. Kasutasin lihtsalt paksu kahepoolset linti ESP-01 liideseplaadi kinnitamiseks.

Nüüd saame eemaldada USB -laadija metallist harud ja asendada need paksema kaabliga, mille saame ühendada maja juhtmestikuga. Lülitage kindlasti välja oma kaitselüliti, mis varustab elektrisignaali.

Kui meie projekti olemasolevasse uksekellu mahutamiseks pole piisavalt ruumi, peate selle panema eraldi kasti ja paigaldama uksekella lähedale.

6. samm: viimane puudutus

Viimane puudutus
Viimane puudutus

Nüüd, kui oleme saanud projekti toimima ja võime avaldada MQTT -sõnumi maaklerile, on järgmine samm mõelda, mida sellega teha.

Oma projektis kasutan Node-RED-i, et kuulata/tellida seda uksekella MQTT-teemat ja teatada mitmetele Google'i kodukõlaritele. Lisaks sellele sidusin ma voo tõukejõu sõlmega, et saata märguanne oma Android -telefonile, et saaksin teada, kas keegi helistab uksekella isegi siis, kui mind kodus pole. Pushbullet -märguanne ei ole mõnele kasulik, kuid see on minu jaoks koos paar korda päris kasulik, koos esikaamera videokaameraga, näen, kes kohaletoimetamist loobusid (tavaliselt helistatakse uksekella). Ma ei saa kaamera liikumise tuvastamise funktsioonile palju loota erinevate häirete, eriti liikuvate puude varjude tõttu.

Selle sammu pilt näitab selle saavutamiseks sõlme-punast voogu. Võite ka voo minu githubi lehelt oma sõlme-punasesse kleepida:

Google'i kodu teadaanne on selle projekti jaoks vaid üks näide, kuid minu arvates on see kõige kasulikum ja praktilisem. Saate alati liituda teiste MQTT kuulajatega või isegi kasutada IFTTT -d teiste seadmete juhtimiseks uksekella vajutamisel.

Lõbutse hästi…

Soovitan: