WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT): 20 ნაბიჯი (სურათებით)
WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT): 20 ნაბიჯი (სურათებით)

Სარჩევი:

Anonim
WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT)
WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT)
WebApp კონტროლირებადი კარიბჭის ოპერატორის დანამატი (IoT)
WebApp კონტროლირებადი კარიბჭის ოპერატორის დანამატი (IoT)
WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT)
WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT)

მე მყავს კლიენტი, რომელსაც ჰქონდა დახურული ტერიტორია, სადაც ბევრ ადამიანს სჭირდებოდა მოსვლა და წასვლა. მათ არ სურდათ გარედან კლავიატურის გამოყენება და მხოლოდ შეზღუდული რაოდენობის საკვანძო გადამცემები ჰქონდათ. ძნელი იყო დამატებითი კლავიშებისათვის ხელმისაწვდომი წყაროს პოვნა. ვიფიქრე, რომ ეს იქნებოდა დიდი შესაძლებლობა ამ ლიფტმასტერის კარიბჭის ოპერატორის განახლებისთვის 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 ვერსია ამაზონიდან.
  • ორმაგი (ან მეტი) სარელეო მოდული ან მსგავსი გადართვის მოწყობილობა, რომელიც იმუშავებს IMP– ების გამომავალთან. მე ვიყენებ ამ ერთ JBtek 4 არხს DC 5V სარელეო მოდულს ამაზონიდან.
  • 4 მავთულის ხრახნიანი ტერმინალი. მე ვიყენებ ამ ერთ 5Pcs 2 Rows 12P Wire Connector Screw Terminal Barrier Block 300V 20A from Amazon.

ნაბიჯი 2: მარაგი

მარაგები
მარაგები

თქვენ ასევე დაგჭირდებათ:

  • წვდომა 3D პრინტერზე ან მცირე პროექტის ყუთზე
  • 4 პატარა ხრახნი დაახლოებით 4 მმ x 6 მმ საქმის სახურავისთვის
  • დასაკავშირებელი მავთული
  • Მავთულის საჭრელები
  • მავთულის სტრიპტიზატორები
  • მცირე ზომის ხრახნები
  • გასაყიდი რკინა
  • ცხელი წებო ან სილიკონი
  • Zip კავშირები

ნაბიჯი 3: ზომის შემთხვევაში

ზომის Up შემთხვევაში
ზომის Up შემთხვევაში

განალაგეთ თქვენი ნაწილები იმის დასადგენად, თუ რა ზომის ქეისი დაგჭირდებათ. განლაგებით, როგორც სურათზეა, დამჭირდება ქეისი, რომლის სიგანეა დაახლოებით 140 მმ, სიღრმე 70 მმ და სიმაღლე 30 მმ.

ნაბიჯი 4: მავთულის DC-DC კონვერტორი

მავთულის DC-DC კონვერტორი
მავთულის DC-DC კონვერტორი

გაჭერით 3 წყვილი წითელი და შავი მავთული DC-DC გადამყვანი დაფის შიგნით და გარეთ.

  • შესასვლელი: 100 მმ
  • გამომავალი IMP: 90 მმ
  • გამომავალი სარელეო მოდულში: 130 მმ

შეაერთეთ ისინი თქვენს დაფაზე, როგორც ნაჩვენებია.

ნაბიჯი 5: ელექტროენერგიის მიწოდება მოწყობილობებზე

მავთულის ენერგია მოწყობილობებზე
მავთულის ენერგია მოწყობილობებზე
  • შეაერთეთ DC-DC გადამყვანის შეყვანა ხრახნიანი ტერმინალის ბლოკის ორ წერტილზე.
  • შეაერთეთ მოკლე 5V გამომავალი მავთულები IMP- ს.
  • შეაერთეთ უფრო გრძელი 5 ვ გამომავალი მავთულები სარელეო მოდულში.

ნაბიჯი 6: მავთულის სარელეო მოდულის შეყვანა

მავთულის სარელეო მოდულის შეყვანა
მავთულის სარელეო მოდულის შეყვანა
  • გაჭრა 4 x 90 მმ მავთულები სარელეო მოდულის შეყვანის კავშირებისთვის. მე გამოვიყენე 4 ცალკეული ფერი შემდგომი კოდირებისას ადვილი მითითებისთვის.
  • შეაერთეთ მავთულები სარელეო მოდულის შესასვლელებში 1-4, შემდეგ პირველ 4 IMP GPIO წერტილში (Pin1, 2, 5 და 7) შესაბამისად.

ნაბიჯი 7: IMP Power Jumper

IMP Power Jumper
IMP Power Jumper

შეიძლება დაგჭირდეთ USB ენერგიის გამოყენება, სანამ თავდაპირველად პროგრამირებას და ტესტირებას ახდენთ თქვენს IMP– ზე. დასრულების შემდეგ, დარწმუნდით, რომ გადააადგილეთ დენის ჯამპერი BAT მხარეს.

ნაბიჯი 8: მავთულის კარიბჭის სტატუსის შეყვანა

მავთულის კარიბჭის სტატუსის შეყვანა
მავთულის კარიბჭის სტატუსის შეყვანა
  • გაჭერით 2 x 80 მმ მავთული მდგომარეობის შესასვლელებისთვის.
  • შეაერთეთ მავთულები დარჩენილი 2 ხრახნიანი ტერმინალით.
  • შეაერთეთ მავთულები IMP GPIO წერტილების (Pin8 და 9) შესაბამისად.

ნაბიჯი 9: დაბეჭდეთ ან შეიძინეთ საქმე

დაბეჭდეთ ან იყიდეთ საქმე
დაბეჭდეთ ან იყიდეთ საქმე

თქვენ შეგიძლიათ გადმოწეროთ ჩემი. STL ან. F3D ამ შემთხვევისთვის GitHub ან Thingiverse

თუ თქვენ არ გაქვთ წვდომა 3D პრინტერზე, მცირე პროექტის პროექტი იმუშავებს.

ნაბიჯი 10: დაამშვენე შენი საქმე

დაამშვენე შენი საქმე
დაამშვენე შენი საქმე

იმიტომ!

ჩავიბურტყუნე ტექსტი ჩემზე და უბრალოდ შევაფერადე შავი ბასრი. თუ თავგადასავლების მოყვარული ხართ, შეგიძლიათ გამოიყენოთ აკრილის საღებავი, ფრჩხილის ლაქი ან სხვა რამ, რომ ის კიდევ უფრო გამხდარი იყოს.

ნაბიჯი 11: საბურღი ხვრელი მავთულისთვის

საბურღი ხვრელი მავთულისთვის
საბურღი ხვრელი მავთულისთვის

გაბურღეთ პატარა ხვრელი 10-15 მმ იმ მხარეს, შუა ნაწილში, სადაც ყველა მავთული გაერთიანდება.

პლასტმასის სუფთა, გლუვი ხვრელისთვის Unibit გამოვიყენე.

ნაბიჯი 12: მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები

მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები
მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები
მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები
მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები

გათიშეთ 9 x 5-600 მმ მავთული ჩვენი მოწყობილობის დასაკავშირებლად კარიბჭის ოპერატორის დაფაზე.

  • 2 24V დენის შეყვანისთვის
  • 3 კარიბჭის სტატუსისთვის (2 შეყვანა და საერთო საფუძველი)
  • 2 ღია კარიბჭის სიგნალისთვის
  • 2 დახურული კარიბჭის სიგნალისთვის

გადაახვიეთ თითოეული ზემოთ ჩამოთვლილი ჯგუფი საბურღის გამოყენებით. ეს ყველაფერი გაადვილებს და უკეთესად გამოიყურება.

გათიშეთ და დააკავშირეთ თითოეული მავთული შესაბამის ტერმინალებთან, როგორც ეს ნაჩვენებია.

ნაბიჯი 13: მარშრუტის დამაკავშირებელი მავთულები

მარშრუტის დამაკავშირებელი მავთულები
მარშრუტის დამაკავშირებელი მავთულები

გადააადგილეთ დამაკავშირებელი მავთულები ხვრელში, როგორც ნაჩვენებია.

ნაბიჯი 14: კომპონენტების დამონტაჟება

მთა კომპონენტები
მთა კომპონენტები

მოათავსეთ და დაამონტაჟეთ კომპონენტები ცხელი წებოს ან სილიკონის პატარა მძივით. არ გამოიყენოთ ძალიან ბევრი იმ შემთხვევაში, თუ თქვენ გჭირდებათ ნაწილის ამოღება, გამოიყენეთ მხოლოდ საკმარისი იმისათვის, რომ დაიცვათ ისინი.

მე თავდაპირველად მინდოდა ამოვბეჭდო საქმე კლიპებით/ჩანართებით, რომ გამეკეთებინა დაფები, მაგრამ მჭირდებოდა ამის დაყენება და დრო არ მქონდა. დაფის კლიპების დამატება თქვენს საქმეში სასიამოვნო შეხება იქნება.

ნაბიჯი 15: დალუქეთ დამაკავშირებელი მავთულები

Seal Hookup Wires
Seal Hookup Wires

დახურეთ სადენები ცხელი წებოთი ან სილიკონით.

ნაბიჯი 16: დახურეთ საქმე

დახურეთ საქმე
დახურეთ საქმე

მე გამოვიყენე პატარა ~ 4 მმ ხრახნები ამ 3D ბეჭდვის შემთხვევაში. თუ თქვენ გაწუხებთ ჭუჭყიანი ან ტენიანობა, დახურვის წინ მოათავსეთ სილიკონის ან ცხელი წებოს მძივი სახურავის გარშემო.

ნაბიჯი 17: დააინსტალირეთ Gate Operator

დააინსტალირეთ Gate Operator– ში
დააინსტალირეთ Gate Operator– ში
დააინსტალირეთ Gate Operator– ში
დააინსტალირეთ Gate Operator– ში

მთავარ დაფაზე:

  • მიამაგრეთ ორი მავთული, რომელიც დაკავშირებულია სარელეო გამომავალთან 1 ღია კარიბჭის ტერმინალთან. (ფოტოებში წითელი/ყავისფერი)
  • მიამაგრეთ ორი მავთული, რომელიც დაკავშირებულია სარელეო გამომავალთან 2 Close Gate ტერმინალთან. (ფოტოებში ყვითელი/ლურჯი)
  • შეაერთეთ ორი მავთული, რომლებიც დაკავშირებულია DC-DC გადამყვანის შეყვანისას 24V აქსესუარის დენის ტერმინალებთან (წითელი/შავი ფოტოებში)

გაფართოების დაფაზე

  • Jumper სარელეო საერთო ხრახნიანი ტერმინალები ერთად პატარა ნაჭერი მავთული
  • შეაერთეთ საერთო საფუძველი ერთ სარელეო საერთო ხრახნიან ტერმინალთან (მწვანე ფოტოებში)
  • შეაერთეთ 2 კარიბჭის სტატუსის შეყვანა (IMP Pin8 & 9) სარელეო ნორმალური ღია (NO) ხრახნიანი ტერმინალებით (ნაცრისფერი/ყვითელი ფოტოებში)

გაუშვით მავთულები, შეაერთეთ ისინი, რომ გამოიყურებოდეს სისუფთავე და იპოვნეთ ადგილი, რომ დაამონტაჟოთ ან დააყენოთ თქვენი ქეისი.

არის დამატებითი, სრული გარჩევადობის ფოტოები, განთავსებული GitHub საცავში.

ნაბიჯი 18: დააყენეთ Aux სარელეო რეჟიმი

დააყენეთ Aux სარელეო რეჟიმი
დააყენეთ Aux სარელეო რეჟიმი

დააყენეთ დამხმარე სარელეო გადამრთველები, როგორც ნაჩვენებია ფოტოში.

ეს მისცემს IMP- ს სიგნალებს, რომლებიც მას სჭირდება იმის დასადგენად, არის თუ არა კარიბჭე დახურული, გახსნილი, გახსნილი თუ დახურული.

ნაბიჯი 19: IMP აგენტი და მოწყობილობის კოდი

IMP აგენტი და მოწყობილობის კოდი
IMP აგენტი და მოწყობილობის კოდი

ელექტრო 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 ((შეცდომა: " + ყოფილი); resp.send (500, "შიდა სერვერის შეცდომა:" + ყოფილი); }} // დაარეგისტრირეთ HTTP დამმუშავებელი http.onquest (httpHandler); // GateStateChange დამმუშავებლის ფუნქცია ფუნქცია gateStateChangeHandler (მონაცემები) {// ვებ სერვისის URL url = "https://projects.ajillion.com/save_gate_state"; // კონტენტის ტიპის სათაურის დაყენება json local headers = {"Content-Type": "application/json"}; // მიღებული მონაცემების კოდირება და ლოგის ადგილობრივი ორგანოს = http.jsonencode (მონაცემები); server.log (კორპუსი); // გაგზავნეთ მონაცემები თქვენს ვებ სერვისზე http.post (url, headers, body).sendsync (); } // რეგისტრაცია gateStateChange დამმუშავებელი device.on ("gateStateChange", gateStateChangeHandler);

ელექტრო Imp აგენტის კოდი:

  • მიანიჭეთ Imp მოწყობილობა თქვენს მოდელს
  • დარწმუნდით, რომ აპარატურის ქინძისთავები ცნობილია როგორც დაკავშირებული

// დებიუს ბიბლიოთეკა

#მოითხოვეთ "Button.class.nut: 1.2.0" // მეტსახელი gateOpen GPIO pin (აქტიური დაბალი) gateOpen <- hardware.pin2; // მეტსახელი კარიბჭისთვის კონტროლის დახურვა GPIO pin (აქტიური დაბალი) კარიბჭე დახურვა <- აპარატურა. // '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 object 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.wakeup (1, releaseClose); server.log ("დახურე ახლა მიღებული ბრძანება"); default default: server.log ("ღილაკის ბრძანება არ არის აღიარებული");}}); ფუნქცია releaseOpen () {if (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); //server.log(" ტაიმერის გათავისუფლებული კარიბჭე გახსენით გადამრთველი კონტაქტი "); } ფუნქცია releaseClose () {if (latchTimer) imp.cancelwakeup (latchTimer); gateClose.write (1); //server.log(" ტაიმერი გათავისუფლებულია კარიბჭე დახურეთ გადამრთველი კონტაქტი "); } gateMovingState.onPress (ფუნქცია () {// რელე გააქტიურებულია, კარი მოძრაობს //server.log(" კარიბჭე იხსნება "); ადგილობრივი მონაცემები = {" gatestate ": 1," ტაიმერი ": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);}). onRelease (ფუნქცია () {// რელე გათავისუფლებულია, კარიბჭე ისვენებს //server.log(" კარი დახურულია "); ადგილობრივი მონაცემები = {"gatestate": 0, "ტაიმერი": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);}); gateOpenState.onPress (ფუნქცია () {// რელე გააქტიურებულია, კარი მთლიანად გახსნილია //server.log(" კარიბჭე ღიაა)); ადგილობრივი მონაცემები = {"gatestate": 2, "ტაიმერი": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);}). onRelease (ფუნქცია () {// რელე იხსნება, კარიბჭე ბოლომდე არ არის გახსნილი //server.log(" კარიბჭე იხურება "); ადგილობრივი მონაცემები = {"gatestate": 3, "ტაიმერი": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);});

ნაბიჯი 20: ვებ სერვისის PHP კოდი

ვებ სერვისის PHP კოდი
ვებ სერვისის PHP კოდი

ეს კოდი დავწერე CodeIgniter ჩარჩოსთვის, რადგან დავამატე ძველ არსებულ პროექტს. კონტროლერი და ხედის კოდი შეიძლება ადვილად მოერგოს თქვენი არჩევანის ჩარჩოს.

იმისათვის, რომ ყველაფერი მარტივი იყოს, მე შევინახე JSON მონაცემები ბრტყელ ფაილში მონაცემთა შესანახად. თუ გჭირდებათ ჟურნალი ან მონაცემებთან დაკავშირებული უფრო რთული ფუნქციები გამოიყენეთ მონაცემთა ბაზა.

აიაქსის ბიბლიოთეკას, რომელიც მე დავწერე და გამოვიყენე ამ პროექტში, შეგიძლიათ გადმოწეროთ GitHub საცავიდან: ThingEngineer/Codeigniter-jQuery-Ajax

PHP კონტროლერის კოდი:

  • აპლიკაცია/კონტროლერები/პროექტები. php
  • დარწმუნდით, რომ მონაცემთა ბილიკი ხელმისაწვდომია თქვენი PHP სკრიპტით, როგორც ადგილმდებარეობის, ასევე წაკითხვის/ჩაწერის პრივილეგიებით.

load-> დამხმარე (მასივი ("ფაილი", "თარიღი"));

$ data = json_decode (read_file ('../ app/logs/gatestate.data'), TRUE); გადართვა ($ 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-> load-> ნახვა ('gate_view', $ t); } ფუნქცია save_gate_state () {$ this-> load-> დამხმარე ('ფაილი'); $ data = file_get_contents ('php: // input'); 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-> დამხმარე (მასივი ('ფაილი', 'თარიღი')); $ this-> load-> ბიბლიოთეკა ('ajax'); $ 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 მონაცემები, ნუ აღასრულებთ აიაქსის მოთხოვნას}}/ * ფაილის პროექტების დასრულება. php *// * მდებარეობა:./application/controllers/projects.php */

PHP ნახვა კოდი:

მე გამოვიყენე Bootstrap ფრონტისთვის, რადგან ის სწრაფი, მარტივი და საპასუხოა. შეგიძლიათ გადმოწეროთ აქ: https://getbootstrap.com (jQuery შედის)

  • app/controllers/gate_view.php
  • შეცვალეთ თქვენი აგენტის კოდი თქვენი Electric Imp აგენტის კოდით

IoT Gate Opperator Addon IoT Gate Opperator Addon

  • მთავარი
  • ადმინისტრატორი

გახსენით Gate Latch გახსენით 30 წთ Latch გახსენით 8 საათი დახურეთ ახლა კარიბჭე 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 () {// სამიზნე url var target = 'https://projects.ajillion.com/get_gate_state'; // მოითხოვეთ var data = {agent: 'app'}; // აიაქსის გამოგზავნის მოთხოვნა $.ajax ({url: target, dataType: 'json', type: 'POST', data: data, success: function (data (text, textStatus, XMLHttpRequest) {switch (data.gatestate) {case 0: $ ("#სტატუსი"). ტექსტი ("დახურულია"); შესვენება; საქმე 1: $ ("#სტატუსი"). ტექსტი ("გახსნა …"); შესვენება; საქმე 2: $ ("#სტატუსი").text ("ღია"); შესვენება; შემთხვევა 3: $ ("#სტატუსი"). ტექსტი ("იხურება …"); შესვენება; ნაგულისხმევი: $ ("#სტატუსი"). ტექსტი ("შეცდომა");} $ ("#ბოლო_ გახსნილი"). ტექსტი (data.last_opened);}, შეცდომა: ფუნქცია (XMLHttpRequest, textStatus, errorThrown) {// შეცდომის შეტყობინება $ ("#სტატუსი"). ტექსტი ("სერვერის შეცდომა");}}); setTimeout (resetStatus, 3000); }

გირჩევთ: