Obsah:

Systém ovládania svetiel: 9 krokov
Systém ovládania svetiel: 9 krokov

Video: Systém ovládania svetiel: 9 krokov

Video: Systém ovládania svetiel: 9 krokov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Systém ovládania svetiel
Systém ovládania svetiel

Nedávno som pracoval na porozumení mikrokontrolérov a zariadení založených na IOT na účely výskumu bezpečnosti. A tak ma napadlo vybudovať malý systém automatizácie domácnosti pre prax. Toto ešte nedokončím, ale pri štarte sa budem v tomto príspevku podeliť o to, ako som pomocou Raspberry Pi 2 a niektorých ďalších elektrických komponentov riadil osvetlenie svojej miestnosti. Tiež tu nebudem hovoriť o počiatočnom nastavení pre Raspberry, môžete na to nájsť rôzne návody.

Ale v tomto projekte vám predstavím tento produkt série docker pi.

Zásoby

Zoznam komponentov:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 GB karta TF triedy 10
  • 1 x DockerPi 4 -kanálová reléová doska (HAT)
  • Napájanie 1 x 5v@2,5A, ktoré je od 52Pi
  • 4 x svetelný pás
  • 1 x konektor DC
  • 1 x 12V napájací zdroj pre svetelné pásy.
  • niekoľko drôtov.

Krok 1: Vedieť o 4 -kanálovej reléovej doske série DockerPi

Vedieť o 4 -kanálovej reléovej doske DockerPi Series
Vedieť o 4 -kanálovej reléovej doske DockerPi Series
Vedieť o 4 -kanálovej reléovej doske DockerPi Series
Vedieť o 4 -kanálovej reléovej doske DockerPi Series
Vedieť o 4 -kanálovej reléovej doske DockerPi
Vedieť o 4 -kanálovej reléovej doske DockerPi

4 kanálové relé DockerPi je členom série DockerPi, bežnejšie používanej v aplikáciách IOT.

4kanálové relé DockerPi môže namiesto tradičných prepínačov relé AC/DC dosiahnuť viac nápadov. 4 kanálové relé DockerPi je možné skladať až do 4 zásuviek a je možné ich stohovať s ďalšou rozširujúcou doskou DockerPi. Ak potrebujete dlhší čas behať, odporúčame vám použiť aj rozširujúcu dosku DockerPi Power, ktorá vám poskytne viac energie.

UPOZORNENIE UPOZORNENIE Predtým, ako budeme pokračovať, by som vás chcel UPOZORNIŤ na NEBEZPEČENSTVO experimentovania s „elektrickou energiou zo siete“. Ak sa niečo pokazí, najhorším dôsledkom môže byť smrť alebo prinajmenšom spálenie vášho domu. NEPOKÚŠAJTE sa, prosím, urobiť nič uvedené v tomto článku, ak nerozumiete tomu, čo robíte, alebo radšej využite pomoc skúseného elektrikára. Začnime.

Krok 2: Vlastnosti

Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
Vlastnosti
  • Séria DockerPi
  • Programovateľné
  • Ovládanie priamo (bez programovania)
  • Rozšírte piny GPIO
  • 4 kanálové relé
  • 4 Podpora Alt I2C Addr
  • Podpora stavu reléových relé
  • 3A 250V AC podpora
  • 3A 30V DC
  • Možno stohovať s inou doskou Stack Nezávisle na hardvéri základnej dosky (vyžaduje podporu I2C)

Krok 3: Mapa adresy zariadenia

Mapa adresy zariadenia
Mapa adresy zariadenia
Mapa adresy zariadenia
Mapa adresy zariadenia

Táto doska má samostatnú adresu registra a každé relé môžete ovládať jediným príkazom.

Ďalšie požiadavky:

Základné znalosti jazyka Python alebo C alebo shellu alebo Javy alebo akéhokoľvek iného jazyka (budem používať jazyk C, python, shell a java)

  • Základné znalosti systémov Linux
  • Prítomnosť mysle

Teraz, než sa pohnete dopredu, musíte porozumieť elektrickým komponentom, ktoré budeme používať:

1. Relé:

Relé je elektrické zariadenie, ktoré sa spravidla používa na ovládanie vysokého napätia pomocou veľmi nízkeho napätia ako vstupu. Skladá sa z cievky obalenej okolo pólu a dvoch malých kovových chlopní (uzlov), ktoré sa používajú na uzavretie obvodu. Jeden z uzlov je pevný a druhý je pohyblivý. Kedykoľvek prechádza cievkou elektrina, vytvorí magnetické pole a priťahuje pohyblivý uzol k statickému uzlu a obvod sa dokončí. Takže iba použitím malého napätia na napájanie cievky môžeme skutočne dokončiť obvod pre pohyb vysokého napätia. Pretože statický uzol nie je fyzicky spojený s cievkou, je veľmi malá pravdepodobnosť, že sa v prípade chyby poškodí mikrokontrolér napájajúci cievku.

Krok 4: Pripojte relé k držiaku žiarovky napájaným z hlavného elektrického zdroja

Pripojte relé k držiaku žiarovky napájanému z hlavného elektrického zdroja
Pripojte relé k držiaku žiarovky napájanému z hlavného elektrického zdroja
Pripojte relé k držiaku žiarovky napájanému z hlavného elektrického zdroja
Pripojte relé k držiaku žiarovky napájanému z hlavného elektrického zdroja

Teraz k chúlostivej časti, relé pripojíme k držiaku žiarovky napájanému zdrojom elektrickej energie. Najprv vám však chcem poskytnúť krátku predstavu o tom, ako sa svetlá zapínajú a vypínajú pomocou priameho napájania.

Teraz, keď je žiarovka pripojená k hlavnému zdroju, to zvyčajne robíme pripojením dvoch vodičov k žiarovke. jeden z vodičov je „neutrálny“a druhý je „negatívny“vodič, ktorý v skutočnosti prenáša prúd, a tiež je do celého obvodu pridaný spínač na ovládanie mechanizmu ZAPNUTÉ a VYPNUTÉ. Keď je teda spínač zapojený (alebo zapnutý), prúd preteká žiarovkou a neutrálnym vodičom, čím sa obvod dokončí. Zapne žiarovku. Keď je vypínač vypnutý, preruší obvod a žiarovka sa vypne. Tu je malý obvodový diagram, ktorý to vysvetľuje:

Teraz, pre náš experiment, budeme musieť nechať „negatívny vodič“prejsť našim relé, aby sa prerušil obvod a reguloval tok energie pomocou prepínania relé. Keď sa relé zapne, malo by to dokončiť obvod a žiarovka by sa mala zapnúť a naopak. Úplný obvod nájdete v nižšie uvedenej schéme.

Krok 5: Konfigurácia I2C (Raspberry Pi)

Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)
Konfigurácia I2C (Raspberry Pi)

Spustite sudo raspi-config a podľa pokynov nainštalujte podporu i2c pre jadro ARM a linuxové jadro

Prejdite na Možnosti rozhrania

Krok 6: Priame ovládanie bez programovania (Raspberry Pi)

Zapnite relé kanála č. 1

i2cset -y 1 0x10 0x01 0xFF

Vypnite relé kanála č. 1

i2cset -y 1 0x10 0x01 0x00

Zapnite relé kanála č. 2

i2cset -y 1 0x10 0x02 0xFF

Vypnite relé kanála č. 2

i2cset -y 1 0x10 0x02 0x00

Zapnite relé kanála č. 3

i2cset -y 1 0x10 0x03 0xFF

Vypnite relé kanála č. 3

i2cset -y 1 0x10 0x03 0x00

Zapnite relé č. 4 na kanáli

i2cset -y 1 0x10 0x04 0xFF

Vypnite relé č. 4 kanála

i2cset -y 1 0x10 0x04 0x00

Krok 7: Program v jazyku C (Raspberry Pi)

Vytvorte zdrojový kód a pomenujte ho „relay.c“

#zahrnúť

#zahrnúť

#zahrnúť

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define ON 0xFF

#definovať VYPNUTÉ 0x00

int main (prázdny)

{

printf ("Zapnúť relé v C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

pre (;;) {

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

{

printf ("zapnúť relé č. $ d", i);

zapojeniePiI2CWriteReg8 (fd, i, ON);

spánok (200);

printf ("vypnúť relé č. $ d", i);

zapojeniePiI2CWriteReg8 (fd, i, OFF);

spánok (200);

}

}

návrat 0;

}

Skompilovať to

relé gcc.c -l zapojeniePi -o relé

Exec It

./relé

Krok 8: Program v Pythone (Raspberry Pi)

Nasledujúci kód sa odporúča vykonať pomocou Pythonu 3 a nainštalovať knižnicu smbus:

Vytvorte súbor s názvom: "relay.py" a prilepte nasledujúci kód:

čas importu ako t

import smbus

import sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

bus = smbus. SMBus (DEVICE_BUS)

kým je pravda:

skús:

pre i v rozsahu (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.spánok (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.spánok (1)

okrem KeyboardInterrupt ako e:

vytlačiť („Ukončiť slučku“)

sys.exit ()

* Uložte ho a potom spustite ako python3:

python3 relay.py

Krok 9: Programujte v Jave (Raspberry Pi)

Vytvorte nový súbor s názvom: I2CRelay.java a prilepte nasledujúci kód:

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;

importovať com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

importovať com.pi4j.platform. PlatformAlreadyAssignedException;

importovať com.pi4j.util. Console;

verejná trieda I2CRelay {

// adresa registra relé.

public static final int DOCKER_PI_RELAY_ADDR = 0x10;

// kanál relé.

verejný statický konečný bajt DOCKER_PI_RELAY_1 = (bajt) 0x01;

verejný statický konečný bajt DOCKER_PI_RELAY_2 = (bajt) 0x02;

verejný statický konečný bajt DOCKER_PI_RELAY_3 = (bajt) 0x03;

verejný statický konečný bajt DOCKER_PI_RELAY_4 = (bajt) 0x04;

// Stav relé

verejný statický konečný bajt DOCKER_PI_RELAY_ON = (bajt) 0xFF;

verejný statický konečný bajt DOCKER_PI_RELAY_OFF = (bajt) 0x00;

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

konečná konzola konzoly = nová konzola ();

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

Zariadenie I2CDevice = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println („Zapnúť relé!“);

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println („Vypnúť relé!“);

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Odporúča: