Sisällysluettelo:

Valojen ohjausjärjestelmä: 9 vaihetta
Valojen ohjausjärjestelmä: 9 vaihetta

Video: Valojen ohjausjärjestelmä: 9 vaihetta

Video: Valojen ohjausjärjestelmä: 9 vaihetta
Video: DIY How to remove Surgical staples metal stitches from chest 2024, Marraskuu
Anonim
Valojen ohjausjärjestelmä
Valojen ohjausjärjestelmä

Työskentelin äskettäin ymmärtämään mikrokontrollereita ja IOT -pohjaisia laitteita turvallisuustutkimustarkoituksiin. Joten ajattelin rakentaa pienen kodin automaatiojärjestelmän harjoittelua varten. En ole vielä saattanut tätä päätökseen, mutta kerron käynnistyksen yhteydessä, kuinka käytin Raspberry Pi 2: ta ja joitain muita sähköisiä komponentteja huoneeni valaistuksen ohjaamiseen tässä viestissä. Lisäksi en aio puhua vadelman alkuasetuksista täällä, saatat löytää erilaisia opetusohjelmia siihen.

Mutta tässä projektissa esittelen sinulle tämän telakka pi -sarjan tuotteen.

Tarvikkeet

Komponenttiluettelo:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 Gt luokan 10 TF -kortti
  • 1 x DockerPi -sarjan 4 -kanavainen relelevy (HAT)
  • 1 x [email protected] virtalähde, joka on peräisin 52Pi
  • 4 x valonauha
  • 1 x DC -liitin
  • 1 x 12V virtalähde valonauhoille.
  • useita johtoja.

Vaihe 1: Tietoa DockerPi Series 4 Channel Relay Boardista

Tietoa DockerPi Series 4 Channel Relay Boardista
Tietoa DockerPi Series 4 Channel Relay Boardista
Tietoa DockerPi Series 4 Channel Relay Boardista
Tietoa DockerPi Series 4 Channel Relay Boardista
Tietoa DockerPi Series 4 Channel Relay Boardista
Tietoa DockerPi Series 4 Channel Relay Boardista

DockerPi 4 -kanavarele on DockerPi -sarjan jäsen, jota käytetään yleisemmin IOT -sovelluksissa.

DockerPi 4 -kanavainen rele voi välittää AC/DC perinteisten kytkimien sijaan saavuttaakseen lisää ideoita. DockerPi 4 -kanavarele voi pinota jopa 4, ja se voidaan pinota muiden DockerPi -laajennuskorttien kanssa. Jos joudut käyttämään pitkään, suosittelemme myös käyttämään DockerPi Power -laajennuskorttia lisätehon saamiseksi.

HUOMIO HUOMAUTUS Ennen kuin jatkamme, haluaisin VAROITTAA VAARASTA kokeilla "verkkovirtaa". Jos jokin menee pieleen, pahin seuraus voi olla kuolema tai ainakin oman talosi polttaminen. Joten ÄLÄ YRITÄ tehdä mitään tässä artikkelissa mainittua, jos et ymmärrä tekemääsi tai ota paremmin yhteyttä kokeneeseen sähköasentajaan. Aloitetaan.

Vaihe 2: Ominaisuudet

ominaisuudet
ominaisuudet
ominaisuudet
ominaisuudet
ominaisuudet
ominaisuudet
  • DockerPi -sarja
  • Ohjelmoitava
  • Ohjaus suoraan (ilman ohjelmointia)
  • Laajenna GPIO -nastat
  • 4 -kanavainen rele
  • 4 Vaihtoehtoinen I2C Addr -tuki
  • Releen tilan LED -tuki
  • 3A 250V AC -tuki
  • 3A 30V DC
  • Voidaanko pinota muiden pinolevyjen kanssa Emolevyn laitteistosta riippumatta (vaatii I2C -tuen)

Vaihe 3: Laitteen osoitekartta

Laitteen osoitekartta
Laitteen osoitekartta
Laitteen osoitekartta
Laitteen osoitekartta

Tällä kortilla on erillinen rekisteriosoite, ja voit vain ohjata jokaista relettä yhdellä komennolla.

Muut vaatimukset:

Pythonin tai C: n tai shellin tai Javan tai minkä tahansa muun kielen perustiedot (käytän C: tä, pythonia, shelliä ja javaa)

  • Linux -järjestelmien perustiedot
  • Maltti

Ennen kuin siirryt eteenpäin, sinun on ymmärrettävä käyttämämme sähkökomponentit:

1. rele:

Rele on sähkölaite, jota käytetään yleensä korkeiden jännitteiden ohjaamiseen käyttämällä tulona hyvin pienjännitettä. Tämä koostuu kelasta, joka on kääritty napaan ja kahdesta pienestä metalliläppästä (solmusta), joita käytetään piirin sulkemiseen. Toinen solmuista on kiinteä ja toinen liikkuva. Aina kun sähköä johdetaan kelan läpi, se luo magneettikentän ja houkuttelee liikkuvan solmun kohti staattista solmua ja piiri valmistuu. Joten vain soveltamalla pientä jännitettä kelan käynnistämiseen voimme todella suorittaa piirin suurjännitteen kulkemiseksi. Lisäksi, koska staattinen solmu ei ole fyysisesti kytketty kelaan, on hyvin pieni mahdollisuus, että kelaan toimiva mikrokontrolleri vahingoittuu, jos jokin menee pieleen.

Vaihe 4: Liitä rele päävirtalähteellä toimivaan lampunpitimeen

Kytke rele päävirtalähteellä toimivaan lampunpitimeen
Kytke rele päävirtalähteellä toimivaan lampunpitimeen
Kytke rele päävirtalähteellä toimivaan lampunpitimeen
Kytke rele päävirtalähteellä toimivaan lampunpitimeen

Nyt hankalaan osaan, Yhdistämme releen päävirtalähteellä toimivaan lampunpitimeen. Haluan kuitenkin ensin antaa sinulle lyhyen käsityksen siitä, miten valot kytketään päälle ja pois päältä suoran virtalähteen kautta.

Nyt kun lamppu on kytketty päävirtalähteeseen, teemme tämän yleensä yhdistämällä kaksi johtoa polttimoon. yksi johdoista on "neutraali" ja toinen on "negatiivinen" johto, joka todella kuljettaa virtaa, myös koko piiriin on lisätty kytkin ON / OFF -mekanismin ohjaamiseksi. Joten kun kytkin on kytketty (tai kytketty päälle), virta virtaa polttimon ja nollajohdon läpi ja täydentää piirin. Tämä kytkee lampun PÄÄLLE. Kun kytkin käännetään pois päältä, se katkaisee piirin ja hehkulamppu sammuu. Tässä pieni piirikaavio selittämään tämän:

Nyt kokeilua varten meidän on saatettava "negatiivinen johto" kulkemaan releemme läpi katkaistaksesi piirin ja hallitaksesi virtavirtaa releen kytkennän avulla. Joten, kun rele kytkeytyy päälle, sen pitäisi täydentää piiri ja hehkulampun pitäisi syttyä ja päinvastoin. Katso alla olevasta kaaviosta täyspiiri.

Vaihe 5: I2C: n (Raspberry Pi) määrittäminen

I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen
I2C: n (Raspberry Pi) määrittäminen

Suorita sudo raspi-config ja asenna i2c-tuki ARM-ytimelle ja Linux-ytimelle noudattamalla ohjeita

Siirry liitäntäasetuksiin

Vaihe 6: Suora ohjaus ilman ohjelmointia (Raspberry Pi)

Kytke kanavan nro 1 rele päälle

i2cset -y 1 0x10 0x01 0xFF

Sammuta kanavan nro 1 rele

i2cset -y 1 0x10 0x01 0x00

Kytke kanavan nro 2 rele päälle

i2cset -y 1 0x10 0x02 0xFF

Sammuta kanavan nro 2 rele

i2cset -y 1 0x10 0x02 0x00

Kytke kanavan nro 3 rele päälle

i2cset -y 1 0x10 0x03 0xFF

Sammuta kanavan nro 3 rele

i2cset -y 1 0x10 0x03 0x00

Kytke kanavan nro 4 rele päälle

i2cset -y 1 0x10 0x04 0xFF

Sammuta kanavan nro 4 rele

i2cset -y 1 0x10 0x04 0x00

Vaihe 7: Ohjelmoi kielellä C (Raspberry Pi)

Luo lähdekoodi ja anna sille nimi "relay.c"

#sisältää

#sisältää

#sisältää

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define ON 0xFF

#define OFF 0x00

int main (mitätön)

{

printf ("Ota releet käyttöön C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

(;;) {

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

{

printf ("kytke rele nro $ d" päälle, i);

johdotusPiI2CWriteReg8 (fd, i, ON);

nukkua (200);

printf ("sammuta rele nro $ d", i);

johdotusPiI2CWriteReg8 (fd, i, OFF);

nukkua (200);

}

}

palauta 0;

}

Kokoa se

gcc -rele. c -johdotusPi -o -rele

Suorita se

./rele

Vaihe 8: Ohjelmoi Pythonissa (Raspberry Pi)

Seuraava koodi suositellaan suoritettavaksi Python 3: lla ja smbus -kirjaston asentaminen:

Luo tiedosto nimeltä "relay.py" ja liitä seuraava koodi:

tuontiaika t

tuoda smbus

tuontijärjestelmä

DEVICE_BUS = 1

LAITE_ADDR = 0x10

väylä = smbus. SMBus (DEVICE_BUS)

vaikka totta:

yrittää:

i alueella (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.sleep (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.sleep (1)

paitsi näppäimistö Keskeytä kuten e:

tulosta ("Lopeta silmukka")

sys.exit ()

* Tallenna se ja suorita sitten python3:

python3 rele.py

Vaihe 9: Ohjelmointi Javalla (Raspberry Pi)

Luo uusi tiedosto nimeltä I2CRelay.java ja liitä seuraava koodi:

tuoda java.io. IOException;

tuonti java.util. Arrays;

tuonti com.pi4j.io.i2c. I2CBus;

tuoda com.pi4j.io.i2c. I2CDevice;

tuonti com.pi4j.io.i2c. I2CFactory;

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

tuo com.pi4j.platform. PlatformAlreadyAssignedException;

tuo com.pi4j.util. Console;

julkinen luokka I2CRelay {

// releen rekisteriosoite.

julkinen staattinen lopullinen int DOCKER_PI_RELAY_ADDR = 0x10;

// relekanava.

julkinen staattinen lopullinen tavu DOCKER_PI_RELAY_1 = (tavu) 0x01;

julkinen staattinen lopullinen tavu DOCKER_PI_RELAY_2 = (tavu) 0x02;

julkinen staattinen lopullinen tavu DOCKER_PI_RELAY_3 = (tavu) 0x03;

julkinen staattinen lopullinen tavu DOCKER_PI_RELAY_4 = (tavu) 0x04;

// Releen tila

julkinen staattinen lopullinen tavu DOCKER_PI_RELAY_ON = (tavu) 0xFF;

julkinen staattinen lopullinen tavu DOCKER_PI_RELAY_OFF = (tavu) 0x00;

public staattinen void main (String args) heittää InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

lopullinen konsolikonsoli = uusi konsoli ();

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

I2CDevice device = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Käynnistä rele!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Kierteet.unen (500);

console.println ("Sammuta rele!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Suositeltava: