Isi kandungan:

Sistem Kawalan Lampu: 9 Langkah
Sistem Kawalan Lampu: 9 Langkah

Video: Sistem Kawalan Lampu: 9 Langkah

Video: Sistem Kawalan Lampu: 9 Langkah
Video: BELAJAR CODING ARDUINO DARI DASAR (MEMPROGRAM LED) PART 1 2024, November
Anonim
Sistem Kawalan Lampu
Sistem Kawalan Lampu

Baru-baru ini saya berusaha memahami peranti mikrokontroler dan IOT untuk tujuan Penyelidikan Keselamatan. Jadi, saya terfikir untuk membina sistem automasi rumah kecil untuk latihan. Saya belum menyelesaikannya, tetapi untuk permulaan saya akan berkongsi bagaimana saya menggunakan Raspberry Pi 2 dan beberapa komponen elektrik lain untuk mengawal pencahayaan bilik saya dalam siaran ini. Juga, saya tidak akan membincangkan mengenai Persediaan awal untuk Raspberry di sini, anda mungkin mendapat pelbagai tutorial untuk itu.

Tetapi dalam projek ini, saya akan memperkenalkan produk siri docker pi ini kepada anda.

Bekalan

Senarai Komponen:

  • 1 x Raspberry Pi 3B + / 3B / Zero / Zero W / 4B /
  • Kad TF 1 x 16GB Kelas 10
  • 1 x DockerPi siri 4 Channel Relay Board (HAT)
  • 1 x [email protected] bekalan kuasa dari 52Pi
  • 4 x Jalur cahaya
  • 1 x penyambung DC
  • Bekalan kuasa 1 x 12V untuk jalur cahaya.
  • beberapa wayar.

Langkah 1: Mengetahui Mengenai DockerPi Series 4 Channel Relay Board

Mengetahui Mengenai DockerPi Series 4 Channel Relay Board
Mengetahui Mengenai DockerPi Series 4 Channel Relay Board
Mengetahui Mengenai DockerPi Series 4 Channel Relay Board
Mengetahui Mengenai DockerPi Series 4 Channel Relay Board
Mengetahui Mengenai DockerPi Series 4 Channel Relay Board
Mengetahui Mengenai DockerPi Series 4 Channel Relay Board

DockerPi 4 Channel Relay adalah ahli DockerPi Series, lebih kerap digunakan dalam aplikasi IOT.

DockerPi 4 Channel Relay boleh menyampaikan AC / DC, bukannya suis tradisional, untuk mendapatkan lebih banyak idea. Relay Saluran DockerPi 4 dapat menumpuk hingga 4, dan dapat ditumpuk dengan papan pengembangan DockerPi yang lain. Sekiranya anda perlu berjalan lama, kami juga mengesyorkan agar anda menggunakan papan pengembangan DockerPi Power kami untuk memberikan lebih banyak tenaga.

CATATAN PERHATIANSebelum kita melangkah lebih jauh, saya ingin MEMBERI PERINGATAN kepada anda mengenai BAHAYA bereksperimen dengan "Mains Electricity". Sekiranya ada yang salah, akibatnya yang paling teruk adalah kematian atau sekurang-kurangnya membakar rumah anda sendiri. Oleh itu, JANGAN BERHATI-HATI untuk melakukan perkara yang disebutkan dalam artikel ini jika anda tidak memahami apa yang anda lakukan atau lebih baik mengambil bantuan daripada juruelektrik yang berpengalaman. Mari kita mulakan.

Langkah 2: Ciri-ciri

ciri-ciri
ciri-ciri
ciri-ciri
ciri-ciri
ciri-ciri
ciri-ciri
  • Siri DockerPi
  • Boleh diprogramkan
  • Kawal secara langsung (tanpa pengaturcaraan)
  • Panjangkan Pin GPIO
  • Relay 4 Saluran
  • 4 Sokongan Alt I2C Addr
  • Sokongan Status Relay Leds
  • Sokongan AC 3A 250V
  • 3A 30V DC
  • Boleh Stack dengan Stack board lain Tidak bergantung pada perkakasan papan utama (memerlukan sokongan I2C)

Langkah 3: Peta Alamat Peranti

Peta Alamat Peranti
Peta Alamat Peranti
Peta Alamat Peranti
Peta Alamat Peranti

Papan ini mempunyai alamat pendaftaran yang berasingan, dan anda hanya boleh mengawal setiap geganti dengan satu perintah.

Keperluan lain:

Pemahaman Asas Python atau C atau shell atau Java atau bahasa lain (saya akan menggunakan C, python, shell, dan java)

  • Pemahaman asas mengenai sistem Linux
  • Kehadiran Minda

Sekarang, sebelum melangkah ke hadapan, anda perlu memahami komponen elektrik yang akan kita gunakan:

1. geganti:

Relay adalah alat elektrik yang biasanya digunakan untuk mengawal voltan tinggi menggunakan voltan yang sangat rendah sebagai Input. Ini terdiri daripada gegelung yang melilit tiang dan dua kepak logam kecil (simpul) yang digunakan untuk menutup litar. Salah satu nod tetap dan yang lain boleh bergerak. Setiap kali elektrik dihantar melalui gegelung, ia menghasilkan medan magnet dan menarik nod bergerak ke arah nod statik dan litar selesai. Jadi, hanya dengan menggunakan voltan kecil untuk menghidupkan gegelung, kita sebenarnya dapat melengkapkan litar untuk voltan tinggi untuk bergerak. Juga, kerana simpul statik tidak disambungkan secara fizikal ke gegelung, kemungkinan mikrokontroler yang menggerakkan gegelung menjadi rosak sekiranya ada yang tidak kena.

Langkah 4: Sambungkan Relay ke Pemegang Mentol Dikuasakan oleh Bekalan Elektrik Utama

Sambungkan Relay ke Pemegang Mentol Dikuasakan oleh Bekalan Elektrik Utama
Sambungkan Relay ke Pemegang Mentol Dikuasakan oleh Bekalan Elektrik Utama
Sambungkan Relay ke Pemegang Mentol Dikuasakan oleh Bekalan Elektrik Utama
Sambungkan Relay ke Pemegang Mentol Dikuasakan oleh Bekalan Elektrik Utama

Sekarang ke bahagian yang sukar, Kami akan menyambungkan relay ke pemegang Bulb yang dikuasakan oleh bekalan elektrik utama. Tetapi, pertama saya ingin memberi anda idea ringkas mengenai bagaimana lampu dihidupkan dan dimatikan melalui bekalan kuasa langsung.

Sekarang, apabila bola lampu disambungkan ke bekalan utama, kita biasanya melakukan ini dengan menghubungkan dua wayar ke mentol. salah satu wayar adalah wayar "Neutral" dan yang lain adalah wayar "Negatif" yang benar-benar membawa arus, juga ada suis yang ditambahkan ke seluruh litar untuk mengawal mekanisme ON OFF. Oleh itu, apabila swith disambungkan (Atau Dihidupkan) arus mengalir melalui mentol dan wayar neutral, menyelesaikan litar. Ini menyalakan lampu. Apabila suis dihidupkan, ia akan mematikan litar dan bola lampu mati. Berikut adalah gambarajah litar kecil untuk menjelaskan perkara ini:

Sekarang, untuk eksperimen kami, kami perlu membuat "Negative Wire" melalui relay kami untuk mematahkan litar dan mengawal aliran daya menggunakan peralihan relay. Oleh itu, apabila geganti akan menyala, ia harus melengkapkan litar dan Mentol lampu harus menyala dan sebaliknya. Rujuk rajah di bawah untuk litar Penuh.

Langkah 5: Mengkonfigurasi I2C (Raspberry Pi)

Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)
Mengkonfigurasi I2C (Raspberry Pi)

Jalankan sudo raspi-config dan ikuti arahan untuk memasang sokongan i2c untuk teras ARM dan kernel linux

Pergi ke Pilihan Antaramuka

Langkah 6: Kawalan Langsung Tanpa Pengaturcaraan (Raspberry Pi)

Hidupkan relay saluran No.1

i2cset -y 1 0x10 0x01 0xFF

Matikan relay saluran No.1

i2cset -y 1 0x10 0x01 0x00

Hidupkan relay saluran No.2

i2cset -y 1 0x10 0x02 0xFF

Matikan relay saluran No.2

i2cset -y 1 0x10 0x02 0x00

Hidupkan geganti saluran No.3

i2cset -y 1 0x10 0x03 0xFF

Matikan geganti saluran No.3

i2cset -y 1 0x10 0x03 0x00

Hidupkan geganti saluran No.4

i2cset -y 1 0x10 0x04 0xFF

Matikan relay saluran No.4

i2cset -y 1 0x10 0x04 0x00

Langkah 7: Program dalam Bahasa C (Raspberry Pi)

Buat kod sumber dan beri nama "relay.c"

#sertakan

#sertakan

#sertakan

#tentukan DEVCIE_ADDR 0x10

#tentukan RELAY1 0x01

#tentukan RELAY2 0x02

#tentukan RELAY3 0x03

#tentukan RELAY4 0x04

#tentukan ON 0xFF

#tentukan MATI 0x00

int utama (tidak sah)

{

printf ("Hidupkan Relay dalam C / n");

int fd;

int i = 0;

fd = wiringPiI2CSetup (DEVICE_ADDR);

untuk (;;) {

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

{

printf ("hidupkan geganti No. $ d", i);

pendawaianPiI2CWriteReg8 (fd, i, ON);

tidur (200);

printf ("matikan relay No. $ d", i);

pendawaianPiI2CWriteReg8 (fd, i, OFF);

tidur (200);

}

}

pulangan 0;

}

Menyusunnya

geganti gcc.c -lwiringPi -o

Laksanakannya

./kemasukan

Langkah 8: Program di Python (Raspberry Pi)

Kod berikut disyorkan untuk dilaksanakan menggunakan Python 3 dan pasang perpustakaan smbus:

Buat fail yang dinamakannya: "relay.py" dan tampal kod berikut:

masa import sebagai t

import smbus

import sys

PERANGKAT_BUS = 1

DEVICE_ADDR = 0x10

bas = smbus. SMBus (DEVICE_BUS)

Walaupun Betul:

cuba:

untuk i dalam jarak (1, 5):

bas.write_byte_data (DEVICE_ADDR, i, 0xFF)

tidur. (1)

bas.write_byte_data (DEVICE_ADDR, i, 0x00)

tidur. (1)

kecuali KeyboardInterrupt sebagai e:

cetak ("Keluar dari Gelung")

sys.exit ()

* Simpan dan kemudian jalankan sebagai python3:

python3 relay.py

Langkah 9: Program di Java (Raspberry Pi)

Buat fail baru bernama: I2CRelay.java dan tampal kod berikut:

import java.io. IOException;

import java.util. Arrays;

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

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

import com.pi4j.platform. PlatformAlreadyAssignedException;

import com.pi4j.util. Console;

kelas awam I2CRelay {

// alamat daftar relay.

int akhir statik awam DOCKER_PI_RELAY_ADDR = 0x10;

// saluran geganti.

bait akhir statik awam DOCKER_PI_RELAY_1 = (bait) 0x01;

bait akhir statik awam DOCKER_PI_RELAY_2 = (bait) 0x02;

bait akhir statik awam DOCKER_PI_RELAY_3 = (bait) 0x03;

bait akhir statik awam DOCKER_PI_RELAY_4 = (bait) 0x04;

// Status geganti

bait akhir statik awam DOCKER_PI_RELAY_ON = (bait) 0xFF;

bait akhir statik awam DOCKER_PI_RELAY_OFF = (bait) 0x00;

main statik kekosongan awam (String args) melemparkan InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {

konsol terakhir Konsol = Konsol baru ();

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

Peranti I2CDevice = i2c.getDevice (DOCKER_PI_RELAY_ADDR);

console.println ("Hidupkan Relay!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);

Thread.sleep (500);

console.println ("Matikan Relay!");

device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);

}

}

Disyorkan: