Mündəricat:

İşıq İdarəetmə Sistemi: 9 addım
İşıq İdarəetmə Sistemi: 9 addım

Video: İşıq İdarəetmə Sistemi: 9 addım

Video: İşıq İdarəetmə Sistemi: 9 addım
Video: Pərdə arxası #2 - Fahişə həyatı - uşaqlar baxmasın 2024, Iyul
Anonim
İşıq İdarəetmə Sistemi
İşıq İdarəetmə Sistemi

Bu yaxınlarda Təhlükəsizlik Araşdırma məqsədləri üçün Mikrokontrollerləri və IOT əsaslı cihazları anlamaq üzərində işləyirəm. Beləliklə, təcrübə üçün kiçik bir ev avtomatlaşdırma sistemi qurmağı düşündüm. Bunu hələ tamamlamamışam, amma başlanğıcda bu yazıda otağımın işıqlandırmasını idarə etmək üçün Raspberry Pi 2 və digər elektrik komponentlərini necə istifadə etdiyimi bölüşəcəyəm. Ayrıca, burada Raspberry üçün ilkin quraşdırma haqqında danışmayacağam, bunun üçün müxtəlif dərsliklər tapa bilərsiniz.

Ancaq bu layihədə bu docker pi seriyası məhsulunu sizə təqdim edəcəyəm.

Təchizat

Komponent siyahısı:

  • 1 x Raspberry Pi 3B+/3B/Sıfır/Sıfır W/4B/
  • 1 x 16GB Class 10 TF kartı
  • 1 x DockerPi seriyası 4 Kanal Röle Kartı (HAT)
  • 52Pi olan 1 x [email protected] enerji təchizatı
  • 4 x İşıq şeridi
  • 1 x DC konnektoru
  • İşıq şeritləri üçün 1 x 12V enerji təchizatı.
  • bir neçə tel.

Addım 1: DockerPi Series 4 Channel Relay Board haqqında məlumat

DockerPi Series 4 Channel Relay Board haqqında məlumat
DockerPi Series 4 Channel Relay Board haqqında məlumat
DockerPi Series 4 Channel Relay Board haqqında məlumat
DockerPi Series 4 Channel Relay Board haqqında məlumat
DockerPi Series 4 Channel Relay Board haqqında məlumat
DockerPi Series 4 Channel Relay Board haqqında məlumat

DockerPi 4 Kanal Relay, IOT tətbiqlərində daha çox istifadə edilən DockerPi Seriyasının üzvüdür.

DockerPi 4 Kanal Relay, daha çox fikir əldə etmək üçün ənənəvi açarlar əvəzinə AC/DC ötürə bilər. DockerPi 4 Kanal Rölesi 4 -ə qədər yığa bilər və digər DockerPi genişləndirmə lövhəsi ilə yığışdırıla bilər. Uzun müddət işləməlisinizsə, daha çox güc təmin etmək üçün DockerPi Power genişləndirmə lövhəmizi istifadə etməyi də məsləhət görürük.

DİQQƏT QEYDİ Davam etməzdən əvvəl "Şəbəkə Elektrik" ini sınamaq təhlükəsi ilə əlaqədar sizi xəbərdar etmək istərdim. Bir şey səhv olarsa ən pis nəticə ölüm və ya ən azından öz evinizi yandırmaq ola bilər. Buna görə də, nə etdiyinizi başa düşmürsünüzsə və ya təcrübəli bir elektrikçidən kömək istəsəniz, bu məqalədə göstərilən heç bir şeyi etməyə çalışmayın. Gəlin başlayaq.

Addım 2: Xüsusiyyətlər

Xüsusiyyətləri
Xüsusiyyətləri
Xüsusiyyətləri
Xüsusiyyətləri
Xüsusiyyətləri
Xüsusiyyətləri
  • DockerPi Seriyası
  • Proqramlaşdırıla bilən
  • Birbaşa nəzarət (proqramlaşdırmadan)
  • GPIO pinlərini genişləndirin
  • 4 Kanal Rölesi
  • 4 Alt I2C Addr Dəstəyi
  • Relay Status Led Dəstəyi
  • 3A 250V AC dəstəyi
  • 3A 30V DC
  • Anakartın aparatından asılı olmayan digər Stack lövhələri ilə yığa bilərsiniz (I2C dəstəyi tələb olunur)

Addım 3: Cihaz Ünvan Xəritəsi

Cihaz Ünvan Xəritəsi
Cihaz Ünvan Xəritəsi
Cihaz Ünvan Xəritəsi
Cihaz Ünvan Xəritəsi

Bu lövhənin ayrı qeyd ünvanı var və hər röleyi bir əmrlə idarə edə bilərsiniz.

Digər tələblər:

Python və ya C, shell və ya Java və ya başqa bir dil haqqında əsas anlayış (C, python, shell və java istifadə edəcəm)

  • Linux sistemləri haqqında əsas anlayış
  • Ağlın Varlığı

İndi irəliləməzdən əvvəl istifadə edəcəyimiz elektrik komponentlərini başa düşməlisiniz:

1. Relay:

Röle, giriş olaraq çox aşağı gərginlik istifadə edərək ümumiyyətlə yüksək gərginliyi idarə etmək üçün istifadə olunan bir elektrik cihazdır. Bu, bir dirəyə sarılmış bir bobindən və dövrəni bağlamaq üçün istifadə olunan iki kiçik metal qapaqdan (qovşaqdan) ibarətdir. Düyünlərdən biri sabitdir, digəri isə hərəkətlidir. Bobin içindən bir elektrik keçirildikdə, bir maqnit sahəsi yaradır və hərəkət edən düyünü statik düyünə doğru çəkir və dövrə tamamlanır. Beləliklə, bobini gücləndirmək üçün kiçik bir gərginlik tətbiq edərək, yüksək gərginliyin hərəkət etməsi üçün dövrəni tamamlaya bilərik. Ayrıca, statik düyün bobinə fiziki olaraq bağlı olmadığından, bir şey səhv olarsa, bobini işlədən Mikrokontrolörün zədələnmə ehtimalı çox azdır.

Addım 4: Röleyi Əsas Elektrik Təchizatı ilə Gücləndirilən Ampul Tutucusuna qoşun

Röleyi Əsas Elektrik Təchizatı ilə Gücləndirilən Ampul Tutucusuna qoşun
Röleyi Əsas Elektrik Təchizatı ilə Gücləndirilən Ampul Tutucusuna qoşun
Röleyi Əsas Elektrik Təchizatı ilə Gücləndirilən Ampul Tutucusuna qoşun
Röleyi Əsas Elektrik Təchizatı ilə Gücləndirilən Ampul Tutucusuna qoşun

İndi çətin hissəyə, röleyi Ana Elektrik təchizatı ilə işləyən Ampul tutucusuna bağlayacağıq. Ancaq əvvəlcə işıqların birbaşa enerji təchizatı vasitəsi ilə AÇILIŞI və SÖNDÜRÜLMƏSİ haqqında qısa bir fikir vermək istəyirəm.

İndi, ampul əsas təchizata qoşulduqda, ümumiyyətlə bunu iki teli lampaya bağlayaraq edirik. teldən biri "Neytral" teldən, digəri isə əslində cərəyanı daşıyan "Mənfi" teldəndir, AÇMA mexanizmini idarə etmək üçün bütün dövrə əlavə edilmiş bir keçid var. Beləliklə, swith bağlandıqda (və ya açıldıqda), cərəyan lampanı və neytral teldən keçir və dövrəni tamamlayır. Bu, ampulü AÇIR. Şalter açıldıqda dövrəni pozur və ampul sönür. Bunu izah etmək üçün kiçik bir dövrə diaqramı:

İndi sınağımız üçün, dövrəni pozmaq və rölin keçidindən istifadə edərək güc axını idarə etmək üçün "Mənfi Naqilin" röleyimizdən keçməsini təmin etməliyik. Belə ki, röle AÇIŞ edəcəyi zaman dövrəni tamamlamalı və ampul AÇILMALIDIR və əksinə. Tam dövrə üçün aşağıdakı diaqrama baxın.

Addım 5: I2C (Raspberry Pi) konfiqurasiyası

I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası
I2C (Raspberry Pi) konfiqurasiyası

Sudo raspi-config proqramını işə salın və ARM nüvəsi və linux nüvəsi üçün i2c dəstəyi qurmaq üçün göstərişlərə əməl edin.

İnterfeys Seçimlərinə keçin

Addım 6: Proqramlaşdırmadan birbaşa nəzarət (Raspberry Pi)

1 nömrəli kanal rölesini yandırın

i2cset -y 1 0x10 0x01 0xFF

1 nömrəli kanal rölesini söndürün

i2cset -y 1 0x10 0x01 0x00

2 nömrəli kanal rölesini yandırın

i2cset -y 1 0x10 0x02 0xFF

2 nömrəli kanal rölesini söndürün

i2cset -y 1 0x10 0x02 0x00

3 nömrəli kanal rölesini yandırın

i2cset -y 1 0x10 0x03 0xFF

3 nömrəli kanal rölesini söndürün

i2cset -y 1 0x10 0x03 0x00

4 nömrəli kanal rölesini yandırın

i2cset -y 1 0x10 0x04 0xFF

4 nömrəli kanal rölesini söndürün

i2cset -y 1 0x10 0x04 0x00

Addım 7: C dilində proqram (Raspberry Pi)

Mənbə kodu yaradın və "relay.c" adlandırın

#daxil edin

#daxil edin

#daxil edin

#devine DEVCIE_ADDR 0x10

#dele RELAY1 0x01

#RELAY2 0x02

#dele RELAY3 0x03

#dele RELAY4 0x04

0xFF ON #define

#təyin 0x00 OFF

int main (boş)

{

printf ("C -də röleyi yandırın / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

üçün (;;) {

üçün (i = 1; i <= 4; i ++)

{

printf ("$ d rölesini açın", i);

wiringPiI2CWriteReg8 (fd, i, ON);

yuxu (200);

printf ("$ d rölesini söndürün", i);

wiringPiI2CWriteReg8 (fd, i, OFF);

yuxu (200);

}

}

qaytarma 0;

}

Bunu tərtib edin

gcc rölesi.c -ötürməPi -o rölesi

İcra et

./relay

Addım 8: Pythonda proqram (Raspberry Pi)

Aşağıdakı kodun Python 3 istifadə edərək icra edilməsi və smbus kitabxanasının quraşdırılması tövsiyə olunur:

"Relay.py" adlı bir fayl yaradın və aşağıdakı kodu yapışdırın:

t kimi idxal vaxtı

smbus idxal edin

sys idxal edin

DEVICE_BUS = 1

DEVICE_ADDR = 0x10

avtobus = smbus. SMBus (DEVICE_BUS)

Doğru halda:

cəhd edin:

i üçündür (1, 5):

bus.write_byte_data (DEVICE_ADDR, i, 0xFF)

yuxu (1)

bus.write_byte_data (DEVICE_ADDR, i, 0x00)

yuxu (1)

e kimi KeyboardInterrupt istisna olmaqla:

çap et ("Döngədən çıx")

sys.exit ()

* Saxlayın və sonra python3 olaraq işləyin:

python3 rölesi.py

Addım 9: Java -da proqram (Raspberry Pi)

I2CRelay.java adlı yeni bir fayl yaradın və aşağıdakı kodu yapışdırın:

java.io. IOException idxal edin;

java.util. Arrays idxal edin;

com.pi4j.io.i2c. I2CBus idxal edin;

com.pi4j.io.i2c. I2CDevice idxal edin;

com.pi4j.io.i2c. I2CFactory idxal edin;

com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException idxal edin;

com.pi4j.platform. PlatformAlreadyAssignedException idxal edin;

com.pi4j.util. Console idxal edin;

ictimai sinif I2CRelay {

// rölin qeydiyyat ünvanı.

ümumi statik final int DOCKER_PI_RELAY_ADDR = 0x10;

// relay kanalı.

ümumi statik son bayt DOCKER_PI_RELAY_1 = (bayt) 0x01;

ümumi statik son bayt DOCKER_PI_RELAY_2 = (bayt) 0x02;

ümumi statik son bayt DOCKER_PI_RELAY_3 = (bayt) 0x03;

ümumi statik son bayt DOCKER_PI_RELAY_4 = (bayt) 0x04;

// Relay statusu

ümumi statik son bayt DOCKER_PI_RELAY_ON = (bayt) 0xFF;

ümumi statik son bayt DOCKER_PI_RELAY_OFF = (bayt) 0x00;

public static void main (String args) InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {atır

son Konsol konsolu = yeni Konsol ();

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

I2CDevice cihazı = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Röleyi yandırın!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println ("Röleyi söndürün!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Tövsiyə: