Innehållsförteckning:

Ljuskontrollsystem: 9 steg
Ljuskontrollsystem: 9 steg

Video: Ljuskontrollsystem: 9 steg

Video: Ljuskontrollsystem: 9 steg
Video: Så blonderar du håret hemma med Préférence Bleach 9-level lift | Tutorial | L’Oréal Paris 2024, Juli
Anonim
Ljuskontrollsystem
Ljuskontrollsystem

Nyligen arbetade jag med att förstå mikrokontroller och IOT -baserade enheter för säkerhetsforskningsändamål. Så jag tänkte bygga ett litet hemautomatiseringssystem för träning. Jag har ännu inte slutfört detta, men för uppstart kommer jag att dela med mig av hur jag använde Raspberry Pi 2 och några andra elektriska komponenter för att styra mitt rums belysning i det här inlägget. Jag kommer inte heller att prata om Initial setup för Raspberry här, du kan hitta olika handledning för det.

Men i detta projekt kommer jag att presentera denna docker pi -serieprodukt för dig.

Tillbehör

Komponentlista:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 GB TF -kort i klass 10
  • 1 x DockerPi -serie 4 -kanals reläkort (HAT)
  • 1 x [email protected] strömförsörjning som är från 52Pi
  • 4 x Ljusremsa
  • 1 x DC -kontakt
  • 1 x 12V strömförsörjning för ljusremsorna.
  • flera ledningar.

Steg 1: Att veta om DockerPi Series 4 Channel Relay Board

Kunskap om DockerPi Series 4 Channel Relay Board
Kunskap om DockerPi Series 4 Channel Relay Board
Kunskap om DockerPi Series 4 Channel Relay Board
Kunskap om DockerPi Series 4 Channel Relay Board
Kunskap om DockerPi Series 4 Channel Relay Board
Kunskap om DockerPi Series 4 Channel Relay Board

DockerPi 4 Channel Relay är medlem i DockerPi -serien, vanligare i IOT -applikationer.

DockerPi 4 Channel Relay kan vidarebefordra AC/DC, istället för traditionella switchar, för att uppnå fler idéer. DockerPi 4 Channel Relay kan stapla upp till 4 och kan staplas med andra DockerPi -expansionskort. Om du behöver köra länge rekommenderar vi också att du använder vårt DockerPi Power -expansionskort för att ge mer ström.

OBSERVERA Innan vi går vidare vill jag VARNA dig om FARAN med att experimentera med "elnätet". Om något går fel kan den värsta konsekvensen vara döden eller åtminstone bränna ditt eget hus. Så, FÖRSÖK INTE att göra något som nämns i den här artikeln om du inte förstår vad du gör eller bättre tar hjälp av någon erfaren elektriker. Låt oss börja.

Steg 2: Funktioner

Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
  • DockerPi -serien
  • Programmerbar
  • Styr direkt (utan programmering)
  • Förläng GPIO -stiften
  • 4 kanals relä
  • 4 Alt I2C Addr -support
  • Relä Status Leds Support
  • 3A 250V AC -stöd
  • 3A 30V DC
  • Kan staplas med andra stackkort Oberoende av moderkortsmaskinvaran (kräver I2C -stöd)

Steg 3: Enhetsadresskarta

Enhetens adresskarta
Enhetens adresskarta
Enhetens adresskarta
Enhetens adresskarta

Detta kort har en separat registeradress, och du kan bara styra varje relä med ett kommando.

Andra krav:

Grundläggande förståelse för Python eller C eller shell eller Java eller något annat språk (jag använder C, python, shell och java)

  • Grundläggande förståelse för Linux -system
  • Sinnesnärvaro

Nu, innan du går vidare måste du förstå de elektriska komponenterna vi kommer att använda:

1. Relä:

Ett relä är en elektrisk enhet som vanligtvis används för att styra högspänningar med mycket låg spänning som ingång. Denna består av en spole lindad runt en stolpe och två små metallflikar (noder) som används för att stänga kretsen. En av noden är fixerad och den andra är rörlig. Närhelst en elektricitet passerar genom spolen skapar den ett magnetfält och lockar den rörliga noden mot den statiska noden och kretsen slutförs. Så bara genom att applicera liten spänning för att driva spolen kan vi faktiskt slutföra kretsen för högspänningen att resa. Eftersom den statiska noden inte är fysiskt ansluten till spolen är det mycket mindre risk att mikrokontrollern som driver spolen skadas om något går fel.

Steg 4: Anslut reläet till lamphållaren som drivs av huvudsaklig elförsörjning

Anslut reläet till lamphållaren som drivs av huvudsaklig elförsörjning
Anslut reläet till lamphållaren som drivs av huvudsaklig elförsörjning
Anslut reläet till lamphållaren som drivs av huvudsaklig elförsörjning
Anslut reläet till lamphållaren som drivs av huvudsaklig elförsörjning

Nu till den knepiga delen, Vi ansluter reläet till glödlampshållaren som drivs av Main Electric -försörjning. Men först vill jag ge dig en kort uppfattning om hur lamporna slås PÅ och AV via direkt strömförsörjning.

Nu, när glödlampan är ansluten till huvudförsörjningen, brukar vi göra detta genom att ansluta två ledningar till lampan. en av tråden är en "neutral" tråd och den andra är den "negativa" tråden som faktiskt bär strömmen, det finns också en strömbrytare som läggs till i hela kretsen för att styra PÅ och AV -mekanismen. Så när swithen är ansluten (eller påslagen) strömmar strömmen genom glödlampan och neutralledningen och slutför kretsen. Detta tänder lampan. När strömbrytaren slås på bryter den kretsen och glödlampan stängs av. Här är ett litet kretsschema för att förklara detta:

Nu, för vårt experiment, måste vi få "Negative Wire" att passera genom vårt relä för att bryta kretsen och styra effektflödet med hjälp av reläets omkoppling. Så när reläet slås PÅ bör det slutföra kretsen och glödlampan ska slås PÅ och vice versa. Se diagrammet nedan för Full krets.

Steg 5: Konfigurera I2C (Raspberry Pi)

Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)
Konfigurera I2C (Raspberry Pi)

Kör sudo raspi-config och följ anvisningarna för att installera i2c-stöd för ARM-kärnan och Linux-kärnan

Gå till gränssnittsalternativ

Steg 6: Direktkontroll utan programmering (Raspberry Pi)

Slå på kanal nr 1 relä

i2cset -y 1 0x10 0x01 0xFF

Stäng av kanal nr 1 relä

i2cset -y 1 0x10 0x01 0x00

Slå på kanal nr 2 relä

i2cset -y 1 0x10 0x02 0xFF

Stäng av kanal nr 2 relä

i2cset -y 1 0x10 0x02 0x00

Slå på kanal nr 3 relä

i2cset -y 1 0x10 0x03 0xFF

Stäng av kanal nr 3 relä

i2cset -y 1 0x10 0x03 0x00

Slå på kanal nr 4 relä

i2cset -y 1 0x10 0x04 0xFF

Stäng av kanal nr 4 -relä

i2cset -y 1 0x10 0x04 0x00

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

Skapa källkod och ge den namnet "relay.c"

#omfatta

#omfatta

#omfatta

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define ON 0xFF

#define OFF 0x00

int main (void)

{

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

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

för(;;){

för (i = 1; i <= 4; i ++)

{

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

wiringPiI2CWriteReg8 (fd, i, ON);

sömn (200);

printf ("stäng av relä nr $ d", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

sömn (200);

}

}

returnera 0;

}

Sammanställ det

gcc -relä. c -lwiringPi -o -relä

Exec It

./relä

Steg 8: Programmera i Python (Raspberry Pi)

Följande kod rekommenderas att köras med Python 3 och installera smbus -biblioteket:

Skapa en fil som heter den: "relay.py" och klistra in följande kod:

importtid som t

importera smbus

importera sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

buss = smbus. SMBus (DEVICE_BUS)

medan det är sant:

Prova:

för i inom intervallet (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t. sover (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t. sover (1)

utom KeyboardInterrupt som e:

print ("Quit the Loop")

sys.exit ()

* Spara det och kör sedan som python3:

python3 -relä.py

Steg 9: Programmera i Java (Raspberry Pi)

Skapa en ny fil med namnet: I2CRelay.java och klistra in följande kod:

importera java.io. IOException;

importera java.util. Arrays;

importera com.pi4j.io.i2c. I2CBus;

importera com.pi4j.io.i2c. I2CDenhet;

importera com.pi4j.io.i2c. I2CFactory;

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

importera com.pi4j.platform. PlatformAlreadyAssignedException;

importera com.pi4j.util. Console;

public class I2CRelay {

// reläets registeradress.

public static final int DOCKER_PI_RELAY_ADDR = 0x10;

// kanal för relä.

offentlig statisk slutbyte DOCKER_PI_RELAY_1 = (byte) 0x01;

offentlig statisk slutbyte DOCKER_PI_RELAY_2 = (byte) 0x02;

offentlig statisk slutbyte DOCKER_PI_RELAY_3 = (byte) 0x03;

offentlig statisk slutbyte DOCKER_PI_RELAY_4 = (byte) 0x04;

// Relästatus

offentlig statisk slutbyte DOCKER_PI_RELAY_ON = (byte) 0xFF;

offentlig statisk slutbyte DOCKER_PI_RELAY_OFF = (byte) 0x00;

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

slutlig konsolkonsol = ny konsol ();

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 ("Stäng av relä!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Rekommenderad: