ዝርዝር ሁኔታ:

በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (IoT) 20 ደረጃዎች (ከስዕሎች ጋር)
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (IoT) 20 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (IoT) 20 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (IoT) 20 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: Create a desktop shortcut to the Dashlane web app 2024, ሀምሌ
Anonim
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (አይኦቲ)
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (አይኦቲ)
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (አይኦቲ)
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (አይኦቲ)
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (አይኦቲ)
በ WebApp ቁጥጥር የሚደረግበት የበር ኦፕሬተር ተጨማሪ (አይኦቲ)

ብዙ ሰዎች መጥተው መሄድ የሚያስፈልጋቸው በር አካባቢ የነበረው ደንበኛ አለኝ። እነሱ በውጭ በኩል የቁልፍ ሰሌዳ ለመጠቀም አልፈለጉም እና የቁልፍ ፎብ አስተላላፊዎች ብዛት ብቻ ነበራቸው። ለተጨማሪ የቁልፍ ቁልፎች ተመጣጣኝ ምንጭ ማግኘት አስቸጋሪ ነበር። እኔ ይህንን የሊፍትማስተር በር ኦፕሬተርን ከብጁ ሃርድዌር ፣ ከድር ኤፒአይ እና ከድር መተግበሪያ በይነገጽ ጋር ተኳሃኝ እንዲሆን IoT ን ማሻሻል ትልቅ ዕድል ይመስለኛል። ይህ የብዙ ተደራሽነትን ችግር ብቻ ሳይሆን ተጨማሪ ተግባራትንም ከፍቷል!

ከላይ ባለው በመጨረሻው ፎቶ በዚፕሎክ ቦርሳ ውስጥ ለአንድ ዓመት ያህል የሮጥኩት የሙከራ ክፍል ነው። እኔ የማሻሻያ ጊዜው ነው ብዬ አሰብኩ!

እዚህ ከተዘረዘሩት ሁሉም ኮዶች ፣ የሃርድዌር መረጃዎች እና ዲዛይኖች ጋር ይህ ሙሉ በሙሉ የሚሰራ መፍትሔ ነው።

ሁሉም የፕሮጀክቶች ፋይሎች እንዲሁ በ GitHub ላይ ተስተናግደዋል- github.com/ThingEngineer/IoT-Gate-Operator-Addon

የ CodeIgniter WebApp በይነገጽ ምሳሌ እዚህ ተስተናግዷል። ፕሮጀክቶች.ajillion.com/gate ይህ ምሳሌ ከቀጥታ በር ጋር የተገናኘ አይደለም ነገር ግን በሮች ላይ የሚሰራ ትክክለኛ በይነገጽ እና ኮድ ነው (አንዳንድ የደህንነት ባህሪያትን ሲቀነስ)።

--

ለበለጠ ውህደት የ IFTTT ቤተ -መጽሐፍትን ለኤሌክትሪክ ኢምፓም መጠቀም ይችላሉ።

ደረጃ 1: ክፍሎቹን ይሰብስቡ

ክፍሎችን ይሰብስቡ
ክፍሎችን ይሰብስቡ
  • ቢያንስ 4 ጂፒአይዎች ያሉት ኤሌክትሪክ አይኤምፒ ያስፈልግዎታል ፣ እኔ በሚያዝያ የመለያ ሰሌዳ IMP001 ን እጠቀማለሁ።
  • የምንጭ ቮልቴጅን ወደ 5 ቮ ዝቅ የሚያደርግ ተቆጣጣሪ። እኔ የዲሲ-ዲሲ ባክ መቀየሪያ ደረጃ ዳውን ሞዱል እየተጠቀምኩ ነው። የ eBoot MP1584EN ስሪት ከአማዞን።
  • ከ IMPs ውፅዓት ጋር አብሮ የሚሠራ ባለሁለት (ወይም ከዚያ በላይ) የቅብብሎሽ ሞዱል ወይም ተመሳሳይ የመቀየሪያ መሣሪያ። እኔ ይህንን አንድ JBtek 4 Channel DC 5V Relay ሞዱል ከአማዞን እጠቀማለሁ።
  • ባለ 4 ሽቦ የሽቦ ተርሚናል። እኔ ይህንን አንድ 5Pcs 2 Rows 12P Wire Connector Screw Terminal Barrier Block 300V 20A ን ከአማዞን እጠቀማለሁ።

ደረጃ 2 - አቅርቦቶች

አቅርቦቶች
አቅርቦቶች

እርስዎም ያስፈልግዎታል

  • ወደ 3 ዲ አታሚ ወይም ትንሽ የፕሮጀክት ሳጥን መድረስ
  • ለጉዳይ ክዳን 4 ሚሜ x 6 ሚሜ ገደማ 4 ትናንሽ ብሎኖች
  • የሚጣበቅ ገመድ
  • የሽቦ ቆራጮች
  • የሽቦ ቆራጮች
  • ትናንሽ ጠመዝማዛዎች
  • የመሸጫ ብረት
  • ሙቅ ሙጫ ወይም ሲሊኮን
  • የዚፕ ግንኙነቶች

ደረጃ 3 - ጉዳዩን ከፍ ያድርጉት

ጉዳዩን ከፍ ያድርጉ
ጉዳዩን ከፍ ያድርጉ

ምን ዓይነት መያዣ እንደሚያስፈልግዎ ለመወሰን ክፍሎችዎን ያስተካክሉ። በስዕሉ ላይ ባለው አቀማመጥ 140 ሚሜ ስፋት ፣ 70 ሚሜ ጥልቀት እና 30 ሚሜ ቁመት ያለው መያዣ እፈልጋለሁ።

ደረጃ 4: ሽቦ ዲሲ-ዲሲ መለወጫ

ሽቦ ዲሲ-ዲሲ መለወጫ
ሽቦ ዲሲ-ዲሲ መለወጫ

በዲሲ-ዲሲ መቀየሪያ ቦርድ ውስጥ እና ውጭ ለኃይል ግንኙነቶች 3 ጥንድ ቀይ እና ጥቁር መንጠቆ ሽቦን ይቁረጡ።

  • ግቤት: 100 ሚሜ
  • ወደ IMP ውፅዓት - 90 ሚሜ
  • ወደ ቅብብል ሞዱል ውፅዓት - 130 ሚሜ

እንደሚታየው ወደ ሰሌዳዎ ያሸጧቸው።

ደረጃ 5 - ወደ መሣሪያዎች ሽቦ ኃይል

ወደ መሣሪያዎች የሽቦ ኃይል
ወደ መሣሪያዎች የሽቦ ኃይል
  • በመጠምዘዣ ተርሚናል እገዳ ላይ ከሚገኙት ሁለት ነጥቦች የዲሲ-ዲሲ መለወጫውን ግብዓት ያገናኙ።
  • አጭር 5V ውፅዓት ሽቦዎችን ወደ አይኤምፒው ያሽጡ።
  • ረዣዥም 5 ቪ ውፅዓት ሽቦዎችን ወደ ቅብብል ሞጁል ያሽጡ።

ደረጃ 6: የሽቦ ማስተላለፊያ ሞዱል ግብዓቶች

የሽቦ ቅብብል ሞዱል ግብዓቶች
የሽቦ ቅብብል ሞዱል ግብዓቶች
  • ለሪሌዩ ሞዱል የግብዓት ግንኙነቶች 4 x 90 ሚሜ ሽቦዎችን ይቁረጡ። ኮድ በሚሰጥበት ጊዜ በኋላ ለቀላል ማጣቀሻ 4 የተለያዩ ቀለሞችን እጠቀም ነበር።
  • ሽቦዎቹን ወደ ቅብብሎሽ ሞዱል ግብዓቶች 1-4 ከዚያም ወደ መጀመሪያዎቹ 4 IMP GPIO ቦታዎች (ፒን 1 ፣ 2 ፣ 5 እና 7) በቅደም ተከተል ያሽጡ።

ደረጃ 7: የ IMP ኃይል ዝላይ

የ IMP ኃይል ዝላይ
የ IMP ኃይል ዝላይ

የእርስዎን አይኤምፒ መጀመሪያ ሲያዘጋጁ እና ሲሞክሩ የዩኤስቢ ኃይልን መጠቀም ሊያስፈልግዎት ይችላል። ሲጨርሱ ፣ የኃይል ማጉያውን ወደ ባት ባት ጎን ማንቀሳቀስዎን ያረጋግጡ።

ደረጃ 8: የሽቦ በር ሁኔታ ግብዓቶች

የሽቦ በር ሁኔታ ግብዓቶች
የሽቦ በር ሁኔታ ግብዓቶች
  • ለታታ ሁኔታ ግብዓቶች 2 x 80 ሚሜ ሽቦዎችን ይቁረጡ።
  • ቀሪዎቹን 2 የሾሉ ተርሚናሎች ሽቦዎችን ያገናኙ።
  • ከኤምፒፒ ጂፒኦ ቦታዎች (ፒን 8 እና 9) ቀጥሎ ወደሚገኘው የመሸጫ ሽቦዎች።

ደረጃ 9 - ጉዳይ ያትሙ ወይም ይግዙ

ጉዳይ ያትሙ ወይም ይግዙ
ጉዳይ ያትሙ ወይም ይግዙ

GitHub ወይም Thingiverse ላይ ለዚህ ጉዳይ የእኔን. STL ወይም. F3D ማውረድ ይችላሉ

ለ 3 ዲ አታሚ መዳረሻ ከሌለዎት ትንሽ አጠቃላይ የፕሮጀክት መያዣ ይሠራል።

ደረጃ 10 - ጉዳይዎን ያጌጡ

ጉዳይዎን ያጌጡ
ጉዳይዎን ያጌጡ

ምክንያቱም!

በእኔ ላይ አንዳንድ ውስጠኛ ጽሑፍን አደረግኩ እና በጥቁር ሹል ቀለም ብቻ ቀባሁት። የጀብደኝነት ስሜት ከተሰማዎት ይበልጥ ቀልጣፋ ለማድረግ አክሬሊክስ ቀለም ፣ የጥፍር ቀለም ወይም ሌላ ነገር መጠቀም ይችላሉ።

ደረጃ 11: ለሽቦዎች ቀዳዳ

ለሽቦዎች ቀዳዳ
ለሽቦዎች ቀዳዳ

ሁሉም ሽቦዎች በሚሰበሰቡበት መሃል አጠገብ ከጎኑ ከ 10-15 ሚ.ሜ ትንሽ ቀዳዳ ይከርሙ።

በፕላስቲክ ውስጥ ለንፁህ ፣ ለስላሳ ቀዳዳ ዩኒቢትን ተጠቀምኩ።

ደረጃ 12 የ Hookup ሽቦዎችን ያዘጋጁ እና ይጫኑ

የ Hookup ሽቦዎችን ያዘጋጁ እና ይጫኑ
የ Hookup ሽቦዎችን ያዘጋጁ እና ይጫኑ
የ Hookup ሽቦዎችን ያዘጋጁ እና ይጫኑ
የ Hookup ሽቦዎችን ያዘጋጁ እና ይጫኑ

መሣሪያችንን ከበር ኦፕሬተር ቦርድ ጋር ለማያያዝ 9 x 5-600 ሚሜ ሽቦዎችን ይቁረጡ።

  • 2 ለ 24 ቪ የኃይል ግብዓት
  • 3 ለበሩ ሁኔታ (2 ግብዓቶች እና የጋራ መሬት)
  • 2 ለ ክፍት በር ምልክት
  • 2 ለ ቅርብ በር ምልክት

ቁፋሮ በመጠቀም ከላይ የተዘረዘሩትን እያንዳንዱን ቡድኖች አንድ ላይ ያጣምሩት። ይህ ሁሉንም ነገር ቀላል ያደርገዋል እና የተሻለ ይመስላል።

እንደሚታየው እያንዳንዱን ሽቦዎች ከሚመለከታቸው ተርሚናሎች ጋር ያገናኙ እና ያገናኙ።

ደረጃ 13 - የመንገድ ማያያዣ ሽቦዎች

የመንገድ ማያያዣ ሽቦዎች
የመንገድ ማያያዣ ሽቦዎች

እንደሚታየው የጉድጓዱን ሽቦዎች በጉድጓዱ በኩል ይምሩ።

ደረጃ 14: ተራራ አካላት

የተራራ አካላት
የተራራ አካላት

በሙቅ ሙጫ ወይም በሲሊኮን በትንሽ ዶቃ አማካኝነት ክፍሎችን ያስቀምጡ እና ይጫኑ። አንድን ክፍል ማስወገድ ካስፈለገዎት ብዙ አይጠቀሙ ፣ እነሱን ለመጠበቅ በቂ ይጠቀሙ።

ቦርዶችን በቦታው ለመያዝ በመጀመሪያ ክሊፖችን/ትሮችን መያዣውን ማተም ፈልጌ ነበር ነገር ግን ይህንን መጫን ነበረብኝ እና ጊዜ አልነበረኝም። የቦርድ ክሊፖችን ወደ ጉዳይዎ ማከል ጥሩ ንክኪ ይሆናል።

ደረጃ 15 የማኅተም ማያያዣ ሽቦዎች

ማኅተም Hookup ሽቦዎች
ማኅተም Hookup ሽቦዎች

የሚጣበቁትን ሽቦዎች በሙቅ ሙጫ ወይም በሲሊኮን ያሽጉ።

ደረጃ 16 - ጉዳዩን ይዝጉ

መያዣውን ይዝጉ
መያዣውን ይዝጉ

በዚህ 3 ዲ የታተመ መያዣ ዝርዝር ላይ ትናንሽ ~ 4 ሚሜ ብሎኖችን ተጠቅሜአለሁ። ስለ ቆሻሻ ወይም እርጥበት የሚጨነቁ ከሆነ ፣ ከመዝጋትዎ በፊት በክዳኑ መገጣጠሚያ ዙሪያ የሲሊኮን ዶቃ ወይም ትኩስ ሙጫ ያስቀምጡ።

ደረጃ 17 በበር ኦፕሬተር ውስጥ ይጫኑ

በበር ኦፕሬተር ውስጥ ይጫኑ
በበር ኦፕሬተር ውስጥ ይጫኑ
በበር ኦፕሬተር ውስጥ ይጫኑ
በበር ኦፕሬተር ውስጥ ይጫኑ

በዋናው ሰሌዳ ላይ;

  • ወደ ማስተላለፊያ ውፅዓት 1 ወደ ክፍት በር ተርሚናል ለማስተላለፍ የተገናኙትን ሁለቱ ገመዶች መንጠቆ። (በፎቶዎች ውስጥ ቀይ/ቡናማ)
  • ከዝውውር ውፅዓት 2 ጋር ወደ ተዘጋ በር ተርሚናል ጋር የተገናኙትን ሁለቱ ገመዶች መንጠቆ። (በፎቶዎች ውስጥ ቢጫ/ሰማያዊ)
  • ከዲሲ-ዲሲ የመቀየሪያ ግብዓት ጋር የተገናኙትን ሁለት ገመዶች ወደ 24 ቮ መለዋወጫ የኃይል ማዞሪያ ተርሚናሎች (በፎቶዎች ውስጥ ቀይ/ጥቁር)

በማስፋፊያ ሰሌዳ ላይ

  • ቅብብሎሽ የጋራ ዊንች ተርሚናሎች ከትንሽ ሽቦ ጋር አብረው ይዝለሉ
  • የጋራውን መሬት ከአንዱ የቅብብሎሽ የጋራ የፍተሻ ተርሚናሎች (በፎቶዎች ውስጥ አረንጓዴ) ያገናኙ
  • የ 2 በር ሁኔታ ግብዓቶችን (አይኤምፒ ፒን 8 እና 9) ወደ ቅብብል መደበኛ ክፍት (አይ) የፍተሻ ተርሚናሎች (በፎቶዎች ውስጥ ግራጫ/ቢጫ) ያገናኙ

ሽቦዎቹን መስመር ላይ ያድርጉ ፣ ሥርዓታማ ሆነው እንዲታዩ እና መያዣዎን የሚጭኑበት ወይም የሚያዘጋጁበት ቦታ ይፈልጉ።

በ GitHub ማከማቻ ላይ የተስተናገዱ ተጨማሪ ፣ ሙሉ ጥራት ፎቶዎች አሉ።

ደረጃ 18 የ Aux Relay ሁነታን ያዘጋጁ

የ Aux Relay ሁነታን ያዘጋጁ
የ Aux Relay ሁነታን ያዘጋጁ

በፎቶው ላይ እንደሚታየው ረዳት ማስተላለፊያ መቀያየሪያዎችን ያዘጋጁ።

ይህ IMP በሩ ተዘግቶ ፣ ተከፈተ ፣ ተከፈተ ወይም ተዘግቶ እንደሆነ ለማወቅ የሚያስፈልጋቸውን ምልክቶች ይሰጠዋል።

ደረጃ 19 የ IMP ወኪል እና የመሣሪያ ኮድ

የ IMP ወኪል እና የመሣሪያ ኮድ
የ IMP ወኪል እና የመሣሪያ ኮድ

የኤሌክትሪክ ኃይል ወኪል ኮድ

  • በኤሌክትሪክ Imp IDE ውስጥ አዲስ ሞዴል ይፍጠሩ
  • በአገልጋይዎ ላይ ለመጠቆም ዩአርኤል ይተኩ

// የኤች ቲ ቲ ፒ ተቆጣጣሪ ተግባር

ተግባር httpHandler (req, resp) {ይሞክሩ {local d = http.jsondecode (req.body); // አገልጋይ.ሎግ (ዲ.ሲ); ከሆነ (d.c == "btn") {//server.log(d.val); መሣሪያ.send ("btn", d.val); resp.send (200 ፣ “እሺ”); }} ይያዙ (ለምሳሌ) {// ስህተት ከነበረ በምላሽ server.log ውስጥ መልሰው ይላኩት ("ስህተት:" + ex); resp.send (500 ፣ “የውስጥ አገልጋይ ስህተት” + ex); }} // የኤችቲቲፒ ተቆጣጣሪ http.onrequest (httpHandler) ይመዝገቡ ፤ // የ GateStateChange ተቆጣጣሪ ተግባር ተግባር gateStateChangeHandler (ውሂብ) {// URL ወደ የድር አገልግሎት አካባቢያዊ url = "https://projects.ajillion.com/save_gate_state"; // የይዘት-አይነት ራስጌን ወደ json አካባቢያዊ ራስጌዎች ያዋቅሩ = {"የይዘት አይነት": "ትግበራ/json"}; // ኢንኮድ የተቀበለ ውሂብ እና አካባቢያዊ አካል = http.jsonencode (ውሂብ); server.log (አካል); // ውሂቡን ለድር አገልግሎትዎ http.post (url ፣ ራስጌዎች ፣ አካል) ይላኩ ።sendsync (); } // የ gateStateChange ተቆጣጣሪ መሣሪያን ይመዝገቡ (“gateStateChange” ፣ gateStateChangeHandler);

የኤሌክትሪክ ኃይል ወኪል ኮድ

  • የ Imp መሣሪያን ወደ ሞዴልዎ ይመድቡ
  • የሃርድዌር ካስማዎች ተገናኝተው እንደተቀጠሩ ያረጋግጡ

// Debouce ቤተ -መጽሐፍት

#ይጠይቁ "Button.class.nut: 1.2.0" // Alias for gateOpen GPIO ሚስማር (ገባሪ ዝቅተኛ) በር ይክፈቱ <- hardware.pin2; // ቅጽል ለበር መዝጊያ መቆጣጠሪያ የ GPIO ፒን (ገባሪ ዝቅተኛ) በር መዝጊያ <- hardware.pin7; // 'gateOpen' ን ከዲጂታል 1 (ከፍተኛ) gateOpen.configure (DIGITAL_OUT ፣ 1) የመነሻ እሴት ጋር ዲጂታል ውፅዓት እንዲሆን ያዋቅሩ ፤ // የዲጂታል 1 (ከፍተኛ) gateClose.configure (DIGITAL_OUT ፣ 1) መነሻ እሴት ያለው 'gateClose' ዲጂታል ውፅዓት እንዲሆን ያዋቅሩ ፤ // በሩ እየተንቀሳቀሰ መሆኑን የሚያመለክተው ለጂፒኦ ፒን ተለዋጭ ስም (ኤን.ኦ) በር ሞቪንግ ስቴት <- አዝራር (hardware.pin8 ፣ DIGITAL_IN_PULLUP); // በሩ ሙሉ በሙሉ ተከፍቷል (N. O.) በርOpenState <- አዝራር (hardware.pin9 ፣ DIGITAL_IN_PULLUP) የሚለው ለጂፒኦ ፒን ተለዋጭ ስም; // የበሩን ሁኔታ ለመያዝ ዓለም አቀፍ ተለዋዋጭ (ክፍት = 1 / ተዘግቷል = 0) አካባቢያዊ lastGateOpenState = 0; // Latch Timer object አካባቢያዊ latchTimer = null agent.on ("btn", ተግባር (ውሂብ) {ማብሪያ (data.cmd) {ጉዳይ "ክፍት": gateOpen.write (0); ከሆነ (latchTimer) imp.cancelwakeup (latchTimer (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (1800 ፣ releaseOpen) ፤ server.log (“Latch30m ትእዛዝ ደርሷል”) ፤ መያዣ መያዣ “latch8h”: gateOpen.write (0) ፤ ከሆነ (latchTimer) imp.cancelwakeup (latchTimer) ፤ latchTimer = imppection 28800 ፣ releaseOpen);. ንቁ ተግባር releaseOpen () {ከሆነ (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); // አገልጋይ። } ተግባር releaseClose () {ከሆነ (latchTimer) imp.cancelwakeup (latchTimer); gateClose.write (1); // አገልጋይ። } gateMovingState.onPress (ተግባር () {// ቅብብሎሹ ገብሯል ፣ በር እየተንቀሳቀሰ //server.log("Gate እየተከፈተ ነው)) ፤ አካባቢያዊ ውሂብ = {"gatestate": 1 ፣ "timer": hardware.millis ()}; agent.send (“gateStateChange” ፣ ውሂብ) ፤}) {"gatestate": 0, "ሰዓት ቆጣሪ": hardware.millis ()}; agent.send ("gateStateChange", data);}); gateOpenState.onPress (ተግባር () {// ቅብብሎሹ ገብሯል ፣ በር ሙሉ በሙሉ ተከፍቷል //server.log("Gate is open ") ፤ አካባቢያዊ ውሂብ = {" gatestate ": 2," timer ": hardware.millis ()}; agent.send ("gateStateChange" ፣ ውሂብ) ፤}) = {"gatestate": 3, "ሰዓት ቆጣሪ": hardware.millis ()}; agent.send ("gateStateChange", data);});

ደረጃ 20 የድር አገልግሎት የ PHP ኮድ

የድር አገልግሎት ፒኤችፒ ኮድ
የድር አገልግሎት ፒኤችፒ ኮድ

ይህንን ኮድ ለ CodeIgniter ማዕቀፍ የጻፍኩት በድሮ ነባር ፕሮጀክት ላይ ስለጨመርኩት ነው። ተቆጣጣሪው እና የእይታ ኮዱ ከመረጡት ማዕቀፍ ጋር በቀላሉ ሊስማማ ይችላል።

ነገሮችን ቀላል ለማድረግ የ JSON መረጃን ለመረጃ ማከማቻ ወደ ጠፍጣፋ ፋይል አስቀምጫለሁ። ግባ ወይም የበለጠ ውስብስብ ከመረጃ ጋር የተዛመዱ ተግባራት የውሂብ ጎታ ይጠቀሙ።

በዚህ ፕሮጀክት ውስጥ የጻፍኩት እና የተጠቀምኩት የአጃክስ ቤተ-መጽሐፍት ከጊትሆብ ማከማቻ ማውረድ ይችላል-ThingEngineer/Codeigniter-jQuery-Ajax

የ PHP መቆጣጠሪያ ኮድ

  • መተግበሪያ/ተቆጣጣሪዎች/ፕሮጄክቶች.php
  • የውሂብ ዱካ በእርስዎ የ PHP ስክሪፕት ፣ በሁለቱም ቦታ እና የማንበብ/የመፃፍ መብቶችን ተደራሽ መሆኑን ያረጋግጡ።

ጭነት-> ረዳት (ድርድር ('ፋይል' ፣ 'ቀን')));

$ data = json_decode (read_file ('../ app/log/gatestate.data') ፣ TRUE) ፤ መቀየሪያ ($ data ['gatestate']) {{0: $ view_data ['gatestate'] = 'ዝግ'; ሰበር; ጉዳይ 1: $ view_data ['gatestate'] = 'በመክፈት ላይ' '; ሰበር; ጉዳይ 2 $ view_data ['gatestate'] = 'ክፍት'; ሰበር; ጉዳይ 3: $ view_data ['gatestate'] = 'መዘጋት …'; ሰበር; } $ last_opened = json_decode (read_file ('../ app/መዝገቦች/ፕሮጀክቶች/gateopened.data') ፣ TRUE) ፤ $ view_data ['last_opened'] = timespan ($ last_opened ['last_opened'], time ())። 'በፊት'; // የጭነት እይታ $ t ['data'] = $ view_data; $ this-> load-> እይታ ('gate_view', $ t); } ተግባር save_gate_state () {$ this-> load-> ረዳት ('ፋይል'); $ data = file_get_contents ('php: // input'); write_file ('../ app/መዝገቦች/ፕሮጀክቶች/gatestate.data', $ ውሂብ); $ ውሂብ = json_decode ($ ውሂብ ፣ እውነት); ከሆነ ($ data ['gatestate'] == 1) {$ last_opened = array ('last_opened' => time ()); write_file ('../ app/ምዝግብ ማስታወሻዎች/ፕሮጀክቶች/gateopened.data', json_encode ($ last_opened)); }} ተግባር get_gate_state () {$ this-> load-> ረዳት (ድርድር ('ፋይል' ፣ 'ቀን'))) ፤ $ this-> load-> ቤተ-መጽሐፍት ('ajax'); $ data = json_decode (read_file ('../ app/መዝገቦች/ፕሮጀክቶች/gatestate.data') ፣ TRUE) ፤ $ last_opened = json_decode (read_file ('../ app/መዝገቦች/ፕሮጀክቶች/gateopened.data'), TRUE); $ ውሂብ ['last_opened'] = timespan ($ last_opened ['last_opened'], time ())። 'በፊት'; $ this-> ajax-> output_ajax ($ data ፣ 'json' ፣ FALSE); // የ json ውሂብ ይላኩ ፣ የአጃክስ ጥያቄን አያስፈጽሙ}}/ * የፋይል ፕሮጄክቶች መጨረሻ ።php *// * ቦታ ፦.

የ PHP እይታ ኮድ ፦

እኔ ፈጣን ፣ ቀላል እና ምላሽ ሰጪ ስለሆነ Bootstrap ን ለግንባር-መጨረሻው እጠቀም ነበር። እዚህ ማውረድ ይችላሉ- https://getbootstrap.com (jQuery ተካትቷል)

  • መተግበሪያ/ተቆጣጣሪዎች/gate_view.php
  • የኤሌክትሪክ ወኪል ኮድዎን በመጠቀም የእርስዎን ወኪል-ኮድ ይተኩ

IoT Gate Opperator Addon IoT Gate Opperator Addon

  • ቤት
  • አስተዳዳሪ

ክፍት የበር መቆለፊያ ለ 30 ደቂቃዎች ክፍት ነው ለ 8 ሰዓታት ክፍት አሁን ይዝጉ የበር ሁኔታ: ለመጨረሻ ጊዜ የተከፈተው $ (ሰነድ)። አስቀድሞ (ተግባር () {resetStatus ();})) ተግባር sendJSON (JSONout) {var url = 'https:// agent.electricimp.com/YOUR-AGENT-CODE '; $.post (url ፣ JSONout); } $ ("#open_gate")። ጠቅ ያድርጉ (ተግባር () {var JSONout = '{"c": "btn", "val": {"cmd": "open"}}'; sendJSON (JSONout); $ ("#status"). ጽሑፍ ("በመክፈት ላይ …");}); $ ("#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 = {ወኪል: 'መተግበሪያ'}; // የአጃክስ ልጥፍ ጥያቄ $.ajax ({url: target, dataType: ‘json’ ፣ type: ‘POST’ ፣ data: data ፣ success: function (data ፣ textStatus ፣ XMLHttpRequest) {switch (data.gatestate) {case 0: $ ("#ሁኔታ").text ('ክፍት') ፤ ዕረፍት ፤ ጉዳይ 3: $ ("#ሁኔታ") ("#ላስት_ከፈት"); setTimeout (resetStatus, 3000); }

የሚመከር: