Innholdsfortegnelse:

Kontrollsystem for lys: 9 trinn
Kontrollsystem for lys: 9 trinn

Video: Kontrollsystem for lys: 9 trinn

Video: Kontrollsystem for lys: 9 trinn
Video: Eleveksperiment i naturfag 10. trinn 2024, November
Anonim
Kontrollsystem for lys
Kontrollsystem for lys

Nylig jobbet jeg med å forstå mikrokontrollere og IOT -baserte enheter for sikkerhetsforskningsformål. Så jeg tenkte å bygge et lite hjemmeautomatiseringssystem for praksis. Jeg har ennå ikke fullført dette, men for oppstart vil jeg dele hvordan jeg brukte Raspberry Pi 2 og noen andre elektriske komponenter for å kontrollere lyset i rommet mitt i dette innlegget. Jeg vil ikke snakke om første oppsett for bringebær her, du kan finne forskjellige opplæringsprogrammer for det.

Men i dette prosjektet vil jeg introdusere dette docker pi -serien for deg.

Rekvisita

Komponentliste:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 GB TF -kort i klasse 10
  • 1 x DockerPi series 4 Channel Relay Board (HAT)
  • 1 x [email protected] strømforsyning som er fra 52Pi
  • 4 x lyslist
  • 1 x DC -kontakt
  • 1 x 12V strømforsyning for lyslistene.
  • flere ledninger.

Trinn 1: Å vite om DockerPi Series 4 Channel Relay Board

Å vite om DockerPi Series 4 Channel Relay Board
Å vite om DockerPi Series 4 Channel Relay Board
Å vite om DockerPi Series 4 Channel Relay Board
Å vite om DockerPi Series 4 Channel Relay Board
Å vite om DockerPi Series 4 Channel Relay Board
Å vite om DockerPi Series 4 Channel Relay Board

DockerPi 4 Channel Relay er medlem av DockerPi -serien, mer vanlig brukt i IOT -applikasjoner.

DockerPi 4 Channel Relay kan videresende AC/DC, i stedet for tradisjonelle brytere, for å oppnå flere ideer. DockerPi 4 Channel Relay kan stable opptil 4, og kan stables med andre DockerPi -utvidelseskort. Hvis du trenger å kjøre lenge, anbefaler vi også at du bruker vårt DockerPi Power -utvidelseskort for å gi mer strøm.

MERK FORSIKTIG Før vi går videre, vil jeg advare deg om FARE for å eksperimentere med "strømnettet". Hvis noe går galt, kan den verste konsekvensen være døden eller i det minste brenne ditt eget hus. Så, IKKE FORSØK å gjøre noe som er nevnt i denne artikkelen hvis du ikke forstår hva du gjør eller bedre tar hjelp av en erfaren elektriker. La oss komme i gang.

Trinn 2: Funksjoner

Funksjoner
Funksjoner
Funksjoner
Funksjoner
Funksjoner
Funksjoner
  • DockerPi -serien
  • Programmerbar
  • Styr direkte (uten programmering)
  • Forleng GPIO -pinnene
  • 4 -kanals relé
  • 4 Alt I2C Addr -støtte
  • Støtte for reléstatus Leds
  • 3A 250V AC -støtte
  • 3A 30V DC
  • Kan stables med andre stavbrett Uavhengig av hovedkortmaskinvaren (krever I2C -støtte)

Trinn 3: Enhetens adressekart

Enhetens adressekart
Enhetens adressekart
Enhetens adressekart
Enhetens adressekart

Dette brettet har en separat registeradresse, og du kan bare kontrollere hvert relé med en kommando.

Andre krav:

Grunnleggende forståelse av Python eller C eller shell eller Java eller et annet språk (jeg bruker C, python, shell og java)

  • Grunnleggende forståelse av Linux -systemer
  • Tilstedeværelse av sinnet

Nå, før du går videre, må du forstå de elektriske komponentene vi skal bruke:

1. Stafett:

Et relé er en elektrisk enhet som vanligvis brukes til å kontrollere høyspenninger ved å bruke svært lav spenning som inngang. Denne består av en spole viklet rundt en stolpe og to små metallflapper (noder) som brukes til å lukke kretsen. En av noden er fast og den andre er bevegelig. Når en strøm sendes gjennom spolen, skaper den et magnetfelt og tiltrekker den bevegelige noden mot den statiske noden, og kretsen blir fullført. Så bare ved å bruke liten spenning for å starte spolen kan vi faktisk fullføre kretsen for høyspenningen å reise. Ettersom den statiske noden ikke er fysisk koblet til spolen, er det svært mindre sjanse for at mikrokontrolleren som driver spolen blir skadet hvis noe går galt.

Trinn 4: Koble reléet til pæreholderen som drives av hovedstrømforsyningen

Koble reléet til pæreholderen som drives av hovedstrømforsyningen
Koble reléet til pæreholderen som drives av hovedstrømforsyningen
Koble reléet til pæreholderen som drives av hovedstrømforsyningen
Koble reléet til pæreholderen som drives av hovedstrømforsyningen

Nå til den vanskelige delen, Vi kobler reléet til pæreholderen som drives av Main Electric -forsyning. Men først vil jeg gi deg en kort idé om hvordan lysene slås PÅ og AV via direkte strømforsyning.

Når lyspæren er koblet til hovedforsyningen, gjør vi vanligvis dette ved å koble to ledninger til pæren. en av ledningen er en "nøytral" ledning og den andre er den "negative" ledningen som faktisk bærer strømmen. Det er også en bryter som er lagt til hele kretsen for å styre PÅ og AV -mekanismen. Så når swithen er tilkoblet (eller slått PÅ) strømmer strømmen gjennom pæren og den nøytrale ledningen og fullfører kretsen. Dette slår på lyspæren. Når bryteren slås av, bryter den kretsen og lyspæren slås AV. Her er et lite kretsdiagram for å forklare dette:

Nå, for vårt eksperiment, må vi få "Negative Wire" til å passere gjennom reléet vårt for å bryte kretsen og kontrollere strømmen ved å bruke reléets bytte. Så når reléet slås PÅ, bør det fullføre kretsen og lyspæren skal slås PÅ og omvendt. Se diagrammet nedenfor for Full krets.

Trinn 5: Konfigurering av I2C (Raspberry Pi)

Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)
Konfigurere I2C (Raspberry Pi)

Kjør sudo raspi-config og følg instruksjonene for å installere i2c-støtte for ARM-kjernen og Linux-kjernen

Gå til Grensesnittalternativer

Trinn 6: Direkte kontroll uten programmering (Raspberry Pi)

Slå på kanal nr. 1 relé

i2cset -y 1 0x10 0x01 0xFF

Slå av kanal nr. 1 relé

i2cset -y 1 0x10 0x01 0x00

Slå på kanal nr. 2 relé

i2cset -y 1 0x10 0x02 0xFF

Slå av kanal nr. 2 relé

i2cset -y 1 0x10 0x02 0x00

Slå på kanal nr. 3 relé

i2cset -y 1 0x10 0x03 0xFF

Slå av kanal nr. 3 relé

i2cset -y 1 0x10 0x03 0x00

Slå på kanal nr. 4 relé

i2cset -y 1 0x10 0x04 0xFF

Slå av kanal nr. 4 relé

i2cset -y 1 0x10 0x04 0x00

Trinn 7: Program i språk C (Raspberry Pi)

Lag kildekoden og gi den navnet "relay.c"

#inkludere

#inkludere

#inkludere

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define PÅ 0xFF

#define OFF 0x00

int main (ugyldig)

{

printf ("Slå på reléer i C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

til(;;){

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

{

printf ("slå på relé nr. $ d", i);

wiringPiI2CWriteReg8 (fd, i, ON);

søvn (200);

printf ("slå av relé nr. $ d", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

søvn (200);

}

}

retur 0;

}

Kompiler det

gcc relé. c -lwiringPi -o relé

Utfør det

./relé

Trinn 8: Programmer i Python (Raspberry Pi)

Følgende kode anbefales å kjøres ved hjelp av Python 3 og installere smbus -biblioteket:

Lag en fil som heter den: "relay.py" og lim inn følgende kode:

importtid som t

importer smbus

importer sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

buss = smbus. SMBus (DEVICE_BUS)

mens det er sant:

prøve:

for jeg i rekkevidde (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t. sover (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t. sover (1)

unntatt KeyboardInterrupt som e:

print ("Quit the Loop")

sys.exit ()

* Lagre det og kjør som python3:

python3 relé.py

Trinn 9: Programmer i Java (Raspberry Pi)

Lag en ny fil ved navn: I2CRelay.java og lim inn følgende kode:

importer java.io. IOException;

import java.util. Arrays;

importer com.pi4j.io.i2c. I2CBus;

importer com.pi4j.io.i2c. I2CDenhet;

importer com.pi4j.io.i2c. I2CFactory;

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

import com.pi4j.platform. PlatformAlreadyAssignedException;

import com.pi4j.util. Console;

offentlig klasse I2CRelay {

// stafettens registeradresse.

offentlig statisk endelig int DOCKER_PI_RELAY_ADDR = 0x10;

// kanal for relé.

offentlig statisk siste byte DOCKER_PI_RELAY_1 = (byte) 0x01;

offentlig statisk siste byte DOCKER_PI_RELAY_2 = (byte) 0x02;

offentlig statisk siste byte DOCKER_PI_RELAY_3 = (byte) 0x03;

offentlig statisk siste byte DOCKER_PI_RELAY_4 = (byte) 0x04;

// Reléstatus

offentlig statisk siste byte DOCKER_PI_RELAY_ON = (byte) 0xFF;

offentlig statisk siste byte DOCKER_PI_RELAY_OFF = (byte) 0x00;

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

siste konsollkonsoll = ny konsoll ();

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

I2CDevice -enhet = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Slå på relé!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Tråd. Sover (500);

console.println ("Slå av relé!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Anbefalt: