Мазмуну:

Жарыктарды башкаруу системасы: 9 кадам
Жарыктарды башкаруу системасы: 9 кадам

Video: Жарыктарды башкаруу системасы: 9 кадам

Video: Жарыктарды башкаруу системасы: 9 кадам
Video: ЭРКЕКТИН АЯЛЫН СҮЙБӨЙ КАЛГАНЫН КАНТИП БИЛСЕ БОЛОТ? 5 БЕЛГИ 2024, Ноябрь
Anonim
Жарыктарды башкаруу системасы
Жарыктарды башкаруу системасы

Жакында мен коопсуздукту изилдөө максатында микроконтроллерлерди жана IOTго негизделген түзмөктөрдү түшүнүү үстүндө иштеп жаткам. Ошентип, мен практика үчүн кичинекей үй автоматташтыруу системасын курууну ойлодум. Мен муну аягына чыгара элекмин, бирок баштоо үчүн мен бул постто бөлмөмдүн жарыгын көзөмөлдөө үчүн Raspberry Pi 2ди жана башка электр компоненттерин кантип колдонгонум менен бөлүшөм. Ошондой эле, мен бул жерде Raspberry үчүн алгачкы орнотуу жөнүндө сөз кылбайм, бул үчүн сиз ар кандай окуу куралдарын таба аласыз.

Бирок бул долбоордо мен сизге бул доккер пи сериясындагы продукцияны тааныштырам.

Жабдуулар

Компоненттердин тизмеси:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 Гб 10 -класс TF картасы
  • 1 x DockerPi сериясы 4 канал релелик тактасы (HAT)
  • 1 x [email protected] 52Pi болгон электр менен камсыздоо
  • 4 x Жарык тилкеси
  • 1 x DC туташтыргычы
  • Жарык тилкелери үчүн 1 х 12В электр менен камсыздоо.
  • бир нече зымдар.

1 -кадам: DockerPi 4 каналынын релелик тактасы жөнүндө билүү

DockerPi 4 каналынын релелик тактасы жөнүндө билүү
DockerPi 4 каналынын релелик тактасы жөнүндө билүү
DockerPi 4 каналынын релелик тактасы жөнүндө билүү
DockerPi 4 каналынын релелик тактасы жөнүндө билүү
DockerPi 4 каналынын релелик тактасы жөнүндө билүү
DockerPi 4 каналынын релелик тактасы жөнүндө билүү

DockerPi 4 Channel Relay - IOT тиркемелеринде кеңири колдонулган DockerPi сериясынын мүчөсү.

DockerPi 4 Channel Relay көбүрөөк идеяларга жетүү үчүн салттуу өчүргүчтөрдүн ордуна AC/DC өткөрө алат. DockerPi 4 канал релеси 4кө чейин жетиши мүмкүн жана башка DockerPi кеңейтүү тактасы менен толтурулушу мүмкүн. Эгерде сизге көп убакыт иштөө керек болсо, биз дагы кубаттуулукту камсыз кылуу үчүн DockerPi Power кеңейтүү тактабызды колдонууну сунуштайбыз.

ЭСКЕРТҮҮНҮН ЭСКЕРТҮҮСҮ Улантуудан мурун, мен "ЭЛЕКТР ЭЛЕКТРИ" менен эксперимент жүргүзүүнүн КОРКУНУЧУ жөнүндө ЭСКЕРТКИМ келет. Эгер бир нерсе туура эмес болуп калса, эң жаман кесепети өлүм же жок дегенде өз үйүңдү өрттөө болушу мүмкүн. Андыктан, эгер сиз эмне кылып жатканыңызды түшүнбөсөңүз же бул тажрыйбалуу электриктен жардам сурасаңыз, бул макалада айтылган нерселерди жасоого КОШУЛБаңыз. Баштайлы.

2 -кадам: Өзгөчөлүктөр

Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
Өзгөчөлүктөрү
  • DockerPi сериясы
  • Программалануучу
  • Түздөн -түз башкаруу (программасыз)
  • GPIO пиндерин кеңейтүү
  • 4 канал релеси
  • 4 Alt I2C Addr колдоо
  • Реле абалы Leds колдоо
  • 3A 250V AC колдоо
  • 3A 30V DC
  • Башка Stack тактасы менен стекти орнотууга болот (I2C колдоосун талап кылат)

3 -кадам: Түзмөктүн дарек картасы

Түзмөктүн дарек картасы
Түзмөктүн дарек картасы
Түзмөктүн дарек картасы
Түзмөктүн дарек картасы

Бул тактада өзүнчө реестр дареги бар жана сиз ар бир релени бир буйрук менен башкара аласыз.

Башка талаптар:

Python же C же кабык же Java же башка тил жөнүндө негизги түшүнүк (мен C, python, shell жана java колдоном)

  • Linux системалары жөнүндө негизги түшүнүк
  • Акылдын болушу

Эми, алдыга жылуудан мурун, биз колдоно турган электр компоненттерин түшүнүшүңүз керек:

1. Эстафета:

Реле - бул өтө төмөн чыңалууну киргизүү катары көбүнчө жогорку чыңалууну башкаруу үчүн колдонулган электрдик түзүлүш. Бул түркүккө оролгон катушка жана схеманы жабуу үчүн колдонулган эки кичинекей металл капкактан (түйүндөрдөн) турат. Түйүндүн бири туруктуу, экинчиси кыймылдуу. Катушка аркылуу электр өткөрүлгөндө, ал магниттик талааны жаратат жана кыймылдуу түйүндү статикалык түйүнгө карай тартат жана схема бүтөт. Ошентип, катушканы иштетүү үчүн кичинекей чыңалууну колдонуу менен, биз чындыгында саякат үчүн жогорку чыңалуудагы схеманы бүтүрө алабыз. Ошондой эле, статикалык түйүн катушка физикалык түрдө туташпагандыктан, эгер ката кетсе, катушка иштеп жаткан микроконтроллердин бузулуу мүмкүнчүлүгү өтө аз.

4 -кадам: Эстафетаны Негизги Электр энергиясы менен иштеген Лампа кармагычка туташтырыңыз

Эстафетаны Электр энергиясы менен камсыздалуучу лампа кармагычка туташтырыңыз
Эстафетаны Электр энергиясы менен камсыздалуучу лампа кармагычка туташтырыңыз
Эстафетаны Электр энергиясы менен камсыздалуучу лампа кармагычка туташтырыңыз
Эстафетаны Электр энергиясы менен камсыздалуучу лампа кармагычка туташтырыңыз

Эми татаал бөлүккө биз релени Main Electric менен камсыздалган лампа кармагычка туташтырабыз. Бирок, адегенде мен сизге жарыктын кантип түз күйгүзүү аркылуу күйгүзүлүп жана өчүрүлөрү жөнүндө кыскача түшүнүк бергим келет.

Эми, лампа негизги камсыздоого туташтырылганда, биз муну көбүнчө лампага эки зымды туташтырып жасайбыз. зымдын бири - "нейтралдуу" зым, экинчиси - "терс" зым, ал чынында токту алып жүрөт, ошондой эле ӨЧҮРҮҮ механизмин башкаруу үчүн бүт схемага кошулган коммутатор бар. Ошентип, swith туташканда (же күйгүзүлгөндө) ток лампочкадан жана нейтралдуу зымдан өтүп, схеманы бүтүрөт. Бул лампочканы күйгүзөт. Которгуч күйгүзүлгөндө, ал схеманы бузуп, лампа ӨЧҮП калат. Бул жерде муну түшүндүрүү үчүн чакан схема:

Эми, биздин эксперимент үчүн, биз "Терс зымды" релебиз аркылуу өткөрүшүбүз керек, чынжырды бузуп, реленин которуштуруусун колдонуу менен электр агымын көзөмөлдөшүбүз керек. Ошентип, реле күйгүзүлгөндө, ал схеманы бүтүрүшү керек жана Лампа күйгүзүлүшү керек жана тескерисинче. Толук схема үчүн төмөндөгү диаграмманы караңыз.

5 -кадам: I2Cди конфигурациялоо (Raspberry Pi)

I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)
I2Cди конфигурациялоо (Raspberry Pi)

Sudo raspi-config иштетүү жана ARM өзөгү жана Linux ядро үчүн i2c колдоосун орнотуу үчүн нускамаларды аткарыңыз

Интерфейс Жолдоруна өтүңүз

6 -кадам: Программасыз түз башкаруу (Raspberry Pi)

No1 каналдын релесин күйгүзүңүз

i2cset -y 1 0x10 0x01 0xFF

No1 каналдын релесин өчүрүү

i2cset -y 1 0x10 0x01 0x00

No2 каналдын релесин күйгүзүңүз

i2cset -y 1 0x10 0x02 0xFF

No2 каналдын релесин өчүрүү

i2cset -y 1 0x10 0x02 0x00

No3 каналдын релесин күйгүзүңүз

i2cset -y 1 0x10 0x03 0xFF

No3 каналдын релесин өчүрүү

i2cset -y 1 0x10 0x03 0x00

No4 каналдын релесин күйгүзүңүз

i2cset -y 1 0x10 0x04 0xFF

No4 каналдын релесин өчүрүү

i2cset -y 1 0x10 0x04 0x00

7 -кадам: C тилиндеги программа (Raspberry Pi)

Булак кодун түзүңүз жана ага "relay.c" деп ат бериңиз

#кошуу

#кошуу

#кошуу

#devine DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#dexine ON 0xFF боюнча

#аныктоо OFF 0x00

int main (боштук)

{

printf ("Реледи C / n күйгүзүү");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

үчүн (;;) {

үчүн (i = 1; i <= 4; i ++)

{

printf ("No $ d релесин күйгүзүү", i);

wiringPiI2CWriteReg8 (fd, i, ON);

уйку (200);

printf ("No $ d релесин өчүрүү", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

уйку (200);

}

}

return 0;

}

Аны түзүңүз

gcc релеси.c -элементтерPi -о релеси

Exec It

./relay

8 -кадам: Pythonдогу программа (Raspberry Pi)

Төмөнкү кодду Python 3 менен аткаруу жана smbus китепканасын орнотуу сунушталат:

"Relay.py" деп аталган файл түзүңүз жана төмөнкү кодду чаптаңыз:

t катары импорттоо убактысы

smbus импорттоо

sys импорттоо

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

автобус = smbus. SMBus (DEVICE_BUS)

чын болсо:

аракет кыл:

i үчүн диапазондо (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

уктоо (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

уктоо (1)

KeyboardInterruptдон башка e:

басып чыгаруу ("Циклден чыгуу")

sys.exit ()

* Аны сактап, анан python3 катары иштетиңиз:

python3 релеси.py

9 -кадам: Javaдагы программа (Raspberry Pi)

Жаңы файл түзүңүз: I2CRelay.java жана төмөнкү кодду чаптаңыз:

java.io. IOException импорттоо;

java.util. Arrays импорттоо;

com.pi4j.io.i2c. I2CBus импорттоо;

com.pi4j.io.i2c. I2CDevice импорттоо;

com.pi4j.io.i2c. I2CFactory импорттоо;

com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException импорттоо;

com.pi4j.platform. PlatformAlreadyAssignedException импорттоо;

com.pi4j.util. Console импорттоо;

коомдук класс I2CRelay {

// реленин регистр дареги.

ачык статикалык акыркы int DOCKER_PI_RELAY_ADDR = 0x10;

// эстафета каналы.

жалпы статикалык акыркы байт DOCKER_PI_RELAY_1 = (байт) 0x01;

жалпы статикалык акыркы байт DOCKER_PI_RELAY_2 = (байт) 0x02;

коомдук статикалык акыркы байт DOCKER_PI_RELAY_3 = (байт) 0x03;

жалпы статикалык акыркы байт DOCKER_PI_RELAY_4 = (байт) 0x04;

// Реле абалы

ачык статикалык акыркы байт DOCKER_PI_RELAY_ON = (байт) 0xFF;

жалпы статикалык акыркы байт DOCKER_PI_RELAY_OFF = (байт) 0x00;

public static void main (String args) InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {ыргытат {

акыркы Консоль консолу = жаңы Консол ();

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

I2CDevice түзмөгү = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Эстафетаны күйгүз!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println ("Эстафетаны өчүрүү!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Сунушталууда: