Tartalomjegyzék:

Fényvezérlő rendszer: 9 lépés
Fényvezérlő rendszer: 9 lépés

Videó: Fényvezérlő rendszer: 9 lépés

Videó: Fényvezérlő rendszer: 9 lépés
Videó: Orosz László kiakad 2024, November
Anonim
Fényvezérlő rendszer
Fényvezérlő rendszer

Nemrég azon dolgoztam, hogy megértsem a mikrokontrollereket és az IOT -alapú eszközöket biztonsági kutatás céljából. Szóval, gondoltam egy kis otthoni automatizálási rendszert építek a gyakorlathoz. Ezt még be kell fejeznem, de az indítás során megosztom, hogyan használtam a Raspberry Pi 2 -t és néhány más elektromos alkatrészt a szobám világításának szabályozására ebben a bejegyzésben. Továbbá nem a Raspberry kezdeti beállításáról fogok itt beszélni, ehhez különféle oktatóanyagokat találhat.

De ebben a projektben bemutatom ezt a dokkoló pi sorozatú terméket.

Kellékek

Komponenslista:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 db 16 GB -os 10 -es típusú TF kártya
  • 1 db DockerPi sorozatú 4 csatornás relé kártya (HAT)
  • 1 x [email protected] tápegység, amely 52Pi
  • 4 x fénycsík
  • 1 x DC csatlakozó
  • 1 x 12V tápegység a fénycsíkokhoz.
  • több vezeték.

1. lépés: Ismerkedés a DockerPi Series 4 Channel Relay Board -val

Ismerkedés a DockerPi sorozat 4 csatornás relé kártyájával
Ismerkedés a DockerPi sorozat 4 csatornás relé kártyájával
Ismerkedés a DockerPi sorozat 4 csatornás relé kártyájával
Ismerkedés a DockerPi sorozat 4 csatornás relé kártyájával
Ismerkedés a DockerPi sorozat 4 csatornás relé kártyájával
Ismerkedés a DockerPi sorozat 4 csatornás relé kártyájával

A DockerPi 4 csatornás relé a DockerPi sorozat tagja, amelyet gyakrabban használnak az IOT alkalmazásokban.

A DockerPi 4 csatornás relé a hagyományos kapcsolók helyett váltóáramot/egyenáramot képes továbbítani, hogy több ötletet érjen el. A DockerPi 4 csatornás relé legfeljebb 4 halmozható, és más DockerPi bővítőkártyával is halmozható. Ha hosszabb ideig kell futnia, azt is javasoljuk, hogy használja a DockerPi Power bővítőkártyát a nagyobb teljesítmény biztosítása érdekében.

Mielőtt továbblépnénk, szeretném figyelmeztetni Önöket a VESZÉLYRE a „Hálózati árammal” való kísérletezésről. Ha bármi baj történik, a legrosszabb következmény lehet a halál vagy legalább a saját házának felgyújtása. Ezért kérjük, NE KÉRJE, hogy bármit is tegyen ebben a cikkben, ha nem érti, mit csinál, vagy inkább vegye igénybe néhány tapasztalt villanyszerelő segítségét. Lássunk neki.

2. lépés: Jellemzők

Jellemzők
Jellemzők
Jellemzők
Jellemzők
Jellemzők
Jellemzők
  • DockerPi sorozat
  • Programozható
  • Közvetlen vezérlés (programozás nélkül)
  • Húzza ki a GPIO csapokat
  • 4 csatornás relé
  • 4 Alt I2C Addr támogatás
  • Relé állapot LED -ek támogatása
  • 3A 250V AC támogatás
  • 3A 30V DC
  • Összerakható más veremtáblával az alaplap hardverétől függetlenül (I2C támogatás szükséges)

3. lépés: Eszközcím -térkép

Eszköz címetérképe
Eszköz címetérképe
Eszköz címetérképe
Eszköz címetérképe

Ennek a táblának külön regisztrációs címe van, és csak egy parancs segítségével vezérelheti az egyes reléket.

Egyéb követelmények:

A Python vagy a C, a shell vagy a Java vagy bármely más nyelv alapvető ismerete (C, python, shell és java fogok használni)

  • A Linux rendszerek alapvető ismerete
  • Józanság

Mielőtt továbblépne, meg kell értenie az elektromos alkatrészeket, amelyeket használni fogunk:

1. Relé:

A relé egy elektromos eszköz, amelyet általában nagy feszültségek vezérlésére használnak, nagyon alacsony feszültségű bemenetként. Ez egy pólus köré tekercselt tekercsből és két kis fémlapból (csomópontból) áll, amelyeket az áramkör lezárására használnak. Az egyik csomópont rögzített, a másik mozgatható. Amikor áramot vezetnek át a tekercsen, mágneses mezőt hoz létre, és vonzza a mozgó csomópontot a statikus csomópont felé, és az áramkör befejeződik. Tehát, ha kis feszültséget alkalmazunk a tekercs bekapcsolására, valójában befejezhetjük a nagyfeszültség áramlását. Továbbá, mivel a statikus csomópont fizikailag nincs csatlakoztatva a tekercshez, nagyon kicsi annak az esélye, hogy a tekercset tápláló mikrokontroller megsérül, ha valami baj történik.

4. lépés: Csatlakoztassa a relét az izzótartóhoz, amelyet a fő áramforrás biztosít

Csatlakoztassa a relét az izzótartóhoz, amelyet a fő áramforrás biztosít
Csatlakoztassa a relét az izzótartóhoz, amelyet a fő áramforrás biztosít
Csatlakoztassa a relét az izzótartóhoz, amelyet a fő áramforrás biztosít
Csatlakoztassa a relét az izzótartóhoz, amelyet a fő áramforrás biztosít

Most a trükkös részhez csatlakoztatjuk a relét az izzótartóhoz, amelyet a Main Electric tápegység táplál. De először szeretnék egy rövid ötletet adni arról, hogyan kapcsolják be és ki a lámpákat a közvetlen tápegységről.

Most, amikor az izzót a fő tápegységhez csatlakoztatják, ezt általában úgy végezzük, hogy két vezetéket csatlakoztatunk az izzóhoz. az egyik vezeték „semleges” vezeték, a másik pedig a „negatív” vezeték, amely ténylegesen hordozza az áramot, továbbá van egy kapcsoló az egész áramkörhöz az ON / OFF mechanizmus vezérléséhez. Tehát, amikor a kapcsolót csatlakoztatja (vagy bekapcsolja), az áram áthalad az izzón és a semleges vezetéken, befejezve az áramkört. Ez bekapcsolja az izzót. A kapcsoló kikapcsolása megszakítja az áramkört, és az izzó kikapcsol. Íme egy kis kapcsolási rajz, amely ezt magyarázza:

Most, a kísérletünkhöz, a „negatív vezetéket” át kell vezetnünk a relén, hogy megszakítsuk az áramkört, és a relé kapcsolóval vezéreljük az áramlást. Tehát, amikor a relé bekapcsol, be kell fejeznie az áramkört, és az izzónak be kell kapcsolnia, és fordítva. A teljes áramkört lásd az alábbi ábrán.

5. lépés: Az I2C (Raspberry Pi) konfigurálása

Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása
Az I2C (Raspberry Pi) konfigurálása

Futtassa a sudo raspi-config parancsot, és kövesse az utasításokat az i2c támogatás telepítéséhez az ARM maghoz és a linux kernelhez

Lépjen az Interfészbeállítások oldalra

6. lépés: Közvetlen vezérlés programozás nélkül (Raspberry Pi)

Kapcsolja be az 1. csatorna relét

i2cset -y 1 0x10 0x01 0xFF

Kapcsolja ki az 1. csatorna relét

i2cset -y 1 0x10 0x01 0x00

Kapcsolja be a 2. csatorna relét

i2cset -y 1 0x10 0x02 0xFF

Kapcsolja ki a 2. csatorna relét

i2cset -y 1 0x10 0x02 0x00

Kapcsolja be a 3. csatorna relét

i2cset -y 1 0x10 0x03 0xFF

Kapcsolja ki a 3. csatorna relét

i2cset -y 1 0x10 0x03 0x00

Kapcsolja be a 4. csatorna relét

i2cset -y 1 0x10 0x04 0xFF

Kapcsolja ki a 4. csatorna relét

i2cset -y 1 0x10 0x04 0x00

7. lépés: Programozás C nyelven (Raspberry Pi)

Hozzon létre forráskódot, és nevezze el "relay.c"

#befoglalni

#befoglalni

#befoglalni

#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 ("Kapcsolja be a reléket C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

(;;) {

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

{

printf ("$ d relé bekapcsolása", i);

wiringPiI2CWriteReg8 (fd, i, ON);

alvás (200);

printf ("$ d relé kikapcsolása", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

alvás (200);

}

}

visszatérés 0;

}

Fordítsa össze

gcc relé.c -lwiringPi -o relé

Végezze el

./relé

8. lépés: Programozás Pythonban (Raspberry Pi)

A következő kódot ajánlott végrehajtani Python 3 használatával, és telepíteni az smbus könyvtárat:

Hozzon létre egy "relay.py" nevű fájlt, és illessze be a következő kódot:

import idő, mint t

import smbus

rendszer importálása

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

busz = smbus. SMBus (DEVICE_BUS)

míg igaz:

próbáld ki:

i esetén (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.alszik (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.alszik (1)

kivéve a KeyboardInterrupt mint e:

print ("Kilépés a hurokból")

sys.exit ()

* Mentse el, majd futtassa python3 néven:

python3 relé.py

9. lépés: Programozás Java nyelven (Raspberry Pi)

Hozzon létre egy új fájlt: I2CRelay.java, és illessze be a következő kódot:

import 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;

public class I2CRelay {

// relé regisztrációs címe.

public static final int DOCKER_PI_RELAY_ADDR = 0x10;

// relé csatornája.

nyilvános statikus végső bájt DOCKER_PI_RELAY_1 = (bájt) 0x01;

nyilvános statikus végső bájt DOCKER_PI_RELAY_2 = (bájt) 0x02;

nyilvános statikus végső bájt DOCKER_PI_RELAY_3 = (bájt) 0x03;

nyilvános statikus végső bájt DOCKER_PI_RELAY_4 = (bájt) 0x04;

// Relé állapota

nyilvános statikus végső bájt DOCKER_PI_RELAY_ON = (bájt) 0xFF;

nyilvános statikus végső bájt DOCKER_PI_RELAY_OFF = (bájt) 0x00;

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

final Console console = new Console ();

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

I2CDevice eszköz = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Kapcsolja be a relét!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Téma.alvás (500);

console.println ("Kapcsolja ki a relét!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Ajánlott: