Orodha ya maudhui:

Mfumo wa Udhibiti wa Taa: Hatua 9
Mfumo wa Udhibiti wa Taa: Hatua 9

Video: Mfumo wa Udhibiti wa Taa: Hatua 9

Video: Mfumo wa Udhibiti wa Taa: Hatua 9
Video: Majambazi walipopambana na Polisi baada ya kuiba pesa NMB Bank 2024, Novemba
Anonim
Mfumo wa Udhibiti wa Taa
Mfumo wa Udhibiti wa Taa

Hivi majuzi nilikuwa nikifanya kazi ya kuelewa Microcontrollers na vifaa vya msingi vya IOT kwa malengo ya Utafiti wa Usalama. Kwa hivyo, nilifikiria kujenga mfumo mdogo wa nyumbani wa mazoezi. Bado sijakamilisha hii, lakini kwa kuanza nitashiriki jinsi nilivyotumia Raspberry Pi 2 na vifaa vingine vya umeme kudhibiti taa ya chumba changu kwenye chapisho hili. Pia, sitazungumza juu ya usanidi wa Awali wa Raspberry hapa, unaweza kupata mafunzo kadhaa ya hiyo.

Lakini katika mradi huu, nitakuletea hii bidhaa ya safu ya docker pi.

Vifaa

Orodha ya Vipengele:

  • 1 x Raspberry Pi 3B + / 3B / Zero / Zero W / 4B /
  • 1 x 16GB Kadi ya 10 TF kadi
  • 1 x DockerPi mfululizo 4 Bodi ya Kupeleka Channel (HAT)
  • 1 x [email protected] umeme ambao unatoka 52Pi
  • 4 x Ukanda mwepesi
  • 1 x kontakt DC
  • 1 x 12V usambazaji wa umeme kwa vipande vya taa.
  • waya kadhaa.

Hatua ya 1: Kujua Kuhusu DockerPi Series 4 Bodi ya Kupeleka Channel

Kujua Kuhusu DockerPi Series 4 Channel Relay Board
Kujua Kuhusu DockerPi Series 4 Channel Relay Board
Kujua Kuhusu DockerPi Series 4 Channel Relay Board
Kujua Kuhusu DockerPi Series 4 Channel Relay Board
Kujua Kuhusu DockerPi Series 4 Channel Relay Board
Kujua Kuhusu DockerPi Series 4 Channel Relay Board

Relay ya DockerPi 4 ni mshiriki wa DockerPi Series, inayotumika zaidi katika matumizi ya IOT.

Relay ya Channel ya DockerPi 4 inaweza kupeleka AC / DC, badala ya swichi za jadi, kufikia maoni zaidi. Relay ya Channel ya DockerPi 4 inaweza kushika hadi 4, na inaweza kubanwa na bodi nyingine ya upanuzi ya DockerPi. Ikiwa unahitaji kukimbia kwa muda mrefu, tunapendekeza pia utumie bodi yetu ya upanuzi wa Nguvu ya DockerPi kutoa nguvu zaidi.

KUMBUKA TAHADHARI Kabla ya kuendelea zaidi ningependa kukuonya juu ya HATARI ya kujaribu "Umeme wa Akiba". Kama kitu chochote kitaenda vibaya, matokeo mabaya zaidi yanaweza kuwa kifo au kufa kuteketeza nyumba yako mwenyewe. Kwa hivyo, tafadhali USIJARIBU kufanya chochote kilichotajwa katika nakala hii ikiwa hauelewi unachofanya au bora kuchukua msaada wa fundi umeme mwenye ujuzi. Tuanze.

Hatua ya 2: Vipengele

Vipengele
Vipengele
Vipengele
Vipengele
Vipengele
Vipengele
  • Mfululizo wa DockerPi
  • Inaweza kusanidiwa
  • Dhibiti moja kwa moja (bila programu)
  • Panua Pini za GPIO
  • Kupeleka Channel 4
  • 4 Alt I2C Msaada wa Kiongeza
  • Usaidizi wa Hali ya Upelekaji wa Hali
  • Msaada wa 3A 250V AC
  • 3A 30V DC
  • Je! Unaweza kubaki na bodi nyingine ya Stack Inayojitegemea ya vifaa vya mainboard (inahitaji msaada wa I2C)

Hatua ya 3: Ramani ya Anwani ya Kifaa

Ramani ya Anwani ya Kifaa
Ramani ya Anwani ya Kifaa
Ramani ya Anwani ya Kifaa
Ramani ya Anwani ya Kifaa

Bodi hii ina anwani tofauti ya rejista, na unaweza kudhibiti kila relay kwa amri moja.

Mahitaji mengine:

Uelewa wa kimsingi wa chatu au C au ganda au Java au lugha nyingine yoyote (nitatumia C, chatu, ganda, na java)

  • Uelewa wa Msingi wa mifumo ya Linux
  • Uwepo wa Akili

Sasa, kabla ya kuendelea mbele utahitaji kuelewa vifaa vya umeme tutakavyotumia:

1. Kupitisha:

Relay ni kifaa cha umeme ambacho kwa ujumla hutumiwa kudhibiti voltages kubwa kwa kutumia voltage ya chini sana kama Ingizo. Hii inajumuisha coil iliyofungwa kwenye nguzo na vijiti viwili vidogo vya chuma ambavyo hutumiwa kufunga mzunguko. Moja ya node ni fasta na nyingine ni zinazohamishika. Wakati wowote umeme unapopitishwa kupitia coil, huunda uwanja wa sumaku na huvutia node inayosonga kuelekea nodi ya tuli na mzunguko hukamilika. Kwa hivyo, kwa kutumia tu voltage ndogo ili kuwezesha coil tunaweza kumaliza mzunguko wa voltage ya juu kusafiri. Pia, kwa kuwa nodi ya tuli haijaunganishwa na coil kuna nafasi ndogo sana kwamba Microcontroller inayowezesha coil inaharibika ikiwa kitu kitaenda vibaya.

Hatua ya 4: Unganisha Kupeleka kwa Mmiliki wa Bulbu Iliyotumiwa na Ugavi kuu wa Umeme

Unganisha Relay kwa Mmiliki wa Balbu Inayotumiwa na Usambazaji Mkuu wa Umeme
Unganisha Relay kwa Mmiliki wa Balbu Inayotumiwa na Usambazaji Mkuu wa Umeme
Unganisha Relay kwa Mmiliki wa Balbu Inayotumiwa na Usambazaji Mkuu wa Umeme
Unganisha Relay kwa Mmiliki wa Balbu Inayotumiwa na Usambazaji Mkuu wa Umeme

Sasa kwa sehemu ngumu, Tutaunganisha upelekaji kwa mmiliki wa Bulb inayotumiwa na Usambazaji Mkuu wa Umeme. Lakini, kwanza nataka kukupa wazo fupi juu ya jinsi taa zinavyowashwa NA KUZIMWA kupitia usambazaji wa umeme wa moja kwa moja.

Sasa, wakati balbu ya taa imeunganishwa na usambazaji kuu, kawaida tunafanya hivyo kwa kuunganisha waya mbili kwa balbu. moja ya waya ni waya wa "Neutral" na nyingine ni waya "Negative" ambayo kwa kweli hubeba ya sasa, pia kuna swichi iliyoongezwa kwa mzunguko mzima kudhibiti mfumo wa ON ON. Kwa hivyo, wakati swith imeunganishwa (Au Imewashwa) sasa inapita kupitia balbu na waya wa upande wowote, ikikamilisha mzunguko. Hii inawasha balbu ya taa. Kitufe kinapowashwa, huvunja mzunguko na balbu ya taa huzima. Hapa kuna mchoro mdogo wa mzunguko kuelezea hii:

Sasa, kwa jaribio letu, tutahitaji kufanya "waya hasi" kupita kwenye relay yetu kuvunja mzunguko na kudhibiti mtiririko wa nguvu kwa kutumia ubadilishaji wa relay. Kwa hivyo, wakati relay itawasha, inapaswa kukamilisha mzunguko na balbu ya Nuru inapaswa kuwasha na kinyume chake. Rejelea mchoro hapa chini kwa Mzunguko kamili.

Hatua ya 5: Kusanidi I2C (Raspberry Pi)

Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)
Kusanidi I2C (Raspberry Pi)

Endesha sudo raspi-config na ufuate vidokezo vya kusanikisha usaidizi wa i2c kwa msingi wa ARM na kernel ya linux

Nenda kwenye Chaguzi za Kuingiliana

Hatua ya 6: Udhibiti wa moja kwa moja bila Programu (Raspberry Pi)

Washa relay ya nambari 1

i2cset -y 1 0x10 0x01 0xFF

Zima kituo cha 1 kinachorudiwa

i2cset -y 1 0x10 0x01 0x00

Washa relay ya nambari 2

i2cset -y 1 0x10 0x02 0xFF

Zima kituo cha relay cha 2

i2cset -y 1 0x10 0x02 0x00

Washa relay ya nambari 3

i2cset -y 1 0x10 0x03 0xFF

Zima kituo cha # relay

i2cset -y 1 0x10 0x03 0x00

Washa relay ya nambari 4

i2cset -y 1 0x10 0x04 0xFF

Zima kituo cha relay namba 4

i2cset -y 1 0x10 0x04 0x00

Hatua ya 7: Programu katika Lugha C (Raspberry Pi)

Unda nambari ya chanzo na uipe jina "relay.c"

# pamoja

# pamoja

# pamoja

#fafanua DEVCIE_ADDR 0x10

#fafanua RELAY1 0x01

#fafanua RELAY2 0x02

#fafanua RELAY3 0x03

#fafanua RELAY4 0x04

#fafanua KWENYE 0xFF

#fafanua OFF 0x00

kuu (batili)

{

printf ("Washa Upelekaji kwa C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

kwa (;;) {

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

{

printf ("washa relay No. $ d", i);

wiringPiI2CWriteReg8 (fd, i, ON);

kulala (200);

printf ("zima relay No. $ d", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

kulala (200);

}

}

kurudi 0;

}

Kuikusanya

relay ya gcc.c -kuzungukaPi -o relay

Utekeleze

./dalili

Hatua ya 8: Programu katika Python (Raspberry Pi)

Nambari ifuatayo inapendekezwa kutekelezwa kwa kutumia Python 3 na kusanikisha maktaba ya smbus:

Unda faili iliyoipa jina: "relay.py" na ubandike nambari ifuatayo:

wakati wa kuagiza kama t

kuagiza smbus

kuagiza sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

basi = smbus. SMBus (DEVICE_BUS)

wakati Kweli:

jaribu:

kwa mimi katika anuwai (1, 5):

andika_data_ya data (DEVICE_ADDR, i, 0xFF)

kulala. (1)

andika data ya basi (DEVICE_ADDR, i, 0x00)

kulala. (1)

isipokuwa KeyboardInterrupt kama e:

chapisha ("Acha Kitanzi")

sys.exit ()

* Ihifadhi na kisha ukimbie kama python3:

relay python3.py

Hatua ya 9: Programu katika Java (Raspberry Pi)

Unda faili mpya inayoitwa: I2CRelay.java na ubandike nambari ifuatayo:

kuagiza java.io. IOException;

kuagiza java.util. Array;

kuagiza com.pi4j.io.i2c. I2CBus;

kuagiza com.pi4j.io.i2c. I2CDevice;

kuagiza com.pi4j.io.i2c. I2CFactory;

kuagiza com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

kuagiza com.pi4j.platform. PlatformAlreadyAssignedException;

kuagiza com.pi4j.util. Console;

darasa la umma I2CRelay {

Anwani ya rejista ya // relay.

tuli ya mwisho ya umma int DOCKER_PI_RELAY_ADDR = 0x10;

// kituo cha relay.

static byte ya mwisho ya umma DOCKER_PI_RELAY_1 = (byte) 0x01;

static byte ya mwisho ya umma DOCKER_PI_RELAY_2 = (byte) 0x02;

static byte ya mwisho ya umma DOCKER_PI_RELAY_3 = (byte) 0x03;

static byte ya mwisho ya umma DOCKER_PI_RELAY_4 = (byte) 0x04;

// Hali ya kupeleka tena

static byte ya mwisho ya umma DOCKER_PI_RELAY_ON = (byte) 0xFF;

static byte ya mwisho ya umma DOCKER_PI_RELAY_OFF = (byte) 0x00;

static public void main (String args) inatupa InterruptedException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

koni ya mwisho ya Dashibodi = Dashibodi mpya ();

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

Kifaa cha I2CDevice i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Washa Relay!");

andika kifaa (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Kulala (500);

console.println ("Zima Kupeleka tena!");

andika kifaa (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Ilipendekeza: