Мазмұны:

Жарықты басқару жүйесі: 9 қадам
Жарықты басқару жүйесі: 9 қадам

Бейне: Жарықты басқару жүйесі: 9 қадам

Бейне: Жарықты басқару жүйесі: 9 қадам
Бейне: Басқа тышты деген осы 😡 2024, Шілде
Anonim
Жарықты басқару жүйесі
Жарықты басқару жүйесі

Жақында мен қауіпсіздікті зерттеу мақсатында микроконтроллерлер мен IOT негізіндегі құрылғыларды түсіну бойынша жұмыс жасадым. Сонымен, мен практикаға арналған шағын үй автоматтандыру жүйесін құруды ойладым. Мен мұны әлі аяқтаған жоқпын, бірақ мен бұл мақалада Raspberry Pi 2 мен басқа да электрлік компоненттерді қалай қолданғанымды бөлісемін. Сонымен қатар, мен мұнда таңқурайға арналған бастапқы орнату туралы айтпаймын, сіз бұл үшін әр түрлі оқулықтарды таба аласыз.

Бірақ бұл жобада мен сізге док -pi сериялы өнімді ұсынамын.

Жабдықтар

Компоненттер тізімі:

  • 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 тұрақты ток қосқышы
  • Жарық жолақтары үшін 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 арналық релесі қосымша идеяларға қол жеткізу үшін дәстүрлі қосқыштардың орнына айнымалы токты/релелік релесін бере алады. DockerPi 4 арналық релесі 4 -ке дейін жиналуы мүмкін және оны басқа DockerPi кеңейту тақтасымен бірге жинауға болады. Егер сізге ұзақ уақыт жұмыс істеу қажет болса, біз сізге көбірек қуат беру үшін DockerPi Power кеңейту тақтасын қолдануды ұсынамыз.

ЕСКЕРТУ ЕСКЕРТУ Әрі қарай жалғастырмас бұрын, мен сізге «Электр желісімен» тәжірибе жасау ҚАУІПТІЛІГІ туралы ЕСКЕРТКІМ келеді. Егер бірдеңе дұрыс болмай қалса, ең ауыр зардап өлім немесе үйді өртеу болуы мүмкін. Сондықтан, егер сіз не істеп жатқаныңызды түсінбесеңіз немесе тәжірибелі электриктің көмегіне жүгінсеңіз, осы мақалада айтылған ешнәрсеге тырыспаңыз. Бастайық.

2 -қадам: ерекшеліктері

Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
Мүмкіндіктер
  • DockerPi сериясы
  • Бағдарламаланатын
  • Тікелей басқару (бағдарламасыз)
  • GPIO түйреуіштерін кеңейтіңіз
  • 4 арналы реле
  • 4 Alt I2C Addr қолдау
  • Реле күйін жарықтандыруды қолдау
  • 3А 250В айнымалы токты қолдау
  • 3А 30В тұрақты ток
  • Басқа стек тақтасымен бірге жиналуы мүмкін, аналық платаның аппараттық құралына тәуелсіз (I2C қолдауын қажет етеді)

3 -қадам: құрылғының мекен -жай картасы

Құрылғының мекенжай картасы
Құрылғының мекенжай картасы
Құрылғының мекенжай картасы
Құрылғының мекенжай картасы

Бұл тақтада бөлек тіркелу мекенжайы бар және сіз әр релені бір пәрменмен басқара аласыз.

Басқа талаптар:

Python немесе C немесе shell немесе Java немесе басқа тіл туралы негізгі түсінік (мен C, python, shell және java қолданамын)

  • Linux жүйелері туралы негізгі түсінік
  • Ақылдың болуы

Енді, алға жылжудан бұрын, біз қолданатын электрлік компоненттерді түсіну қажет:

1. Эстафета:

Реле - бұл әдетте кіріс ретінде өте төмен кернеуді қолдана отырып жоғары кернеуді басқару үшін қолданылатын электрлік құрылғы. Бұл полюске оралған катушкадан және тізбекті жабу үшін қолданылатын екі кішкене металл қақпақшалардан (түйіндерден) тұрады. Бір түйін бекітілген, екіншісі қозғалмалы. Электр катушкадан өткен кезде ол магнит өрісін жасайды және қозғалатын түйінді статикалық түйінге қарай тартады және тізбек аяқталады. Сонымен, катушканы қосу үшін кішкене кернеуді қолдану арқылы біз жоғары кернеудің қозғалу тізбегін толықтай аяқтай аламыз. Сонымен қатар, статикалық түйін катушкаға физикалық түрде қосылмағандықтан, егер бірдеңе дұрыс болмаса, катушканы қуаттандыратын микроконтроллердің зақымдану ықтималдығы өте төмен.

4 -қадам: Эстафетаны негізгі электр желісінен қуат алатын шам ұстағышқа қосыңыз

Эстафетаны негізгі электр желісінен қуат алатын шам ұстағышқа қосыңыз
Эстафетаны негізгі электр желісінен қуат алатын шам ұстағышқа қосыңыз
Реле магистральдық электрмен жабдықталған шам ұстағышқа жалғаңыз
Реле магистральдық электрмен жабдықталған шам ұстағышқа жалғаңыз

Енді күрделі бөлігіне біз релені Main Electric желісінен қуат алатын шам ұстағышқа қосамыз. Бірақ алдымен мен сізге жарықтың тікелей қуат көзі арқылы қалай қосылатыны мен өшетіні туралы қысқаша түсінік бергім келеді.

Енді, электр шамы негізгі қуат көзіне қосылған кезде, біз әдетте шамға екі сымды қосу арқылы жасаймыз. сымның бірі - «бейтарап» сым, ал екіншісі - токты өткізетін «теріс» сым, сонымен қатар ӨШІРУ механизмін басқару үшін бүкіл тізбекке қосқыш қосылады. Осылайша, свит жалғанған кезде (немесе қосулы) ток лампадан және нөлдік сымнан өтіп, тізбекті аяқтайды. Бұл шамды қосады. Коммутаторды қосқанда, ол тізбекті бұзады, ал электр шамы сөнеді. Мұны түсіндіру үшін шағын схема:

Енді, біздің эксперимент үшін, біз реле арқылы «Теріс сымды» өткізіп, тізбекті бұзып, релені ауыстыру арқылы қуат ағынын басқаруға тиіспіз. Сонымен, реле ҚОСЫЛҒАН кезде, ол тізбекті аяқтауы керек, ал Лампочка ҚОСЫЛЫП, керісінше. Толық тізбек үшін төмендегі диаграмманы қараңыз.

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)

№1 арна релесін қосыңыз

i2cset -y 1 0x10 0x01 0xFF

No1 канал релесін өшіріңіз

i2cset -y 1 0x10 0x01 0x00

№ 2 реле релесін қосыңыз

i2cset -y 1 0x10 0x02 0xFF

No2 канал релесін өшіріңіз

i2cset -y 1 0x10 0x02 0x00

№3 арна релесін қосыңыз

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 -қадам: С тіліндегі бағдарлама (Raspberry Pi)

Бастапқы кодты жасаңыз және оны «relay.c» деп атаңыз

#қосу

#қосу

#қосу

#DEVCIE_ADDR 0x10 анықтаңыз

#анықтау РЕЛЕ1 1x01

#анықтаңыз RELAY2 0x02

#анықтаңыз RELAY3 0x03

#РЕЛЕЙ4 0x04

#анықтау 0xFF

#анықта ӨШІРУ 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);

}

}

қайтару 0;

}

Оны құрастырыңыз

gcc релесі.c -байланысPi -o релесі

Орындаңыз

./ реле

8 -қадам: Python бағдарламасы (Raspberry Pi)

Келесі кодты Python 3 көмегімен орындау және smbus кітапханасын орнату ұсынылады:

«Relay.py» деп аталатын файл жасаңыз және келесі кодты қойыңыз:

t ретінде импорттау уақыты

smbus импорттау

жүйені импорттау

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 -дан басқа:

басып шығару («Циклден шығу»)

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 {

// реле регистрінің мекенжайы.

public static final 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);

}

}

Ұсынылған: