MQTT/Google mājas durvju zvans, izmantojot ESP-01: 6 soļi
MQTT/Google mājas durvju zvans, izmantojot ESP-01: 6 soļi
Anonim
MQTT/Google mājas durvju zvans, izmantojot ESP-01
MQTT/Google mājas durvju zvans, izmantojot ESP-01

Vai esat kādreiz nokavējis atbildi viesim, kurš piezvanīja pie durvīm, tikai tāpēc, ka atrodaties kādā mājas daļā, kas ir pārāk tālu, lai dzirdētu zvanu zvanu? piemēram, pagrabstāvā, guļamistabā ar slēgtām durvīm vai varbūt jūs skatījāties televizoru vai klausījāties mūziku.

Ja jums, piemēram, man, ir viens vai vairāki Google mājas skaļruņi vairākās vietās visā jūsu mājā, tas, iespējams, ir tas, kas jums nepieciešams.

Šajā pamācībā es jums parādīšu, kā pievienot MQTT klientu esošam durvju zvana signālam, lai, izmantojot NodeRED, sazinātos ar MQTT brokeri ar paziņojumu Google home / pushbullet. Šis projekts neaizstāj durvju zvana slēdzi un zvanu. Durvju zvanam tā joprojām izmanto parasto mehānisko pogu.

Mēs pievienosim ESP-01 moduli esošajai 16VAC durvju zvana sistēmai, pievienojot MQTT funkcionalitāti, lai nosūtītu ziņojumu MQTT brokerim (nospiežot durvju zvana slēdzi). MQTT brokeris nosūtīs ziņojumu NodeRED. Saņemot MQTT ziņojumu, NodeRED nosūtītu paziņojumu vairākām Google mājas ierīcēm, kā arī pēc izvēles nosūtītu ziņojumu uz mobilo tālruni/pārlūkprogrammu, izmantojot pushbullet.

Mani aizrauj DIY mājas automatizācija un lēnām pievienoju IOT savai mājai. Google mājas lapa ir bijusi viena no manas mājas automatizācijas galvenajām funkcijām.

Mans dēls man iedeva ideju par šo projektu, kad viņš man jautāja, vai es varu likt Google mājas lapai paziņot katru reizi, kad kāds zvana pie mūsu durvīm. Mums ir 2 stāvi + pagrabs mājās, un daudzas reizes mēs nevarējām dzirdēt zvanu, atrodoties pagrabā vai augšstāvā guļamistabā ar aizvērtām durvīm vai ar ieslēgtu televizoru.

Mūsu mājā ir 4 google home mini, kas izvietoti dažādās vietās/telpās, un, izmantojot google mājas, lai paziņotu par durvju zvanu, mēs uzreiz zinām, vai mājās ir kāds zvans.

Savā mājā es izmantoju RaspberryPi ZeroW, lai mitinātu Mosquitto MQTT serveri un NodeRED. Tas darbojas vairāk nekā gadu bez problēmām.

Atsauces:

  • Durvju zvana elektroinstalācijas shēmas:
  • Instalējiet Mosquitto MQTT Broker vietnē Raspberry Pi:
  • Instalējiet NodeRED Raspberry Pi:

1. darbība: izveidojiet shēmu līdz saskarnei ESP-01 un durvju signālu

Izveidojiet ķēdi līdz saskarnei ESP-01 un durvju signālu
Izveidojiet ķēdi līdz saskarnei ESP-01 un durvju signālu
Izveidojiet ķēdi līdz saskarnei ESP-01 un durvju signālu
Izveidojiet ķēdi līdz saskarnei ESP-01 un durvju signālu
Izveidojiet ķēdi līdz saskarnei ESP-01 un durvju signālu
Izveidojiet ķēdi līdz saskarnei ESP-01 un durvju signālu

Pirmais solis būtu izveidot ķēdi, kas būtu saskarne starp ESP-01 un durvju zvanu. Tipiskais durvju signāls tiek aktivizēts, ja starp "TRANS (bijušais)" un "FRONT/REAR" tapām ir 16VAC, kā parādīts manā pirmajā fotoattēlā. Spriegums uz šīm tapām parādās, nospiežot durvju zvana pogu.

Manis izstrādātā ķēde ir uztvert šo 16VAC signālu un pārveidot to par aptuveni 3.3VDC digitālo signālu. Tas ir pamata pusviļņu taisngriezis, ko veido D1 un C1. Šādā situācijā mums nav nepieciešams pilna viļņa taisngriezis, jo līdzstrāvas izejai ir ļoti maza slodze, ietaupot mums mazliet nekustamā īpašuma uz tāfeles. Es vēlos padarīt dēli pēc iespējas mazāk, lai es varētu to ievietot esošajā zvanā.

R1 un R2 veido sprieguma dalītāju, lai samazinātu maksimālo līdzstrāvas spriegumu līdz aptuveni 3,3 V.

R3, TR1 un R4 veido invertoru, lai nodrošinātu reverso loģiku ESP-01 GPIO-2. Tas ir nepieciešams, lai sāknēšanas laikā nodrošinātu loģisku HIGH (ar R4 un R5 uzvilkšanu), lai ESP-01 varētu startēt no zibspuldzes. Nospiežot durvju zvana spiedpogu, tas rada loģiku LOW uz GPIO-2. TR1 var būt jebkurš mazjaudas NPN tranzistors, manā gadījumā es izmantoju 2N3904.

V1 ir 3.3 V līdzstrāvas barošanas avots, ko es izveidoju, izmantojot veco 5 V mobilā tālruņa lādētāju kopā ar AMS1117 3.3 V DC regulatoru, ko parādīšu nākamajā solī.

ESP-01 ligzdai es izmantoju 8 kontaktu standarta IC kontaktligzdu un sagriežot plastmasas tiltus, kas veido atstarpi starp rindām, un pēc tam pielīmējiet 2 rindas kopā.

2. darbība: 3.3VDC barošanas avots ESP-01

3.3VDC barošanas avots ESP-01
3.3VDC barošanas avots ESP-01
3.3VDC barošanas avots ESP-01
3.3VDC barošanas avots ESP-01
3.3VDC barošanas avots ESP-01
3.3VDC barošanas avots ESP-01

Šajā solī mēs veidosim ESP-01 3.3VDC barošanas avotu. Man ir daži veci 500mA un 700mA 5VDC USB lādētāja adapteri, kurus es no jauna paredzēju šim projektam. Mums ir nepieciešams arī 3.3VDC regulators, lai samazinātu 5V spriegumu līdz 3.3V, šim nolūkam es izmantoju lētu iepriekš izveidotu AMS1117 bāzes regulatora moduli, ko nopirku no ebay. Jūs varat meklēt “3.3V AMS1117 modulis” un atrast sev piemērotāko.

Šis 3.3V regulatora modulis ir ļoti mazs, tāpēc es to varu ievietot oriģinālajā 5V USB lādētāja korpusā, padarot to drošāku pret iespējamo īssavienojumu. Es noņemu maiņstrāvas sienas zarus no lādētāja moduļa un nomainu to ar diviem kabeļiem, kas tiks savienoti ar 120 VAC no sienas aiz mana esošā zvana signāla. Bet nenoņemiet zarus šajā solī, kamēr neesam izmēģinājuši nākamo darbību.

Ja tuvumā ir sienas kontaktligzda vai ja neesat apmierināts ar elektroapgādes vadu pieslēgšanu tieši mājas elektroinstalācijai, varat pēc izvēles vienkārši pievienot kontaktdakšu modificētajam barošanas avotam un pieslēgt kabeļus pie skaņas signāla. var neizskatīties tik tīri, kā savienot to tieši ar mājas elektroinstalāciju.

Skatiet vienu no manām fotogrāfijām, lai redzētu, ka aiz mana zvana signāla ir 120VAC vadi un 16VAC transformators.

Pēc tam 3.3V regulatora izeja tiks savienota ar ESP-01 saskarnes plati saskaņā ar iepriekšējo darbību.

3. darbība. ESP-01 mirgošana

Šajā solī mēs mirgosim ESP-01 ar arduino skici. Ja jūs nekad neesat mirgojis ESP-01 moduli, varat sekot manam norādījumam, lai sāktu darbu:

Manu skici varat atrast manā github lapā:

Skicē vismaz ir jāmaina šāda informācija, kas attiecas uz jūsu mājas tīklu/iestatīšanu:

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

Manā mājas tīklā man ir 2 dažādi piekļuves punkti, kas pārraida 2 dažādus SSID, un šī skice ļautu dublēt, izveidojot savienojumu ar nākamo SSID, ja tiek pārtraukta saziņa ar pašreizējo AP. Ja jums ir tikai viens SSID, aizpildiet gan ssid1, gan ssid2 ar vienādu vērtību.

Kad esat veicis izmaiņas, augšupielādējiet skici ESP-01 un pievienojiet ESP-01 saskarnes panelī.

4. darbība. Testa izpilde

Testa skrējiens
Testa skrējiens
Testa skrējiens
Testa skrējiens
Testa skrējiens
Testa skrējiens

Sākot ar 1. darbību, mēs esam izveidojuši ESP-01 saskarnes plati, un no 2. soļa mums ir 3.3 V barošanas avots ESP-01 plates. Tagad mēs pievienojam barošanas avota izeju pie plates saskaņā ar shēmu, kas parādīta kā V1.

Tagad nākamais solis ir savienot zvanu trans/durvju termināļus ar saskarnes plates savienojumiem, kas parādīti kā "Durvju zvanu termināļi". Tā kā mans zvana signāls ir uzstādīts augstu pie sienas, testa palaišanai es īslaicīgi vadu garu kabeļa pāri no zvana signāla spailēm līdz plāksnei, lai varētu pieslēgt strāvas padevi.

Lai pārbaudītu, vai mūsu ierīce darbojas, vienkāršākais būtu uzraudzīt MQTT ziņojumus tīklā. Lai to izdarītu, jums ir jāatver SSH sesija moskītu brokerim un jāizdod šāda komanda:

mosquitto_sub -v -t '#'

Iepriekš minētā komanda ļaus mums redzēt visus MQTT ziņojumus, kas nonāk brokerī.

Tagad pievienojiet strāvas padevi sienas kontaktligzdai, un, ja viss darbojas, pēc dažām sekundēm vismaz vajadzētu redzēt šādu MQTT ziņojumu:

stat/DoorBell/LWT tiešsaistē

Tagad ejiet ārā un zvaniet pie durvīm, un jums vajadzētu redzēt šo ziņojumu:

tele/durvju zvans ir ieslēgts

Ja redzat šos ziņojumus, jūsu projekts ir veiksmīgs.

Skicē es iekļāvu arī vairākas noderīgas MQTT tēmas, kuras varat izmantot:

"stat/DoorBellInfo": šis ziņojums tiek nosūtīts katru minūti, lai sniegtu darbības laiku un citu informāciju.

"cmnd/DoorBellInfo": ESP-01 izsūtīs informāciju, ja saņems šo tēmu ar vērtību "1" (ascii = 49) "cmnd/DoorBellCPUrestart": ESP-01 tiks restartēts, ja saņems šo tēmu ar vērtību "1" '(ascii = 49) "cmnd/DoorBellCPUreset": ESP-01 tiks atiestatīts, ja saņems šo tēmu ar vērtību "1" (ascii = 49)

"tele/FrontDoorBell": ja tiek nospiests durvju zvans, ESP-01 sūtīs ziņojumu šajā tēmā ar vērtību "ON"

5. solis: plates un barošanas avota integrēšana zvanā

Plāksnes un barošanas avota integrēšana zvanā
Plāksnes un barošanas avota integrēšana zvanā
Plāksnes un barošanas avota integrēšana zvanā
Plāksnes un barošanas avota integrēšana zvanā
Plāksnes un barošanas avota integrēšana zvanā
Plāksnes un barošanas avota integrēšana zvanā

Tagad, kad mums ir veiksmīgs testa brauciens, mums ir jāsamontē tāfele un barošanas avots durvju zvana signālā (ja iespējams). Manā esošajā zvanā ir tukšs korpuss, kuru es varēju atvērt un ievietot barošanas avotu šajā telpā. ESP-01 dēlis neietilpst šajā mazajā telpā, bet tomēr iekļaujas kopējā zvanu kastē. Es tikko izmantoju biezu divpusēju lenti, lai uzstādītu ESP-01 saskarnes plati.

Tagad mēs varam noņemt metāla zarus no mūsu USB lādētāja un aizstāt tos ar biezāku kabeli, ko mēs varam pievienot mājas elektroinstalācijai. Noteikti izslēdziet automātisko slēdzi, kas piegādā elektroenerģiju zvanu ķēdei.

Ja mūsu projektam nav pietiekami daudz vietas esošajā durvju zvanā, jums tas jāievieto atsevišķā kastē un jāpiestiprina pie durvju signāla.

6. darbība: pēdējais pieskāriens

Pēdējais pieskāriens
Pēdējais pieskāriens

Tagad, kad projekts ir darbojies un mēs varam publicēt MQTT ziņojumu brokerim, nākamais solis ir izdomāt, ko ar to darīt.

Savā projektā es izmantoju Node-RED, lai klausītos/abonētu šo durvju zvana MQTT tēmu un paziņotu vairākiem Google mājas skaļruņiem. Papildus tam es arī saistīju plūsmu ar pushbullet mezglu, lai nosūtītu paziņojumu uz manu Android tālruni, lai es zinātu, vai kāds zvana pie durvīm, pat ja es neesmu mājās. Paziņojums par push -bullet dažiem nav noderīgs, taču tas man ir bijis ļoti noderīgs pāris reizes kopā ar videokameru manā priekšējā lievenī, un es redzu, kas ieradās, lai atmestu piegādi (viņi parasti zvana pie durvīm). Es nevaru daudz paļauties uz kameras kustības noteikšanas funkciju dažādu traucējumu, jo īpaši kustīgu koku ēnu dēļ.

Attēlā šajā solī ir redzama mezgla-SARKANĀ plūsma, lai to paveiktu. Jūs varat arī ielīmēt plūsmu no manas github lapas savā mezglā RED:

Google mājas paziņojums ir tikai viens piemērs šim projektam, taču, manuprāt, tas ir visnoderīgākais un praktiskākais. Jūs vienmēr varat izveidot savienojumu ar citu MQTT klausītāju vai pat izmantot IFTTT, lai vadītu citas ierīces, nospiežot durvju zvanu.

Izklaidējieties…

Ieteicams: