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

WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT). 20 քայլ (նկարներով)
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT). 20 քայլ (նկարներով)

Video: WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT). 20 քայլ (նկարներով)

Video: WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT). 20 քայլ (նկարներով)
Video: Что такое брандмауэр? 2024, Նոյեմբեր
Anonim
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT)
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT)
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT)
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT)
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT)
WebApp- ի վերահսկվող դարպասի օպերատորի հավելում (IoT)

Ես հաճախորդ ունեմ, ով ուներ փակ տարածք, որտեղ շատերին էր պետք գալ ու գնալ: Նրանք չէին ցանկանում օգտագործել ստեղնաշար դրսից և ունեին միայն սահմանափակ թվով բանալիների հաղորդիչ: Լրացուցիչ keyfob- երի համար մատչելի աղբյուր գտնելը դժվար էր: Ես կարծում էի, որ հիանալի հնարավորություն կլինի բարձրացնել այս Liftmaster դարպասի օպերատորը ՝ IoT- ի հետ համատեղելի անհատական սարքավորումների, վեբ API- ի և վեբ հավելվածների ինտերֆեյսի հետ: Սա ոչ միայն լուծեց զանգվածային մուտքի խնդիրը, այլև բացեց լրացուցիչ գործառույթներ:

Վերևի վերջին լուսանկարում այն փորձարկման միավորն է, որը ես գրեթե մեկ տարի վազում էի ճարմանդային պայուսակում: Կարծում էի, որ ժամանակն է արդիականացման:

Սա լիովին գործող լուծում է ՝ այստեղ թվարկված բոլոր ծածկագրերով, ապարատային տեղեկատվությամբ և դիզայնով:

Բոլոր նախագծերի ֆայլերը նույնպես տեղակայված են GitHub- ում ՝ github.com/ThingEngineer/IoT-Gate-Operator-Addon

CodeIgniter WebApp ինտերֆեյսի օրինակն այստեղ տեղակայված է ՝ projects.ajillion.com/gate Այս օրինակը կապված չէ ուղիղ դարպասի հետ, այլ հանդիսանում է դարպասների վրա աշխատող ճշգրիտ ինտերֆեյսը և կոդը (հանած անվտանգության որոշ հնարավորություններ):

--

Էլ ավելի մեծ ինտեգրման համար կարող եք օգտագործել IFTTT գրադարանը Electric Imp- ի համար:

Քայլ 1: Հավաքեք մասերը

Հավաքեք մասերը
Հավաքեք մասերը
  • Ձեզ անհրաժեշտ կլինի Էլեկտրական IMP ՝ առնվազն 4 GPIO- ով, ես IMP001- ն օգտագործում եմ ապրիլյան ճեղքման տախտակով:
  • Կարգավորիչ `աղբյուրի լարումը իջեցնելու մինչև 5 Վ: Ես օգտագործում եմ DC-DC Buck Converter Step Down մոդուլ: eBoot- ի MP1584EN տարբերակը Amazon- ից:
  • Երկակի (կամ ավելի) ռելեի մոդուլ կամ նման միացման սարք, որը կաշխատի IMP- ների ելքի հետ: Ես օգտագործում եմ այս մեկ JBtek 4 Channel DC 5V փոխանցման մոդուլը Amazon- ից:
  • 4 մետաղալար պտուտակով տերմինալ: Ես օգտագործում եմ այս մեկը 5 հատ 2 տող 12P մետաղալար միակցիչ պտուտակով տերմինալային արգելափակում 300V 20A Amazon- ից:

Քայլ 2: Պաշարներ

Պարագաներ
Պարագաներ

Ձեզ նույնպես պետք կլինի.

  • Մուտք դեպի 3D տպիչ կամ փոքր նախագծային տուփ
  • 4 փոքր պտուտակներ ՝ մոտ 4 մմ x 6 մմ, պատյանների կափարիչի համար
  • Միացման մետաղալար
  • Մետաղալար կտրիչներ
  • Մետաղալարեր
  • Փոքր պտուտակահաններ
  • Oldոդման երկաթ
  • Տաք սոսինձ կամ սիլիկոն
  • Zip կապեր

Քայլ 3: Չափը մեծացրեք պատյանը

Չափը ՝ գործի չափով
Չափը ՝ գործի չափով

Տեղադրեք ձեր մասերը `որոշելու համար, թե ինչ չափի պատյան է ձեզ հարկավոր: Ինչպես պատկերված է նկարում, ինձ պետք է մոտ 140 մմ լայնություն, 70 մմ խորություն և 30 մմ բարձրություն ունեցող պատյան:

Քայլ 4: Wire DC-DC փոխարկիչ

Հաղորդալար DC-DC փոխարկիչ
Հաղորդալար DC-DC փոխարկիչ

Կտրեք 3 զույգ կարմիր և սև միացման մետաղալար ՝ հոսանքի միացման համար ՝ DC-DC փոխարկիչ տախտակից և դուրս:

  • Մուտք `100 մմ
  • Արդյունք IMP- ին `90 մմ
  • Ելք դեպի ռելեի մոդուլ `130 մմ

Sոդեք դրանք ձեր տախտակին, ինչպես ցույց է տրված:

Քայլ 5: Սարքերին էլեկտրամատակարարում

Լարային էներգիա սարքերին
Լարային էներգիա սարքերին
  • Միացրեք DC-DC փոխարկիչի մուտքը պտուտակային տերմինալային բլոկի երկու կետերին:
  • Կարճ 5 Վ ելքային լարերը միացրեք IMP- ին:
  • Ավելի երկար 5 Վ ելքային լարերը միացրեք ռելեի մոդուլին:

Քայլ 6: Հաղորդալարերի ռելեի մոդուլի մուտքագրումներ

Հաղորդալարերի ռելեի մոդուլի մուտքերը
Հաղորդալարերի ռելեի մոդուլի մուտքերը
  • Կտրեք 4 x 90 մմ լարեր ռելեի մոդուլի մուտքային միացումների համար: Ես օգտագործել եմ 4 առանձին գույներ `հետագայում կոդավորելու համար` հեշտ հղման համար:
  • Հաղորդալարերը միացրեք ռելեի մոդուլի մուտքերին 1-4, այնուհետև IMP GPIO առաջին 4 բծերին (Pin1, 2, 5 և 7) համապատասխանաբար:

Քայլ 7: IMP Power Jumper

IMP Power Jumper
IMP Power Jumper

Հնարավոր է, որ անհրաժեշտ լինի օգտագործել USB հոսանք, մինչ սկզբնական շրջանում ծրագրավորում և փորձարկում եք ձեր IMP- ը: Ավարտելուց հետո, համոզվեք, որ հոսանքի ցատկիչը տեղափոխեք BAT կողմ:

Քայլ 8: Մետաղական դարպասի կարգավիճակի մուտքագրումներ

Մետաղական դարպասի կարգավիճակի մուտքագրումներ
Մետաղական դարպասի կարգավիճակի մուտքագրումներ
  • Կտրեք 2 x 80 մմ լարեր ՝ կարգավիճակի մուտքերի համար:
  • Միացրեք լարերը մնացած 2 պտուտակավոր տերմինալներին:
  • Wոդման լարերը համապատասխանաբար IMP GPIO կետերի կողքին (Pin8 և 9):

Քայլ 9: Տպեք կամ գնեք պատյան

Տպել կամ գնել պատյան
Տպել կամ գնել պատյան

Այս գործի համար կարող եք ներբեռնել իմ. STL կամ.3D ֆայլը GitHub- ում կամ Thingiverse- ում

Եթե դուք չունեք մուտք դեպի 3D տպիչ, փոքր ընդհանուր նախագծի գործը կաշխատի:

Քայլ 10: Deարդարեք ձեր գործը

Deարդարեք ձեր գործը
Deարդարեք ձեր գործը

Որովհետեւ!

Ես իմ վրա դրեցի մի գրված տեքստ և պարզապես ներկեցի այն սև սուրով: Եթե դուք արկածախնդիր եք զգում, կարող եք օգտագործել ակրիլային ներկ, եղունգների լաք կամ այլ բան ՝ այն նույնիսկ ավելի փայլուն դարձնելու համար:

Քայլ 11: Հորատանցք լարերի համար

Հորատանցք լարերի համար
Հորատանցք լարերի համար

Հորատեք մի փոքր անցք 10-15 մմ տրամագծով այն կողմում, որտեղ բոլոր լարերը կհավաքվեն:

Ես Unibit- ը օգտագործեցի պլաստիկի մաքուր և հարթ անցքի համար:

Քայլ 12: Պատրաստեք և տեղադրեք միացման լարերը

Նախապատրաստեք և տեղադրեք միացման լարերը
Նախապատրաստեք և տեղադրեք միացման լարերը
Նախապատրաստեք և տեղադրեք միացման լարերը
Նախապատրաստեք և տեղադրեք միացման լարերը

Կտրեք 9 x 5-600 մմ լարեր `մեր սարքը դարպասի օպերատորի տախտակին ամրացնելու համար:

  • 2 24V հոսանքի մուտքի համար
  • 3 դարպասի կարգավիճակի համար (2 մուտք և ընդհանուր հիմք)
  • 2 բաց դարպասի ազդանշանի համար
  • 2 փակ դարպասի ազդանշանի համար

Շրջեք վերը թվարկված խմբերից յուրաքանչյուրը ՝ օգտագործելով փորվածք: Սա կդարձնի ամեն ինչ ավելի դյուրին և ավելի լավ տեսք:

Կպչեք և միացրեք լարերից յուրաքանչյուրը համապատասխան տերմինալներին, ինչպես ցույց է տրված:

Քայլ 13: Երթուղու միացման լարեր

Երթուղու միացման լարեր
Երթուղու միացման լարեր

Անցեք միացման լարերը անցքի միջով, ինչպես ցույց է տրված:

Քայլ 14: Բաղադրիչների տեղադրում

Բաղադրիչների տեղադրում
Բաղադրիչների տեղադրում

Տեղադրեք և ամրացրեք բաղադրիչները տաք սոսնձի կամ սիլիկոնի փոքր բշտիկով: Մի օգտագործեք շատ, եթե անհրաժեշտ է մաս հանել, դրանք բավականաչափ օգտագործեք դրանք ամրացնելու համար:

Ես ի սկզբանե ցանկանում էի պատյանը տպել սեղմիչներով/ներդիրներով ՝ տախտակները տեղում պահելու համար, բայց ինձ հարկավոր էր տեղադրել այն և ժամանակ չունեի: Ձեր պատյանին տախտակի տեսահոլովակներ ավելացնելը հաճելի կլինի:

Քայլ 15: Կնքեք միացման լարերը

Կնիքի միացման լարեր
Կնիքի միացման լարեր

Կցեք լարերը փակ սոսինձով կամ սիլիկոնով:

Քայլ 16: Փակեք գործը

Փակեք գործը
Փակեք գործը

Այս 3D տպված պատյանների ցանկում ես օգտագործել եմ փոքր ~ 4 մմ պտուտակներ: Եթե ձեզ անհանգստացնում է կեղտը կամ խոնավությունը, կափարիչի հոդի շուրջը տեղադրեք սիլիկոնե կամ տաք սոսինձ:

Քայլ 17: Տեղադրեք Gate Operator- ում

Տեղադրեք Gate Operator- ում
Տեղադրեք Gate Operator- ում
Տեղադրեք Gate Operator- ում
Տեղադրեք Gate Operator- ում

Հիմնական տախտակի վրա.

  • Միացրեք երկու լարերը, որոնք միացված են ռելեի թողարկում 1 -ին Open Gate տերմինալին: (կարմիր/շագանակագույն լուսանկարներում)
  • Միացրեք երկու լարերը, որոնք միացված են ռելեի ելքին 2, փակման դարպասի տերմինալին: (լուսանկարներում դեղին/կապույտ)
  • Միացրեք երկու լարերը, որոնք միացված են DC-DC փոխարկիչի մուտքին 24V լրասարքի հոսանքի պտուտակների տերմինալներին (լուսանկարներում կարմիր/սև)

Ընդլայնման տախտակի վրա

  • Ռելեի ընդհանուր պտուտակային տերմինալները ցատկեք մի փոքր մետաղալարով
  • Միացրեք ընդհանուր հիմքը ռելեի ընդհանուր պտուտակային տերմինալներից մեկին (լուսանկարներում կանաչ)
  • Միացրեք 2 դարպասի կարգավիճակի մուտքերը (IMP Pin8 և 9) ռելեի նորմալ բաց (NO) պտուտակային տերմինալներին (լուսանկարներում մոխրագույն/դեղին)

Ուղղեք լարերը, ամրացրեք դրանք կայծակաճարմանդով ՝ կոկիկ տեսք ունենալու համար և տեղ գտեք ձեր պատյանը ամրացնելու կամ տեղադրելու համար:

Կան լրացուցիչ, լիարժեք լուծման լուսանկարներ, որոնք տեղակայված են GitHub պահոցում:

Քայլ 18: Սահմանեք Aux փոխանցման ռեժիմ

Սահմանեք Aux փոխանցման ռեժիմ
Սահմանեք Aux փոխանցման ռեժիմ

Սահմանեք օժանդակ ռելեի անջատիչները, ինչպես ցույց է տրված լուսանկարում:

Սա IMP- ին կտա անհրաժեշտ ազդանշաններ `որոշելու, թե արդյոք դարպասը փակ է, բացվում է, բացվում է կամ փակվում:

Քայլ 19: IMP գործակալի և սարքի ծածկագիր

IMP գործակալի և սարքի ծածկագիրը
IMP գործակալի և սարքի ծածկագիրը

Electric Imp Գործակալի կոդ:

  • Ստեղծեք նոր մոդել Electric Imp IDE- ում ՝
  • Փոխարինեք URL- ը ՝ ձեր սերվերի վրա նշելու համար

// HTTP կարգավորիչի գործառույթ

գործառույթը httpHandler (req, resp) {try {local d = http.jsondecode (req.body); //server.log(d.c); եթե (d.c == "btn") {//server.log(d.val); device.send («btn», d.val); resp.send (200, «OK»); }} catch (ex) {// Եթե սխալ է եղել, այն հետ ուղարկեք պատասխան server.log- ում ("error:" + ex); resp.send (500, "Ներքին սերվերի սխալ." + նախկին); }} // Գրանցել HTTP մշակող http.onrequest (httpHandler); // GateStateChange մշակողի գործառույթ գործառույթը gateStateChangeHandler (տվյալներ) {// վեբ ծառայության տեղական URL = "https://projects.ajillion.com/save_gate_state"; // Սահմանել Content-Type վերնագիրը json local headers = {"Content-Type": "application/json"}; // Կոդավորեք ստացված տվյալները և գրանցեք տեղական մարմինը = http.jsonencode (տվյալները); server.log (մարմին); // Տվյալներն ուղարկեք ձեր վեբ ծառայության http.post (url, վերնագրեր, տեքստ).sendsync (); } // գրանցել gateStateChange կարգավորիչ սարքը. On ("gateStateChange", gateStateChangeHandler);

Electric Imp Գործակալի կոդ:

  • Ձեր մոդելին նշանակեք Imp սարք
  • Հաստատեք, որ ապարատային կապում նշված է որպես միացված

// Debouce գրադարան

#պահանջել «Button.class.nut: 1.2.0» // Այլ անուն gateOpen GPIO pin (active low) gateOpen <- hardware.pin2; // Կեղծանուն դարպասի համար Փակեք հսկողության GPIO կապը (ակտիվ ցածր) դարակը Փակեք-- hardware.pin7; // Կարգավորեք «gateOpen» - ը որպես թվային ելք ՝ թվային 1 (բարձր) gateOpen.pen.configure սկզբնական արժեքով (DIGITAL_OUT, 1); // Կարգավորեք «gateClose» - ը որպես թվային ելք ՝ թվային 1 (բարձր) դարպասի մեկնարկային արժեքով Close.configure (DIGITAL_OUT, 1); // Կեղծանուն GPIO- ի համար, որը ցույց է տալիս, որ դարպասը շարժվում է (N. O.) gateMovingState <- կոճակ (hardware.pin8, DIGITAL_IN_PULLUP); // Կեղծանուն GPIO- ի համար, որը ցույց է տալիս, որ դարպասը լիովին բաց է (N. O.) gateOpenState <- կոճակ (hardware.pin9, DIGITAL_IN_PULLUP); // Գլոբալ փոփոխական դարպասի վիճակը պահելու համար (Բաց = 1 / Փակ = 0) տեղական lastGateOpenState = 0; // Latch Timer օբյեկտ local latchTimer = null agent.on ("btn", function (data) {switch (data.cmd) {case "open": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (1, releaseOpen); server.log ("Բաց հրաման ստացվեց"); ընդմիջման գործ "latch30m": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (1800, releaseOpen); server.log ("Latch30m հրաման ստացվեց"); ընդմիջման գործ "latch8h": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (28800, releaseOpen); server.log («Latch8h հրամանը ստացվել է»); ընդմիջման գործը «փակել». If (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); gateClose.write (0); latchTimer = imp: գործառույթը releaseOpen () {if (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); //server.log(" imամաչափի թողարկված դարպասըԲացեք անջատիչի կոնտակտը »); } գործառույթը releaseClose () {if (latchTimer) imp.cancelwakeup (latchTimer); gateClose.write (1); //server.log(" imամաչափի թողարկված դարպասըՓակեք անջատիչի կոնտակտը »); } gateMovingState.onPress (գործառույթ () {// Ռելեն ակտիվացված է, դարպասը շարժվում է //server.log(" դարպասը բացվում է)); տեղական տվյալներ = {"gatestate": 1, "timer": hardware.millis ()}; agent.send ("gateStateChange", տվյալներ);}). onRelease (գործառույթը () {// Ռելեը բաց է թողնված, դարպասը հանգստանում է //server.log("Gate փակ է "); տեղական տվյալներ = {"gatestate": 0, "timer": hardware.millis ()}; agent.send ("gateStateChange", տվյալներ);}); gateOpenState.onPress (գործառույթ () {// Ռելեն ակտիվացված է, դարպասը լիովին բաց է //server.log(" դարպասը բաց է "); տեղական տվյալներ = {" gatestate ": 2," timer ": hardware.millis ()}; agent.send («gateStateChange», տվյալներ);}). onRelease (գործառույթը () {// ռելեդը բաց է թողնված, դարպասը լիովին բաց չէ //server.log(" դարպասը փակվում է)); տեղական տվյալներ = {"gatestate": 3, "timer": hardware.millis ()}; agent.send ("gateStateChange", տվյալներ);});

Քայլ 20. Վեբ ծառայության PHP կոդ

Վեբ ծառայության PHP կոդ
Վեբ ծառայության PHP կոդ

Այս կոդը ես գրել եմ CodeIgniter շրջանակի համար, քանի որ այն ավելացրել եմ հին գոյություն ունեցող նախագծին: Կառավարիչը և դիտման ծածկագիրը կարող են հեշտությամբ հարմարվել ձեր նախընտրած շրջանակին:

Ամեն ինչ պարզ պահելու համար ես JSON- ի տվյալները պահեցի հարթ ֆայլում ՝ տվյալների պահպանման համար: Եթե Ձեզ անհրաժեշտ է գրանցում կամ տվյալների հետ կապված ավելի բարդ գործառույթներ, օգտագործեք տվյալների բազա:

Այաքսի գրադարանը, որը ես գրել և օգտագործել եմ այս նախագծում, կարող է ներբեռնվել GitHub պահոցից ՝ ThingEngineer/Codeigniter-jQuery-Ajax

PHP վերահսկիչի ծածկագիր

  • app/controllers/projects.php
  • Համոզվեք, որ տվյալների ուղին հասանելի է ձեր PHP սցենարով ՝ ինչպես գտնվելու վայրով, այնպես էլ կարդալու/գրելու իրավունքներով:

բեռ-> օգնական (զանգված («ֆայլ», «ամսաթիվ»));

$ data = json_decode (read_file ('../ app/logs/gatestate.data'), TRUE); switch ($ data ['gatestate']) {case 0: $ view_data ['gatestate'] = 'Փակ'; ընդմիջում; դեպք 1: $ view_data ['gatestate'] = 'Բացում…'; ընդմիջում; դեպք 2: $ view_data ['gatestate'] = 'Բացել'; ընդմիջում; դեպք 3: $ view_data ['gatestate'] = 'Փակում…'; ընդմիջում; } $ last_opened = json_decode (read_file ('../ app/logs/projects/gateopened.data'), TRUE); $ view_data ['last_opened'] = ժամանակի բաց ($ last_opened ['last_opened'], ժամանակը ()): ' առաջ'; // Բեռնել դիտում $ t ['data'] = $ view_data; $ this-> բեռ-> դիտում ('gate_view', $ t); } գործառույթը save_gate_state () {$ this-> load-> helper ('ֆայլ'); $ data = file_get_contents ('php: // մուտքագրում'); write_file ('../ app/logs/projects/gatestate.data', $ data); $ data = json_decode ($ data, TRUE); if ($ data ['gatestate'] == 1) {$ last_opened = զանգված ('last_opened' => ժամանակ ()); write_file ('../ app/logs/projects/gateopened.data', json_encode ($ last_opened)); }} գործառույթը get_gate_state () {$ this-> load-> helper (զանգված («ֆայլ», «ամսաթիվ»)); $ this-> բեռ-> գրադարան ('այաքս'); $ data = json_decode (read_file ('../ app/logs/projects/gatestate.data'), TRUE); $ last_opened = json_decode (read_file ('../ app/logs/projects/gateopened.data'), TRUE); $ data ['last_opened'] = ժամանակի բաց ($ last_opened ['last_opened'], ժամանակը ()): ' առաջ'; $ this-> ajax-> output_ajax ($ data, 'json', FALSE); // ուղարկեք json- ի տվյալները, մի գործադրեք ajax- ի հարցումը}}/ * Ֆայլի նախագծերի ավարտը. php *// * Գտնվելու վայրը ՝./application/controllers/projects.php */

PHP Դիտման ծածկագիր.

Ես օգտագործեցի Bootstrap- ը առջևի մասի համար, քանի որ այն արագ, հեշտ և արձագանքող է: Կարող եք ներբեռնել այստեղ ՝ https://getbootstrap.com (jQuery- ն ներառված է)

  • app/controllers/gate_view.php
  • Փոխարինեք ձեր գործակալի ծածկագիրը ձեր Electric Imp գործակալի ծածկագրով

IoT Gate Օպերատոր Addon IoT Դարպաս Օպերատոր Addon

  • տուն
  • Ադմինիստրատոր

Open Gate Latch Բաց 30 րոպե Պահում բաց 8 ժամ Փակել Now Gate Status. agent.electricimp.com/YOUR-AGENT-CODE '; $.փոստ (url, JSONout); } $ ("#open_gate"). կտտացրեք (գործառույթ () {var JSONout = '{"c": "btn", "val": {"cmd": "open"}}'; sendJSON (JSONout); $ («#կարգավիճակ»). տեքստ («Բացում…»);}); $ ("#latch30m_gate"). կտտացրեք (գործառույթ () {var JSONout = '{"c": "btn", "val": {"cmd": "latch30m"}}'; sendJSON (JSONout); $ ("#կարգավիճակ"). տեքստ («Բացում …»);}); $ ("#latch8h_gate"). կտտացրեք (գործառույթ () {var JSONout = '{"c": "btn", "val": {"cmd": "latch8h"}}'; sendJSON (JSONout); $ ("#կարգավիճակ"). տեքստ («Բացում …»);}); $ ("#close_gate"). կտտացրեք (գործառույթ () {var JSONout = '{"c": "btn", "val": {"cmd": "close"}}'; sendJSON (JSONout); $ ("#կարգավիճակ"). տեքստ ("Փակում …");}); գործառույթը resetStatus () {// Target url var target = 'https://projects.ajillion.com/get_gate_state'; // Պահանջել var data = {գործակալ: 'app'}; // Ուղարկեք ajax գրառման $.ajax ({url: target, dataType: 'json', type: 'POST', data: data, success: function (data, textStatus, XMLHttpRequest) {switch (data.gatestate) {case 0: $ («#կարգավիճակ»). Տեքստ («Փակ»); ընդմիջում; գործ 1: $ ("#կարգավիճակ"): տեքստ («Բացում …»); ընդմիջում; գործ 2: $ ("#կարգավիճակ").text («Բաց»); ընդմիջում; դեպք 3: $ («#կարգավիճակ»). տեքստ («փակվում է …»); ընդմիջում; կանխադրված ՝ $ ("#կարգավիճակ"). տեքստ ("Սխալ");} $ ("#last_opened"). տեքստ (data.last_opened);}, սխալ. գործառույթ (XMLHttpRequest, textStatus, errorThrown) {// Սխալի հաղորդագրություն $ ("#կարգավիճակ"). տեքստ ('Սերվերի սխալ');}}); setTimeout (resetStatus, 3000); }

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