ዝርዝር ሁኔታ:
ቪዲዮ: ስማርት ባቡር ስርዓት - 4 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
አደጋዎች ቢከሰቱ ለማገዝ ደህንነትን ለመጨመር ፣ አደጋዎችን ለመከላከል እና አዎንታዊ እና ምርታማ ምላሽ እንዲጨምር የተነደፈ።
ደረጃ 1: ክፍሎች እና ቁሳቁሶች
ከላይ ያሉት ሥዕሎች ከዚህ በታች ባሉት ክፍሎች ዝርዝር ቅደም ተከተል ተቀምጠዋል -
ክፍሎች ዝርዝር
1) አንድ Raspberry PI 3 - ሞዴል ቢ
2) አንድ የዳቦ ሰሌዳ
3) ኬብሎች (ከላይ ወደ ታች) - አንድ ኃይል ፣ አንድ ኤተርኔት ፣ አንድ አስማሚ
4) አንድ Servo ሞተር
5) አንድ 3 ዲ የታተመ የባቡር ሐዲድ በር
6) ሁለት ኤልኢዲዎች (የተሻለ ቀይ እና አረንጓዴ)
7) አንድ የግፊት ቁልፍ
8) አስር ዝላይ ሽቦዎች
9) አራት ተከላካዮች
10) ላፕቶፕ ወይም ዴስክቶፕ ከ MATLAB ጋር
ደረጃ 2: ውቅር
ከላይ ከብዙ ማዕዘኖች የማዋቀር ሥዕሎች አሉ-
የአሁኑን ፍሰት ተከትሎ በቅደም ተከተል የፒን ሥፍራዎች (የረድፍ ቁጥር የተከተለ ዝቅተኛ ፊደል) ከዚህ በታች ተዘርዝረዋል።
ሽቦዎች
j19 እስከ i47
j8 እስከ b50
b5 ወደ ሰርቮ
c6 ወደ ሰርቮ
ለ 7 ወደ servo
ከ 13 እስከ j7
a17 ወደ LED
LED ወደ a37
ከ e40 እስከ j20
j53 እስከ j18
j7 ወደ LED
LED ወደ j6
አዝራር ፦
e54 እስከ h51
ተከላካዮች ፦
ከ 40 እስከ ለ 37
ከ 50 እስከ 54
i51 እስከ j47
ደረጃ 3 ኮድ እና አመክንዮ
የባቡር ሥርዓታችን ዓላማ ደህንነትን ማሳደግ እና በባቡር ሐዲዶች መተላለፊያዎች ላይ ለሞት ሊዳርጉ የሚችሉ አደጋዎችን አደጋ ለመቀነስ ነው። ይህንን ለማሳካት የእኛ ስርዓት ለአሽከርካሪዎች የባቡር ማስጠንቀቂያ ስርዓት ፣ መኪናዎች ትራኩን እንዳያቋርጡ የሚከለክለው አካላዊ መሰናክል እና የቅድመ ማስጠንቀቂያ ስርዓቱ ካልተሳካ መሪውን ለመጫን የመጠባበቂያ የድንገተኛ አደጋ ቁልፍ አለው።
GUI የአመራር ስርዓተ ክወና
ከላይ የሚታየው GUI ፣ የመኪና ትራፊክ ባቡር መሻገሪያ ባላቸው የትራክ ቦታዎች ባቡሩን በሚያሽከረክሩበት ጊዜ ለተመራማሪው አጠቃቀም የተፈጠረ ነው።
በላይኛው ቀኝ ጥግ ላይ መጪው የባቡር ሐዲድ ማቋረጫ በር ከተዘጋ መሪውን በሩን እንዲከፍት ወይም እንዲዘጋ የሚያስችለውን ብርሃን የሚያስተላልፍ መብራት አለ። ከዚህ በታች ባቡሩ ከሚያልፈው ካሜራዎች የሚመገበው ምግብ ይታያል። በታችኛው ግራ ጥግ ላይ የባቡሩ ሥፍራ ያለማቋረጥ በግራፍ ላይ እና ከግራፉ በታች የተቀረፀ ሲሆን ባቡሩ በአንድ ቀን ያጠናቀቃቸው የጭንቶች ብዛት ተገል isል። ከቦታው ግራፍ በላይ ፣ የአደጋ ጊዜ ቁልፍ እና የሁኔታ መግለጫ አለ። በትራኩ ላይ መኪና ካለ ወይም የደህንነት በር በትክክል ካልሰራ ይህ ተቆጣጣሪው ለአስቸኳይ ጊዜ ምልክት እንዲያደርግ ያስችለዋል።
ኮድ ፦
classdef micro <matlab.apps. AppBase % ከመተግበሪያ ክፍሎች ጋር የሚዛመዱ ባህሪዎች
ንብረቶች (መዳረሻ = ይፋዊ)
UIFigure matlab.ui. ምስል
RailwaygatestatusLampLabel matlab.ui.control. Label
gateLamp matlab.ui.control. Lamp
OpenGateButton matlab.ui.control. Button
CloseGateButton matlab.ui.control. Button
UIAxes matlab.ui.control. UIAxes
የአደጋ ጊዜ አዝራር ስታቲስፓምፕ ላምቤል matlab.ui.control. Label
የአደጋ ጊዜ አዝራር ስታቱስላፕ matlab.ui.control. Lamp
ያልተለመዱ ሁኔታዎች ላቤል matlab.ui.control. Label
UIAxes2 matlab.ui.control. UIAxes
EF230Group6Label matlab.ui.control. Label
ኢያን አሊሽ ኬሊ ቦንድ ኢያን ዳፍሮን ላቤል matlab.ui.control. ላቤል
LoopsCompletedLabel matlab.ui.control. Label
መለያ matlab.ui.control. Label
አበቃ
ንብረቶች (መዳረሻ = የግል)
ቆጣሪ int16
አበቃ
ዘዴዎች (መዳረሻ = ይፋዊ)
የተግባር ሰዓት ቆጣሪ ጥሪ (መተግበሪያ ፣ ኤስ አር ሲ ፣ ክስተት)
app. Temp. Text = int2str (app.counter);
app.counter = app.counter + 1;
%ፕሮግራሙ የሚያስፈልጋቸውን ሁሉንም ተለዋዋጮች ይደውሉ - - - - - - - - - - - - - -
ዓለም አቀፍ rpi
global s
ዓለም አቀፍ ክፍት
ዓለም አቀፋዊ
ዓለም አቀፍ ካሜራ
ዓለም አቀፍ ኤም
ዓለም አቀፍ ኤም.ኤም
ዓለም አቀፍ t_count
%------------------------- የባቡር ክንድ ክፍል --------------------- ---------
ክፍት ከሆነ == 0
ቦታ (ቶች ፣ 50)
app.gateLamp. Color = 'አረንጓዴ';
አበቃ
ቅርብ ከሆነ == 0
ቦታ (ዎች ፣ 120)
app.gateLamp. Color = 'ቀይ';
አበቃ
%---------------------- በካሜራ በኩል የእንቅስቃሴ ማወቂያ -----------------------
እውነት እያለ
img = ቅጽበተ -ፎቶ (ካሜራ);
ምስል (img);
መተግበሪያ። UIAxes (drawow)
አበቃ
%---------------------- ክንድ ክፍት/ዝጋ ----------------------- --------------
ከተነበበ DigitalPin (rpi, 20)> 1 %ፒን 17 (ቁልፍ) ያነባል እና ምልክት ይፈትሻል
ለ i = 40:.5: 150 %ድልድይ ያነሳል
ቦታ (ዎች ፣ i)
አበቃ
ለ i = 1:10 %ቀለበቶች ብልጭ ድርግም የሚሉ ቀይ ብርሃን x ጊዜዎች ብዛት
ይፃፉ ዲጂታል ፒን (አርፒአይ ፣ 13 ፣ 1)
ለአፍታ አቁም (.5)
ይፃፉ ዲጂታል ፒን (አርፒአይ ፣ 13 ፣ 0)
ለአፍታ አቁም (.5)
አበቃ
መጻፍ አቀማመጥ (ቶች ፣ 50)%በሩን አስቀምጠዋል
አበቃ
%-------------------- የሞባይል ስልክ ድጋፍ/ሴራ ------------------------ -
m AccelerationSensorEnabled = 1
መ. ብሎግ = 1
ውሂብ = ዜሮዎች (200 ፣ 1); ለሚንከባለል ሴራ %መረጃን ያብጁ
ምስል (መተግበሪያ። UIAxes2)
p = ሴራ (ውሂብ)
ዘንግ ([xbounda, ybounds])
ለአፍታ አቁም (1)
tic
toc <30 %ለ 30 ሰከንዶች ያህል ሲሮጥ
[ሀ ፣ ~] = ተቀባዩ (ሜ);
ርዝመት (ሀ)> 200 ከሆነ
ውሂብ = ሀ (መጨረሻ -1999 መጨረሻ ፣ 3);
ሌላ
ውሂብ (1: ርዝመት (ሀ)) = ሀ (:, 3);
አበቃ
%እንደገና ይድገሙ
p. YData = ውሂብ;
Drawow
አበቃ
%------------------ ድንገተኛ የፒክሰል ለውጥ ---------------------------- ------
x1 = img; % ካሜራውን ከፓይ ያነባል
red_mean = አማካይ (አማካይ (x1 (:,:, 1)))); % የቀይ ፒክሰሎችን አማካይ መጠን ያነባል
green_mean = አማካይ (አማካይ (x1 (:,:, 2)))); % የአረንጓዴ ፒክሰሎችን አማካይ መጠን ያነባል
blue_mean = አማካይ (አማካይ (x1 (:,:, 3)))); % አማካይ ሰማያዊ ፒክሰሎችን ያነባል
red_mean> 150 && green_mean> 150 && blue_mean> 150 ከሆነ
t_count = t_count + 1;
አበቃ
app. LoopsCompletedLabel. Text = num2str (t_count)
%------------------ የአዝራር ኢኤምኤስ ፕሮግራም ---------------------------- ---
configurePin (rpi ፣ 12 ፣ ‘DigitalOutput’); %መሪውን ፒን ፣ ፒን 16 ን እንደ ውፅዓት ያዘጋጃል
configurePin (rpi, 16 ፣ 'DigitalInput'); %የአዝራር ፒን ፣ ፒን 24 ን እንደ ግብዓት ያዘጋጃል
buttonPressed = readDigitalPin (rpi, 16); % በፒን 16 ላይ ያለውን የአዝራር ተጫን እሴት ያነባል
አዝራር ከተጫነ == 1
አዝራር ተጭኖ == 1
ይፃፉ ዲጂታል ፒን (አርፒአይ ፣ 12 ፣ 1)
buttonunPressed = writeDigitalPin (rpi, 12, 0); %
መጨረሻ % ያበቃል 'አዝራር ተጭኗል == 1' loop
አበቃ
writeDigitalPin (rpi, 16, 0) %አዝራሩ setpref ('በይነመረብ' ፣ 'SMTP_Server' ፣ 'smtp.gmail.com') ሲጫን መሪውን ያጠፋዋል ፤ setpref ('በይነመረብ' ፣ 'ኢ_ሜል' ፣ '[email protected]'); ከ setpref ('በይነመረብ' ፣ 'SMTP_Username' ፣ '[email protected]') ለመላክ % የኢሜይል መለያ ፤ % ላኪዎች የተጠቃሚ ስም setpref ('በይነመረብ' ፣ 'SMTP_Password' ፣ 'efgroup6') ፤ % የላኪ የይለፍ ቃል
props = java.lang. System.getProperties;
props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('[email protected] '፣' የአስቸኳይ ጊዜ ሁኔታ! '፣' ተቆጣጣሪው ፈጣን ምላሽ በመጠየቅ በእጅ መሻሪያ መቀየሪያውን አግብሯል! ')
app. UnernormalconditionsLabel. Text = ems
አበቃ
አበቃ
%app. Label_4. Text = num2str (curr_temp);
ዘዴዎች (መዳረሻ = የግል)
% ክፍል ከተፈጠረ በኋላ የሚፈፀም ኮድ
የተግባር ጅምርFcn (መተግበሪያ)
%---------- ለዚህ ተግባር የሚያስፈልጉ ሁሉም ተለዋዋጮች --------------------
ዓለም አቀፍ rpi %arduino
rpi = raspi ('169.254.0.2' ፣ 'pi' ፣ 'raspberry');
ግሎባል s %servo
s = servo (rpi, 17, 'MinPulseDuration', 5e-4, 'MaxPulseDuration', 2.5e-3);
ዓለም አቀፍ ክፍት
ክፍት = 1;
ዓለም አቀፍ ተዘግቷል
ተዘግቷል = 1;
ዓለም አቀፍ ካሜራ
ካሜራ = የካሜራ ሰሌዳ (አርፒአይ);
ዓለም አቀፍ ኤም
m = mobiledev;
ዓለም አቀፍ ኤም.ኤም
ems = 'ድንገተኛ ሁኔታ ሪፖርት ተደርጓል ፣ ኢኤምኤስን ያሳውቃል';
ዓለም አቀፍ t_count
t_count = 0;
በ %ይለፍ ቃል ላይ ያለው አገናኝ EFGroup6 ነው
% የሰዓት ቆጣሪ ተግባር ለ Loop --------------------------------
app.counter = 0;
t = ሰዓት ቆጣሪ (…
'TimerFcn' ፣ @app.timerCallback ፣…
‹StartDelay› ፣ 1 ፣… ‘ክፍለ ጊዜ’ ፣ 1 ፣…
'ExecutionMode' ፣ 'FixSpacing' ፣…
'TasksToExecute', inf);
ጀምር (t);
አበቃ
% የመደወያ ተግባር
ተግባር ManualOverrideSwitchValueChanged (መተግበሪያ ፣ ክስተት)
አበቃ
% አዝራር የተገፋ ተግባር ፦ OpenGateButton
ተግባር OpenGateButtonPushed (መተግበሪያ ፣ ክስተት)
ዓለም አቀፋዊ
ዝጋ = 0;
አበቃ
% አዝራር የተገፋ ተግባር: CloseGateButton
ተግባር CloseGateButtonPushed (መተግበሪያ ፣ ክስተት)
ዓለም አቀፍ ክፍት
ክፍት = 0;
አበቃ
አበቃ
% የመተግበሪያ አጀማመር እና ግንባታ
ዘዴዎች (መዳረሻ = የግል)
% UIFigure እና ክፍሎችን ይፍጠሩ
ተግባር ፍጠር ተባባሪዎች (መተግበሪያ)
% UIFigure ን ይፍጠሩ
app. UIFigure = uifigure;
app. UIFigure. አቀማመጥ = [100 100 640 480];
app. UIFigure. Name = 'UI Figure';
% RailwaygatestatusLampLabel ን ይፍጠሩ
app. RailwaygatestatusLampLabel = uilabel (app. UIFigure);
app. RailwaygatestatusLampLabel. HorizontalAlignment = 'right'; app. RailwaygatestatusLampLabel. አቀማመጥ = [464 422 110 22]; app. RailwaygatestatusLampLabel. Text = 'የባቡር በር ሁኔታ';
% GateLamp ፍጠር
app.gateLamp = uilamp (app. UIFigure);
app.gateLamp. አቀማመጥ = [589 422 20 20];
app.gateLamp. Color = [0.9412 0.9412 0.9412];
% OpenGateButton ን ይፍጠሩ
app. OpenGateButton = uibutton (app. UIFigure ፣ 'push');
app. OpenGateButton. ButtonPushedFcn = createCallbackFcn (መተግበሪያ ፣ @OpenGateButtonPushed ፣ እውነት); app. OpenGateButton. አቀማመጥ = [474 359 100 22];
app. OpenGateButton. Text = 'ክፍት በር';
% CloseGateButton ን ይፍጠሩ
app. CloseGateButton = uibutton (app. UIFigure ፣ 'push');
app. CloseGateButton. ButtonPushedFcn = createCallbackFcn (መተግበሪያ ፣ @CloseGateButtonPushed ፣ እውነት); app. CloseGateButton. አቀማመጥ = [474 285 100 22];
app. CloseGateButton. Text = 'መዝጊያ በር';
% UIAxes ን ይፍጠሩ
app. UIAxes = uiaxes (app. UIFigure);
ርዕስ (መተግበሪያ። UIAxes ፣ 'የካሜራ ምግብ')
app. UIAxes. አቀማመጥ = [341 43 300 185];
% EmergencyButtonStatusLampLabel ን ይፍጠሩ
app. EmergencyButtonStatusLampLabel = uilabel (app. UIFigure); app. EmergencyButtonStatusLampLabel. HorizontalAlignment = 'right'; app. EmergencyButtonStatusLampLabel. Position = [97 323 142 22]; app. EmergencyButtonStatusLampLabel. Text = 'የአስቸኳይ አዝራር ሁኔታ';
% EmergencyButtonStatusLamp ፍጠር
app. EmergencyButtonStatusLamp = uilamp (app. UIFigure); app. EmergencyButtonStatusLamp. Position = [254 323 20 20];
% መደበኛ ያልሆኑ ሁኔታዎችን ይፍጠሩ
app. UndernormalconditionsLabel = uilabel (app. UIFigure);
app. UnernormalconditionsLabel. አቀማመጥ = [108 285 248 22];
app. UndernormalconditionsLabel. Text = 'በመደበኛ ሁኔታዎች ስር';
% UIAxes2 ን ይፍጠሩ
app. UIAxes2 = uiaxes (app. UIFigure);
ርዕስ (መተግበሪያ። UIAxes2 ፣ 'የባቡር አቀማመጥ')
xlabel (መተግበሪያ። UIAxes2 ፣ 'X Position')
ylabel (መተግበሪያ። UIAxes2 ፣ 'Y Position')
app. UIAxes2. Box = 'በርቷል';
app. UIAxes2. XGrid = 'በርቷል';
app. UIAxes2. YGrid = 'በርቷል';
app. UIAxes2. አቀማመጥ = [18 43 300 185];
% EF230Group6Label ን ይፍጠሩ
app. EF230Group6Label = uilabel (app. UIFigure);
app. EF230Group6Label. HorizontalAlignment = 'center';
app. EF230Group6Label. FontSize = 28;
app. EF230Group6Label. FontWeight = 'ደፋር';
app. EF230Group6Label. አቀማመጥ = [-4 401 379 64];
app. EF230Group6Label. Text = 'EF 230 ቡድን 6';
% IanAllishKellyBondIanDaffronLabel ን ይፍጠሩ
app. IanAllishKellyBondIanDaffronLabel = uilabel (app. UIFigure); app. IanAllishKellyBondIanDaffronLabel. አቀማመጥ = [94 380 184 22]; app. IanAllishKellyBondIanDaffronLabel. Text = 'ኢያን አሊሽ ፣ ኬሊ ቦንድ ፣ ኢያን ዳፍሮን';
% LoopsCompletedLabel ፍጠር
app. LoopsCompletedLabel = uilabel (app. UIFigure);
app. LoopsCompletedLabel. አቀማመጥ = [18 10 103 22];
app. LoopsCompletedLabel. Text = 'Loops ተጠናቀዋል';
% መለያ ፍጠር
app. Label = uilabel (app. UIFigure);
app. Label. አቀማመጥ = [120 10 178 22];
app. Label. Text = '####';
አበቃ
አበቃ
ዘዴዎች (መዳረሻ = ይፋዊ)
% መተግበሪያ ይገንቡ
የተግባር መተግበሪያ = ማይክሮ
% ክፍሎችን ይፍጠሩ እና ያዋቅሩ
ተጓዳኞችን ፍጠር (መተግበሪያ)
% መተግበሪያውን በመተግበሪያ ዲዛይነር ያስመዝግቡት
registerApp (መተግበሪያ ፣ መተግበሪያ። ውቅር)
% የመነሻውን ተግባር ያከናውኑ
runStartupFcn (መተግበሪያ ፣ @startupFcn)
nargout == 0 ከሆነ
ግልጽ መተግበሪያ
አበቃ
አበቃ
ከመተግበሪያው ስረዛ በፊት የሚፈፀም %
ሰርዝ (መተግበሪያ)
መተግበሪያው ሲሰረዝ UIFigure ን ይሰርዙ
ሰርዝ (መተግበሪያ። መለያ)
አበቃ
አበቃ
አበቃ
ደረጃ 4: የመጨረሻ ደረጃ
ኮዱ ከተፃፈ እና Raspberry Pi ከተገጠመ በኋላ ፣ ከላይ በስዕሉ ላይ እንደተያያዘው የ servo ሞተርን በ 3-ዲ የታተመው የባቡር ሐዲድ ትራክ በር ላይ ያያይዙት።
አሁን ፕሮጀክቱ ተጠናቋል። Raspberry PI ን ከባቡሩ ትራክ ጋር ያገናኙ እና ለሁለቱም የመኪና አሽከርካሪዎች እና ለአስተዳዳሪዎች ደህንነቱ የተጠበቀ የባቡር መሻገሪያዎችን በመፍጠር አዲሱን ስርዓት ይመልከቱ። አደጋዎችን ለመከላከል በቦታው የተቀመጡ ያልተሳኩ ደህንነቶችን ለማስነሳት ከ GUI ጋር በመገናኘት ከስርዓቱ ጋር ይጫወቱ።
የመማሪያው መጨረሻ ይህ ነው ፣ በአዲሱ ስማርት ባቡር ስርዓትዎ ይደሰቱ!
የሚመከር:
ስማርት ዴስክ የ LED መብራት - ስማርት መብራት ወ/ አርዱinoኖ - የኒዮፒክሰል የሥራ ቦታ 10 ደረጃዎች (ከስዕሎች ጋር)
ስማርት ዴስክ LED መብራት | ስማርት መብራት ወ/ አርዱinoኖ | ኒዮፒክስልስ የሥራ ቦታ - አሁን አንድ ቀን እኛ ብዙ ጊዜ በቤት ውስጥ እያጠፋን ፣ እያጠናን እና ምናባዊ ሥራን እየሠራን ነው ፣ ስለዚህ የሥራ ቦታችንን በብጁ እና በዘመናዊ የመብራት ስርዓት አርዱዲኖ እና በ Ws2812b LEDs ላይ የበለጠ ለምን አናደርግም። እዚህ እንዴት የእርስዎን ስማርት እንደሚገነቡ አሳያችኋለሁ። ዴስክ LED መብራት
በ STONE HMI Disp: 23 ደረጃዎች ላይ ስማርት የቤት መቆጣጠሪያ ስርዓት ያዘጋጁ
በ STONE HMI ዲስፕ ላይ የ Smart Home Control System ያድርጉ-የፕሮጀክት መግቢያ የሚከተለው አጋዥ ስልጠና ቀላል የቤት መገልገያ መቆጣጠሪያ ስርዓትን ለመሥራት የ STONE STVC050WT-01 ንክኪ ማሳያ ሞዱሉን እንዴት እንደሚጠቀሙ ያሳየዎታል።
የሃርድዌር እና የሶፍትዌር ኡሁ ስማርት መሣሪያዎች ፣ ቱያ እና ብሮድሊንክ ኤልኢዲቢብ ፣ ሶኖፍ ፣ ቢ ኤስዲ 3 ስማርት ተሰኪ - 7 ደረጃዎች
ሃርድዌር እና ሶፍትዌር ኡሁ ስማርት መሣሪያዎች ፣ ቱያ እና ብሮድሊንክ LEDbulb ፣ Sonoff ፣ BSD33 Smart Plug: በዚህ መመሪያ ውስጥ እኔ ብዙ ብልጥ መሣሪያዎችን በራሴ firmware እንዴት እንደበራሁ አሳይሻለሁ ፣ ስለዚህ በ ‹MQTT› በ ‹Openhab setup› በኩል ልቆጣጠራቸው እችላለሁ። አዲስ መሣሪያዎችን ስጠለፋቸው በእርግጥ በእርግጥ ብጁን ለማብራት ሌሎች በሶፍትዌር ላይ የተመሰረቱ ዘዴዎች አሉ
ስማርት መጋረጃ ስርዓት - 4 ደረጃዎች
ዘመናዊ የመጋረጃ ስርዓት-ክፍሉ በጣም ሞቃት እና ብሩህ ሲሆን እንዲሁም በጉዞ ላይ በርቀት መቆጣጠር በሚችልበት ጊዜ እራሱን የሚዘጋ ዘመናዊ የመጋረጃ ስርዓት ይፈልጋሉ? እዚህ አንዱን እንዴት ቀላል ማድረግ እንደሚችሉ አሳያችኋለሁ ~
በፀሐይ ኃይል ‹ስማርት› ዋይፋይ ቁጥጥር የሚደረግበት የመስኖ ስርዓት 6 ደረጃዎች (ከስዕሎች ጋር)
የፀሐይ ኃይል የተጎላበተው ‹ስማርት› ዋይፋይ ቁጥጥር የሚደረግበት የመስኖ ስርዓት -ይህ ፕሮጀክት የቤት ውስጥ ፣ ሙሉ የፀሐይ ኃይል ያለው ፣ ዘመናዊ የአትክልት ኃይል ፍርግርግ እና መስኖን ለመፍጠር ከኤባይ መደበኛ የ DIY የፀሐይ እና የ 12v ክፍሎችን ከ eBay ፣ ከ Sheሊ IoT መሣሪያዎች እና አንዳንድ መሠረታዊ ፕሮግራሞችን በ openHAB ይጠቀማል። ማዋቀር የስርዓት ድምቀቶች ፉ