Բովանդակություն:

MQTT/Google Home Flood/Water WIFI ցուցիչ ESP-01: 7 քայլով
MQTT/Google Home Flood/Water WIFI ցուցիչ ESP-01: 7 քայլով

Video: MQTT/Google Home Flood/Water WIFI ցուցիչ ESP-01: 7 քայլով

Video: MQTT/Google Home Flood/Water WIFI ցուցիչ ESP-01: 7 քայլով
Video: EVERY home should have FLOOD sensors, here are the best ones. 2024, Նոյեմբեր
Anonim
MQTT/Google Home Flood/Water WIFI ցուցիչ ESP-01- ով
MQTT/Google Home Flood/Water WIFI ցուցիչ ESP-01- ով

Այս խրատելիքում ես ձեզ ցույց կտամ, թե ինչպես կարելի է WiFi ջրհեղեղի/ջրի սենսոր կառուցել նվազագույն արժեքով: Ամբողջ նախագիծը ինձ համար 8 դոլարից պակաս արժե այն մասերի համար, որոնք ես ձեռք եմ բերում ebay- ից և իմ առկա պահեստամասերից:

Այս նախագծում մենք կօգտագործենք ESP-01- ը `Wifi և MQTT հաճախորդներին ջրի առկայությունը հայտնաբերելու համար, և ըստ ցանկության` ուղղակիորեն միացված բարձրախոսին/ազդանշանին `տեղայնացված ազդանշան տրամադրելու համար:

Specificրագրի իմ հատուկ հայտը իմ ջրհորի պոմպի ներսում ջրհեղեղ/ջուր հայտնաբերելն է, ջրհորի պոմպի անսարքության դեպքում: Երբ ջուրը հայտնաբերվում է 2 բաց լարերով, այն հաղորդագրություն կուղարկի MQTT բրոքերին: MQTT բրոքերն այնուհետև հաղորդագրությունը կփոխանցի NodeRED- ին: MQTT հաղորդագրություն ստանալուց հետո NodeRED- ը հայտարարություն կուղարկի Google- ի բազմաթիվ տնային սարքեր և, ըստ ցանկության, հաղորդագրություն կուղարկի բջջային հեռախոսին/դիտարկիչին pushbullet- ի միջոցով

Իհարկե, այս նախագիծը կաշխատի միայն այն դեպքում, եթե տան էլեկտրաէներգիան միացված է: Հաջորդ հրահանգում ես կմիացնեմ մարտկոցի պահեստային սխեման: Բայց եթե էլեկտրաէներգիայի մատակարարումը դարձնում եք այնպես, ինչպես ես, ապա կարող եք պարզապես միացնել USB հոսանքի բանկը մարտկոցի կրկնօրինակի համար: Եթե ունեք Power-Bank, որը թույլ է տալիս միաժամանակ լիցքավորել և սնուցել էներգիան, ուրեմն ամեն ինչ պատրաստ է:

Ես օգտագործում եմ RaspberryPi ZeroW- ն ՝ Mosquitto MQTT սերվերն ու NodeRED- ը հյուրընկալելու համար: Այն աշխատում է ավելի քան մեկ տարի ՝ առանց որևէ խնդրի:

Հղումներ

Քայլ 1: Մասեր, որոնք ձեզ անհրաժեշտ կլինեն

Մասեր, որոնք ձեզ պետք կգան
Մասեր, որոնք ձեզ պետք կգան
Մասեր, որոնք ձեզ պետք կգան
Մասեր, որոնք ձեզ պետք կգան
Մասեր, որոնք ձեզ պետք կգան
Մասեր, որոնք ձեզ պետք կգան

Մասերի ցուցակ

(1) ESP-01

(2) 10K ohm դիմադրություն

(1) փոքր ազդանշանի ընդհանուր NPN տրանզիստոր (ես օգտագործել եմ 2N3904)

(2) երկար լարեր

(1) 5 Վ ընդհանուր էներգիայի մատակարարում (այս սխեման պահանջում է 300 մԱ -ից պակաս հոսանք)

(1) 3.3V կարգավորիչի մոդուլ AMS1117

(1) Micro-USB To DIP Adapter Իգական միակցիչ PCB Converter DIY հավաքածու

(1) USB-A- ից MicroUSB մալուխ:

(1) 8-պին IC վարդակից-կարող է բաց թողնվել, եթե ցանկանում եք ESP-01- ը ուղղակիորեն միացնել տպատախտակին: Կտրեք պլաստիկ կամուրջները, որոնք ստեղծում են տողերի միջև բացը, այնուհետև կպցրեք 2 տողերը միասին, տես լուսանկարը:

(1) Smallրագրի փոքր պարիսպ

Ստորև բերված են լրացուցիչ մասեր, եթե ձեզ անհրաժեշտ է տեղայնացված ահազանգ բարձրախոս/ազդանշանի միջոցով

(1) Ընդհանուր PNP տրանզիստոր, ընտրեք ըստ բարձրախոսի/ազդանշանային հոսանքի/հզորության պահանջի: Իմ դեպքում ես օգտագործում եմ 2N2907- ը, քանի որ բարձրախոսս ընդամենը 0.3 Վտ է (8 օհմ), այն բավականաչափ ուժ կապահովի բարձրախոսը վարելու համար: Եթե ցանկանում եք ավելի բարձր ձայն, կարող եք ընտրել ավելի մեծ տրանզիստոր և բարձրախոս:

(1) Բարձրախոս, տե՛ս վերը նշված PNP տրանզիստորի գրառումը

(1) 100 - 110 օմ դիմադրություն

Քայլ 2: Շղթայի դիագրամ

Շղթայի դիագրամ
Շղթայի դիագրամ

Առաջին քայլը կլինի դիագրամում ցուցադրված սխեմայի ստեղծումը:

Ես կառուցեցի 3.3VDC էլեկտրամատակարարումը ՝ օգտագործելով հին 5 Վ բջջային հեռախոսների լիցքավորիչ ՝ զուգորդված AMS1117 3.3VDC կարգավորիչով: ESP-01 վարդակի համար ես օգտագործում եմ 8-փին ստանդարտ IC վարդակից և կտրում պլաստիկ կամուրջները, որոնք ստեղծում են տողերի միջև եղած բացը, այնուհետև սոսնձում եմ 2 տողը միասին:

Շրջանակը, որը ես նախագծել եմ, պետք է զգա ջրի առկայությունը երկու լարերի միջև: Երբ ջուրը հասնում է երկու լարերի ծայրին, այն կստեղծի մոտավորապես 10K- ից մինչև 20K ohm դիմադրություն: Այնուհետև 10K ohm R1- ի հետ մեկտեղ այն Q1- ի բազային մի փոքր հոսանք է ապահովում, ինչը Q1- ի հագեցում է առաջացնում ՝ GPIO-2- ը սեղմելով գետնին: R1- ը անհրաժեշտ է Q1- ին պաշտպանություն ապահովելու համար `զգայուն լարերի վրա պատահական կարճացման դեպքում:

R2- ը քաշվող դիմադրություն է, որը թույլ է տալիս ESP-01- ը սկսել բոցից:

Այժմ, ըստ ցանկության բարձրախոսի/ազդանշանի, եթե ձեզ պարզապես անհրաժեշտ է ESP-01 ՝ MQTT- ով խոսելու համար և չեք ցանկանում իրականացնել այս տեղայնացված տագնապը, կարող եք հեռացնել R2, Q2, բարձրախոսը և տեղադրել 10K քաշման դիմադրություն GPIO-0- ի միջև: և VCC

Եթե դուք չեք զգում կանանց Micro-USB to DIP ադապտեր օգտագործելու անհրաժեշտությունը, կարող եք լարերը միացնել 5V PS- ի միջև 3.3V կարգավորիչի մոդուլին: Ես նախընտրում եմ օգտագործել MicroUSB իգական ադապտեր, որպեսզի կարողանամ օգտագործել բջջային հեռախոսի ցանկացած ընդհանուր լիցքավորիչ և MicroUSB մալուխ:

Քայլ 3: Շղթայի կառուցում

Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում

Համակցեք բոլոր բաղադրիչներն ու մասերը PCB- ի համաձայն նախորդ էջի սխեմայի համաձայն և կտրեք PCB- ն չափի:

Տեղադրեք PCB- ն պատյանի ներսում, որը կհամապատասխանի PCB- ին և ընտրովի բարձրախոսին: Իմ դեպքում, բոլոր մասերը տեղավորվում էին հեռախոսի մի փոքր ելքի տուփի մեջ, չնայած ես պետք է մի փոքր տաքացնեմ կափարիչը `ուռուցք ստեղծելու համար, որպեսզի ESP-01 մոդուլը տեղավորվի:

Քայլ 4: Flashրամեկուսացում ESP-01- ի համար

Այս քայլում մենք ESP-01- ը կթարթենք arduino ուրվագծով: Եթե դուք երբեք չեք բռնկել ESP-01 մոդուլը, կարող եք հետևել իմ հրահանգին ՝ սկսելու համար.

Դուք կարող եք գտնել իմ ուրվագիծը իմ github էջում ՝

Էսքիզում նվազագույնը պետք է փոխեք ձեր տան ցանցին/կարգավորմանը վերաբերող հետևյալ տեղեկությունները.

#սահմանել MQTT_SERVER "10.0.0.30" const char* ssid1 = "SSID"; const char* password1 = "MYSSIDpassword"; const char* ssid2 = "SSID1"; const char* password2 = "MYSSIDpassword";

Իմ տնային ցանցում ես ունեմ 2 տարբեր մուտքի կետ, որոնք հեռարձակում են 2 տարբեր SSID- ներ, և այս ուրվագիծը թույլ կտա ավելորդություն ՝ միանալով հաջորդ SSID- ին, եթե հաղորդակցությունը ընթացիկ AP- ին կորչի: Եթե ունեք միայն մեկ SSID, լրացրեք և՛ ssid1, և՛ ssid2 նույն արժեքը:

Փոփոխությունը կատարելուց հետո ներբեռնեք ուրվագիծը ESP-01 և միացրեք ESP-01 ինտերֆեյսի տախտակին:

Քայլ 5: Փորձնական գործարկում

Մեր նախագիծը աշխատելու համար ստուգելու համար ամենահեշտը կլինի ցանցում MQTT հաղորդագրությունների մոնիտորինգը: Դա անելու համար հարկավոր է SSH նիստ բացել մոծակների միջնորդի համար և տալ հետևյալ հրամանը.

mosquitto_sub -v -t '#'

Վերոնշյալ հրամանը թույլ կտա մեզ տեսնել բրոքերի մեջ մտնող բոլոր MQTT հաղորդագրությունները:

Այժմ միացրեք մեր սխեման, և եթե ամեն ինչ աշխատի, մի քանի վայրկյանում դուք պետք է գոնե տեսնեք հետևյալ MQTT հաղորդագրությունը.

stat/SumpWaterSensor/LWT Առցանց

Այժմ փորձարկեք ջրի տվիչը ՝ 2 զգայուն լարերը թաթախելով մի բաժակ ջրի մեջ, և դուք պետք է տեսնեք այս հաղորդագրությունը.

tele/SumpWaterSensor WET

Եվ եթե լարերը հանեք ջրից, ապա պետք է տեսնեք այս հաղորդագրությունը.

tele/SumpWaterSensor ՉՈՐ

Եթե տեսնում եք այդ հաղորդագրությունները, ձեր նախագիծը հաջողված է:

Ես նաև ուրվագծում ներառեցի մի քանի օգտակար MQTT թեմաներ, որոնք կարող եք օգտագործել.

«stat/SumpWaterSensorInfo». այս հաղորդագրությունը ուղարկվում է ամեն րոպե ՝ ժամանակն ու այլ տեղեկություններ տրամադրելու համար:

"cmnd/SumpWaterSensorInfo". ESP-01- ը տեղեկատվություն կուղարկի, եթե այս թեման ստանա «1» արժեքով (ascii = 49)

"cmnd/SumpWaterSensorCPUrestart". ESP-01- ը կվերագործարկվի, եթե այս թեման ստանա «1» արժեքով (ascii = 49)

«cmnd/SumpWaterSensorBeep». ESP-01- ը կհնչի բարձրախոսին, եթե այս թեման ստանա «1» արժեքով (ascii = 49)

"cmnd/SumpWaterSensorBeepFreq". Սահմանում է բարձրախոսի ահազանգի հաճախականությունը, կանխադրված = 900 (Հց)

"cmnd/SumpWaterSensorDebug". Միացնել և սահմանել կարգաբերման կարգաբերման մակարդակը (կանխադրվածը 0 է `կարգաբերում չկա)

Քայլ 6: Տեղադրեք տվիչը

Տեղադրեք սենսորը
Տեղադրեք սենսորը
Տեղադրեք սենսորը
Տեղադրեք սենսորը

Իմ դիմումի մեջ ես ուզում եմ լավ վերահսկել իմ ջրամբարի պոմպի ներսում ջրի մակարդակը և տեղեկացնել ինձ, եթե ջուրը հասնում է պոմպի լողացող անջատիչի վերևին, ինչը նշանակում է, որ իմ պոմպը չի աշխատում: Ես անցա լարերը և մետաղալարեր կապի միջոցով ամրացրեցի այն ջրահեռացման խողովակի երկայնքով:

Քայլ 7: Վերջնական հպում

Վերջնական հպում
Վերջնական հպում

Այժմ, երբ մենք գործի դրեցինք նախագիծը և կարողացանք բրոքերին հրապարակել MQTT հաղորդագրություն, հաջորդ քայլն այն է, որ մտածենք, թե ինչ անել դրա հետ:

Իմ նախագծում ես օգտագործում եմ Node-RED ՝ «tele/SumpWaterSensor» MQTT թեման լսելու/բաժանորդագրվելու և ջրի հայտնաբերման դեպքում Google- ի մի քանի բարձրախոսների հայտարարելու համար: Բացի այդ, ես նաև հոսքը կապեցի pushbullet հանգույցի հետ ՝ իմ Android հեռախոսին ծանուցում ուղարկելու համար:

Ես նաև ստեղծեցի վեբ առջև ՝ սենսորի կարգավիճակը տեսնելու համար (միացված/անցանց, ժամանակի ռեժիմ և այլն): Երբեմն ես տեսնում էի, որ այն մի քանի անգամ անջատվում է 1 շաբաթվա ընթացքում, վիճակագրությունից, շատ անգամ դա պայմանավորված է ESP-01- ի անջատմամբ wifi- ից կամ MQTT- ից: Բայց շատ անհանգստանալու կարիք չկա, իմ ուրվագիծը ներառել է ESP-01- ը վերագործարկելու սովորական ռեժիմը, եթե այն շարունակում է ձախողվել WIFI և/կամ MQTT բրոքերին միանալու փորձերի մեջ:

Այս քայլի պատկերը ցույց է տալիս Node-RED հոսքը ՝ դա իրականացնելու համար: Կարող եք նաև իմ github էջից հոսքը տեղադրել Node-RED- ի մեջ ՝

Google- ի տան հայտարարությունը այս նախագծի ընդամենը մեկ օրինակ է, բայց ես կարծում եմ, որ այն ամենաօգտակարն ու գործնականն է: Դուք միշտ կարող եք միացնել այլ MQTT ունկնդիրներին, կամ նույնիսկ օգտագործել IFTTT- ը ՝ հայտնաբերված ջրի վրա այլ սարքեր քշելու համար:

Զվարճանալ…

Խորհուրդ ենք տալիս: