Talaan ng mga Nilalaman:

Sistema ng Control ng Lights: 9 Mga Hakbang
Sistema ng Control ng Lights: 9 Mga Hakbang

Video: Sistema ng Control ng Lights: 9 Mga Hakbang

Video: Sistema ng Control ng Lights: 9 Mga Hakbang
Video: conventional fire alarm system wiring diagram/connection 2024, Nobyembre
Anonim
Sistema ng Pagkontrol sa Ilaw
Sistema ng Pagkontrol sa Ilaw

Kamakailan ay nagtatrabaho ako sa pag-unawa sa mga Microcontroller at aparato na nakabatay sa IOT para sa mga layunin ng Pananaliksik sa Seguridad. Kaya, naisip kong bumuo ng isang maliit na sistema ng automation ng bahay para sa pagsasanay. Hindi ko pa ito makukumpleto, ngunit sa pagsisimula ay ibabahagi ko kung paano ko ginamit ang Raspberry Pi 2 at ilang iba pang mga de-koryenteng sangkap upang makontrol ang pag-iilaw ng aking silid sa post na ito. Gayundin, hindi ko sasabihin ang tungkol sa Paunang pag-setup para sa Raspberry dito, maaari kang makahanap ng iba't ibang mga tutorial para doon.

Ngunit sa proyektong ito, ipakilala ko sa iyo ang produktong docker pi series na ito.

Mga gamit

Listahan ng Bahagi:

  • 1 x Raspberry Pi 3B + / 3B / Zero / Zero W / 4B /
  • 1 x 16GB Class 10 TF card
  • 1 x serye ng DockerPi 4 Channel Relay Board (HAT)
  • 1 x [email protected] supply ng kuryente na mula sa 52Pi
  • 4 x Banayad na strip
  • 1 x konektor ng DC
  • 1 x 12V power supply para sa mga light strip.
  • maraming mga wire.

Hakbang 1: Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board

Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board
Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board
Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board
Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board
Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board
Pag-alam Tungkol sa DockerPi Series 4 Channel Relay Board

Ang DockerPi 4 Channel Relay ay isang miyembro ng DockerPi Series, na mas karaniwang ginagamit sa mga aplikasyon ng IOT.

Maaaring i-relay ng DockerPi 4 Channel Relay ang AC / DC, sa halip na tradisyonal na mga switch, upang makamit ang higit pang mga ideya. Ang DockerPi 4 Channel Relay ay maaaring i-stack hanggang sa 4, at maaaring isalansan sa iba pang board ng pagpapalawak ng DockerPi. Kung kailangan mong tumakbo nang mahabang panahon, inirerekumenda rin namin na gamitin mo ang aming DockerPi Power expansion board upang magbigay ng higit na lakas.

TANDAAN NG PAG-INGAT Bago tayo magpatuloy sa karagdagang nais kong WALA SA iyo ang tungkol sa PANGANIB na pag-eksperimento sa "Mains Elektrisidad". Kung may mali man ang pinakamasamang bunga ay ang kamatayan o hindi nasusunog na nasunog ang iyong sariling bahay. Kaya, mangyaring HUWAG MAG-ATTEMPT upang gumawa ng anumang nabanggit sa artikulong ito kung hindi mo naiintindihan kung ano ang iyong ginagawa o mas mahusay na kumuha ng tulong ng ilang nakaranasang elektrisista. Magsimula na tayo.

Hakbang 2: Mga Tampok

Mga Tampok
Mga Tampok
Mga Tampok
Mga Tampok
Mga Tampok
Mga Tampok
  • Serye ng DockerPi
  • Programmable
  • Direktang kontrolin (nang walang programa)
  • Palawakin ang GPIO Pins
  • 4 Channel Relay
  • 4 Alt I2C Addr Support
  • Suporta ng Status ng Relay ng Katayuan
  • 3A 250V Suporta ng AC
  • 3A 30V DC
  • Maaaring Mag-stack sa iba pang Stack board Independent ng mainboard hardware (nangangailangan ng suporta ng I2C)

Hakbang 3: Mapa ng Address ng Device

Mapa ng Address ng Device
Mapa ng Address ng Device
Mapa ng Address ng Device
Mapa ng Address ng Device

Ang board na ito ay may hiwalay na address ng rehistro, at makokontrol mo lamang ang bawat relay ng isang utos.

Iba pang mga kinakailangan:

Pangunahing Pag-unawa sa Python o C o shell o Java o anumang iba pang wika (gagamitin ko ang C, python, shell, at java)

  • Pangunahing Pag-unawa sa mga system ng Linux
  • Presensya ng Isip

Ngayon, bago magpatuloy kakailanganin mong maunawaan ang mga de-koryenteng sangkap na gagamitin namin:

1. Relay:

Ang isang relay ay isang aparatong elektrikal na karaniwang ginagamit upang makontrol ang mga mataas na boltahe gamit ang napakababang boltahe bilang isang Input. Binubuo ito ng isang likid na nakabalot sa isang poste at isang dalawang maliit na flap ng metal (node) na ginagamit upang isara ang circuit. Ang isa sa node ay naayos at iba pa ay maaaring ilipat. Tuwing ang isang kuryente ay dumaan sa likid, lumilikha ito ng isang magnetic field at inaakit ang gumagalaw na node patungo sa static node at nakumpleto ang circuit. Kaya, sa pamamagitan lamang ng paglalapat ng maliit na boltahe upang magaan ang coil maaari talaga nating makumpleto ang circuit para sa mataas na boltahe na maglakbay. Gayundin, dahil ang static node ay hindi pisikal na konektado sa coil mayroong mas kaunting pagkakataon na ang Microcontroller na nagpapatakbo ng coil ay nasisira kung may mali.

Hakbang 4: Ikonekta ang Relay sa Bulb Holder na Pinapagana ng Main Electric Supply

Ikonekta ang Relay sa Bulb Holder na Pinapagana ng Main Electric Supply
Ikonekta ang Relay sa Bulb Holder na Pinapagana ng Main Electric Supply
Ikonekta ang Relay sa Bulb Holder na Pinapagana ng Main Electric Supply
Ikonekta ang Relay sa Bulb Holder na Pinapagana ng Main Electric Supply

Ngayon sa nakakalito na bahagi, Ikonekta namin ang relay sa may hawak ng bombilya na pinalakas ng supply ng Main Electric. Ngunit, unang nais kong bigyan ka ng isang maikling ideya tungkol sa kung paano naka-ON at NAKA-OFF ang mga ilaw sa pamamagitan ng direktang supply ng kuryente.

Ngayon, kapag ang bombilya ay konektado sa pangunahing supply, karaniwang ginagawa namin ito sa pamamagitan ng pagkonekta ng dalawang mga wire sa bombilya. ang isa sa kawad ay isang "Neutral" na kawad at ang isa pa ay ang "Negatibo" na kawad na talagang nagdadala ng kasalukuyang, mayroon ding isang switch na idinagdag sa buong circuit upang makontrol ang ON isang OFF na mekanismo. Kaya, kapag ang swith ay konektado (O Naka-ON) ang kasalukuyang daloy sa pamamagitan ng bombilya at ang walang kinikilingan na kawad, pagkumpleto ng circuit. Ini-ON ang ilaw na bombilya. Kapag naka-switch ang switch, binabasag nito ang circuit at ang bombilya ay naka-OFF. Narito ang isang maliit na diagram ng circuit upang ipaliwanag ito:

Ngayon, para sa aming eksperimento, kakailanganin nating gawin ang "Negative Wire" na dumaan sa aming relay upang masira ang circuit at makontrol ang daloy ng kuryente gamit ang paglipat ng relay. Kaya, kapag ang relay ay MAG-ON, dapat itong kumpletuhin ang circuit at ang Light bombilya ay dapat na ON at vice-versa. Sumangguni sa diagram sa ibaba para sa Buong circuit.

Hakbang 5: Pag-configure ng I2C (Raspberry Pi)

Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)
Pag-configure ng I2C (Raspberry Pi)

Patakbuhin ang sudo raspi-config at sundin ang mga senyas upang mai-install ang suporta sa i2c para sa ARM core at linux kernel

Pumunta sa Mga Pagpipilian sa Interfacing

Hakbang 6: Direktang Kontrol Nang Walang Programming (Raspberry Pi)

I-on ang relay ng No.1 No.1

i2cset -y 1 0x10 0x01 0xFF

I-off ang channel No.1 relay

i2cset -y 1 0x10 0x01 0x00

I-on ang relay ng channel No.2

i2cset -y 1 0x10 0x02 0xFF

I-off ang relay ng channel No.2

i2cset -y 1 0x10 0x02 0x00

I-on ang relay ng channel No.3

i2cset -y 1 0x10 0x03 0xFF

I-off ang relay ng channel No.3

i2cset -y 1 0x10 0x03 0x00

I-on ang channel No.4 relay

i2cset -y 1 0x10 0x04 0xFF

I-off ang channel No.4 relay

i2cset -y 1 0x10 0x04 0x00

Hakbang 7: Programa sa Wika C (Raspberry Pi)

Lumikha ng source code at pangalanan itong "relay.c"

# isama

# isama

# isama

# tukuyin ang DEVCIE_ADDR 0x10

# tukuyin ang RELAY1 0x01

# tukuyin ang RELAY2 0x02

# tukuyin ang RELAY3 0x03

# tukuyin ang RELAY4 0x04

# tukuyin SA 0xFF

# tukuyin ang OFF 0x00

int main (walang bisa)

{

printf ("I-on ang Mga Relay sa C / n");

int tot;

int i = 0;

taut = mga kablePiI2CSetup (DEVICE_ADDR);

para sa (;;) {

para sa (i = 1; i <= 4; i ++)

{

printf ("i-on ang relay No. $ d", i);

mga kablePiI2CWriteReg8 (taut, i, ON);

pagtulog (200);

printf ("patayin ang relay No. $ d", i);

mga kablePiI2CWriteReg8 (taut, i, OFF);

pagtulog (200);

}

}

ibalik ang 0;

}

Ipunin ito

gcc relay.c -lwiringPi -o relay

Exec Ito

./relay

Hakbang 8: Programa sa Python (Raspberry Pi)

Ang sumusunod na code ay inirerekumenda na maipatupad gamit ang Python 3 at i-install ang smbus library:

Lumikha ng isang file na pinangalanan ito: "relay.py" at i-paste ang sumusunod na code:

pag-import ng oras bilang t

import smbus

import sys

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

bus = smbus. SMBus (DEVICE_BUS)

habang Totoo:

subukan:

para sa saklaw ko (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.tulog (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.tulog (1)

maliban sa KeyboardInterrupt bilang e:

i-print ("Quit the Loop")

sys.exit ()

* I-save ito at pagkatapos ay tumakbo bilang python3:

python3 relay.py

Hakbang 9: Programa sa Java (Raspberry Pi)

Lumikha ng isang bagong file na pinangalanang: I2CRelay.java at i-paste ang sumusunod na code:

i-import ang java.io. IOException;

import java.util. Array;

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;

pampublikong klase I2CRelay {

// address ng rehistro ng relay.

pampublikong static final int DOCKER_PI_RELAY_ADDR = 0x10;

// channel ng relay.

pampubliko static panghuling byte DOCKER_PI_RELAY_1 = (byte) 0x01;

pampubliko static panghuling byte DOCKER_PI_RELAY_2 = (byte) 0x02;

pampubliko static panghuling byte DOCKER_PI_RELAY_3 = (byte) 0x03;

pampubliko static panghuling byte DOCKER_PI_RELAY_4 = (byte) 0x04;

// Status ng relay

pampubliko static panghuling byte DOCKER_PI_RELAY_ON = (byte) 0xFF;

pampublikong static panghuling byte DOCKER_PI_RELAY_OFF = (byte) 0x00;

pampublikong static void main (String args) ay nagtatapon ng InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

pangwakas na Console console = bagong Console ();

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

I2CDevice device = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("I-on ang Relay!");

aparato.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.tulog (500);

console.println ("Patayin ang Relay!");

aparato.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Inirerekumendang: