Satura rādītājs:

Gaismas vadības sistēma: 9 soļi
Gaismas vadības sistēma: 9 soļi

Video: Gaismas vadības sistēma: 9 soļi

Video: Gaismas vadības sistēma: 9 soļi
Video: 💣 Правильный 2.0 TDI - это версия с Common Rail !!! Чем этот мотор лучше версии с насос-форсункой ? 2024, Novembris
Anonim
Gaismas vadības sistēma
Gaismas vadības sistēma

Nesen es strādāju pie izpratnes par mikrokontrolleriem un uz IOT balstītām ierīcēm drošības izpētes nolūkos. Tātad, es domāju izveidot nelielu mājas automatizācijas sistēmu praksei. Man tas vēl ir jāpabeidz, bet iesākumam es šajā ziņojumā pastāstīšu, kā es izmantoju Raspberry Pi 2 un dažas citas elektriskās sastāvdaļas, lai kontrolētu savas istabas apgaismojumu. Šeit es arī nerunāšu par aveņu sākotnējo iestatīšanu, iespējams, atradīsit dažādas apmācības.

Bet šajā projektā es jūs iepazīstināšu ar šo docker pi sērijas produktu.

Piegādes

Komponentu saraksts:

  • 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
  • 1 x 16 GB 10. klases TF karte
  • 1 x DockerPi sērijas 4 kanālu releja dēlis (HAT)
  • 1 x [email protected] barošanas avots, kas ir no 52Pi
  • 4 x gaismas sloksne
  • 1 x līdzstrāvas savienotājs
  • 1 x 12V barošanas avots gaismas sloksnēm.
  • vairāki vadi.

1. darbība. Zināšanas par DockerPi Series 4 Channel Relay Board

Zinot par DockerPi Series 4 Channel Relay Board
Zinot par DockerPi Series 4 Channel Relay Board
Zinot par DockerPi Series 4 Channel Relay Board
Zinot par DockerPi Series 4 Channel Relay Board
Zinot par DockerPi Series 4 Channel Relay Board
Zinot par DockerPi Series 4 Channel Relay Board

DockerPi 4 kanālu relejs ir DockerPi sērijas loceklis, ko biežāk izmanto IOT lietojumprogrammās.

DockerPi 4 kanālu relejs var pārsūtīt AC/DC, nevis tradicionālos slēdžus, lai iegūtu vairāk ideju. DockerPi 4 kanālu releju var sakraut līdz 4, un to var sakraut ar citu DockerPi paplašināšanas plati. Ja jums jādarbojas ilgu laiku, mēs iesakām arī izmantot mūsu DockerPi Power paplašināšanas paneli, lai nodrošinātu lielāku jaudu.

Pirms turpināt, es vēlos BRĪDINĀT par BĪSTAMI eksperimentēt ar “elektrotīklu”. Ja kaut kas noiet greizi, vissliktākās sekas var būt nāve vai vismaz jūsu mājas nodedzināšana. Tāpēc, lūdzu, NEMĒĢINIET darīt neko šajā rakstā minēto, ja nesaprotat, ko darāt, vai labāk izmantojiet kāda pieredzējuša elektriķa palīdzību. Sāksim.

2. solis: funkcijas

Iespējas
Iespējas
Iespējas
Iespējas
Iespējas
Iespējas
  • DockerPi sērija
  • Programmējams
  • Vadība tieši (bez programmēšanas)
  • Paplašiniet GPIO tapas
  • 4 kanālu relejs
  • 4 Alt I2C Addr atbalsts
  • Releja statusa LED atbalsts
  • 3A 250V maiņstrāvas atbalsts
  • 3A 30V DC
  • Var sakraut ar citu kaudzes dēli Neatkarīgi no mātesplates aparatūras (nepieciešams I2C atbalsts)

3. darbība: ierīces adrešu karte

Ierīces adrešu karte
Ierīces adrešu karte
Ierīces adrešu karte
Ierīces adrešu karte

Šai plāksnei ir atsevišķa reģistra adrese, un jūs varat vienkārši kontrolēt katru releju ar vienu komandu.

Citas prasības:

Pamata izpratne par Python vai C vai čaulu vai Java vai jebkuru citu valodu (es izmantošu C, python, shell un java)

  • Pamata izpratne par Linux sistēmām
  • Prāta klātbūtne

Tagad, pirms virzīties uz priekšu, jums būs jāsaprot elektriskie komponenti, kurus mēs izmantosim:

1. Relejs:

Relejs ir elektriska ierīce, ko parasti izmanto augsta sprieguma kontrolei, izmantojot ļoti zemu spriegumu. Tas sastāv no spoles, kas ietīta ap stabu, un diviem maziem metāla atlokiem (mezgliem), ko izmanto ķēdes slēgšanai. Viens no mezgliem ir fiksēts, bet otrs ir pārvietojams. Ikreiz, kad caur spoli tiek izvadīta elektrība, tas rada magnētisko lauku un piesaista kustīgo mezglu statiskā mezgla virzienā, un ķēde tiek pabeigta. Tātad, tikai izmantojot nelielu spriegumu spoles ieslēgšanai, mēs faktiski varam pabeigt ķēdi, lai augstspriegums varētu pārvietoties. Turklāt, tā kā statiskais mezgls nav fiziski savienots ar spoli, ir mazāka iespēja, ka spolei piegādātais mikrokontrolleris tiks sabojāts, ja kaut kas notiks nepareizi.

4. solis: pievienojiet releju spuldzes turētājam, ko darbina galvenais elektrības avots

Pievienojiet releju spuldzes turētājam, ko darbina galvenais elektrības avots
Pievienojiet releju spuldzes turētājam, ko darbina galvenais elektrības avots
Pievienojiet releju spuldzes turētājam, ko darbina galvenais elektrības avots
Pievienojiet releju spuldzes turētājam, ko darbina galvenais elektrības avots

Tagad pie sarežģītās daļas, mēs savienosim releju ar spuldzes turētāju, ko darbina galvenais elektrības avots. Bet vispirms es vēlos sniegt jums īsu priekšstatu par to, kā gaismas tiek ieslēgtas un izslēgtas, izmantojot tiešo barošanas avotu.

Tagad, kad spuldze ir pievienota galvenajai barošanai, mēs parasti to darām, pievienojot spuldzei divus vadus. viens no vadiem ir “neitrāls” vads, bet otrs ir “negatīvais” vads, kas faktiski pārnes strāvu, kā arī visai ķēdei ir pievienots slēdzis, lai kontrolētu ieslēgšanas un izslēgšanas mehānismu. Tātad, kad slēdzis ir pievienots (vai ieslēgts), strāva plūst caur spuldzi un neitrālo vadu, pabeidzot ķēdi. Tas ieslēdz spuldzi. Izslēdzot slēdzi, tas pārtrauc ķēdi un spuldze izslēdzas. Šeit ir neliela shēma, kas to izskaidro:

Tagad mūsu eksperimentam mums vajadzēs likt “negatīvajam vadam” iet caur mūsu releju, lai pārtrauktu ķēdi un kontrolētu strāvas plūsmu, izmantojot releja pārslēgšanu. Tātad, kad relejs ieslēgsies, tam jāpabeidz ķēde, un spuldzei jāieslēdzas un otrādi. Pilnu ķēdi skatiet zemāk esošajā diagrammā.

5. darbība: I2C (Raspberry Pi) konfigurēšana

I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana
I2C (Raspberry Pi) konfigurēšana

Palaidiet sudo raspi-config un izpildiet norādījumus, lai instalētu i2c atbalstu ARM kodolam un Linux kodolam

Dodieties uz saskarnes opcijas

6. darbība: tieša vadība bez programmēšanas (Raspberry Pi)

Ieslēdziet kanāla Nr.1 releju

i2cset -y 1 0x10 0x01 0xFF

Izslēdziet kanāla Nr.1 releju

i2cset -y 1 0x10 0x01 0x00

Ieslēdziet kanāla Nr.2 releju

i2cset -y 1 0x10 0x02 0xFF

Izslēdziet kanāla Nr.2 releju

i2cset -y 1 0x10 0x02 0x00

Ieslēdziet kanāla Nr.3 releju

i2cset -y 1 0x10 0x03 0xFF

Izslēdziet kanāla Nr.3 releju

i2cset -y 1 0x10 0x03 0x00

Ieslēdziet kanāla Nr.4 releju

i2cset -y 1 0x10 0x04 0xFF

Izslēdziet kanāla Nr.4 releju

i2cset -y 1 0x10 0x04 0x00

7. darbība: programma C valodā (Raspberry Pi)

Izveidojiet avota kodu un nosauciet to par "relay.c"

#iekļaut

#iekļaut

#iekļaut

#define DEVCIE_ADDR 0x10

#define RELAY1 0x01

#define RELAY2 0x02

#define RELAY3 0x03

#define RELAY4 0x04

#define ON 0xFF

#define OFF 0x00

int main (anulēts)

{

printf ("Ieslēgt relejus C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

priekš(;;){

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

{

printf ("ieslēdziet releju Nr. $ d", i);

elektroinstalācijaPiI2CWriteReg8 (fd, i, ON);

gulēt (200);

printf ("izslēgt releju Nr. $ d", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

gulēt (200);

}

}

atgriezties 0;

}

Apkopojiet to

gcc relejs.c -lvadsPi -o relejs

Izpildi to

./relejs

8. darbība: programma programmā Python (Raspberry Pi)

Šo kodu ieteicams izpildīt, izmantojot Python 3, un instalēt smbus bibliotēku:

Izveidojiet failu ar nosaukumu "relay.py" un ielīmējiet šādu kodu:

importa laiks kā t

importēt smbus

importēt sistēmu

IERĪCE_BUS = 1

IERĪCE_ADDR = 0x10

autobuss = smbus. SMBus (DEVICE_BUS)

kamēr taisnība:

pamēģini:

i diapazonā (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

t.smigt (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

t.smigt (1)

izņemot tastatūru Pārtraukt kā e:

drukāt ("Iziet no cilpas")

sys.exit ()

* Saglabājiet to un pēc tam palaidiet to kā python3:

python3 relejs.py

9. darbība: programma programmā Java (Raspberry Pi)

Izveidojiet jaunu failu ar nosaukumu: I2CRelay.java un ielīmējiet šādu kodu:

importēt java.io. IOException;

importēt java.util. Arrays;

importēt com.pi4j.io.i2c. I2CBus;

importēt com.pi4j.io.i2c. I2CDevice;

importēt com.pi4j.io.i2c. I2CFactory;

importēt com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;

importēt com.pi4j.platform. PlatformAlreadyAssignedException;

importēt com.pi4j.util. Console;

publiskā klase I2CRelay {

// releja reģistra adrese.

public static final int DOCKER_PI_RELAY_ADDR = 0x10;

// releja kanāls.

publisks statisks galīgais baits DOCKER_PI_RELAY_1 = (baits) 0x01;

publisks statisks galīgais baits DOCKER_PI_RELAY_2 = (baits) 0x02;

publisks statisks galīgais baits DOCKER_PI_RELAY_3 = (baits) 0x03;

publisks statisks galīgais baits DOCKER_PI_RELAY_4 = (baits) 0x04;

// Releja statuss

publisks statisks galīgais baits DOCKER_PI_RELAY_ON = (baits) 0xFF;

publisks statisks galīgais baits DOCKER_PI_RELAY_OFF = (baits) 0x00;

public static void main (String args) metieni InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

galīgā konsoles konsole = new Console ();

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

I2CDevice ierīce = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Ieslēdziet releju!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Vītne.miega (500);

console.println ("Izslēgt releju!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Ieteicams: