Բովանդակություն:

Լույսերի կառավարման համակարգ `9 քայլ
Լույսերի կառավարման համակարգ `9 քայլ

Video: Լույսերի կառավարման համակարգ `9 քայլ

Video: Լույսերի կառավարման համակարգ `9 քայլ
Video: №9 Էգրեգոր: Էգրեգորների տեսակները: 2024, Նոյեմբեր
Anonim
Լույսերի կառավարման համակարգ
Լույսերի կառավարման համակարգ

Վերջերս ես աշխատում էի միկրոկոնտրոլերների և IOT- ի վրա հիմնված սարքերի անվտանգության հետազոտման նպատակների վրա: Այսպիսով, ես մտածեցի պրակտիկայի համար կառուցել փոքր տան ավտոմատացման համակարգ: Ես դեռ պետք է լրացնեմ սա, բայց գործարկման համար ես կկիսվեմ, թե ինչպես եմ օգտագործել Raspberry Pi 2 -ը և որոշ այլ էլեկտրական բաղադրիչներ ՝ այս գրառման մեջ սենյակիս լուսավորությունը վերահսկելու համար: Բացի այդ, ես այստեղ չեմ խոսի Ազնվամորիի սկզբնական կարգավորման մասին, դրա համար կարող եք գտնել տարբեր ձեռնարկներ:

Բայց այս նախագծում ես ձեզ կներկայացնեմ docker pi սերիայի այս արտադրանքը:

Պարագաներ

Բաղադրիչների ցուցակ.

  • 1 x Ազնվամորի 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 x 12V սնուցման աղբյուր:
  • մի քանի լարեր:

Քայլ 1. Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին

Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին
Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին
Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին
Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին
Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին
Իմանալով DockerPi Series 4 Channel Relay Board- ի մասին

DockerPi 4 Channel Relay- ը DockerPi շարքի անդամ է, որն ավելի հաճախ օգտագործվում է IOT ծրագրերում:

DockerPi 4 Channel Relay- ը կարող է փոխանցել AC/DC ավանդական անջատիչների փոխարեն, ավելի շատ գաղափարների հասնելու համար: DockerPi 4 Channel Relay- ը կարող է կուտակել մինչև 4, և կարող է տեղադրվել այլ DockerPi ընդլայնման տախտակի հետ: Եթե երկար աշխատելու կարիք ունեք, մենք նաև խորհուրդ ենք տալիս օգտագործել մեր DockerPi Power ընդլայնման տախտակը ՝ ավելի շատ էներգիա ապահովելու համար:

Ո CAՇԱԴՐՈԹՅԱՆ ՆՇՈՄ Նախքան դեռ շարունակելը, ես կցանկանայի զգուշացնել ձեզ «Էլեկտրական հոսանքի» փորձարկումների Վտանգի մասին: Եթե ինչ -որ բան սխալ է ընթանում, ամենավատ հետևանքը կարող է լինել մահը կամ գոնե ձեր սեփական տունը այրելը: Այսպիսով, խնդրում եմ ՉՓՈՐՁԵԼ անել այս հոդվածում նշված որևէ բան, եթե չեք հասկանում, թե ինչ եք անում, կամ ավելի լավ է դիմել փորձառու էլեկտրիկի օգնությանը: Եկեք սկսենք.

Քայլ 2: Առանձնահատկություններ

Հատկություններ
Հատկություններ
Հատկություններ
Հատկություններ
Հատկություններ
Հատկություններ
  • DockerPi շարք
  • Ծրագրավորվող
  • Ուղղակի վերահսկում (առանց ծրագրավորման)
  • Ընդլայնել GPIO կապում
  • 4 ալիքների ռելե
  • 4 Alt I2C Addr աջակցություն
  • Ռելեի կարգավիճակի լուսարձակների աջակցություն
  • 3A 250V AC աջակցություն
  • 3A 30V DC
  • Կարող է դասավորվել Stack- ի այլ տախտակի հետ անկախ մայր տախտակի սարքավորումներից (պահանջում է I2C աջակցություն)

Քայլ 3: Սարքի հասցեի քարտեզ

Սարքի հասցեի քարտեզ
Սարքի հասցեի քարտեզ
Սարքի հասցեի քարտեզ
Սարքի հասցեի քարտեզ

Այս տախտակն ունի առանձին գրանցման հասցե, և դուք կարող եք պարզապես վերահսկել յուրաքանչյուր ռելե մեկ հրամանով:

Այլ պահանջներ.

Python- ի կամ C- ի կամ shell- ի կամ Java- ի կամ որևէ այլ լեզվի հիմնական իմացություն (ես կօգտագործեմ C, python, shell և java)

  • Linux համակարգերի հիմնական իմացություն
  • Մտքի առկայություն

Այժմ, նախքան առաջ շարժվելը, դուք պետք է հասկանաք այն էլեկտրական բաղադրիչները, որոնք մենք կօգտագործենք.

1. Ռելե:

Ռելեն էլեկտրական սարք է, որն ընդհանուր առմամբ օգտագործվում է բարձր լարման վերահսկման համար ՝ օգտագործելով շատ ցածր լարման որպես մուտքագրում: Սա բաղկացած է մի ձողի շուրջ փաթաթված կծիկից և երկու փոքր մետաղական փեղկերից (հանգույցներից), որոնք օգտագործվում են շրջանը փակելու համար: Հանգույցներից մեկը ամրագրված է, իսկ մյուսը `շարժական: Ամեն անգամ, երբ էլեկտրական հոսանքն անցնում է կծիկով, այն ստեղծում է մագնիսական դաշտ և ձգում շարժվող հանգույցը դեպի ստատիկ հանգույցը, և միացումն ավարտվում է: Այսպիսով, պարզապես փոքր լարման միջոցով կծիկն ուժ տալու համար մենք իրականում կարող ենք ավարտել բարձր լարման ճանապարհորդության շրջանը: Բացի այդ, քանի որ ստատիկ հանգույցը ֆիզիկապես միացված չէ կծիկին, շատ ավելի քիչ հավանականություն կա, որ կծիկն սնուցող Միկրոկոնտրոլերը վնասվի, եթե ինչ -որ բան սխալ է ընթանում:

Քայլ 4. Ռելեը միացրեք էլեկտրական լամպի կրիչին, որը սնուցվում է հիմնական էլեկտրամատակարարման միջոցով

Միացրեք ռելեն լամպի ամրացմանը, որը սնուցվում է հիմնական էլեկտրամատակարարման միջոցով
Միացրեք ռելեն լամպի ամրացմանը, որը սնուցվում է հիմնական էլեկտրամատակարարման միջոցով
Միացրեք ռելեն լամպի ամրացմանը, որը սնուցվում է հիմնական էլեկտրամատակարարման միջոցով
Միացրեք ռելեն լամպի ամրացմանը, որը սնուցվում է հիմնական էլեկտրամատակարարման միջոցով

Հիմա դեպի բարդ մասը, մենք ռելեն կմիացնենք էլեկտրական լամպի ամրացմանը, որը սնուցվում է Main Electric մատակարարմամբ: Բայց, նախ, ես ուզում եմ ձեզ կարճ պատկերացում կազմել այն մասին, թե ինչպես են լույսերը միացված և անջատված ՝ ուղղակի սնուցման միջոցով:

Այժմ, երբ լամպը միացված է հիմնական աղբյուրին, մենք սովորաբար դա անում ենք ՝ երկու լար լարին միացնելով: մետաղալարերից մեկը «չեզոք» մետաղալար է, իսկ մյուսը «բացասական» մետաղալար է, որն իրականում կրում է հոսանքը, ինչպես նաև ամբողջ անջատիչին ավելացված է անջատիչ ՝ ON / OFF մեխանիզմը վերահսկելու համար: Այսպիսով, երբ սվիտը միացված է (կամ միացված է), հոսանքը հոսում է լամպի և չեզոք մետաղալարերի միջով ՝ ավարտելով շրջանը: Սա միացնում է լամպը: Երբ անջատիչը միացված է, այն խափանում է շրջանը, և լամպը անջատվում է: Ահա մի փոքր միացման սխեմա ՝ դա բացատրելու համար.

Այժմ, մեր փորձի համար, մենք պետք է ստիպենք, որ «Բացասական հաղորդալարը» անցնի մեր ռելեով, որպեսզի անջատի շղթան և վերահսկի էներգիայի հոսքը `օգտագործելով ռելեի անջատիչը: Այսպիսով, երբ ռելեն կբացվի, այն պետք է ավարտի միացումը, և լամպը պետք է միանա և հակառակը: Լրիվ սխեմայի համար տես ստորև բերված դիագրամը:

Քայլ 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

Անջատեք թիվ 1 ալիքի ռելեդը

i2cset -y 1 0x10 0x01 0x00

Միացրեք թիվ 2 ալիքի ռելեդը

i2cset -y 1 0x10 0x02 0xFF

Անջատեք թիվ 2 ալիքի ռելեդը

i2cset -y 1 0x10 0x02 0x00

Միացրեք թիվ 3 ալիքի ռելեդը

i2cset -y 1 0x10 0x03 0xFF

Անջատեք թիվ 3 ալիքի ռելեդը

i2cset -y 1 0x10 0x03 0x00

Միացրեք թիվ 4 ալիքի ռելեդը

i2cset -y 1 0x10 0x04 0xFF

Անջատեք թիվ 4 ալիքի ռելեդը

i2cset -y 1 0x10 0x04 0x00

Քայլ 7. Programրագիր C լեզվով (ազնվամորի Pi)

Ստեղծեք սկզբնական կոդ և անվանեք այն «relay.c»

#ներառում

#ներառում

#ներառում

#սահմանեք DEVCIE_ADDR 0x10

#սահմանեք RELAY1 0x01

#սահմանեք RELAY2 0x02

#սահմանել ՌԵԼԵՅ 3 0x03

#սահմանել ՌԵԼԱՅ 4 0x04

#սահմանել 0xFF- ով

#սահմանեք 0x00 զեղչ

int հիմնական (անվավեր)

{

printf ("Միացնել ռելեներ C / n- ում");

int fd;

int i = 0;

fd = էլեկտրագծերPiI2CSetup (DEVICE_ADDR);

համար (;;) {

համար (i = 1; i <= 4; i ++)

{

printf ("միացնել ռելեի թիվ $ d", i);

էլեկտրագծերPiI2CWriteReg8 (fd, i, ON);

քուն (200);

printf ("անջատել ռելեի թիվ $ d", i);

էլեկտրագծերPiI2CWriteReg8 (fd, i, OFF);

քուն (200);

}

}

վերադարձ 0;

}

Կազմել այն:

gcc ռելե. c -lwiringPi -o ռելե

Կատարի՛ր:

./ ռելե

Քայլ 8. Programրագիր Python- ում (Raspberry Pi)

Հետևյալ կոդը խորհուրդ է տրվում կատարել Python 3 -ի միջոցով և տեղադրել smbus գրադարանը.

Ստեղծեք անունով ֆայլ ՝ «relay.py» և տեղադրեք հետևյալ ծածկագիրը.

ներմուծման ժամանակը որպես t

ներմուծել smbus

ներմուծել համակարգեր

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

ավտոբուս = smbus. SMBus (DEVICE_BUS)

իսկական True:

փորձել:

համար միջակայքում (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

տ. քուն (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

տ. քուն (1)

բացառությամբ KeyboardInterrupt as e:

տպել («Դուրս եկեք օղակից»)

sys.exit ()

* Պահպանեք այն և այնուհետև աշխատեք որպես python3:

python3 ռելե. py

Քայլ 9. Javaրագիր Java- ում (Raspberry Pi)

Ստեղծեք նոր ֆայլ ՝ I2CRelay.java անունով և տեղադրեք հետևյալ ծածկագիրը.

ներմուծում java.io. IOException;

ներմուծել java.util. Arrays;

ներմուծել com.pi4j.io.i2c. I2CBus;

ներմուծել com.pi4j.io.i2c. I2CD սարք;

ներմուծել 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);

}

}

Խորհուրդ ենք տալիս: