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

IoT բացօթյա կենդանիների դուռ. 6 քայլ (նկարներով)
IoT բացօթյա կենդանիների դուռ. 6 քայլ (նկարներով)

Video: IoT բացօթյա կենդանիների դուռ. 6 քայլ (նկարներով)

Video: IoT բացօթյա կենդանիների դուռ. 6 քայլ (նկարներով)
Video: Bari arev, barev (mankakan erg) 2024, Նոյեմբեր
Anonim
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ
IoT բացօթյա կենդանիների դուռ

Ինձ ոգեշնչեց այս հրահանգը `ստեղծել հավի բուդի ավտոմատ դուռ: Ոչ միայն ուզում էի հավի ձագի դուռը ժմչփի վրա, այլև ուզում էի դուռը միացնել ինտերնետին, որպեսզի կարողանայի կառավարել այն իմ հեռախոսով կամ համակարգչով: Այս դուռը կառուցվել է իմ հավի կոճղի համար, այնուամենայնիվ, այն հեշտությամբ կարող է կիրառվել տարբեր կենդանիների բնակարանների համար: Կարող եք նաև օգտագործել տարբեր տեսակի 12 Վ շարժիչներ, բացի իմ օգտագործած հին մեքենայի ալեհավաքի շարժիչից:

Adafruit IO- ն և IFTTT- ն իմ ESP8266- ին կարգավորելուց և միացնելուց հետո իմ հավի դուռը կարելի է վերահսկել առցանց: Դուռը կարող է բացվել կամ փակվել.

1) timesշգրիտ ժամանակներում, երբ ես մուտք եմ գործում adafruit.io

2) Իմ հեռախոսի կոճակը սեղմելով

3) տեքստային հաղորդագրություն ուղարկելով որոշակի համարի

4) adafruit.io- ի կոճակին սեղմելով

5) Ֆիզիկական կոճակ սեղմելով

Այդ հատկանիշների կողքին, հավի կոպի դուռը IFTTT հավելվածի միջոցով կարող է իմ հեռախոսին ուղարկել հրատապ ծանուցումներ դռան հետ կապված որևէ խնդրի մասին, օրինակ ՝ դուռը չի բացվում կամ փակվում:

Քանի որ իմ հավը գտնվում է իմ WiFi երթուղիչից մոտ 500 ֆուտ հեռավորության վրա, ես այս նախագիծը իրականացնելու համար օգտագործեցի 433 ՄՀց RFM69HCW հաղորդիչ և ընդունիչ ՝ զուգորդված ESP8266- ով: Կա սև փակ հաղորդիչ տուփ `ապարատով, որը միացված է ինտերնետին և մոխրագույն արտաքին ընդունիչ տուփ, որը վերահսկում է շարժիչը:

Այս հրահանգը ձեզ կտանի 12V լարման շարժիչը կառավարելու համար անհրաժեշտ սարքավորումների ստեղծման գործընթացի միջոցով, որը բացում կամ փակում է իմ հավի դուռի դուռը:

Ես օգտագործել եմ հետևյալ մասերը.

Adafruit 32u4 ՝ 433 ՄՀց RFM69HCW - 25 դոլար

Adafruit MCP23017 I2C 16 մուտքի/ելքի նավահանգստի ընդլայնիչ IC - 2.95 դոլար

Adafruit փետուր HUZZAH ESP8266 WiFi- ով `16,95 դոլար

Adafruit Radio FeatherWing 433 ՄՀց RFM69HCW - 10 դոլար

Adafruit SMA միակցիչ 1.6 մմ հաստությամբ PCB- ների համար `2.50 դոլար

Adafruit uFL SMA ալեհավաքի միակցիչ - 0,75 դոլար

Adafruit RGB կոճակ - $ 10.95

12 Վ էլեկտրամատակարարում - 7 դոլար

5 Վ USB սնուցման աղբյուր - 7 դոլար

Միկրո USB մալուխ - 5 դոլար

4 ալիք փոխանցման տախտակ (կարող է օգտագործել 2 ալիք)- $ 7

DC -DC Buck Converter (օգտագործվում է միայն մեկը, բայց գալիս է 5 տուփով) - 20 դոլար

Reed Switch (դռների անջատիչի մագնիսական սենսոր) - 9 դոլար

2x 433 ՄՀց համակողմանի ալեհավաք - $ 6

uFL- ից SMA մալուխի ադապտեր (օգտագործվում է միայն մեկը, բայց գալիս է 2 -ի փաթեթով) `$ 5

Անջրանցիկ բացօթյա ABS նախագծի տուփ - 11 դոլար

Սև ABS նախագծի տուփ - 10 դոլար

20x4 Blue Character LCD - 10 դոլար

12V Car Antenna Motor - ~ 25 դոլար ebay- ում

Հաղորդալարեր և դիմադրիչներ

Քայլ 1: Բացօթյա ընդունիչ

Բացօթյա ընդունիչ
Բացօթյա ընդունիչ
Բացօթյա ընդունիչ
Բացօթյա ընդունիչ

Արտաքին ընդունիչը բաղկացած է Adafruit 32u4- ից `433MHz RFM69HCW 433 ՄՀց հաճախականությամբ, որը միացված է մի քանի ռելեներ, որոնք միացնում կամ անջատում են 12 Վ շարժիչի համար: Այս մոդուլները, ինչպես նաև 12V- ից 5V DC-DC փոխարկիչը տեղադրված են անջրանցիկ մոխրագույն նախագծային տուփի ներսում: Վերջապես, կա դռան անջատիչի տվիչ, որը միացված է 32u4 Arduino միկրոկառավարիչի կապումներից մեկին, որը զգում է, թե արդյոք դուռը պատշաճ կերպով բացվել կամ փակվել է, երբ այն պետք է բացվի:

15 վայրկյանը մեկ փակ հաղորդիչը կուղարկի «Բաց» կամ «Փակել»: Ստացված հրամանից ելնելով ՝ Arduino 32u4- ը միացնելու կամ անջատելու է ռելե: Իմ ընտրած շարժիչի համար, որը հին մեքենայի ալեհավաքի շարժիչ է, ես ստիպված էի միացնել կամ անջատել երկու ռելեներ `շարժիչի լարվածության պատճառով: Հիմնականում կար հոսանքը միացնելու ռելե, այնուհետև մեկ այլ ռելե, որը վերահսկում էր, թե արդյոք շարժիչը երկարում կամ հետ է քաշվում:

Բաց կամ փակ հաղորդման ընդունումից հետո բացօթյա ընդունիչը պատասխանում է «sensorOpen» կամ «sensorClosed» նշաններով ՝ դռան անջատիչի տվիչի կարգավիճակը նշելու համար: Իդեալում, «բաց» հրամանը կվերադարձնի «sensorOpen» պատասխանը, սակայն, եթե դուռը խրված է կամ շարժիչի խցանումները, դրանք չեն համընկնի: Երբ դրանք չեն համընկնում, փակ հաղորդիչը կցուցադրի այդ տեղեկատվությունը և հրահանգի ծանուցում կուղարկվի ձեր հեռախոսին:

Քայլ 2: Արտաքին ընդունիչ սարքավորումների միացում

Արտաքին ընդունիչ սարքավորումների միացում
Արտաքին ընդունիչ սարքավորումների միացում
Արտաքին ընդունիչ սարքավորումների միացում
Արտաքին ընդունիչ սարքավորումների միացում
Արտաքին ընդունիչ սարքավորումների միացում
Արտաքին ընդունիչ սարքավորումների միացում

Արտաքին ընդունիչի սարքավորումները շատ դժվար չէ միացնել: Ստորև ես ներառեցի մի ցնցող սխեմա, որպեսզի իմ օգտագործած կապանքները հեշտությամբ դիտվեն:

Ինչպես նշեցի վերևում, իմ օգտագործած շարժիչը երկու ռելե էր պահանջում: Ներառեցի պինուտի նկարը: Երկրորդը, երբ 12V- ը միացնում եք կարմիր մետաղալարին, շարժիչը հետ կքաշվի, եթե այն երկարաձգվի: Եթե 12V- ը միացնեք կարմիր մետաղալարին և կանաչ մետաղալարին միաժամանակ, շարժիչը կշարունակվի:

Եղեգի անջատիչը, որը ես կապեցի վերևում, պետք է միացված լինի որպես սովորաբար փակ անջատիչ: Սովորաբար բաց և սովորաբար փակվածների միջև եղած տարբերությունը բացատրվում է վերը կցված նկարում: Softwareրագրային ապահովման միջոցով 32u4- ի մուտքի քորոցին կցված է ներքին քաշման դիմադրություն, ուստի այն, ինչ ձեզ հարկավոր է անել, դռան անջատիչն է միացնել մուտքի քորոցին, ինչպես նաև գետնին:

Դուք ստիպված կլինեք ալեհավաք կցել Adafruit 32u4- ին: Խնդրում ենք ծանոթանալ այս քայլի Adafruit- ի իսկապես լավ բացատրված ձեռնարկին: Ես նախընտրեցի արտաքին ալեհավաք օգտագործել մետաղալարերի փոխարեն `ավելի լավ տիրույթ ստանալու համար:

Քայլ 3: Ներքին հաղորդիչ

Փակ հաղորդիչ
Փակ հաղորդիչ
Փակ հաղորդիչ
Փակ հաղորդիչ
Փակ հաղորդիչ
Փակ հաղորդիչ

Ներքին հաղորդիչը բաղկացած է Adafruit Radio FeatherWing 433 ՄՀց RFM69HCW- ից ՝ տեղադրված Adafruit Feather HUZZAH- ի գագաթին ESP8266 WiFi- ով: Այս մոդուլները միացված են 20x4 նիշանոց էկրանին և RGB արծաթե կոճակին ՝ նախագծի սև արկղի ներսում:

Theուցադրումն ունի NTC համաժամեցված ժամացույց, RSSI հզորությունը dB- ում (չափում է ռադիոազդանշանների ուժը), ժամանակը, երբ կբացվի հավի դուռը, ժամանակը, երբ կփակվի հավի դուռը և դռան ներկա վիճակը: Կոճակը կարմիր է, երբ դուռը փակ է, և կանաչ, երբ դուռը բաց է:

Եթե արտաքին ընդունիչը կորցնում է էներգիան կամ եթե 433 ՄՀց ազդանշանը չի կարող ուղարկվել որևէ պատճառով, էկրանը և RGB կոճակը կանցնեն սխալի երկու հնարավոր ռեժիմներից առաջինը: Առաջին սխալի ռեժիմում էկրանը կասի «ՍԽԱԼ»: Փորձեք վերագործարկել արտաքին ընդունիչը: և կոճակը գույն չի ունենա: Եթե դռան անջատիչի սենսորը հայտնաբերում է, որ դուռը պատշաճ կերպով չի փակվել կամ բացվել, էկրանը և RGB կոճակը կանցնեն սխալի երկու ռեժիմներից երկրորդը: Երկրորդ սխալի ռեժիմում էկրանը կասի «ՍԽԱԼ! Դռան կամ անջատիչի տվիչի խնդիր»: և կոճակը գույն չի ունենա: Երբ խնդիրը ինքն իրեն լուծվի, էկրանը և RGB կոճակը կվերադառնան նորմալ: Այս սխալի ռեժիմներից որևէ մեկի առկայության դեպքում կարող եք ձեր հեռախոսի համար ծանուցումներ ստանալ (ես ավելի ուշ կքննարկեմ այդ կարգավորումը):

Քայլ 4: Ներքին հաղորդիչի սարքավորումների միացում

Ներքին հաղորդիչի սարքավորումների միացում
Ներքին հաղորդիչի սարքավորումների միացում
Ներքին հաղորդիչի սարքավորումների միացում
Ներքին հաղորդիչի սարքավորումների միացում

Adafruit Radio FeatherWing 433MHz RFM69HCW- ը Adafruit Feather HUZZAH- ի վրա ESP8266 WiFi- ով գցելուց հետո մնացել են ընդամենը 2 կապ, որոնք չեն վերցված, I2C կապում է SDA և SCL: Ահա թե ինչու ես գնացի MCP23017 ինտեգրալ սխեմայով (IC): Դա իսկապես զով IC է, որը միացնում է մինչև 16 լրացուցիչ մուտքային/ելքային կապում I2C- ից ավելի ցանկացած միկրոկոնտրոլերի: Բացի այդ, կա նախապես գրված գրադարան, որը կոչվում է Adafruit-RGB-LCD-Shield, որն օգտագործում է այս IC- ն ՝ նիշերի ցուցադրմամբ, որը տեխնիկապես գրված է այս Adafruit արտադրանքի համար, սակայն այն հիանալի աշխատում է այս նախագծի համար:

MCP23017- ը կերպարների ցուցադրմամբ օգտագործելու գաղափարը գալիս է այս շատ լավ գրված ուսանելիից: Խնդրում ենք ստուգել այն:

Ես վերցրեցի այդ հրահանգը և մի քանի կոճակ և RGB էկրան IC- ին միացնելու փոխարեն միացրեցի միայն մեկ կոճակ, որի ներսում կար RGB LED և մոնոխրոմ էկրան IC- ին: Սա ինձ թույլ տվեց IC- ի PIN 1 -ը (սովորաբար օգտագործվում է RGB էկրանին կապույտ լուսավորության համար) որպես իմ միագույն էկրանին լուսամուտ, PIN 28 (սովորաբար օգտագործվում է RGB էկրանին կանաչ լուսավորության համար) որպես կարմիր LED ներսում: կոճակը և PIN 27 (սովորաբար օգտագործվում է RGB էկրանին կարմիր լուսավորության համար) որպես կոճակի ներսում կանաչ LED: PIN 24 -ը միացված էր կոճակի մի կողմին, իսկ մյուս կողմը `գետնին: Դուք կարող եք տեսնել կոճակի պտտումը վերևում ամրացված նկարի վրա (կապույտ կաթոդն անջատված եմ թողել):

Բացի այն, ինչ ես կցուցադրեի, որը կօգնի լարել էկրանը, ես ներառել եմ ցնցող սխեմա, որը կօգնի ձեզ միացնել ամեն ինչ:

Դուք ստիպված կլինեք կարճացնել երեք կապում FeatherWing 433MHz RFM69HCW- ի վերևում, ինչպես բացատրվում է այս Adafruit ձեռնարկի միջոցով: Նաև ստիպված կլինեք ալեհավաք ամրացնել FeatherWing 433MHz RFM69HCW- ին: Խնդրում ենք ծանոթանալ այս քայլի Adafruit- ի իսկապես լավ բացատրված ձեռնարկին: Ես նախընտրեցի օգտագործել արտաքին ալեհավաք `կողային տեղադրված SMA միակցիչով, մետաղալարի կտորի փոխարեն` ավելի լավ տիրույթ ստանալու համար:

Քայլ 5. Միացում Adafruit. IO- ին և IFTTT- ին

Միացում Adafruit. IO- ին և IFTTT- ին
Միացում Adafruit. IO- ին և IFTTT- ին
Միացում Adafruit. IO- ին և IFTTT- ին
Միացում Adafruit. IO- ին և IFTTT- ին

Adafruit IO:

Խնդրում ենք հետևել այս Adafruit ձեռնարկի հրահանգներին ՝ Adafruit. IO- ին գրանցվելու համար, եթե հաշիվ չունեք: Դուք նաև պետք է կարդաք այն մասին, թե ինչ է լրահոսը և վահանակը:

Պարզ ասած, կառավարման վահանակը նման է գրաֆիկական ինտերֆեյսի, մինչդեռ հոսքերը այն են, ինչին դուք ուղարկում եք տվյալներ, որպեսզի կարողանաք դրանք պահել ինտերնետում: Դուք պետք է ստեղծեք 1 վահանակ և 4 լրահոս: Ես իմն անվանեցի դեռևս, երբ գիտեի, թե ինչպես պետք է ճիշտ գրել հավի կոճղը, ուստի խնդրում եմ ներել սխալ ուղղագրությունը: Եթե դուք չեք ցանկանում վերանվանել հոսքի անունները arduino ծածկագրում, պարզապես օգտագործեք նույն անվանումը, ինչ ես արել եմ:

Նախ ստեղծեք չորս հոսքեր.

1) «Հավի հեղաշրջում» Սա բաց/փակ անջատիչի համար է

2) «Chicken Coup Timer» Սա բաց ժամաչափի համար է

3) "Chicken Coup Timer 2" Սա փակ ժամաչափի համար է

4) "Chicken Coup Error Message" Սա սխալի հաղորդագրությունների համար է

Ստեղծեք վահանակ, որը կոչվում է Chicken Coup և ավելացրեք 4 բլոկ ՝ օգտագործելով կապույտ + կոճակը: Խնդրում ենք տե՛ս վերևի նկարը `բլոկների տեսակները, որոնք պետք է տեղադրեք, ինչպես նաև բլոկների անունները: Համոզվեք, որ անջատիչի կարգավիճակները ճշգրիտ անվանեք «Բաց» և «փակ»

IFTTT:

Այս նախագծի IFTTT մասն ավելացնում է ձեր հեռախոսի կոճակը սեղմելու և տեքստ ուղարկելու համար `հավի բակերի դուռը բացելու կամ փակելու համար: Այն նաև թույլ է տալիս IFTTT հավելվածին ուղարկել ձեզ ծանուցումներ, եթե որևէ բան հրապարակվի Chicken Coup Error Message feed- ում: Եթե չեք ցանկանում այս հնարավորությունները, կարող եք բաց թողնել այս բաժինը:

Նախ, ստեղծեք IFTTT հաշիվ, եթե այն արդեն չունեք: Եթե ցանկանում եք օգտագործել իմ ստեղծած նախապես պատրաստված ապլետները, պարզապես գնացեք իմ հաշիվ և միացրեք ձեր ուզած հավելվածները: Հակառակ դեպքում, դուք ստիպված կլինեք ստեղծել ձեր սեփականը և բաժանորդագրվել կամ հրապարակել ձեր ստեղծած adafruit թարմացվող բովանդակությունը:

Քայլ 6. Վերբեռնեք ծածկագիրը և խմբագրեք WiFi SSID- ը և գաղտնաբառը

Դուք պետք է անցնեք Adafruit ձեռնարկի այս էջը, որպեսզի կարողանաք ծածկագիր ներբեռնել փակ հաղորդիչին:

Դուք պետք է անցնեք Adafruit ձեռնարկի այս էջը, որպեսզի կարողանաք ծածկագիր վերբեռնել բացօթյա ընդունիչին:

Դուք պետք է տեղադրեք RFM69 գրադարանը, Adafruit_RGBLCDShield գրադարանը, NTC ժամացույցի գրադարանը, որը կոչվում է simpleDSTadjust և տիկերի գրադարան: Դուք կարող եք գտնել ձեռնարկ, թե ինչպես դա անել այստեղ:

Բացեք Arduino IDE- ն և վերբեռնեք «Outdoor_Receiver.ino» ծածկագիրը արտաքին Arduino 32u4- ում USB մալուխի միջոցով:

Այնուհետև բացեք «Indoor_Transmitter.ino», բացեք config.h ներդիրը և չակերտների ներսում մուտքագրեք ձեր WiFi անունը (SSID) և գաղտնաբառը: Այնուհետև, ձեռք բերեք ձեր Adafruit. IO օգտվողի անունը և IO Key- ը ՝ հետևելով այս ձեռնարկի էջին և մուտքագրեք այն config.h ներդիրում:

Եթե դուք փոխել եք Adafruit IO հոսքերի անունները, ապա ձեզ հարկավոր կլինի խմբագրել ծածկագիրը Ներքին_հաղորդիչ հիմնական ներդիրում: Խմբագրել հետևյալը.

AdafruitIO_Feed *toggleSwitch = io.feed («Հավի հեղաշրջում»);

AdafruitIO_Feed *ժամանակաչափ = io.feed («Հավի հեղաշրջման ժամանակաչափ»);

AdafruitIO_Feed *timer2 = io.feed («Chicken Coup Timer 2»);

AdafruitIO_Feed *սխալ = io.feed («Հավի հեղաշրջման սխալի մասին հաղորդագրություն»);

Դա պետք է լինի այն ամենը, ինչ դուք պետք է անեք: Եթե ցանկանում եք լրացուցիչ հասկանալ, թե ինչպես են աշխատում երկու ուրվագծերը, ես մեկնաբանեցի ծածկագիրը: Խնդրում եմ ինձ տեղեկացնել, եթե ունեք հարցեր: Հաջողություն!

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