ዝርዝር ሁኔታ:
- ደረጃ 1 ሁሉንም በአንድ ላይ ማሰባሰብ
- ደረጃ 2: ተቀባይ
- ደረጃ 3 አስተላላፊ
- ደረጃ 4 - ኮዱ
- ደረጃ 5: እንዲሠራ ማድረግ
- ደረጃ 6 - ፕሮግራሙን መጠቀም
- ደረጃ 7 - የሙቀት መቆጣጠሪያ
- ደረጃ 8 - ታሪካዊ መረጃ
ቪዲዮ: Autostat: የርቀት ቴርሞስታት: 8 ደረጃዎች (ከስዕሎች ጋር)
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
ምናልባት እርስዎ የጠየቁት ጥያቄ “ለምን ሌላ የርቀት ቴርሞስታት ትሠራላችሁ?” ነው።
ለዚያ ጥያቄ መልሱ እኔ ነበረብኝ ፣ እና የገበያው ስማርት ቴርሞስታቶች በጣም ውድ ናቸው።
ትክክለኛ ማስጠንቀቂያ ፣ ይህ ቴርሞስታትዎን ለመቆጣጠር ጥቂት ተጨማሪ ውጤቶችን የሚፈልግ “የንድፈ-ሀሳብ” ግንባታ ነው ፣ ግን ዋናው በቦታው ላይ ነው እና እንደ ልዩ ሁኔታዎ ሊለወጥ ይችላል። እንዲሁም ፣ ይህ አሁንም በሂደት ላይ ያለ ሥራ ነው ፣ ስለዚህ ጥቂት ዝመናዎችን እና ለውጦችን ይጠብቁ (በተለይ ወደ ማትላብ ኮድ)
ለመጀመር ላስጠነቅቅዎ እፈልጋለሁ ፣ ይህ ሶስት ፕሮግራሞችን ይፈልጋል (አንደኛው በጣም ውድ ነው) ፣ ለፕሮግራሞቹ በጣም ጥቂት ቤተመፃህፍት እና የድጋፍ ጥቅሎች ፣ እና ሁሉም እርስ በእርስ እንዲነጋገሩ ማድረግ ያስፈልግዎታል። የራስ ምታት ነው። ይህ ማስጠንቀቂያ ከመንገዱ ወጥቶ በቁሳቁሶች እንጀምር።
ሃርድዌር
- አርዱዲኖ ናኖ
- አርዱዲኖ ኡኖ (ወይም ሌላ ናኖ ፣ እኔ በዙሪያዬ አንድ መዘርጋቴ ስለነበረኝ ዩኒኖውን ብቻ ተጠቀምኩ)
- የተለያዩ ዝላይ ኬብሎች ፣ አንዳንድ ወንድ/ወንድ እና ሁለት ስብስቦች ከሶስት የተቀላቀሉ ወንድ/ሴት ዝላይዎች
- 433 ሜኸ የሬዲዮ ድግግሞሽ (አርኤፍ) ተቀባይ ፣ እኔ MX-05V ን እጠቀም ነበር
- 433MHz RF አስተላላፊ ፣ እኔ MX-FS-03V ን እጠቀም ነበር
- DHT11 ከፍተኛ ትክክለኝነት ቴርሞሜትር እና የእርጥበት ዳሳሽ (እኔ የተጠቀምኩት ቀድሞውኑ በተፈለገው ተከላካዮች በሶስት መወጣጫ ቺፕ ላይ ተጭኗል)
- የዳቦ ሰሌዳ (ይህንን ሁሉ በአንድ ላይ መሸጥ ካልፈለጉ)
- ጂፒኤስ ያለው ስልክ (በዚህ ጉዳይ ላይ iPhone 8 ፣ ግን እኔ ደግሞ ጋላክሲ ኤስ 8 ን እጠቀም ነበር)
- 3 ዲ የታተመ መያዣ (በእውነቱ አስፈላጊ አይደለም ፣ ማንኛውም መያዣ ይሠራል ወይም በጭራሽ የለም)
ሶፍትዌር
- ማትላብ ከሂሳብ ሥራ (እኔ የ 2018a እትም አለኝ ፣ ግን እኔ ደግሞ የ 2017a-b እትሞችን እጠቀም ነበር)
- ማትላብ ሞባይል በስልክዎ ላይ ተጭኗል
- ለማትላብ የአርዲኖ ድጋፍ ጥቅል
- ለ Matlab የ iPhone ዳሳሽ ጥቅል
- arduino IDE
- የ RadioHead የድጋፍ ጥቅሎች እና የአርዱዲኖ አይዲኢ ቤተመፃህፍት
- የ DHT11 ቤተ -መጽሐፍት ለአርዱዲኖ አይዲኢ
- ፓይዘን 3.7 (የሥርዓት ቤተ -መጽሐፍት ወይም ተከታታይ ቤተ -መጽሐፍት መጫኑን ያረጋግጡ ፣ ለስሪት 3.4 ወይም ለአዲሱ መሆን ያለበት)
ደረጃ 1 ሁሉንም በአንድ ላይ ማሰባሰብ
ክፍሎችዎ እየሰሩ መሆኑን እና ሽቦው ትክክል መሆኑን ለማረጋገጥ በመጀመሪያ ከኤፍዲኤፍ አስተላላፊዎች ጋር የሚነጋገሩ ጥቂት የአሩዲኖ ትምህርቶችን እንዲያደርጉ እመክራለሁ። ብዙ ምሳሌዎች አሉ ፣ ኮዱ ተካትቷል (ስለ እኛ ስለ C እና C ++ ምንም ለማያውቁት እዚያ ላሉት)።
አርዱዲኖ እና ዳሳሾች ተሰብስበው ለመገኘት ከዚህ በታች ያሉትን የወልና ንድፎችን ይከተሉ። አርዱኖኖቹን በሚያሽከረክሩበት ጊዜ ሊታሰብበት የሚገባ አንድ ነገር እኔ የተጠቀምኳቸው የውሂብ ወደቦች አስፈላጊ አይደሉም ፣ ግን የሚመከሩ ናቸው።
እርስዎ የሚጠቀሙባቸውን የውሂብ ወደቦች ለመለወጥ ከወሰኑ በኮድዎ ውስጥ ያሉትን ፒኖች መግለፅ ያስፈልግዎታል። በግሌ ፣ የአርዱዲኖ ቤተ -መጻህፍት ከሚያውቋቸው ነባሪ ወደቦች ጋር መጣበቅ ቀላል ይመስለኛል።
እና ግልፅ ለመሆን ፣ ናኖ እና ኡኖ ሊለዋወጡ ይችላሉ ፣ ግን የሙቀት መቆጣጠሪያውን መጠን ለመቀነስ ናኖውን ለፕሮጀክቱ አስተላላፊ ጎን እጠቀም ነበር።
የጎን ማስታወሻ -ናኖውን የሚይዘው አረንጓዴ ኮንትራክተሩ 3 ዲ የታተመ መያዣ ነው።
ደረጃ 2: ተቀባይ
ደረጃ 3 አስተላላፊ
ደረጃ 4 - ኮዱ
ሽቦው ከተጠናቀቀ በኋላ ሁሉም ፕሮግራሞች እንዲሠሩ እና ቤተ -ፍርግሞቹ እንዲጫኑ (እርስዎ እስካሁን ካልነበሩ) ፣ እርስዎ እንዳሉዎት እገምታለሁ ፣ ማትላብን ማስጀመር እና የ iPhone ድጋፍ ጥቅልን ማካሄድ ያስፈልግዎታል። ሁለቱም ስልክዎ እና ማትላብ በዚህ ጊዜ በተመሳሳይ የ wifi አውታረ መረብ ላይ መሆን አለባቸው።
በማትላብ የትእዛዝ መስኮት ውስጥ ይፃፉ-
አገናኝ በርቷል
ይህ በእርስዎ iPhone ላይ ለማገናኘት የሚጠቀሙበትን ባለ አምስት አሃዝ የይለፍ ቃል እንዲያስገቡ ይጠቁማል። የይለፍ ቃሉን ማስታወስዎን ያረጋግጡ። የይለፍ ቃሉን ሲያስገቡ ማትላብ የአይፒ አድራሻዎን ጨምሮ አንዳንድ መረጃዎችን ያሳያል። በማትላብ ሞባይል ውስጥ ከ “ዳሳሾች መጀመር” የእገዛ ምናሌ ውስጥ ከሚገኙት መመሪያዎች የሚመጣውን በሚቀጥለው ደረጃ ይህንን ይጠቀሙ።
- የአነፍናፊ ውሂብን ወደ MathWorks ደመና ወይም ኮምፒተር ለመላክ እነዚህን ደረጃዎች ይከተሉ
- የአነፍናፊ መረጃን ወደ ኮምፒዩተር ከላኩ እና እሱ ገና ካልተጫነ ፣ በ MATLAB ውስጥ ለ Apple iOS ዳሳሾች የ MATLAB ድጋፍ ጥቅልን ያውርዱ እና ይጫኑ።
- ቅንብሮችን በመጠቀም MATLAB ሞባይልን ከ MathWorks ደመና ወይም ከኮምፒዩተር ጋር ያገናኙ።
- በ MATLAB (በኮምፒተርዎ) ውስጥ የሞባይል ዴቭ ነገርን ይፍጠሩ ፣ ለምሳሌ ፦ >> m = mobiledev
- አንድ ወይም ከዚያ በላይ ዳሳሾችን ይምረጡ እና ጀምርን መታ ያድርጉ።
በመሣሪያዎ ላይ የአከባቢ ዳሳሽ ውሂብን ለማስገባት እነዚህን ደረጃዎች ይከተሉ
- በአነፍናፊዎቹ ማያ ገጽ ላይ ውሂብ ለመሰብሰብ የሚፈልጉትን ዳሳሾች ይምረጡ።
- ምዝግብ ምረጥ።
- የመነሻ ቁልፍን መታ ያድርጉ።
- ውሂብ መሰብሰብ ሲጨርሱ አቁም የሚለውን ቁልፍ መታ ያድርጉ።
- በብቅ-ባይ ውስጥ ፣ የዳሳሽ ምዝግብ ማስታወሻውን ስም ያስገቡ።
- አስፈላጊ ከሆነ እርምጃዎችን 1-5 ይድገሙ።
ይህ ክፍል በክፍል 4 ውስጥ ተመልሶ ይመለሳል ፣ ስለዚህ በእውነቱ ገና መረጃ መሰብሰብ መጀመር አያስፈልግም። በቀላሉ ስልክዎን ምቹ እና የማትላብ ሞባይል ዝግጁ ያድርጉት።
አሁን የማትላብ ኮድ ፋይሎችን ለማኖር በኮምፒተርዎ ውስጥ የሆነ ቦታ አቃፊ መፍጠር ያስፈልግዎታል። አራት የተለያዩ ፋይሎች ይኖሩዎታል ፣ ሁለት ለጀርባ ተግባራት (.m ፋይሎች) እና አንድ የማትላብ ኮድ ፋይል ለ GUI (.mlapp) ፣.
በመጀመሪያ በቤትዎ ውስጥ ያለው አየር የጅምላ ስሌት ነው (ይህ ማትላብን ቤትዎን ለማሞቅ/ለማቀዝቀዝ ምን ያህል ጊዜ እንደሚወስድ እንዲያውቅ ያደርጋል)
ተግባር [ቅዳሴ] = CalcMass (T_ins ፣ P_out ፣ Chng_dir)
runCalc = 0; Tmp_start = T_ins; time_start = ሰዓት; time_end = 0 በሚሮጥበት ጊዜ Calc <= 1 T_ins == (Tmp_start+(7*Chng_dir)) time_end = ሰዓት; PwrCntr = 0; runCalc = 0; ሌላ PwrCntr = P_out; runCalc = runCalc+0.1 መጨረሻ መጨረሻ time_diag = time_end-time_start Mass = (P_out*time_diag) /7.035
እና ሁለተኛው -
ተግባር [የጊዜ ማህተሞች ፣ pwr_usage] = dist_cntrl (Lat_in ፣ Lon_in ፣ P_out ፣ r_pref ፣ ፍጥነት ፣ T_pref ፣ mass)
AutoStat = 1; እኔ = 1; AutoStat == 1 time_start = ሰዓት; m = mobiledev; t = csvread ('values.csv', 0, 1); t = t (i); የጊዜ ማህተሞች = [0, 0, 0, 0, 0, 0]; pwr_usage = 0; i = i+1; ቅርጸት longg; በኬክሮስ እና %longintude a_hav = (sind ((m. Latitude-Lat_in)./ 2)) ላይ የተመሠረተ ርቀት ለማስላት %haversine ቀመር።^2+cosd (Lat_in)።*cosd (m.latitude).*(sind ((ሜ.ኬንትሮስ-ሎን_ኢን) ።/ 2)).^2; c_hav = 2.*atan2d (sqrt (a_hav) ፣ sqrt (1-a_hav)); d_hav = 6371.*c_hav; Dist = d_hav.*1000; %ጊዜን ለመመለስ ጊዜዎን ይገምታል_rtn = (Dist-r_pref)./ speed; %በ %አየር ማቀዝቀዣ እና በቤቱ አየር ላይ ባለው የኃይል አቅርቦት ላይ በመመርኮዝ አስፈላጊውን የሙቀት መቆጣጠሪያ ቅንብር ያሰላል። calcTmp_set = ((-1.*P_out.*time_rtn)./ (ብዛት።*(1.005)))+T_pref; %ክብ (calcTmp_set) ~ = ዙር (t) ጊዜ ACon = ሰዓት ከሆነ የአሁኑ ቴርሞስታት ቅንብር መለወጥ እንደሚያስፈልገው ይወስናል። PwrCntr = P_out; timeACon = timeACon + የሰዓት-ጊዜ_መጀመር; ወጪ = P_out*timeACon*ተመን; ሌላ PwrCntr = 0 የመጨረሻ የጊዜ ማህተሞች (መጨረሻ+1 ፣ [1: 6]) = ሰዓት; pwr_usage (መጨረሻ+1, 1) = PwrCntr; ለአፍታ አቁም (5) መጨረሻ መጨረሻ
እነዚህ ሁለቱም ፋይሎች የማትላብ ተግባራት ናቸው። እርስዎ ከ GUI ስለሚደውሏቸው ለተወሰኑ ፍላጎቶች እነሱን ለማስተካከል ካላሰቡ በስተቀር እነሱን መድረስ አያስፈልግዎትም። ሁለቱንም ፋይሎች በተናጠል ያስቀምጡ ፣ አንደኛው እንደ CalcMass.m እና ሁለተኛው እንደ dist_cntrl.m ፣ እነዚያ የ GUI ኮድ ተግባሮቹን ለመጥራት የሚጠቀምባቸው ስሞች ይሆናሉ ፣ ስለዚህ ቀሪውን ኮድ ከዚህ በታች ማርትዕ ካልፈለጉ በስተቀር ፣ ተጣብቀው የመሰየሚያ ስምምነቱ።
ወደ GUI ኮድ ከመግባትዎ በፊት በማትላብ ምናሌ አሞሌ ውስጥ በማሰስ ወይም በማትላብ የትእዛዝ መስኮት ውስጥ የሚከተለውን ትእዛዝ በሚያስገባበት የእኔ ተወዳጅ ዘዴ ለ Matlab የመተግበሪያ ዲዛይነሩን መክፈት ያስፈልግዎታል።
appdesigner
አንዴ የመተግበሪያ ዲዛይነሩ ከተከፈተ በኋላ አዲስ የመተግበሪያ ፋይል (.mlapp) ይክፈቱ እና ሁሉንም ነባሪውን ኮድ ከኮድ መስኮቱ ይሰርዙ። ከዚያ ሁሉንም በሚከተለው ይተኩ እና የአሂድ ቁልፍን ይምቱ።
classdef Control_1 <matlab.apps. AppBase % ንብረቶች ከመተግበሪያ ክፍሎች ባህሪዎች ጋር የሚዛመዱ (መዳረሻ = የህዝብ) UIFigure matlab.ui. Figure TabGroup matlab.ui.container. TabGroup SetupTab matlab.ui.container. Tab RunDiagnosticButton matlab.uicontrol. አዝራር EnergyEfficiencyRatingEditFieldLabel matlab.ui.control. Label EnergyEfficiencyRatingEditField matlab.ui.control. NumericEditField PowerOutputRatingEditFieldLabel matlab.ui.control. Label PowerOutputRatingEditField matlab.ui.control. NumericEditField AvgLocalSpeedEditFieldLabel matlab.ui.control. Label AvgLocalSpeedEditField matlab.ui.control. NumericEditField DesiredDistancefromHouseEditFieldLabel matlab.ui.control. Label DDFH matlab.ui.control. NumericEditField TemperatureDirectionSwitchLabel matlab.ui.control. ui.control. Spinner Temperature2SpinnerLabel matlab.ui.cont rol. Label Temperature2Spinner matlab.ui.control. Spinner Switch matlab.ui.control. Switch EditFieldLabel matlab.ui.control. Lelel tempnow matlab.ui.control. NumericEditField GaugeLel matlab.ui.control. የመለኪያ ቁጠባዎች ታብ matlab.ui.container.ab UIAxes matlab.ui.control. UIAxes this MonthCostEditFieldLabel matlab.ui.control.
ዘዴዎች (መዳረሻ = የግል)
% እሴት ተለውጧል ተግባር ፦ tempnow
ተግባር tempnowValueChanged (መተግበሪያ ፣ ክስተት) temp = app.tempnow. Value; temp = randi ([60, 90] ፣ 1 ፣ 50) app. Gauge. Value = 0 ለ i = ርዝመት (temp) መተግበሪያ ።Gauge. Value = temp (i) ለአፍታ ቆም (1) መጨረሻ መጨረሻ
% እሴት ተቀይሯል ተግባር ፦ TemperatureDirectionSwitch
ተግባር TemperatureDirectionSwitchValueChanged (መተግበሪያ ፣ ክስተት) መንገድ = app. TemperatureDirectionSwitch. Value; መንገድ = uint8 (መንገድ) መንገድ = ርዝመት (መንገድ) መንገድ ከሆነ == 4 Chng_dir = -1; ሌላ Chng_dir = 1; መጨረሻ Chng_dir; አበቃ
% እሴት ተቀይሯል ተግባር ፦ DDFH
ተግባር DDFHValueChanged (መተግበሪያ ፣ ክስተት) r_pref = app. DDFH. Value; አበቃ
% እሴት ተቀይሯል ተግባር ፦ AvgLocalSpeedEditField
ተግባር AvgLocalSpeedEditFieldValueChanged (መተግበሪያ ፣ ክስተት) ፍጥነት = app. AvgLocalSpeedEditField. Value; አበቃ
% እሴት ተቀይሯል ተግባር ፦ PowerOutputRatingEditField
ተግባር PowerOutputRatingEditFieldValueChanged (መተግበሪያ ፣ ክስተት) እሴት = app. PowerOutputRatingEditField. Value; አበቃ
% እሴት ተቀይሯል ተግባር ፦ EnergyEfficiencyRatingEditField
ተግባር EnergyEfficiencyRatingEditFieldValueChanged (መተግበሪያ ፣ ክስተት) እሴት = app. EnergyEfficiencyRatingEditField. Value; አበቃ
% አዝራር የተገፋ ተግባር: RunDiagnosticButton
ተግባር RunDiagnosticButtonPushed (መተግበሪያ ፣ ክስተት) መንገድ = app. TemperatureDirectionSwitch. Value; መንገድ = uint8 (መንገድ) መንገድ = ርዝመት (መንገድ) መንገድ ከሆነ == 4 Chng_dir = -1; ሌላ Chng_dir = 1; T_ins = app.tempnow. Value P_out = app. PowerOutputRatingEditField. Value CalcMass1 (T_ins ፣ P_out ፣ Chng_dir)
አበቃ
% እሴት ተቀይሯል ተግባር ፦ Temperature1Spinner
ተግባር Temperature1SpinnerValueChanged (መተግበሪያ ፣ ክስተት) እሴት = app. Temperature1Spinner. Value; አበቃ
% እሴት ተቀይሯል ተግባር ፦ Temperature2Spinner
ተግባር Temperature2SpinnerValueChanged (መተግበሪያ ፣ ክስተት) እሴት = app. Temperature2Spinner. Value; አበቃ
% እሴት ተቀይሯል ተግባር ፦ ቀይር
ተግባር SwitchValueChanged (መተግበሪያ ፣ ክስተት) m = mobiledev; Lat_in = m. Latitude Lon_in = m. Longitude P_out = 0; r_pref = app. DDFH. Value; T_pref = app. Temperature1Spinner. Value; ፍጥነት = m. Speed; ብዛት = 200; ፍጥነት = app. AvgLocalSpeedEditField. Value; Auto_Stat = app. Switch. Value; dist_cntrl (Lat_in ፣ Lon_in ፣ P_out ፣ r_pref ፣ T_pref ፣ ፍጥነት ፣ ብዛት) መጨረሻ መጨረሻ
% የመተግበሪያ አጀማመር እና ግንባታ
ዘዴዎች (መዳረሻ = የግል)
% UIFigure እና ክፍሎችን ይፍጠሩ
ተግባር ፍጠር ተባባሪዎች (መተግበሪያ)
% UIFigure ን ይፍጠሩ
app. UIFigure = uifigure; app. UIFigure. አቀማመጥ = [100 100 640 480]; app. UIFigure. Name = 'UI Figure';
% TabGroup ፍጠር
app. TabGroup = uitabgroup (app. UIFigure); app. TabGroup. አቀማመጥ = [1 1 640 480];
% SetupTab ፍጠር
app. SetupTab = uitab (app. TabGroup); app. SetupTab. Title = 'Setup';
% RunDiagnosticButton ን ይፍጠሩ
app. RunDiagnosticButton = uibutton (app. SetupTab ፣ 'push'); መተግበሪያ. app. RunDiagnosticButton. FontWeight = 'ደፋር'; app. RunDiagnosticButton. አቀማመጥ = [465 78 103 23]; app. RunDiagnosticButton. Text = 'ምርመራን አሂድ';
% EnergyEfficiencyRatingEditFieldLabel ን ይፍጠሩ
app. EnergyEfficiencyRatingEditFieldLabel = uilabel (app. SetupTab); app. EnergyEfficiencyRatingEditFieldLabel. HorizontalAlignment = 'right'; app. EnergyEfficiencyRatingEditFieldLabel. አቀማመጥ = [8 425 135 22]; app. EnergyEfficiencyRatingEditFieldLabel. Text = 'የኢነርጂ ውጤታማነት ደረጃ';
% EnergyEfficiencyRatingEditField ን ይፍጠሩ
app. EnergyEfficiencyRatingEditField = uieditfield (app. SetupTab ፣ 'ቁጥራዊ'); app. EnergyEfficiencyRatingEditField. Limits = [0 100]; app. EnergyEfficiencyRatingEditField. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @EnergyEfficiencyRatingEditFieldValueChanged ፣ እውነት); app. EnergyEfficiencyRatingEditField. HorizontalAlignment = 'center'; app. EnergyEfficiencyRatingEditField. አቀማመጥ = [158 425 100 22];
% PowerOutputRatingEditFieldLabel ን ይፍጠሩ
app. PowerOutputRatingEditFieldLabel = uilabel (app. SetupTab); app. PowerOutputRatingEditFieldLabel. HorizontalAlignment = 'right'; app. PowerOutputRatingEditFieldLabel. Position = [18 328 118 22]; app. PowerOutputRatingEditFieldLabel. Text = 'የኃይል ውፅዓት ደረጃ';
% PowerOutputRatingEditField ይፍጠሩ
app. PowerOutputRatingEditField = uieditfield (app. SetupTab ፣ 'ቁጥራዊ'); app. PowerOutputRatingEditField. Limits = [0 Inf]; app. PowerOutputRatingEditField. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @PowerOutputRatingEditFieldValueChanged ፣ እውነት); app. PowerOutputRatingEditField. HorizontalAlignment = 'center'; app. PowerOutputRatingEditField. Position = [151 328 100 22];
% AvgLocalSpeedEditFieldLabel ን ይፍጠሩ
app. AvgLocalSpeedEditFieldLabel = uilabel (app. SetupTab); app. AvgLocalSpeedEditFieldLabel. HorizontalAlignment = 'ትክክል'; app. AvgLocalSpeedEditFieldLabel. Position = [27 231 100 22]; app. AvgLocalSpeedEditFieldLabel. Text = 'አማካይ. አካባቢያዊ ፍጥነት ';
% AvgLocalSpeedEditField ይፍጠሩ
app. AvgLocalSpeedEditField = uieditfield (app. SetupTab ፣ 'ቁጥራዊ'); app. AvgLocalSpeedEditField. Limits = [0 70]; app. AvgLocalSpeedEditField. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @AvgLocalSpeedEditFieldValueChanged ፣ እውነት); app. AvgLocalSpeedEditField. HorizontalAlignment = 'center'; app. AvgLocalSpeedEditField. Position = [142 231 100 22];
% DesiredDistanceHouseEditFieldLabel ን ይፍጠሩ
app. DesiredDistancefromHouseEditFieldLabel = uilabel (app. SetupTab); app. DesiredDistancefromHouseEditFieldLabel. HorizontalAlignment = 'right'; app. DesiredDistancefromHouseEditFieldLabel. አቀማመጥ = [24 129 100 28]; app. DesiredDistancefromHouseEditFieldLabel. Text = {'የሚፈለገው ርቀት'; 'ከቤቱ'};
% DDFH ን ይፍጠሩ
app. DDFH = uieditfield (app. SetupTab ፣ 'ቁጥራዊ'); app. DDFH. Limits = [0 50]; app. DDFH. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @DDFHValueChanged ፣ እውነት); app. DDFH. HorizontalAlignment = 'center'; app. DDFH. አቀማመጥ = [139 135 100 22];
% TemperatureDirectionSwitchLabel ፍጠር
app. TemperatureDirectionSwitchLabel = uilabel (app. SetupTab); app. TemperatureDirectionSwitchLabel. HorizontalAlignment = 'center'; app. TemperatureDirectionSwitchLabel. አቀማመጥ = [410 343 124 22]; app. TemperatureDirectionSwitchLabel. Text = 'የሙቀት አቅጣጫ';
% የሙቀት መጠንን ይፍጠሩ አቅጣጫ ቀይር
app. TemperatureDirectionSwitch = uiswitch (app. SetupTab ፣ 'ተንሸራታች'); app. TemperatureDirectionSwitch. Items = {'Up', 'Down'}; app. TemperatureDirectionSwitch. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @TemperatureDirectionSwitchValueChanged ፣ እውነት); app. TemperatureDirectionSwitch. አቀማመጥ = [449 380 45 20]; app. TemperatureDirectionSwitch. Value = 'ወደ ላይ';
% TempSettingsTab ፍጠር
app. TempSettingsTab = uitab (app. TabGroup); app. TempSettingsTab. Title = 'Temp. ቅንብሮች ';
% ሙቀት 1SpinnerLabel ፍጠር
app. Temperature1SpinnerLabel = uilabel (app. TempSettingsTab); app. Temperature1SpinnerLabel. HorizontalAlignment = 'center'; app. Temperature1SpinnerLabel. አቀማመጥ = [66 363 76 28]; app. Temperature1SpinnerLabel. Text = {'ሙቀት'; '#1'};
% የሙቀት መጠን 1Spinner ፍጠር
app. Temperature1Spinner = uispinner (app. TempSettingsTab); app. Temperature1Spinner. Limits = [60 90]; app. Temperature1Spinner. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @Temperature1SpinnerValueChanged ፣ እውነት); app. Temperature1Spinner. አቀማመጥ = [157 346 100 68]; app. Temperature1Spinner. Value = 60;
% የሙቀት መጠንን ይፍጠሩ2SpinnerLabel
app. Temperature2SpinnerLabel = uilabel (app. TempSettingsTab); app. Temperature2SpinnerLabel. HorizontalAlignment = 'center'; app. Temperature2SpinnerLabel. አቀማመጥ = [66 248 76 28]; app. Temperature2SpinnerLabel. Text = {'ሙቀት'; '#2'};
% የሙቀት መጠን 2Spinner ፍጠር
app. Temperature2Spinner = uispinner (app. TempSettingsTab); app. Temperature2Spinner. Limits = [60 90]; app. Temperature2Spinner. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @Temperature2SpinnerValueChanged ፣ እውነት); app. Temperature2Spinner. አቀማመጥ = [157 230 100 70]; app. Temperature2Spinner. Value = 60;
% መቀየሪያ ፍጠር
app. Switch = uiswitch (app. TempSettingsTab ፣ 'ተንሸራታች'); app. Switch. Items = {'1', '0'}; app. Switch. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @SwitchValueChanged ፣ እውነት); app. Switch. FontName = 'ኒያላ'; app. Switch. FontSize = 28; app. Switch. አቀማመጥ = [522 21 74 32]; app. Switch. Value = '0';
% EditFieldLabel ን ይፍጠሩ
app. EditFieldLabel = uilabel (app. TempSettingsTab); app. EditFieldLabel. HorizontalAlignment = 'right'; app. EditFieldLabel. አቀማመጥ = [374 291 25 22]; app. EditFieldLabel. Text = ";
% የሙቀት መጠን ይፍጠሩ
app.tempnow = uieditfield (app. TempSettingsTab ፣ 'ቁጥራዊ'); app.tempnow. Limits = [60 89]; app.tempnow. ValueChangedFcn = createCallbackFcn (መተግበሪያ ፣ @tempnowValueChanged ፣ እውነት); app.tempnow. HorizontalAlignment = 'center'; app.tempnow. FontSize = 26; app.tempnow. አቀማመጥ = [409 230 133 117]; app.tempnow. Value = 60;
% GaugeLabel ን ይፍጠሩ
app. GaugeLabel = uilabel (app. TempSettingsTab); app. GaugeLabel. HorizontalAlignment = 'center'; app. GaugeLabel. አቀማመጥ = [225 32 42 22]; app. GaugeLabel. Text = 'መለኪያ';
% መለኪያ ፍጠር
app. Gauge = uigauge (app. TempSettingsTab ፣ 'ክብ'); app. Gauge. Limits = [60 90]; app. Gauge. MajorTicks = [60 65 70 75 80 85 90]; app. Gauge. አቀማመጥ = [185 69 120 120]; app. Gauge. Value = 60;
% የቁጠባ ታብ ይፍጠሩ
app. SavingsTab = uitab (app. TabGroup); app. SavingsTab. Title = 'ቁጠባ';
% UIAxes ን ይፍጠሩ
app. UIAxes = uiaxes (app. SavingsTab); ርዕስ (app. UIAxes ፣ 'ቁጠባ') xlabel (app. UIAxes ፣ 'ወር እና ዓመት') ylabel (app. UIAxes ፣ 'Money') app. UIAxes. PlotBoxAspectRatio = [1 0.60666666666667 0.6066666666666767]; app. UIAxes. Color = [0.9412 0.9412 0.9412]; app. UIAxes. አቀማመጥ = [146 219 348 237];
% ThisMonthCostEditFieldLabel ን ይፍጠሩ
app. ThisMonthCostEditFieldLabel = uilabel (app. SavingsTab); app. ThisMonthCostEditFieldLabel. HorizontalAlignment = 'center'; app. ThisMonthCostEditFieldLabel. Position = [439 96 94 22]; app. ThisMonthCostEditFieldLabel. Text = 'የዚህ ወር ወጪ';
% ThisMonthCostEditField ፍጠር
app. ThisMonthCostEditField = uieditfield (app. SavingsTab ፣ 'ቁጥራዊ'); app. ThisMonthCostEditField. Limits = [0 Inf]; app. ThisMonthCostEditField. ValueDisplayFormat = '$%7.2f'; app. ThisMonthCostEditField. HorizontalAlignment = 'center'; app. ThisMonthCostEditField. አቀማመጥ = [417 39 137 58];
% TotalSavingsEditFieldLabel ን ይፍጠሩ
app. TotalSavingsEditFieldLabel = uilabel (app. SavingsTab); app. TotalSavingsEditFieldLabel. HorizontalAlignment = 'right'; app. TotalSavingsEditFieldLabel. አቀማመጥ = [111 96 77 22]; app. TotalSavingsEditFieldLabel. Text = 'ጠቅላላ ቁጠባ';
% TotalSavingsEditField ፍጠር
app. TotalSavingsEditField = uieditfield (app. SavingsTab ፣ 'ቁጥራዊ'); app. TotalSavingsEditField. Limits = [0 Inf]; app. TotalSavingsEditField. ValueDisplayFormat = '$%9.2f'; app. TotalSavingsEditField. HorizontalAlignment = 'center'; app. TotalSavingsEditField. አቀማመጥ = [88 39 137 58]; መጨረሻ መጨረሻ
ዘዴዎች (መዳረሻ = ይፋዊ)
% መተግበሪያ ይገንቡ
የተግባር መተግበሪያ = ቁጥጥር_1
% ክፍሎችን ይፍጠሩ እና ያዋቅሩ
ተጓዳኞችን ፍጠር (መተግበሪያ)
% መተግበሪያውን በመተግበሪያ ዲዛይነር ያስመዝግቡት
registerApp (መተግበሪያ ፣ መተግበሪያ። ውቅር)
nargout == 0 ከሆነ
ግልጽ የመተግበሪያ መጨረሻ መጨረሻ
ከመተግበሪያው ስረዛ በፊት የሚፈፀም %
ተግባር ሰርዝ (መተግበሪያ)
መተግበሪያው ሲሰረዝ UIFigure ን ይሰርዙ
ሰርዝ (app. UIFigure) የመጨረሻ መጨረሻ መጨረሻ
ምናልባት ስህተት ያጋጥምዎታል ፣ ይህ ምንም ችግር የለውም። ሩጫውን ከተጫኑ በኋላ የተፈጠረውን GUI ብቻ ይዝጉ ፣ ቀሪዎቹን አስፈላጊ ፕሮግራሞች እና መረጃዎች በአንድ ጊዜ እንሰበስባለን።
ማትላብ ስለተዋቀረ ወደ ፓይዘን መቀጠል እንችላለን። በመጀመሪያ ፣ የትእዛዝ ጥያቄዎን (በመስኮቶች ላይ) ወይም በፓይዘን አቃፊዎ ውስጥ ያለውን የ.exe ፋይል በመጠቀም የ Python ፕሮግራሙን ያሂዱ። የማስመጣት ትዕዛዙን በመጠቀም ሁሉም ተገቢ ቤተ -መጽሐፍት መጫናቸውን ያረጋግጡ።
ማስመጣት ተከታታይ
የማስመጣት ጊዜ አስመጪ csv
በቅርቡ እኛ የራሳችንን ቤተመፃሕፍት ብናደርግም ፣ ለመጀመር የሚያስፈልጉዎት ሦስቱ ቤተ -መጻሕፍት ናቸው። በእነዚህ ትዕዛዞች አንድ ዓይነት ስህተት ከነበረ ተመልሰው ይሂዱ እና ቤተ -መጽሐፍቶቹ መጫናቸውን እና በፓይዘን አቃፊው ውስጥ ባለው የሊብ አቃፊ ውስጥ መሆናቸውን ያረጋግጡ። ቀጥሎ እኔ የፒዮቶሎገር ቤተ -መጽሐፍት ብዬ የጠራሁትን እናመነጫለን። ይህ ስም አስፈላጊ አይደለም ፣ የፈለጉትን ሊደውሉት ይችላሉ ፣ እሱ የፈጠሩት የፓይዘን ፋይል ስም (.py) ብቻ ነው።
የጽሑፍ አርታኢን ይክፈቱ ፣ እኔ Sublime3 ን እጠቀማለሁ ፣ ግን የማስታወሻ ደብተር በትክክል ይሠራል እና ይህንን ኮድ ያስገቡ።
def pythonprint ():
pythonlogger ማስመጣት ተከታታይ የማስመጣት ጊዜ ማስመጣት csv ser = serial. Serial ('COM8') # COM8 የአርዱዲኖ ተከታታይ ወደብ ነው ፣ ይህ ለእያንዳንዱ ተጠቃሚ የተለየ ሊሆን ይችላል ፣ ማለትም በአርዲኖ አይዲኢ ser.flushInput () ውስጥ የእርስዎን ተከታታይ ወደብ ይመልከቱ። እውነት: ይሞክሩት ser_bytes = ser.readline () ህትመት (ser_bytes) ክፍት ("test_data.csv", "a") እንደ f: writer = csv.writer (f, delimiter = ",") # ውሂቡን ያስቀምጣል በነጠላ ሰረዝ ተለያይቷል። ጸሐፊ።
በሊብ አቃፊ ውስጥ "የሚፈልጉትን የቤተ -መጽሐፍት ስም ያስገቡ".py የሚለውን ጽሑፍ ያስቀምጡ። እንዲሁም የ defi Pythonprint () መስመር እርስዎ የሚጠሩትን ተግባር ስም እንደሚገልጽ ልብ ይበሉ ፣ ስለዚህ ያንን “ለተግባርዎ የሚፈልጉትን ስም ያስገቡ” () ን ለመቀየር ይችላሉ። ቤተ -መጽሐፍት ሲቀመጥ ወደ አርዱዲኖ ኮድ መቀጠል እንችላለን።
የአሩዲኖ አይዲኢን ይክፈቱ እና ሁለት አዲስ የስዕል መስኮቶችን ይክፈቱ። እነዚያን ሁለት ረቂቅ ፋይሎች ምቹ በሆነ ቦታ ያስቀምጡ ፣ የእነዚህ ፋይሎች ስም ምንም አይደለም። ከዚያ ሁሉንም ነባሪ ኮድ ይሰርዙ እና በሚከተለው ይተኩት።
ለተቀበለው አርዱዲኖ
#ያካትቱ
#ያካትቱ #ያካትቱ #ያካትቱ // ይህ ጥቅም ላይ አልዋለም ነገር ግን የ RH_ASK ነጂን ለማጠናቀር ያስፈልጋል ፣ የተዋቀረ ውሂብStruct {float temp; } myData; ባዶነት ማዋቀር () {Serial.begin (9600); // ማረም ((driver.init ()) Serial.println ("init failed") ከሆነ ብቻ; } ባዶነት loop () {uint8_t buf [RH_ASK_MAX_MESSAGE_LEN]; uint8_t buflen = sizeof (buf); ከሆነ (driver.recv (buf, & buflen)) // የማያግድ {int i; // ጥሩ ቼክ የተቀበለው መልእክት ፣ ጣለው። //driver.printBuffer("Got: ", buf, buflen); memcpy (& myData ፣ buf ፣ sizeof (myData)); Serial.println (""); Serial.print (myData.temp); }}
ፒ.ኤስ. የ //driver.printBuffer…. ወዘተ መስመር የሙከራ ኮድ ነው። ምርመራዎችን ካላደረጉ እና በትክክል ውሂብ እየተቀበሉ እንደሆነ ለማወቅ ካልፈለጉ በስተቀር ስለሱ መጨነቅ አያስፈልግም።
ለአስተላላፊው አርዱዲኖ
#ያካትቱ
#አካትት #አካትት #አካትት // ይህ ጥቅም ላይ አልዋለም ነገር ግን ለማቀናበር የሚያስፈልገው #ማካተት #ኢንቴን ፒን = 4; DHT11 dht11 (ፒን); RH_ASK ሾፌር; የተዋቀረ ውሂብStruct {float temp; } myData; ባይት tx_buf [sizeof (myData)] = {0}; // ስለዚህ ክርክሮች ቢትሬት ናቸው ፣ ፒን (tx) ያስተላልፋሉ ፣ // ፒን ይቀበሉ (rx) ፣ ppt pin ፣ isverse። የመጨረሻዎቹ 2 ጥቅም ላይ አልዋሉም። ማዋቀርን ያስወግዱ () {Serial.begin (9600) ፤ // ማረም ((driver.init ()) Serial.println ("init failed") ከሆነ ብቻ; } void loop () {int err; ተንሳፋፊ የሙቀት መጠን ፣ ሁሚ; uint8_t msg; ከሆነ ((err = dht11.read (humi, temp)) == 0) myData.temp = temp; memcpy (tx_buf ፣ & myData ፣ sizeof (myData)); ባይት zize = sizeof (myData); {Serial.println (myData.temp) ፤ driver.send ((uint8_t *) tx_buf, zize); driver.waitPacketSent (); // ሁሉም መረጃዎች መዘግየት (2000) እስኪላክ ድረስ አፈፃፀሙን ያቁሙ። // 2 ሰከንዶች ይጠብቁ}}
የተካተቱት ትዕዛዞች በቂ መሆን አለባቸው ፣ ግን በኋላ ላይ በውሂብ ማስተላለፍ ላይ ችግሮች ካጋጠሙዎት በ RadioHead ቤተ -መጽሐፍት አቃፊ ውስጥ ማየት እና ቀሪውን የፋይል ስሞች በተመሳሳይ ቅርጸት ማካተት ይፈልጉ ይሆናል።
ደረጃ 5: እንዲሠራ ማድረግ
አሁን ሁሉም ኮዱ አንድ ላይ አለን እና አርዱዲኖ ተሰብስቧል ፣ አርዱዲኖን ወደ ኮምፒተርዎ ማያያዝ እና ኮዱን መጫን እንችላለን። ማይክሮ መቆጣጠሪያዎችን ወደሚቀበለው እና ወደሚያስተላልፈው ትክክለኛውን ኮድ መላክዎን ያረጋግጡ። ይህ በሚሠራበት ጊዜ ሁለቱንም አርዱኢኖዎች ከኮምፒዩተርዎ ጋር እንዲገናኙ ማድረግ ይችላሉ ፣ ነገር ግን ወደፊት የሚሄድ ትክክለኛ ወደብ እንዳለዎት ማረጋገጥ አለብዎት ፣ ወይም ኮዱ አንዴ ከተላለፈ የማሰራጫውን አርዱዲኖ ማለያየት እና ከሌላ ምንጭ ኃይል መስጠት ይችላሉ። ተሰቅሏል።
ስለእሱ ስናገር አሁን ከመቀበያ አርዱinoኖ ጋር የተገናኘውን ወደብ ከ IDE መሣሪያዎች ምናሌ አሁን መምረጥ እና ፓይዘን ማሄድ አለብዎት።
ይህንን በሚያደርጉበት ጊዜ ተከታታይ ማሳያውን አይክፈቱ ፣ ተቆጣጣሪው ክፍት ሆኖ ሳለ ፓይዞን ተከታታይ ማንበብ አይችልም። አንዴ ፓይዘን ከተከፈተ በኋላ የ Pythonprint ተግባሩን እንደሚከተለው ይደውሉ።
pythonlogger.pythonprint ()
ይህ ከአርዱዲኖ ተከታታይ ወደብ የመረጃ መሰብሰቡን ይጀምራል። አሁን የፓይዘን አቃፊዎን ከከፈቱ ፣ ሁሉንም ጊዜ እና የሙቀት መረጃ የሚይዝ “test_data.csv” የተባለ አዲስ.csv ፋይል እንደተፈጠረ ያያሉ። ይህ ማትላብ ሁሉንም ስሌቶቹን እና መቆጣጠሪያዎቹን ለማድረግ የሚደርስበት ፋይል ይሆናል።
ሌላ ማስጠንቀቂያ ፦ ውሂቡ እየተደረሰበት ወይም እየተጻፈ ሳለ test_data.csv ን አይክፈቱ። እርስዎ ካደረጉ ፣ ፓይዘን እና/ወይም የማትላብ ኮድ ይሰናከላሉ እና አንድ ስህተት ይልካሉ።
. Csv ን በኋላ ለመክፈት ከወሰኑ ፣ የጊዜ ዓምድ በጣም ትልቅ የቁጥሮች ሕብረቁምፊ መሆኑን ያስተውላሉ። ይህ የሆነው የ time.time () ትዕዛዙ ከጃንዋሪ 1 ቀን 1970 ጀምሮ የሰከንዶችን ቁጥር ስለሚጽፍ ነው።
በዚህ ጊዜ ፓይዘን ከሲሪያል ወደብ እያነበበ ያለውን የሙቀት መጠን መረጃ ማተም አለበት። እንደዚህ ያለ ነገር መታየት አለበት-
b'25.03 '/r/n
ስለ ተጨማሪ ቁምፊዎች አይጨነቁ ፣ የማትላብ ኮድ በ.csv ፋይል በሁለተኛው ዓምድ ውስጥ ለመካከለኛዎቹ አምስት እሴቶች መረጃ ጠቋሚዎች።
አሁን ሁሉም የድጋፍ መርሃ ግብሮች እየሠሩ እና መረጃ እየተሰበሰበ ስለሆነ ቀደም ሲል ከተዋቀረው የማትላብ ሞባይል ፕሮግራም የጂፒኤስ መረጃን መሰብሰብ እና የማትላብ GUI ኮዱን ማካሄድ እንችላለን። በማትላብ ሞባይል አነፍናፊ ትር ውስጥ ከገቡ በኋላ ጂፒኤስን ይምረጡ እና የመነሻ ቁልፍን ይምቱ።
ለማትላብ ሞባይል አዲስ ከሆኑ ወደ ደረጃ 4 ይመለሱ እና ከላይ ያሉትን ማያ ገጾች ይመልከቱ። አሁንም ችግሮች እያጋጠሙዎት ከሆነ ፣ ቀደም ብለው ከመረጡት ኮምፒተር (በቅንብሮች ትር ውስጥ) ጋር መገናኘታቸውን ያረጋግጡ እና ማትላብ መስመር ላይ መሆኑን ለመፈተሽ ከ “አገናኝ ላይ” ትዕዛዙ አገናኙን ይጠቀሙ።
ደረጃ 6 - ፕሮግራሙን መጠቀም
በዚህ ሥርዓት ውስጥ ከበስተጀርባ በርካታ ነገሮች አሉ። የሙቀት መረጃ በአርዱዲኖ እና በፒቶን እየተሰበሰበ እና እየተመዘገበ ነው ፣ ማትላብ ከእርስዎ ቤት ምን ያህል ርቀዎት እንደሆነ ለማወቅ እና ያንን ሁሉ መረጃ መሠረት በማድረግ ቴርሞስታትዎን በማስተካከል ከስልክዎ የጂፒኤስ መረጃን እየሰበሰበ እና ስሌቶችን ያካሂዳል። የገቡበት ምርጫዎችዎን እያቀረበ ነው።
የማትላብ GUI ኮድ ያሂዱ። የ.mlapp ፋይልን ይክፈቱ እና የመጀመሪያውን ትር ይመልከቱ። ለእራስዎ መረጃውን መሰብሰብ ያስፈልግዎታል ፣ የማሞቂያ/የማቀዝቀዣ ክፍልዎ ቅልጥፍና እና የኃይል ደረጃ ብዙውን ጊዜ በእራሱ ክፍል ላይ ሊገኝ ይችላል ፣ እና አማካይ ፍጥነትዎ ምን ያህል በፍጥነት እንደሚነዱ ጥሩ ግምት ብቻ ነው። እሴቶቹ አንዴ ከገቡ በኋላ “ምርመራን አሂድ” የሚለውን ቁልፍ ይምቱ እና ፕሮግራሙ ስለ ቤትዎ መረጃ ለመሰብሰብ ቴርሞስታትዎን ይቆጣጠራል።
ወደሚቀጥለው ምናሌ ይሂዱ።
ደረጃ 7 - የሙቀት መቆጣጠሪያ
ይህ ምናሌ እርስዎ እና ከቤት ውጭ በሚሆኑበት ጊዜ እርስዎ የሚመርጠውን የሙቀት መጠን እንዲመርጡ ያስችልዎታል። የሙቀት መጠንዎን 1 ወደ ምቹ የሙቀት መጠንዎ ያኑሩ ፣ እና የሙቀት መጠን #2 ለቤትዎ ደህንነቱ የተጠበቀ ወደሆነ ከፍተኛ ወይም ዝቅተኛ እሴት (ቤት ውስጥ ውሾች ሲኖሩት 100 ዲግሪ እንዳያስቀምጡት ያረጋግጡ)።
ደረጃ 8 - ታሪካዊ መረጃ
በመጨረሻ አውቶማቲክ መቆጣጠሪያውን በመጠቀም ምን ያህል ገንዘብ እንደሚቆጥብ ማየት ይችላሉ። ይህ በዋናነት የእርስዎ ቴርሞስታት ወደ ተመራጭ የሙቀት መጠንዎ 24/7 ከተዋቀረ ምን ያህል ኃይል ጥቅም ላይ እንደሚውል ይገምታል ፣ ከዚያ ያገለገለውን ትክክለኛ ኃይልዎን ይቀንሳል።
መልካም ዕድል ግንባታ።
የሚመከር:
የራስዎን የተገናኘ የማሞቂያ ቴርሞስታት ያድርጉ እና በማሞቂያ ቁጠባ ያድርጉ 53 ደረጃዎች (ከስዕሎች ጋር)
የራስዎን የተገናኘ የማሞቂያ ቴርሞስታት ያድርጉ እና በማሞቂያ ቁጠባ ያድርጉ - ዓላማው ምንድነው? በሚፈልጉበት ጊዜ ብቻ ቤትዎን በማሞቅ ቁጠባን ያድርጉ እና ቤትዎን በሚሞቅበት ጊዜ የግሪንሀውስ ጋዝ ልቀቶችን ይቀንሱ የትም ይሁኑ የት ማሞቂያዎን ይቆጣጠሩ ኩራት ያድርጉ ያደረጉት
የቲቪ የርቀት የርቀት መቆጣጠሪያ አርኤፍ ሆኗል -- NRF24L01+ አጋዥ ስልጠና 5 ደረጃዎች (ከስዕሎች ጋር)
የቲቪ የርቀት የርቀት አርኤፍ ይሆናል || NRF24L01+ መማሪያ -በዚህ ፕሮጀክት ውስጥ በቴሌቪዥን የርቀት መቆጣጠሪያ በሶስት የማይጠቅሙ አዝራሮች አማካኝነት የ LED ን ብሩህነት በገመድ አልባ ለማስተካከል ታዋቂውን nRF24L01+ RF IC ን እንዴት እንደጠቀምኩ አሳያችኋለሁ። እንጀምር
ስማርት ቴርሞስታት ESP8266: 6 ደረጃዎች (ከስዕሎች ጋር)
ስማርት ቴርሞስታት ESP8266: Bienvenue sur ce nouvel article. በሪፖርቱ አዉሮድድሁሁ ላይ በእስር ቤት ውስጥ ያለዉን ፕሮጄት ያፍስሱ። Ce projet m'a été proposé par mon pere, en effet il vient de déménager dans une vieille maison et l
አውቶማቲክ የእንጨት ምድጃ ቴርሞስታት እንዴት እንደሚሠራ 5 ደረጃዎች (ከስዕሎች ጋር)
አውቶማቲክ የእንጨት ምድጃ ቴርሞስታት እንዴት መሥራት እንደሚቻል - ለሜካቶኒክስ ክፍል ፕሮጄክት እኔ በእንጨት ምድጃዬ ላይ ያለውን የእርጥበት ቦታ ለመቆጣጠር በ Steid ሞተር በሚነዳ የፒአይዲ መቆጣጠሪያ አርአዲኖን በመጠቀም በ WiFi የነቃ Arduino ን ዲዛይን በማድረግ አውቶማቲክ የእንጨት ምድጃ ቴርሞስታት ለመንደፍ እና ለመፍጠር ወሰንኩ። በጣም ተሃድሶ ሆኗል
HestiaPi Touch - ስማርት ቴርሞስታት ይክፈቱ - 9 ደረጃዎች (ከስዕሎች ጋር)
HestiaPi Touch - ክፍት ስማርት ቴርሞስታት - ስለ HestiaPi TouchHestiaPi Touch ለቤትዎ ሙሉ በሙሉ ክፍት ምንጭ ዘመናዊ ቴርሞስታት ነው። ሁሉም ዲጂታል ፋይሎች እና መረጃዎች ከዚህ በታች እና የእኛ ዋና ድር ጣቢያ ይገኛሉ። በእሱ አማካኝነት የቤትዎን የሙቀት መጠን ፣ አንጻራዊ እርጥበት እና የአየር ሁኔታን መከታተል ይችላሉ