Sisukord:

Tulede juhtimissüsteem: 9 sammu
Tulede juhtimissüsteem: 9 sammu

Video: Tulede juhtimissüsteem: 9 sammu

Video: Tulede juhtimissüsteem: 9 sammu
Video: Место, ГДЕ случилась КРУПНЕЙШАЯ техногеннная КАТАСТРОФА ☢️ БЩУ-4 на ЧЕРНОБЫЛЬСКОЙ АЭС ☢️ 2024, November
Anonim
Tulede juhtimissüsteem
Tulede juhtimissüsteem

Hiljuti töötasin turvalisuse uurimise eesmärgil mikrokontrollerite ja IOT -põhiste seadmete mõistmise kallal. Niisiis, mõtlesin ehitada harjutamiseks väikese koduautomaatikasüsteemi. Ma pean seda veel lõpetama, kuid käivitamiseks jagan selles postituses, kuidas ma kasutasin Raspberry Pi 2 ja mõnda muud elektrilist komponenti oma ruumi valgustuse juhtimiseks. Samuti ei räägi ma siin Vaarika esialgsest seadistusest, selle jaoks võite leida erinevaid õpetusi.

Kuid selles projektis tutvustan teile seda dokkija pi -sarja toodet.

Tarvikud

Komponentide loend:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 GB klassi 10 TF -kaart
  • 1 x DockerPi seeria 4 kanaliga releeplaat (HAT)
  • 1 x [email protected] toiteallikas, mis on pärit 52Pi
  • 4 x valgusriba
  • 1 x alalisvoolu pistik
  • 1 x 12V toiteallikas valgusribadele.
  • mitu juhtmest.

Samm: teadmised DockerPi Series 4 Channel Relay Boardist

Teave DockerPi seeria 4 kanaliga releeplaadist
Teave DockerPi seeria 4 kanaliga releeplaadist
Teave DockerPi seeria 4 kanaliga releeplaadist
Teave DockerPi seeria 4 kanaliga releeplaadist
Teave DockerPi seeria 4 kanaliga releeplaadist
Teave DockerPi seeria 4 kanaliga releeplaadist

DockerPi 4 kanaliga relee on DockerPi seeria liige, mida kasutatakse sagedamini IOT rakendustes.

DockerPi 4 kanaliga relee saab tavapäraste lülitite asemel edastada vahelduvvoolu/alalisvoolu, et saavutada rohkem ideid. DockerPi 4 kanaliga relee saab virnastada kuni 4 ja seda saab virnastada muu DockerPi laiendusplaadiga. Kui teil on vaja pikka aega töötada, soovitame kasutada ka meie DockerPi Power laiendusplaati, et anda rohkem energiat.

MÄRKUS ETTEVAATUST Enne kui me jätkame, tahaksin HOIATA teid elektrivõrguga katsetamise OHTU kohta. Kui midagi läheb valesti, võib halvim tagajärg olla surm või vähemalt oma maja mahapõlemine. Niisiis, palun ÄRGE KATSE teha midagi, mida selles artiklis mainiti, kui te ei saa aru, mida teete, või võtke paremini appi mõni kogenud elektrik. Alustame.

2. samm: funktsioonid

Funktsioonid
Funktsioonid
Funktsioonid
Funktsioonid
Funktsioonid
Funktsioonid
  • DockerPi seeria
  • Programmeeritav
  • Juhtimine otse (ilma programmeerimiseta)
  • Laiendage GPIO tihvte
  • 4 kanaliga relee
  • 4 Alt I2C Addr tugi
  • Relee oleku LED -i tugi
  • 3A 250V vahelduvvoolu tugi
  • 3A 30V DC
  • Kas saab virnastada ka teiste virnaplaatidega, sõltumata emaplaadi riistvarast (vaja I2C tuge)

3. samm: seadme aadressikaart

Seadme aadressikaart
Seadme aadressikaart
Seadme aadressikaart
Seadme aadressikaart

Sellel plaadil on eraldi registriaadress ja saate iga releed ühe käsuga juhtida.

Muud nõuded:

Põhiteadmised Pythoni või C või shelli või Java või mõne muu keele kohta (kasutan C, python, shell ja java)

  • Põhiteadmised Linuxi süsteemidest
  • Meele olemasolu

Enne edasiliikumist peate mõistma, milliseid elektrilisi komponente me kasutame:

1. relee:

Relee on elektriline seade, mida tavaliselt kasutatakse kõrgepinge juhtimiseks, kasutades sisendina väga madalat pinget. See koosneb pooluse ümber mähitud mähist ja kahest väikesest metallklapist (sõlmest), mida kasutatakse ahela sulgemiseks. Üks sõlmedest on fikseeritud ja teine teisaldatav. Kui mähis läbib elektrit, tekitab see magnetvälja ja meelitab liikuva sõlme staatilise sõlme poole ning vooluahel saab valmis. Niisiis, lihtsalt mähise sisselülitamiseks väikese pinge rakendamisega saame tegelikult kõrgepinge ahela lõpule viia. Samuti, kuna staatiline sõlm pole mähisega füüsiliselt ühendatud, on väga väike tõenäosus, et mähist toidav mikrokontroller saab viga, kui midagi läheb valesti.

Samm: ühendage relee elektritoiteallika toitega pirnipesaga

Ühendage relee elektritoiteallikaga lambipesaga
Ühendage relee elektritoiteallikaga lambipesaga
Ühendage relee elektritoiteallikaga lambipesaga
Ühendage relee elektritoiteallikaga lambipesaga

Nüüd keerulise osa juurde, ühendame relee peamise elektrivarustuse toitega pirnihoidjaga. Kuid kõigepealt tahan anda teile lühikese ettekujutuse sellest, kuidas tuled otse toiteallika kaudu sisse ja välja lülitatakse.

Nüüd, kui lambipirn on põhitoitega ühendatud, teeme seda tavaliselt, ühendades pirniga kaks juhtmest. üks juhtmest on neutraalne juhe ja teine on negatiivne juhe, mis tegelikult kannab voolu, samuti on kogu vooluahelale lisatud lüliti, et juhtida ON / OFF mehhanismi. Niisiis, kui lüliti on ühendatud (või sisse lülitatud), voolab vool läbi pirni ja nulljuhtme, lõpetades vooluringi. See lülitab lambipirni SISSE. Lüliti väljalülitamisel katkestab see vooluahela ja lambipirn lülitub välja. Siin on väike lülitusskeem selle selgitamiseks:

Nüüd peame oma eksperimendi jaoks panema negatiivse traadi läbi meie relee, et katkestada vooluahel ja juhtida vooluhulka relee lülitamise abil. Niisiis, kui relee lülitub sisse, peaks see ahela lõpule viima ja lambipirn sisse lülituma ja vastupidi. Täisringi leiate allolevast diagrammist.

Samm: konfigureerige I2C (Raspberry Pi)

I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine
I2C (Raspberry Pi) seadistamine

Käivitage sudo raspi-config ja järgige juhiseid, et installida i2c tugi ARM tuuma ja Linuxi tuuma jaoks

Avage liidese valikud

6. samm: otsene juhtimine ilma programmeerimiseta (Raspberry Pi)

Lülitage kanali nr 1 relee sisse

i2cset -y 1 0x10 0x01 0xFF

Lülitage kanali nr 1 relee välja

i2cset -y 1 0x10 0x01 0x00

Lülitage kanali nr 2 relee sisse

i2cset -y 1 0x10 0x02 0xFF

Lülitage kanali nr 2 relee välja

i2cset -y 1 0x10 0x02 0x00

Lülitage kanali nr 3 relee sisse

i2cset -y 1 0x10 0x03 0xFF

Lülitage kanali nr 3 relee välja

i2cset -y 1 0x10 0x03 0x00

Lülitage kanali nr 4 relee sisse

i2cset -y 1 0x10 0x04 0xFF

Lülitage kanali nr 4 relee välja

i2cset -y 1 0x10 0x04 0x00

Samm: programm C keeles (Raspberry Pi)

Looge lähtekood ja pange sellele nimi "relay.c"

#kaasake

#kaasake

#kaasake

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define ON 0xFF

#define OFF 0x00

int main (tühine)

{

printf ("Lülita releed sisse C / n");

int fd;

int i = 0;

fd = juhtmestikPiI2CSetup (DEVICE_ADDR);

(;;) {jaoks

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

{

printf ("lülitage relee nr $ d sisse", i);

juhtmestikPiI2CWriteReg8 (fd, i, ON);

magada (200);

printf ("lülitage relee nr $ d välja", i);

juhtmestikPiI2CWriteReg8 (fd, i, OFF);

magada (200);

}

}

tagasitulek 0;

}

Koostage see

gcc relee.c -juhtmestikPi -o relee

Täida see

./relee

Samm: programmeerige Pythonis (Raspberry Pi)

Järgmine kood on soovitatav käivitada Python 3 abil ja installida smbus raamatukogu:

Looge fail nimega "relay.py" ja kleepige järgmine kood:

impordi aeg kui t

import smbus

impordi süsteem

DEVICE_BUS = 1

SEADME_ADDR = 0x10

buss = smbus. SMBus (DEVICE_BUS)

kuigi tõsi:

proovige:

i jaoks vahemikus (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.maga (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.maga (1)

välja arvatud klaviatuur Katkesta kui e:

print ("Lõpeta tsükkel")

sys.exit ()

* Salvestage see ja käivitage seejärel python3:

python3 relee.py

Samm: programmeerige Java -s (Raspberry Pi)

Looge uus fail nimega: I2CRelay.java ja kleepige järgmine kood:

importige java.io. IOException;

import java.util. Arrays;

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

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

import com.pi4j.platform. PlatformAlreadyAssignedException;

import com.pi4j.util. Console;

avalik klass I2CRelay {

// relee registriaadress.

avalik staatiline lõplik int DOCKER_PI_RELAY_ADDR = 0x10;

// relee kanal.

avalik staatiline lõplik bait DOCKER_PI_RELAY_1 = (bait) 0x01;

avalik staatiline lõplik bait DOCKER_PI_RELAY_2 = (bait) 0x02;

avalik staatiline lõplik bait DOCKER_PI_RELAY_3 = (bait) 0x03;

avalik staatiline lõplik bait DOCKER_PI_RELAY_4 = (bait) 0x04;

// Relee olek

avalik staatiline lõplik bait DOCKER_PI_RELAY_ON = (bait) 0xFF;

avalik staatiline lõplik bait DOCKER_PI_RELAY_OFF = (bait) 0x00;

public static void main (String args) viskab InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

lõplik konsoolikonsool = new Console ();

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

I2CDevice seade = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Lülita relee sisse!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Niit.unenägu (500);

console.println ("Lülita relee välja!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Soovitan: