ዝርዝር ሁኔታ:

Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 ደረጃዎች (ከስዕሎች ጋር)
Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 ደረጃዎች (ከስዕሎች ጋር)

ቪዲዮ: Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 ደረጃዎች (ከስዕሎች ጋር)
ቪዲዮ: 2018-11-20 Learning SignalR - Home Automation with .NET Core and Hubitat 2024, ሀምሌ
Anonim
Raspberry Pi-Arduino-SignalR የቤት አውቶሜሽን ማዕከል
Raspberry Pi-Arduino-SignalR የቤት አውቶሜሽን ማዕከል

እዚህ እና እዚህ የታተሙትን የቅድመ ዝግጅት IBLE ዎች አንድ ሁለት ተከትሎ ፣ ይህ ፕሮጀክት ተግባራዊ የቤት አውቶማቲክ ማዕከልን መሰረታዊ ስሪት ለመገንባት የመጀመሪያውን እርምጃ ይወስዳል።

ቀደም ሲል የተማርኳቸውን ነገሮች ሁሉ እና ቀናት እየገፉ ሲሄዱ የምቀጥላቸውን አዳዲስ ነገሮች እንዴት መጠቀም እችላለሁ የሚለውን ለመረዳት ብዙ የተለያዩ ቴክኖሎጂዎችን ተጠቅሜያለሁ።

ስለዚህ ፣ ይህ አውቶማቲክ ማዕከል የሚከተሉትን ክፍሎች ያቀፈ ነው-

የ SQL አገልጋይ 2012 የውሂብ ጎታ

  • አስቀድሞ ከተወሰነ የኢንፍራሬድ (አይአር) ኮዶች ዝርዝር ከአንድ ልዩ “የኮድ ቁልፍ” ጋር በሰንጠረዥ ውስጥ ያከማቻል
  • ተጓዳኝ የ IR ኮዶቻቸውን ዓላማ ለመለየት የኮዱ ቁልፎች በስሜታዊነት (በተጠቃሚው) ተሰይመዋል

የእውነተኛ ጊዜ ASP. NET SignalR Hub የድር መተግበሪያ የሚከተለውን

  • የኤችቲኤምኤል ደንበኛን ከሚመለከተው ተጠቃሚ እንደ ትዕዛዞች “የኮድ ቁልፎችን” ይጠብቃል እና ይቀበላል
  • ሲቀበል ፣ ከ SQL የመረጃ ቋቱ ጋር ይገናኛል እና የቀረበውን ኮድ ቁልፍ በመጠቀም የ IR ኮድ ያወጣል
  • የተገኘውን የ IR ኮድ ለ Python SignalR ደንበኛ ያስተላልፋል

የኤችቲኤምኤል ሲግናል አር ዳሽቦርድ ደንበኛን የሚመለከት ተጠቃሚ -

  • በ jQuery SignalR Client API ዎች በኩል ለሀብ ልዩ የኮድ ቁልፍን ያስተላልፋል
  • በዳሽቦርዱ ላይ ያለው እያንዳንዱ ቁልፍ በ SQL የመረጃ ቋት ሰንጠረዥ ውስጥ የተመዘገበ ልዩ የኮድ ቁልፍን ይወክላል

በ Raspberry Pi 2.0 ላይ የሚሰራ የ Python SignalR የጀርባ አገልግሎት መተግበሪያ-

  • ከሃው እንደ ትዕዛዞች የ IR ኮዶችን ይቀበላል
  • በ IR ኮድ ውስጥ ገደቦችን ይፈልጋል እና በጣም ረጅሙን ኮድ ወደ ክፍሎች ይከፍላል
  • በተከታታይ ወደብ ለአርዱዲኖ ይገናኛል እና እያንዳንዱን ክፍል በተከታታይ ይጽፋል

የአርዱዲኖ አይአር አስተላላፊ ንድፍ -

  • እያንዳንዱን የ IR ኮድ ክፍሎች በተከታታይ ወደብ ላይ ይጠብቃል እና ይቀበላል
  • የኮድ ክፍሎችን ወደ የ IR ኮድ ቋት ድርድር ያሰባስባል
  • IRLib Arduino ቤተ -መጽሐፍት በመጠቀም መጠባበቂያውን ወደ IR ማስተላለፊያ ትዕዛዝ ያጠቃልላል

የዒላማው መሣሪያ በ IR አስተላላፊ አቅራቢያ ከሆነ ፣ ከዚያ መሣሪያው (በአርዲኖ) ለተላለፈው የ IR ምልክት ምላሽ ሊሰጥ ይችላል

ማስታወሻ

ምንም እንኳን ፣ በዚህ ማሳያ ውስጥ የምጠቀምበት የዒላማ መሣሪያ ለ IR ምልክቶች ምላሽ ቢሰጥም ፣ እኔ የ IR ምልክቱን ምላሽ ሊሰጥ በሚችልበት ምክንያት ይህንን የሌላውን IBLE ክፍልን ለማንበብ ይፈልጉ ይሆናል።

ለመንከባለል ጊዜ።

ደረጃ 1 - ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት

እርስዎ ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት
እርስዎ ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት
እርስዎ ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት
እርስዎ ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት
ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት
ከሚያስፈልጉት ፣ ከሚያስፈልጉት በፊት

ይህ አስተማሪ ቀደም ሲል ከተሠሩት ሥራዎች ጋር ይነሳል ይህም የመጨረሻውን IBLE ን አስከትሏል።

ስለዚህ ፣ ለዚህ IBLE ወደምንፈልገው ከመሄዳችን በፊት ፣ ይህንን አስተማሪ እንዴት ለአንዳንድ ዳራ እንዲያነቡ ይመከራል-

  1. የአርዱዲኖ IRLib ኢንፍራሬድ ቤተመፃሕፍት ተቋቁሟል
  2. በዚህ IBLE ውስጥ ጥቅም ላይ የዋሉ የ IR ኮዶች እንዴት የ IR ተቀባይን በመጠቀም ተያዙ
  3. በ IR አስተላላፊ በኩል የዒላማውን መሣሪያ ለመቆጣጠር የተያዙት የ IR ኮዶች እንዴት ጥቅም ላይ እንደዋሉ

ይህ IBLE መጠናቀቁን ተከትሎ የሚከተለውን የ ASP. NET IR ኮድ መቅጃ የድር መተግበሪያ አሰማርኩ

  • በድር ቅጽ በኩል እንደ ግብዓቶች በስህተት ከተሰየመ የኮድ ቁልፍ ጋር የተያዘውን የ IR ኮድ ይቀበሉ
  • በአርዱዲኖ ኡኖ በተከታታይ ቋት ገደብ ስር ለመቆየት ከ 64 ቁምፊዎች በታች ርዝመት ያላቸውን በጣም ረጅም የ IR ኮድ ወደ ክፍሎች ይሰብሩ።
  • የመጨረሻው የኮዶች ክፍል የመጨረሻውን የኮድ ክፍል መቀበሉን ለአርዱዲኖ በሚያመለክተው “ኢ” ቅድመ-ተስተካክሎ ይቀመጣል።
  • ወደ ረዥም ገመድ ከመሰብሰቡ በፊት እያንዳንዱ ክፍል በቧንቧ ወሰን ይለያል
  • በመጨረሻም ፣ የተከፋፈለው የ IR ኮድ ከኮድ ቁልፉ ጋር በ SQL Server 2012 የውሂብ ጎታ ውስጥ ተከማችቷል

በዚህ IBLE ውስጥ ከተብራሩት የቤት አውቶሜሽን ማዕከል ክፍሎች ውስጥ አንዱ የሆነው ይህ የ SQL የመረጃ ቋት ነው።

ማስታወሻ

የ IR ኮድ መቅጃ የድር ትግበራ በሚከተሉት ምክንያቶች የውይይቱ አካል አይደለም።

  • የተራቀቀ የድር መተግበሪያን መገንባት ሳያስፈልግ አርዱዲኖ ንድፍን በመጠቀም ኮዶችን በእጅዎ መያዝ ፣ በቧንቧ በተገደበ ክፍሎች መከፋፈል እና በመረጃ ቋቱ ውስጥ ማከማቸት ይችላሉ።
  • ከዚህ አይቢሌ በተቃራኒ ፣ የ IR መቅጃው ከአርዲኖ ወደ Raspberry Pi በተገላቢጦሽ ግንኙነት ላይ ያተኩራል

ስለዚህ በዚህ ፕሮጀክት ላይ ዝርዝሮች ለሌላ IBLE ርዕስ ይሆናሉ

ደረጃ 2 - እርስዎ የሚፈልጉት - ሃርድዌር

የሚያስፈልግዎት - ሃርድዌር
የሚያስፈልግዎት - ሃርድዌር
የሚያስፈልግዎት - ሃርድዌር
የሚያስፈልግዎት - ሃርድዌር

የሚሰራ Raspberry Pi 2.0 - ኡቡንቱ Mate ን እንዲጭኑ እመክራለሁ ምክንያቱም ይህንን አስተማሪ በሰነድ ውስጥ እዚያው እዚያው Raspberry Pi ላይ OpenLibre Office ን ጨምሮ እጅግ የበለፀጉ ባህሪዎች አሉት።

በተጨማሪም ፣ ፒ ፣ የሚከተሉትን የውጭ አካላት ያስፈልግዎታል

  • የአርዱዲኖ ኡኖ የፕሮቶታይፕንግ መድረክ ወይም ክሎኔን
  • አንድ የ IR አስተላላፊዎች ኤልኢዲ - ከአማዞን. Com ሶስት እግሮች የሚባል የምርት ስም እጠቀም ነበር
  • 330 ወይም 220 Ohm resistors-እኔ ብዙ ምቹ ስለነበረኝ 220 (የቀለም ኮድ ቀይ-ቀይ-ቡናማ) እጠቀም ነበር።
  • የተለመደው የዳቦ ሰሌዳ ፣ አያያorsች እና አርዱዲኖ አከባቢ ያለው ፒሲ
  • የሙከራ እጩ - እንደ ሁለንተናዊ የ Samsung LED ማሳያ ከርቀት መቆጣጠሪያ ጋር

ደረጃ 3 - እርስዎ የሚፈልጉት - ሶፍትዌሩ

ሁሉንም ቁርጥራጮች አንድ ለማድረግ ፣ የሚከተለው የሶፍትዌር ማዋቀር መጫን እና ማሄድ አለበት።

በ Raspberry Pi ላይ የሚከተሉትን መጫን ያስፈልግዎታል

  • አርዱዲኖ አይዲኢ - ስዕሉን ለመገንባት እና ለ UNO ብልጭ ድርግም የሚል ነበር
  • የ Python ሞዱል ለአርዱዲኖ - በዩኤንኦ እና በፒ መካከል ለተከታታይ ግንኙነት
  • የ Python SignalR ደንበኛ ቤተ -መጽሐፍት - እዚህ ተያይዘው ያሉትን መመሪያዎች ማመልከት ይችላሉ

የሚከተለው የልማት አከባቢ የተጫነ የዊንዶውስ ማሽን

  • የ SignalR Hub እና የድር ደንበኛ መተግበሪያን ለመገንባት የ Microsoft Visual Studio Express 2013 ነፃ እትም
  • የኋላ-መጨረሻ ዳታቤዝ ለመንደፍ እና ለመገንባት የ SQL Server 2012 Express ነፃ እትም

የዊንዶውስ በይነመረብ መረጃ አገልጋይ (አይአይኤስ) አስተናጋጅ አካባቢ

  • አንዴ SignalR Hub እና የድር ደንበኛ ተገንብቶ ከተፈተነ ወደ አካባቢያዊ አይአይኤስ አገልጋይ ማሰማራት አለበት
  • በእኔ ሁኔታ ዊንዶውስ 7 ን ከ IIS ጋር በቤቴ አውታረ መረብ ላይ የሚያሄድ አሮጌ ላፕቶፕ ለመጠቀም አቅጃለሁ

ማስታወሻ

ሁሉም መመሪያዎች ለ Python 2.7.x ስሪት ተፈጻሚ ይሆናሉ። ስሪት 3.0 እንደገና መፃፍ ሊፈልግ ይችላል

ደረጃ 4 የ SQL አገልጋይ ጎታ

የ SQL አገልጋይ ጎታ
የ SQL አገልጋይ ጎታ

የተያያዘው መርሃግብር በዚህ መተግበሪያ ውስጥ ጥቅም ላይ የዋለውን መሠረታዊ የ SQL አገልጋይ የመረጃ ቋት አወቃቀር ያሳያል እና ሁለት ሰንጠረ justችን ብቻ ይ containsል።

ሠንጠረዥ AutoHubCode

በዚህ ሠንጠረዥ ውስጥ ያሉት ሁለት አስፈላጊ ዓምዶች -

AutoCodeKey - ለኮድ ቁልፍ ለተጠቃሚ ምቹ ስም ያከማቻል

እያንዳንዱ የኮድ ቁልፎች በራስ -ሰር ደንበኛ ይተላለፋሉ - በእኛ ሁኔታ የኤችቲኤምኤል ቁልፍ ከድር ገጽ

AutoCodeVal - ጥሬውን የ IR ኮድ ቅደም ተከተል ያከማቻል

ይህ በ SignalR Hub ምላሽ በምላሹ ለደንበኛው የሚተላለፈው ትክክለኛው የ IR ኮድ ነው

በዚህ ሁኔታ ፣ ከ Hub ወደ የማያቋርጥ ግንኙነት የ Python ደንበኛ የ IR ኮድ ቅደም ተከተል ይቀበላል እና በ Serial Port ወደ Arduino UNO ያስተላልፋል

ሠንጠረዥ AutoHubLog

  • በአውቶሜሽን ደንበኛው የተጠየቀውን ኮድ ይመዝግባል።
  • ይህ ስርዓቱን ማን እና መቼ እንደተጠቀመ እና ምን ኮድ እንደተጠየቀ ለመከታተል የሚያስችል ልኬት ነው

እንደተጠቀሰው ፣ እኔ የ SQL አገልጋይ 2012 ን እንደ የውሂብ ጎታዬ የምርጫ መድረክ አድርጌያለሁ። እንደ MySQL ፣ Oracle ፣ ወዘተ ባሉ በተለየ የመረጃ ቋት መድረክ ላይ ይህንን ቀላል ንድፍ እንደገና መፍጠር ይችላሉ።

የሆነ ሆኖ ፣ ይህንን የመረጃ ቋት ለመፍጠር የ SQL ስክሪፕት እዚህ ተያይ beenል።

ማስታወሻ

  1. የ SignalR Hub ኮድ ከ SQL Server 2012 የመረጃ ቋት ጋር ለመገናኘት የተነደፈ ነው
  2. ከተለየ የውሂብ ጎታ ጋር አብሮ መሥራት ማለት የውሂብ ጎታውን ሾፌር ለመጠቀም Hub ን መለወጥ ማለት ነው

ደረጃ 5 - የ ASP. NET SignalR Hub ድር መተግበሪያ

የ ASP. NET SignalR Hub ድር መተግበሪያ
የ ASP. NET SignalR Hub ድር መተግበሪያ
የ ASP. NET SignalR Hub ድር መተግበሪያ
የ ASP. NET SignalR Hub ድር መተግበሪያ

የ ASP. NET SignalR Hub ድር ትግበራ በተጓዳኝ መርሃግብሩ ውስጥ እንደተመለከተው የሚከተሉትን አካላት በጋራ ያጠቃልላል።

ክፍል 1 - ከደንበኛ ጥያቄዎችን የሚቀበል እና ምላሽ የሚሰጥበት SignalR Hub

ክፍሎች 2 ፣ 4 - የኤችቲኤምኤል ደንበኛ ድረ -ገጽ እና የራስ -ሰር ስርዓቱን የፊት መጨረሻ በጋራ የሚገነባ እና ለራስ -ሰር ማዕከል ትዕዛዞችን የሚያወጣ የቅጥ ሉህ ነው።

ክፍል 3 - ወደ አውቶማቲክ መገናኛ ለመገናኘት በኤችቲኤምኤል ደንበኛ የሚጠቀሙባቸው የ jQuery SignalR ኤፒአይዎች

ክፍል 5 - SignalR Hub በቀጥታ ከመረጃ ቋቱ ጋር አይገናኝም። ይህንን የሚያደርገው የድርጅት ማዕቀፍን በመጠቀም በሚመነጩ መካከለኛ ክፍሎች በኩል ነው

እነዚህ ክፍሎች የውሂብ ጎታ ዝርዝሮችን ከፊት መጨረሻ ትግበራ ረቂቅ ያደርጋሉ

ክፍል 6 - የድርጅት ማዕቀፍ ክፍሎችን በመጠቀም በ SQL ዳታቤዝ (ቀደም ሲል የተገለፀውን) የንባብ -ጽሁፍ ሥራዎችን ለማከናወን የሚረዳው የውሂብ ጎታ አገልግሎት ክፍል።

ASP. NET እና SignalR የማይክሮሶፍት ቴክኖሎጂዎች ናቸው እና ይህ አጋዥ ስልጠና አንድ ቀላል የምልክት አር ትግበራ እንዴት እንደተገነባ እና እንደተዘረጋ ይራመዳል።

እዚህ የሠራሁት ከዚህ መማሪያ በተገኙት መሠረታዊ ነገሮች ላይ የተመሠረተ ነው። በስራ ላይ ሲውል ፣ መተግበሪያው በሁለተኛው ሥዕል ላይ ከሚታየው ድር ገጽ ጋር ተመሳሳይ መሆን አለበት

በኮዱ ላይ ልብ ይበሉ

የተቆረጠውን የኮዱን ስሪት የያዘ የዚፕ ፋይል ተያይ attachedል

የአቃፊው አወቃቀር በእይታ ውስጥ እንደሚታየው - ሆኖም ግን ፣ የአባሪው መጠንን ለመቀነስ ሁሉም የማዕቀፍ ክፍሎች እና የ jQuery ስክሪፕቶች ተወግደዋል

ምክሩ ይህ ኮድ እንደ መመሪያ ሆኖ እንዲያገለግል ነው ምክንያቱም ከላይ ያለውን የማጠናከሪያ አገናኝ በመከተል አዲስ የምልክት ድር ድር መተግበሪያ ሲፈጥሩ ፣ የቅርብ ጊዜዎቹ የ jQuery ቤተመፃህፍት እና የ ASP. NET ማዕቀፍ ክፍሎች በራስ -ሰር ይታከላሉ።

እንዲሁም ፣ የድረ -ገጽ መተግበሪያዎን ሲገነቡ በራስ -ሰር የሚታከሉ የ jQuery SignalR ደንበኛ ቤተመፃሕፍት የቅርብ ጊዜውን ስሪት ለማንፀባረቅ በ index.html ገጽ ውስጥ የ jQuery ስክሪፕቶች ማጣቀሻዎች መለወጥ አለባቸው።

በመጨረሻም እንደ Web.config* በተሰየሙ ፋይሎች ውስጥ የውሂብ ጎታዎን ለማዛመድ የግንኙነት ሕብረቁምፊው መለወጥ አለበት።

ደረጃ 6 - የ Python SignalR አገልግሎት ደንበኛ

የ Python SignalR አገልግሎት ደንበኛ
የ Python SignalR አገልግሎት ደንበኛ

የኤችቲኤምኤል ሲግናል አር ደንበኛ ፊት ለፊት የተጠቃሚ በይነገጽ ሆኖ ሳለ ፣ የ Python ደንበኛው ዋናው ተግባሩ በሀብ የተላለፈውን የ IR ኮድ መቀበል እና ወደ አርዱዲኖ UNO በተከታታይ ግንኙነት ላይ ማድረስ ነው።

የተያያዘው ኮድ ራሱ ገላጭ ነው እና ተግባሩን ለመግለጽ በቂ ሰነድ አለው።

በተዋሃደ ማያ ገጽ ላይ እንደሚታየው የኤችቲኤምኤል ደንበኛ እና የፓይዘን አገልግሎት ደንበኛ በ SignalR Hub በኩል እንደሚከተለው ይገናኛሉ

  1. የአውቶማቲክ ስርዓቱ ተጠቃሚ በአዝራር ጠቅታ ለሃብ ትእዛዝ ይሰጣል
  2. እያንዳንዱ አዝራር ከ IR ቁልፍ ኮድ ጋር የተቆራኘ ሲሆን ጠቅ ሲያደርግ ይህ ኮድ ወደ መገናኛ ይተላለፋል
  3. ሃብ ይህንን ኮድ ይቀበላል ፣ ከመረጃ ቋቱ ጋር ይገናኛል እና ጥሬውን የ IR ምልክት ኮድ ሰርስሮ ወደ ተገናኙ ደንበኞች ሁሉ ያስተላልፋል።

    በተመሳሳይ ጊዜ ፣ ሃብ ኮዱን እና በርቀት ደንበኞች የተጠየቀበትን ቀን እና ሰዓት በ AutoHubLog የውሂብ ጎታ ሰንጠረዥ ውስጥ አንድ ግቤት ይመዘግባል።

  4. የ Python አገልግሎት ደንበኛው የ IR ኮዱን ተቀብሎ ለተጨማሪ ሂደት ለአርዱዲኖ UNO ያስተላልፋል

ደረጃ 7 - Arduino UNO IR ማስተላለፊያ ንድፍ እና ኮድ

የአርዱዲኖ UNO IR ማስተላለፊያ ንድፍ እና ኮድ
የአርዱዲኖ UNO IR ማስተላለፊያ ንድፍ እና ኮድ
የአርዱዲኖ UNO IR ማስተላለፊያ ንድፍ እና ኮድ
የአርዱዲኖ UNO IR ማስተላለፊያ ንድፍ እና ኮድ
የአርዱዲኖ UNO IR ማስተላለፊያ ንድፍ እና ኮድ
የአርዱዲኖ UNO IR ማስተላለፊያ ንድፍ እና ኮድ

በምስላዊ ሥዕሎቹ ላይ እንደሚታየው የአርዱዲኖ ወረዳ ለዚህ ስርዓት በጣም ቀላል እና ስለሆነም በአጭሩ ተገል describedል-

  • ቀለም የሌለው IR LED በዩኤንኦ ላይ ወደ ዲጂታል ፒን 3 መገናኘት አለበት - ይህ የ IRLib Arduino ቤተ -መጽሐፍት መስፈርት ነው
  • ምክንያቶቹ ከ IRLib ቤተ -መጽሐፍት ጋር በተዛመደው ክፍል ውስጥ የርቀት መቆጣጠሪያን በመዝጋት በቀድሞው IBLE ውስጥ ተገልፀዋል
  • ከዲጂታል ፒን 4 ጋር የተገናኘው አረንጓዴ ኤልኢን በ Raspberry Pi ላይ ከሚሠራው የፓይዘን ደንበኛ ሁሉንም የ IR ኮድ ክፍሎች ሲቀበል የሚያበራ የእይታ አመላካች ነው።
  • ይህንን የ LED መብራት ማብራት በ Raspberry Pi እና UNO መካከል ያለው ተከታታይ ግንኙነት እየሰራ መሆኑን ያረጋግጣል
  • ተከታታይ ግንኙነቶችን ለማንቃት UNO በዩኤስቢ ወደብ በኩል ከ Raspberry Pi ጋር ተገናኝቷል
  • የተያያዘው አርዱዲኖ ንድፍ ሥራውን ለመግለጽ በበቂ ሁኔታ አስተያየት ተሰጥቷል
  • በኮዱ አናት ላይ ያሉት አስተያየቶችም ወረዳው እንዴት መገናኘት እንዳለበት ይገልፃል

ማስታወሻ

በተግባር ፣ አርዱዲኖ እና ፒው ፒ ፣ አርዱዲኖን ለማሽከርከር ጠንካራ ከሆነው ከተጎላበተው የዩኤስቢ ማዕከል ጋር ሊገናኙ እና እንዲሁም በ IR LED በኩል ጠንካራ ምልክት ሊያስተላልፉ ይችላሉ።

ደረጃ 8 ስርዓቱን ማገናኘት እና መሞከር

ስርዓቱን ማገናኘት እና መሞከር
ስርዓቱን ማገናኘት እና መሞከር
ስርዓቱን ማገናኘት እና መሞከር
ስርዓቱን ማገናኘት እና መሞከር
ስርዓቱን ማገናኘት እና መሞከር
ስርዓቱን ማገናኘት እና መሞከር
  1. የ ASP. NET SignalR Hub ፣ የኤችቲኤምኤል ደንበኛው ከ SQL Server 2012 የመረጃ ቋት ጋር በአከባቢዎ የቤት አውታረ መረብ ላይ ወደ የበይነመረብ መረጃ አገልጋይ (አይአይኤስ) ይገንቡ እና ያሰማሩ
  2. በኤችቲኤምኤል ላይ የኤችቲኤምኤል ሲግናል አር ደንበኛን በመክፈት የድር መተግበሪያውን ይድረሱ

    የዚህ ገጽ ዩአርኤል በተለምዶ https:// yourComputer: port_number/ይሆናል

  3. በመቆጣጠሪያ ፓነል ላይ አንድ አዝራር ጠቅ ያድርጉ ፣ እና ማመልከቻው በትክክል ከተሰራ ፣ ማዕከሉ የ IR ኮዱን በመመለስ እና ከመቆጣጠሪያ ፓነል ጎን ባለው ግራጫ ፓነል ውስጥ በማሳየት ምላሽ ይሰጣል።

    ያስታውሱ! በቀድሞው IBLE ውስጥ እንደተገለፀው የ IR መቀበያ ቤተ -መጽሐፍትን በማዋቀር እና ኮዶቹን በመያዝ ኮዳዎችን ወደ የውሂብ ጎታዎ መጫን ይኖርብዎታል።

  4. በዩኤስቢ በኩል አርዱዲኖን ከ Raspberry Pi ጋር ያገናኙት - Arduino IDE ን በ Pi ላይ ይክፈቱ እና UNO ከ Pi ጋር ግንኙነት መመስረት መቻሉን ያረጋግጡ።

    እነዚህ የአርዱዲኖ አጋዥ ጽሑፎች በዚህ በፍጥነት እንዲደርሱዎት ሊረዱዎት ይገባል

  5. የ Python ኮዱን ይክፈቱ እና በአከባቢዎ ላይ ተፈፃሚ እንደሚሆኑ የሚከተሉትን ለውጦች ያድርጉ

    • ከደረጃ 4 እንደተገኘው የእርስዎ UNO ተከታታይ ወደብ አድራሻ
    • ከደረጃ 2 አካባቢያዊ ዩአርኤልዎን ለማዛመድ የምልክት አር ማዕከሉ ዩአርኤል - በዚህ ምሳሌ ውስጥ https:// yourComputer: port_number/signalr ይሆናል
  6. በመጨረሻ ፣ በአርዱዲኖ አይዲኢ ውስጥ በአርዱዲኖ አይዲ ውስጥ Raspberry Pi ላይ ይክፈቱ እና ለ UNO ያብሩ
  7. ቁጥጥር ከሚደረግበት መሣሪያ ጋር ወረዳውን በቅርበት የሚይዝ የዳቦ ሰሌዳውን ያስቀምጡ - IR LED ከመሣሪያው የ IR መቀበያ ወደብ ጋር ግልጽ የሆነ የእይታ መስመር ሊኖረው ይገባል።
  8. በ Python IDLE መሣሪያ አሞሌ ላይ የ F5 ቁልፍን በመጫን የ Raspberry Pi ላይ የ Python ፕሮግራሙን ያስጀምሩ
  9. በኤችቲኤምኤል ደንበኛ መርሃ ግብር (ደረጃ 2) ላይ ወደ የቁጥጥር ፓነል ይመለሱ እና አንድ ቁልፍን ጠቅ ያድርጉ (እንደ ኃይል አብራ ወይም ድምጽ ጨምር)

ስርዓቱ በትክክል ከተዋቀረ ፣ ከዚያ በስልክዎ ወይም በጡባዊዎ ላይ የኤችቲኤምኤል ደንበኛ ገጽን ማምጣት እና በኤችቲኤምኤል ደንበኛ ገጽዎ ላይ ባሉት አዝራሮች መሣሪያዎን መቆጣጠር መቻል አለብዎት።

ደረጃ 9 - በተግባር ላይ ያለው ስርዓት

በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት
በተግባር ላይ ያለው ስርዓት

ከላይ ያሉት ዕይታዎች አንዴ ከተዋቀሩ በኋላ የቤት አውቶሜሽን ሲስተምን በተግባር ያሳያሉ።

ይህንን IBLE ን ካሳተምኩ በኋላ ፣ እኔ ከ VIZIO LED ቲቪዬ ጥቂት IR ኮዶችን በመያዝ በይነገጹን አስፋፍቻለሁ

በመጀመሪያው እይታ ውስጥ ከፋብሪካው ቲቪ የርቀት መቆጣጠሪያ ጎን ለጎን እንደሚታየው ፣ የዚህ የርቀት መቆጣጠሪያ ጥቂት አስፈላጊ ተግባራት በእኔ ጡባዊ በኩል በተደረሰው የድር በይነገጽ ውስጥ ተገንብተዋል።

ቀጣይ ዕይታዎች ከድር በይነገጽ ለተሰጡ ትዕዛዞች ምላሽ ሲሰጡ ቴሌቪዥኑን ከፊት በኩል ከፊት ለፊት ያለውን ጡባዊ ያሳያሉ-

  1. የኃይል ጠፍቷል ትዕዛዝ - ቴሌቪዥኑ ይጠፋል
  2. የኃይል በርቷል ትዕዛዝ - ቴሌቪዥኑ በርቶ ማያ ገጹ ሲበራ የ “V” አርማው ይታያል
  3. በትእዛዝ ላይ ድምጸ -ከል ያድርጉ - አግድም አሞሌ ከድምጽ ማጉያው ጋር ይመጣል

በሁሉም ሙከራዎች ውስጥ ፣ በጡባዊው ማያ ገጽ ላይ ካለው ዳሽቦርድ ጎን ያለው ግራጫ ቦታ በደንበኛው የተሰጠውን ትእዛዝ ያሳያል ፣ እና መልሱ በርቀት ሲግናል አር ሃብ ተመልሷል።

ደረጃ 10 የራስ -ሰር ስርዓትን እና ተዛማጅ ጥገናዎችን ማሻሻል

ከተለያዩ ስርዓቶች የተያዙ ተጨማሪ ኮዶችን በማከል ይህ ስርዓት ሊራዘም ይችላል። ይህ ክፍል ቀላል ቢሆንም ከግምት ውስጥ መግባት ያለብዎት ሌሎች ሁለት ምክንያቶች አሉ።

ማበልጸጊያ 1 (ፈጣን) - ከተለያዩ ርዝመቶች ከ IR ምልክቶች ጋር መሥራት

  1. የተለያዩ ስርዓቶች የ IR ኮዶች ከተለያዩ ርዝመቶች ጋር ይመጣሉ ፣ ከአንድ አምራች በሁለት ምርቶች መካከል እንኳን።

    ለምሳሌ ፣ በዚህ ሁኔታ ፣ ለኤዲዲ ቴሌቪዥኑ የ IR ኮድ ድርድር ርዝመት 67 ነው ፣ የሳምሰንግ ድምጽ አሞሌ ደግሞ 87 አካባቢ ነው።

  2. ያ ማለት ፣ መጀመሪያ የድምፅ አሞሌን ካበራሁ ፣ በአርዱዲኖ ንድፍ ውስጥ ያለው የ IR Buffer ድርድር 87 ኮዶችን በያዘው የ IR ኮድ ቅደም ተከተል ይሞላል።
  3. ይህንን ተከትሎ ፣ የ LED ቲቪውን ካበራሁ ፣ የ IR Buffer ድርድርን በ 67 ኮዶች ብቻ ይሞላል ፣ ግን ከቀድሞው አሠራር የቀሩት 20 ኮዶች አሁንም በዙሪያቸው ነበሩ

ውጤቱ? ከቀዳሚው አሠራር ባልጸዱ ተጨማሪ 20 ኮዶች (IR Code Buffer) ተበላሽቷልና የ LED ቲቪ አይበራም!

ጥገና 1 (ቀላሉ መውጫ ፣ አይመከርም)

የአርዲኖ ንድፍን እንደሚከተለው ይለውጡ

በ loop () {} ተግባር ውስጥ የሚከተሉትን የተግባር ጥሪዎች ይለውጡ

transmitIRCode ();

ለማስተላለፍIRCode (ሐ);

ከላይ ባለው ተግባር ፊርማ ላይ ለውጦችን ያድርጉ-

ባዶ ማስተላለፍIRIRde (int codeLen) {// RAWBUF በ codeLen IRTransmitter. IRSendRaw:: ላክ (IRCodeBuffer ፣ codeLen ፣ 38) ተተክቷል። }

ይህ ቀላል ቢሆንም ፣ ድርድሩ በጭራሽ ሙሉ በሙሉ አይጸዳምና ስለዚህ ይህ በጣም ንፁህ መፍትሄ አይደለም

ጥገና 2 (ከባድ አይደለም ፣ የሚመከር)

ከአስተያየቶች ክፍል በኋላ በአርዱዲኖ ንድፍ አናት ላይ አንድ ተጨማሪ ተለዋዋጭ ያውጁ-

ያልተፈረመ int EMPTY_INT_VALUE;

ይህንን በማዋቀር () ተግባር አናት ላይ ያክሉ

// ባዶ ያልተፈረመ ኢንቲጀር ተለዋዋጭ ተፈጥሮአዊ ሁኔታን ይያዙ EMPTY_INT_VALUE = IRCodeBuffer [0];

ወደታች ይሸብልሉ እና ከ transmitIRCode () ተግባር በኋላ ወዲያውኑ ወደ ተግባር አዲስ ተግባር ያክሉ።

ባዶ (ግልጽ)IRCodeBuffer (int codeLen) {// ሁሉንም ኮዶች ከድርድር ያፅዱ // ማስታወሻ ፦ የድርድር አባሎችን ወደ 0 ማዘጋጀት መፍትሄ አይደለም! ለ (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}

በመጨረሻ በ loop () ተግባር ውስጥ በሚከተለው ሥፍራ ከላይ ያለውን አዲስ ተግባር ይደውሉ

// ዳግም ማስጀመር - ተከታታይ ንባብ ንባብ ከቆመበት ቀጥል ።CoCoBuffer (ሐ)

ምንም ነገር ለአጋጣሚ ሳይተው በአዲሱ የ IR ኮድ ምልክት ተሞልተው በ IR Buffer ድርድር ውስጥ ያሉትን ሥፍራዎች ሁሉ እንደገና ስለሚያስጀምር ይህ የበለጠ ንፁህ አቀራረብ ነው።

ማሻሻያ 2 (የበለጠ ተሳታፊ) - ለተወሰኑ መሣሪያዎች የ IR ምልክት ማስተላለፍን መድገም

አንዳንድ መሣሪያዎች ምላሽ ለመስጠት ተመሳሳይ ምልክት ብዙ ጊዜ እንዲተላለፉ ይጠይቃሉ ምሳሌ በዚህ ሁኔታ ሳምሰንግ ድምፅ አሞሌ በ 1 ሰከንድ ክፍተት ሁለት ጊዜ እንዲላክ ተመሳሳይ ኮድ ይፈልጋል።

በመጠኑ ውስጥ ስለተካተተ እና ምርመራ ስለሚያስፈልገው Fix in Concept እዚህ ተብራርቷል።

ተደጋጋሚውን ተግባር ወደ አርዱኒዮ ስዕል ማከል አዲስ መሣሪያ ወደ የቤት አውቶማቲክ ስርዓትዎ ባከሉ ቁጥር ስዕሉን ማብራት አለብዎት ማለት ነው።

በምትኩ ፣ ይህንን ጥገና በኤችቲኤምኤል SignalR ደንበኛ እና በ Python SignalR አገልግሎት ትግበራ ላይ ማከል መፍትሄውን የበለጠ ተለዋዋጭ ያደርገዋል። እና ይህ በመርህ ደረጃ እንደሚከተለው ሊከናወን ይችላል-

ተደጋጋሚ መረጃን ወደ መገናኛ ለማስተላለፍ የ SignalR HTML ደንበኛውን ይለውጡ

ኢንዴክስ.html ን ይክፈቱ እና ተደጋጋሚውን እሴት በኤችቲኤምኤል ቁልፍ ውስጥ እንደዚህ ያድርጉት

እሴት = "SMSNG-SB-PWR-ON" እሴት ይሆናል = "SMSNG-SB-PWR-ON_2_1000"

የት ፣ 2 ተደጋጋሚ እሴት ነው እና 1000 በሁለቱ ተደጋጋሚ ምልክቶች መካከል በሚሊሰከንዶች ውስጥ የዘገየ እሴት ነው

በዚህ አዝራር ላይ ጠቅ ሲያደርጉ የ SignalR ማዕከል የቁልፍ ኮድ+ተደጋጋሚ_Spec ይቀበላል

የቁልፍ ኮዱን ብቻ ለመለየት የ SignalR አገልጋይ የጎን ዘዴዎችን ይቀይሩ

  • እንደተለመደው የ IR ኮዱን ከመረጃ ቋቱ ለማውጣት የቁልፍ ኮዱን ይጠቀሙ
  • የቁልፍ ኮዱን+ተደጋጋሚ_ስፔክን እና IRCode ን እንደ ተለመደው ወደ SingalR ደንበኞች ያስተላልፉ

ተደጋጋሚ እሴቶችን በመጠቀም ምልክቶችን ለማስተላለፍ የ Python SignalR አገልግሎት መተግበሪያን ይቀይሩ

የ Python ደንበኛውን ይክፈቱ እና የሚከተሉትን ሁለት ተግባራት ያስተካክሉ

def print_command_from_hub (buttonId ፣ cmdSrc) ፦

# የተደጋገመውን ኮድ ከአዝራሩ አይድ እሴት ይለያዩ

def transmitToArduino (IRSignalCode ፣ delim ፣ endPrefix)

በተፈለገው ድግግሞሽ ላይ ምልክቱን ለማስተላለፍ # ጊዜን ወይም loop ን ያዘጋጁ

  • በዚህ መንገድ አርዱinoኖ በተደጋጋሚ ብልጭ ድርግም ማለት የለበትም
  • ማንኛውም የተደጋጋሚ ድግግሞሽ ብዛት በዚህ ስርዓት ውስጥ ሊገነባ ይችላል
  • በተጨማሪም ፣ UNO ን የሚጠቀሙ ከሆነ የእርስዎ ንድፍ (ስዕል) ሊያድግ በሚችለው መጠን ላይ ገደብ አለ!

ደረጃ 11 - የታወቁ ጉዳዮች እና የደህንነት ስጋቶች

ለመጀመሪያ ጊዜ በተገነቡት ስርዓቶች ሁኔታ እንደሚደረገው ፣ ይህ በሙከራ ጊዜ የወጡ ሁለት ጉዳዮች አሉት።

እትም 1 - በአዝራር ጠቅታዎች መካከል ከአንድ ሰከንድ ባነሰ መዘግየቶች በፍጥነት በተከታታይ ትዕዛዞችን ማቃጠል ስርዓቱ ለመጀመሪያዎቹ ሁለት ጊዜ ምላሽ ከሰጠ በኋላ ምላሽ የማይሰጥ እንዲሆን አድርጎታል።

  • የ Python SignalR ደንበኛን እንደገና ማስጀመር ስርዓቱን ወደ መደበኛ ሥራዎች ይመልሳል
  • አስቸኳይ ውሳኔዎች በሁለቱም ውስጥ የማይፈለጉ አርም ውጤቶችን ፣ የ Python SignalR ደንበኛን እና እንዲሁም አርዱዲኖ ንድፍን ማስወገድ እና እነዚህን ሙከራዎች መድገም ሊሆን ይችላል
  • ሌላ ሊታይ የሚገባው ቦታ ራሱ የመገናኛ ግንኙነቱ ራሱ ይሆናል - ቋቱን በፍጥነት ለማፍሰስ ኮድን ማከል ይቻል ይሆን?

ያ አለ ፣ የእኔ ቴሌቪዥን ለፋብሪካው የርቀት መቆጣጠሪያ ጥሩ ምላሽ እንደማይሰጥ አስተውያለሁ - ስለዚህ የቴሌቪዥንዬ IR ግንኙነት እንዲሁ እንዲሁ አስተዋፅኦ ሊሆን ይችላል።

እትም 2 ፦ የኤችቲኤምኤል ማያ ገጹ ከረዥም ጊዜ እንቅስቃሴ -አልባነት በኋላ ለአዝራር ጠቅታዎች ምላሽ መስጠቱን ያቆማል

ብዙውን ጊዜ ገጹን ማደስ ይህንን ባህሪይ ይፈታል - የዚህ ባህሪ ምክንያት ግን አሁንም ግልፅ አይደለም

የደህንነት ስጋቶች

ይህ ስርዓት ለአካባቢያዊ (የቤት) አውታረ መረብ አጠቃቀም ብቻ የተነደፈ እና በበይነመረብ ላይ ጥቅም ላይ የሚውል አስፈላጊ የደህንነት ጥበቃ የለውም።

ስለዚህ SignalR Hub በአካባቢዎ/የቤት አውታረ መረብዎ ላይ ወደ አካባቢያዊ ማሽን እንዲሰማራ ይመከራል።

የእኔን IBLE በማንበብዎ እናመሰግናለን እና እርስዎ እንዲደሰቱ ተስፋ አደርጋለሁ!

የሚመከር: