ዝርዝር ሁኔታ:

የመብራት መቆጣጠሪያ ስርዓት 9 ደረጃዎች
የመብራት መቆጣጠሪያ ስርዓት 9 ደረጃዎች

ቪዲዮ: የመብራት መቆጣጠሪያ ስርዓት 9 ደረጃዎች

ቪዲዮ: የመብራት መቆጣጠሪያ ስርዓት 9 ደረጃዎች
ቪዲዮ: STUDY LIKE HERO | ጎበዝ ተማሪዎች የማይናገሩት ሚስጥር | Hakim Insight 2024, ህዳር
Anonim
የመብራት መቆጣጠሪያ ስርዓት
የመብራት መቆጣጠሪያ ስርዓት

በቅርቡ ለደህንነት ምርምር ዓላማዎች ማይክሮ መቆጣጠሪያዎችን እና አይኦትን መሠረት ያደረጉ መሣሪያዎችን በመረዳት ላይ እሠራ ነበር። ስለዚህ ፣ ለልምምድ አነስተኛ የቤት አውቶማቲክ ስርዓትን ለመገንባት አሰብኩ። እኔ ገና ይህንን አጠናቅቃለሁ ፣ ግን ለጅምር በዚህ ልጥፍ ውስጥ የክፍሌን መብራት ለመቆጣጠር Raspberry Pi 2 ን እና አንዳንድ ሌሎች የኤሌክትሪክ አካላትን እንዴት እንደጠቀምኩ እጋራለሁ። እንዲሁም ፣ እዚህ ስለ Raspberry የመጀመሪያ ቅንብር አልናገርም ፣ ለዚያ የተለያዩ ትምህርቶችን ማግኘት ይችላሉ።

ግን በዚህ ፕሮጀክት ውስጥ ይህንን የዶከር ፓይ ተከታታይ ምርት ለእርስዎ አስተዋውቅዎታለሁ።

አቅርቦቶች

የንጥል ዝርዝር:

  • 1 x Raspberry Pi 3B+/3B/ዜሮ/ዜሮ ወ/4 ለ/
  • 1 x 16 ጊባ ክፍል 10 TF ካርድ
  • 1 x DockerPi ተከታታይ 4 የሰርጥ ማስተላለፊያ ቦርድ (ኮፍያ)
  • 1 x [email protected] የኃይል አቅርቦት ይህም ከ 52 ፒ
  • 4 x ፈካ ያለ ገመድ
  • 1 x ዲሲ አያያዥ
  • ለብርሃን ሰቆች 1 x 12V የኃይል አቅርቦት።
  • በርካታ ሽቦዎች።

ደረጃ 1 - ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ

ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ
ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ
ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ
ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ
ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ
ስለ DockerPi Series 4 የሰርጥ ማስተላለፊያ ሰሌዳ ማወቅ

DockerPi 4 የሰርጥ ማስተላለፊያ በ IOT መተግበሪያዎች ውስጥ በብዛት ጥቅም ላይ የሚውለው የ DockerPi Series አባል ነው።

ተጨማሪ ሀሳቦችን ለማግኘት DockerPi 4 የሰርጥ ቅብብል ከባህላዊ መቀያየሪያዎች ይልቅ ኤሲ/ዲሲን ማስተላለፍ ይችላል። DockerPi 4 የሰርጥ ቅብብል እስከ 4 ሊደርስ ይችላል ፣ እና ከሌሎች የ DockerPi ማስፋፊያ ሰሌዳ ጋር ሊደረደር ይችላል። ለረጅም ጊዜ መሮጥ ከፈለጉ ፣ የበለጠ ኃይልን ለመስጠት የእኛን DockerPi Power ማስፋፊያ ሰሌዳ እንዲጠቀሙ እንመክራለን።

ጥንቃቄ ከመቀጠልዎ በፊት “በዋናው ኤሌክትሪክ” ላይ ስለመሞከሩ አደጋ ላስጠነቅቅዎ እፈልጋለሁ። የሆነ ነገር ከተሳሳተ አስከፊው ውጤት ሞት ወይም ቢያንስ የራስዎን ቤት ማቃጠል ሊሆን ይችላል። ስለዚህ ፣ እባክዎን ምን እያደረጉ እንደሆነ ካልተረዱ ወይም የተሻለ ልምድ ካለው ልምድ ካለው የኤሌክትሪክ ሠራተኛ በተሻለ በዚህ ጽሑፍ ውስጥ የተጠቀሰውን ማንኛውንም ነገር ለማድረግ አይሞክሩ። እንጀምር.

ደረጃ 2 - ባህሪዎች

ዋና መለያ ጸባያት
ዋና መለያ ጸባያት
ዋና መለያ ጸባያት
ዋና መለያ ጸባያት
ዋና መለያ ጸባያት
ዋና መለያ ጸባያት
  • DockerPi ተከታታይ
  • ፕሮግራም ሊደረግ የሚችል
  • በቀጥታ ይቆጣጠሩ (ያለ ፕሮግራም)
  • የ GPIO ፒኖችን ያራዝሙ
  • 4 የሰርጥ ማስተላለፊያ
  • 4 Alt I2C Addr ድጋፍ
  • የቅብብሎሽ ሁኔታ አመራሮች ድጋፍ
  • 3A 250V AC ድጋፍ
  • 3A 30V ዲሲ
  • ከዋናው ሰሌዳ ሃርድዌር ገለልተኛ ከሆነ ከሌሎች የቁልል ሰሌዳ ጋር መደርደር ይችላል (የ I2C ድጋፍን ይፈልጋል)

ደረጃ 3 የመሣሪያ አድራሻ ካርታ

የመሣሪያ አድራሻ ካርታ
የመሣሪያ አድራሻ ካርታ
የመሣሪያ አድራሻ ካርታ
የመሣሪያ አድራሻ ካርታ

ይህ ሰሌዳ የተለየ የመመዝገቢያ አድራሻ አለው ፣ እና እያንዳንዱን ቅብብል በአንድ ትዕዛዝ ብቻ መቆጣጠር ይችላሉ።

ሌሎች መስፈርቶች:

የ Python ወይም C ወይም shellል ወይም ጃቫ ወይም ሌላ ቋንቋ መሠረታዊ ግንዛቤ (እኔ ሲ ፣ ፓይዘን ፣ ዛጎል እና ጃቫ እጠቀማለሁ)

  • የሊኑክስ ስርዓቶች መሠረታዊ ግንዛቤ
  • የአእምሮ መኖር

አሁን ወደ ፊት ከመቀጠልዎ በፊት የምንጠቀምባቸውን የኤሌክትሪክ ክፍሎች መረዳት ያስፈልግዎታል-

1. ቅብብል

ቅብብል በጣም ዝቅተኛ ቮልቴጅ እንደ ግብዓት በመጠቀም በአጠቃላይ ከፍተኛ ውጥረቶችን ለመቆጣጠር የሚያገለግል የኤሌክትሪክ መሳሪያ ነው። ይህ ወረዳውን ለመዝጋት የሚያገለግሉ ምሰሶዎች እና ሁለት ትናንሽ የብረት መከለያዎች (አንጓዎች) ላይ የታሸጉ መጠቅለያዎችን ያጠቃልላል። አንደኛው መስቀለኛ መንገድ ተስተካክሎ ሌላኛው ተንቀሳቃሽ ነው። ኤሌክትሪክ በመጠምዘዣው ውስጥ በተላለፈ ቁጥር መግነጢሳዊ መስክን ይፈጥራል እና የሚንቀሳቀስ መስቀለኛ መንገዱን ወደ የማይንቀሳቀስ መስቀለኛ መንገድ ይስባል እና ወረዳው ይጠናቀቃል። ስለዚህ ፣ ጠመዝማዛውን ለማጠንከር ትንሽ voltage ልቴጅ በመተግበር ፣ ለከፍተኛ ቮልቴጅ ለመጓዝ ወረዳውን በትክክል ማጠናቀቅ እንችላለን። እንዲሁም ፣ የማይንቀሳቀስ መስቀለኛ መንገድ ከመጠምዘዣው ጋር ስላልተገናኘ አንድ ነገር ከተሳሳተ ጠመዝማዛውን የሚቆጣጠረው ማይክሮ መቆጣጠሪያ የሚጎዳበት ዕድል በጣም አናሳ ነው።

ደረጃ 4 - ማስተላለፊያውን በዋናው የኤሌክትሪክ አቅርቦት ከሚጎበኘው አምፖል መያዣ ጋር ያገናኙ

በዋናው የኤሌክትሪክ አቅርቦት የተጎላበተውን ቅብብል ወደ አምፖል መያዣ ያገናኙ
በዋናው የኤሌክትሪክ አቅርቦት የተጎላበተውን ቅብብል ወደ አምፖል መያዣ ያገናኙ
በዋናው የኤሌክትሪክ አቅርቦት የተጎላበተውን ቅብብል ወደ አምፖል መያዣ ያገናኙ
በዋናው የኤሌክትሪክ አቅርቦት የተጎላበተውን ቅብብል ወደ አምፖል መያዣ ያገናኙ

አሁን ወደ አስቸጋሪው ክፍል ፣ ማስተላለፊያውን በዋናው ኤሌክትሪክ አቅርቦት ከሚሰራው አምፖል መያዣ ጋር እናገናኘዋለን። ግን ፣ በመጀመሪያ ፣ መብራቶቹ በቀጥታ በኃይል አቅርቦት እንዴት እንደሚበሩ እና እንደሚያጠፉ አጭር ሀሳብ ልሰጥዎ እፈልጋለሁ።

አሁን ፣ አምፖሉ ከዋናው አቅርቦት ጋር ሲገናኝ ፣ ብዙውን ጊዜ ይህንን የምናደርገው ሁለት ሽቦዎችን ወደ አምፖሉ በማገናኘት ነው። አንደኛው ሽቦ “ገለልተኛ” ሽቦ ሲሆን ሌላኛው ደግሞ የአሁኑን የሚሸከም “አሉታዊ” ሽቦ ነው ፣ እንዲሁም የማብራት ዘዴን ለመቆጣጠር በመላው ወረዳ ላይ የተጨመረ ማብሪያ አለ። ስለዚህ ፣ አዋቂው ሲገናኝ (ወይም በርቷል) የአሁኑ አምፖሉ አምፖሉን እና ገለልተኛ ሽቦውን በማለፍ ወረዳውን ያጠናቅቃል። ይህ አምፖሉን ያበራል። ማብሪያው ሲበራ ወረዳውን ይሰብራል እና አምፖሉ ይጠፋል። ይህንን ለማብራራት ትንሽ የወረዳ ዲያግራም እነሆ-

አሁን ፣ ለሙከራችን ፣ “አሉታዊ ሽቦ” ወረዳውን ለመስበር እና የቅብብሎሽ መቀየሪያን በመጠቀም የኃይል ፍሰቱን ለመቆጣጠር በእኛ ቅብብል ውስጥ ማለፍ አለብን። ስለዚህ ፣ ማስተላለፊያው ሲበራ ወረዳውን ማጠናቀቅ እና አምፖሉ ማብራት እና በተቃራኒው ማብራት አለበት። ለሙሉ ወረዳው ከዚህ በታች ያለውን ዲያግራም ይመልከቱ።

ደረጃ 5 I2C ን (Raspberry Pi) በማዋቀር ላይ

I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ
I2C ን (Raspberry Pi) በማዋቀር ላይ

ለ ARM ኮር እና ለሊኑክስ ኮርነል የ i2c ድጋፍ ለመጫን sudo raspi-config ን ያሂዱ እና ምክሮቹን ይከተሉ።

ወደ በይነገጽ አማራጮች ይሂዱ

ደረጃ 6 - ያለፕሮግራም (ቀመር) ያለ ቀጥተኛ ቁጥጥር (Raspberry Pi)

የሰርጥ ቁጥር 1 ቅብብልን ያብሩ

i2cset -y 1 0x10 0x01 0xFF

የሰርጥ ቁጥር 1 ቅብብልን ያጥፉ

i2cset -y 1 0x10 0x01 0x00

የሰርጥ ቁጥር 2 ቅብብልን ያብሩ

i2cset -y 1 0x10 0x02 0xFF

የሰርጥ ቁጥር 2 ቅብብልን ያጥፉ

i2cset -y 1 0x10 0x02 0x00

የሰርጥ ቁጥር 3 ቅብብልን ያብሩ

i2cset -y 1 0x10 0x03 0xFF

የሰርጥ ቁጥር 3 ቅብብልን ያጥፉ

i2cset -y 1 0x10 0x03 0x00

የሰርጥ ቁጥር 4 ቅብብልን ያብሩ

i2cset -y 1 0x10 0x04 0xFF

የሰርጥ ቁጥር 4 ቅብብልን ያጥፉ

i2cset -y 1 0x10 0x04 0x00

ደረጃ 7 - ፕሮግራም በቋንቋ ሲ (Raspberry Pi)

የምንጭ ኮድ ይፍጠሩ እና “relay.c” ብለው ይሰይሙት

#ያካትቱ

#ያካትቱ

#ያካትቱ

#DEVCIE_ADDR 0x10 ን ይግለጹ

#ገላጭ RELAY1 0x01

#ገላጭ RELAY2 0x02

#ገላጭ RELAY3 0x03

#ገላጭ RELAY4 0x04

0xFF ላይ #ይግለጹ

0x00 ን #ይግለጹ

int main (ባዶ)

{

printf ("በ C / n ውስጥ ማስተላለፊያዎችን ያብሩ");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

ለ (;;) {

ለ (i = 1; i <= 4; i ++)

{

printf ("ቅብብል ቁጥር $ d አብራ" ፣ i);

wiringPiI2CWriteReg8 (ኤፍዲ ፣ i ፣ በርቷል);

እንቅልፍ (200);

printf ("ቅብብል ቁጥር $ d አጥፋ" ፣ i);

wiringPiI2CWriteReg8 (fd, i, OFF);

እንቅልፍ (200);

}

}

መመለስ 0;

}

ያጠናቅሩት።

gcc relay.c -lwiringPi -o ቅብብል

ያስፈጽሙት

./ ማጫወት

ደረጃ 8 - በ Python ውስጥ ፕሮግራም (Raspberry Pi)

የሚከተለው ኮድ Python 3 ን በመጠቀም እንዲገደል እና የ smbus ቤተ -መጽሐፍትን እንዲጭኑ ይመከራል።

የተሰየመ ፋይልን ይፍጠሩ - “relay.py” እና የሚከተለውን ኮድ ይለጥፉ

የማስመጣት ጊዜ እንደ t

ማስመጣት smbus

ማስመጣት sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

አውቶቡስ = smbus. SMB (DEVICE_BUS)

እውነት እያለ ፦

ሞክር

በክልል ውስጥ ለእኔ (1 ፣ 5)

bus.write_byte_data (DEVICE_ADDR ፣ i ፣ 0xFF)

t እንቅልፍ (1)

bus.write_byte_data (DEVICE_ADDR ፣ i ፣ 0x00)

t እንቅልፍ (1)

ከቁልፍ ሰሌዳ በስተቀር እንደ ኢ

ማተም ("Loop Lout")

sys.exit ()

* ያስቀምጡት እና ከዚያ እንደ ፓይዘን 3 ያሂዱ

python3 relay.py

ደረጃ 9: በጃቫ ውስጥ ፕሮግራም (Raspberry Pi)

I2CRelay.java የተባለ አዲስ ፋይል ይፍጠሩ እና የሚከተለውን ኮድ ይለጥፉ

ማስመጣት java.io. IOException;

java.util. Arrays ያስመጡ;

አስመጣ com.pi4j.io.i2c. I2CBus;

አስመጪ com.pi4j.io.i2c. I2CDevice;

አስመጪ com.pi4j.io.i2c. I2CFactory;

አስመጪ com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

አስመጪ com.pi4j.platform. PlatformAlreadyAssignedException;

አስመጪ com.pi4j.util. Console;

የህዝብ ክፍል I2CRelay {

// የቅብብሎሽ ምዝገባ አድራሻ።

የህዝብ የማይንቀሳቀስ የመጨረሻ int DOCKER_PI_RELAY_ADDR = 0x10;

// የመተላለፊያ ጣቢያ።

የህዝብ የማይንቀሳቀስ የመጨረሻ ባይት DOCKER_PI_RELAY_1 = (ባይት) 0x01;

የህዝብ የማይንቀሳቀስ የመጨረሻ ባይት DOCKER_PI_RELAY_2 = (ባይት) 0x02;

የህዝብ የማይንቀሳቀስ የመጨረሻ ባይት DOCKER_PI_RELAY_3 = (ባይት) 0x03;

የህዝብ የማይንቀሳቀስ የመጨረሻ ባይት DOCKER_PI_RELAY_4 = (ባይት) 0x04;

// የቅብብሎሽ ሁኔታ

የህዝብ የማይንቀሳቀስ የመጨረሻ ባይት DOCKER_PI_RELAY_ON = (ባይት) 0xFF;

የህዝብ የማይንቀሳቀስ የመጨረሻ ባይት DOCKER_PI_RELAY_OFF = (ባይት) 0x00;

ይፋዊ የማይንቀሳቀስ ባዶ ባዶ (ሕብረቁምፊ args) InterruptedException ን ፣ PlatformAlreadyAssignedException ፣ IOException ፣ UnsupportedBusNumberException ን ይጥላል {

የመጨረሻ ኮንሶል ኮንሶል = አዲስ ኮንሶል ();

I2CBus i2c = I2CFactory.getInstance (I2CBus. BUS_1);

I2CDevice መሣሪያ = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("ቅብብልን አብራ!");

መሣሪያ። ይፃፉ (DOCKER_PI_RELAY_1 ፣ DOCKER_PI_RELAY_ON);

ክር። እንቅልፍ (500);

console.println ("ቅብብልን አጥፋ!");

መሣሪያ። ይፃፉ (DOCKER_PI_RELAY_1 ፣ DOCKER_PI_RELAY_OFF);

}

}

የሚመከር: