Talaan ng mga Nilalaman:

Pag-aautomat ng Home Sa Raspberry Pi Gamit ang Relay Board: 7 Mga Hakbang
Pag-aautomat ng Home Sa Raspberry Pi Gamit ang Relay Board: 7 Mga Hakbang

Video: Pag-aautomat ng Home Sa Raspberry Pi Gamit ang Relay Board: 7 Mga Hakbang

Video: Pag-aautomat ng Home Sa Raspberry Pi Gamit ang Relay Board: 7 Mga Hakbang
Video: Paano gamitin ang 12V Relay na may LED Display Delay Timer module na P1 hanggang P4 - Robojax 2024, Nobyembre
Anonim
Pag-aautomat ng Home Sa Raspberry Pi Gamit ang Relay Board
Pag-aautomat ng Home Sa Raspberry Pi Gamit ang Relay Board

Ang isang pangunahing bilang ng mga tao ay nais ng mahusay na ginhawa ngunit sa mga makatuwirang presyo. Nakakaramdam kami ng tamad na sindihan ang mga bahay tuwing gabi kapag ang araw ay lumubog at sa susunod na umaga, pinapatay muli ang mga ilaw O upang i-on / i-on ang Air Conditioner / Fan / Heater tulad ng panahon o temperatura ng kuwarto.

Ang isang murang solusyon upang maiwasan ang labis na gawaing ito ng pagpatay ng mga kagamitan kapag kinakailangan ay narito. Ito ay upang i-automate ang iyong mga bahay sa medyo mas kaunting mga gastos gamit ang simpleng mga plug at play na produkto. Gumagana ito tulad ng kapag ang temperatura ay tumataas o bumaba, pinapagana nito ang Air conditioner o heater, ayon sa pagkakabanggit. Gayundin, kung kinakailangan, makakatulong itong mag-on o ang mga ilaw ng iyong tahanan nang hindi manu-manong binubuksan ang mga ito. At marami pang mga kagamitan sa bahay ang maaaring kontrolin. I-automate ang mundo. Simulan na namin ang iyong tahanan.

Hakbang 1: Kinakailangan ang Hardware

Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware

Gumagamit kami ng:

Raspberry Pi

Ang Raspberry Pi ay isang solitary board Linux based PC. Ang maliit na PC na ito ay naglalagay ng isang suntok sa pagrehistro ng lakas, ginamit bilang isang piraso ng mga ehersisyo sa electronics, at mga pagpapatakbo ng PC tulad ng mga spreadsheet, pagproseso ng salita, web surfing, at email, at mga laro

I2C Shield o I2C Header

Ang INPI2 (I2C adapter) ay nagbibigay ng Raspberry Pi 2/3 isang I²C port para magamit sa maraming mga I2C device

I2C Relay controller MCP23008

Ang MCP23008 mula sa Microchip ay isang Integrated port expander na kumokontrol sa walong relay sa pamamagitan ng I²C bus. Maaari kang magdagdag ng higit pang mga relay, digital I / O, analog sa mga digital converter, sensor, at iba pang mga aparato gamit ang pinagsamang port ng pagpapalawak ng I²C

MCP9808 Temperatura Sensor

Ang MCP9808 ay isang sensor ng temperatura ng mataas na katumpakan na nagbibigay ng naka-calibrate, naka-linya na signal ng sensor sa digital, format na I²C

Sensor ng ilaw ng TCS34903

Ang TCS34903 ay isang produkto ng kulay ng pamilya ng sensor na nagbibigay ng halaga ng bahagi ng RGB ng ilaw at kulay

I2C sa pagkonekta ng cable

Ang I2C na nagkokonekta na cable ay isang 4-wired cable na kung saan ay sinadya para sa komunikasyon ng I2C sa pagitan ng dalawang mga aparato ng I2C na konektado sa pamamagitan nito

Micro USB adapter

Upang mapalakas ang Raspberry Pi, kailangan namin ng isang Micro USB cable

12V power adapter para sa Relay board

Ang MCP23008 Relay controller ay gumagana sa 12V panlabas na lakas at maaari itong maibigay gamit ang isang 12V Power Adapter

Maaari kang bumili ng produkto sa pamamagitan ng pag-click sa kanila. Gayundin, maaari kang makahanap ng mas mahusay na materyal sa Dcube Store.

Hakbang 2: Hardware Hookup

Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup

Ang mga kinakailangang koneksyon (sumangguni sa mga larawan) ay ang mga sumusunod:

  1. Gagana ito sa paglipas ng I2C. Kumuha ng isang kalasag I2C para sa Raspberry pi at dahan-dahang ikonekta ito sa mga GPIO pin ng Raspberry Pi.
  2. Ikonekta ang isang dulo ng I2C cable sa in-port ng TCS34903 at ang kabilang dulo sa kalasag I2C.
  3. Ikonekta ang in-pot ng sensor ng MCP9808 sa labas ng TCS34903 gamit ang I2C cable.
  4. Ikonekta ang in-pot ng MCP23008 sa sensor ng MCP9808 gamit ang I2C cable.
  5. Ikonekta din ang Ethernet cable sa Raspberry Pi. Maaari ring magamit ang Wi-Fi router para sa pareho.
  6. Pagkatapos, paganahin ang Raspberry Pi gamit ang isang Micro USB adapter at MCP23008 Relay board gamit ang 12V adapter.
  7. Panghuli, ikonekta ang ilaw sa unang relay at isang fan o heater na may pangalawang relay. Maaari mong palawakin ang module o maaaring ikonekta ang maraming mga aparato sa mga relay.

Hakbang 3: Pakikipag-usap Gamit ang I2C Protocol

Upang paganahin ang Raspberry Pi I2C, magpatuloy tulad ng nabanggit sa ibaba:

  1. Sa terminal, i-type ang sumusunod na utos upang buksan ang mga setting ng pagsasaayos: sudo raspi-config
  2. Piliin ang "Mga Advanced na Pagpipilian" dito.
  3. Piliin ang "I2C" at I-click ang "Oo".
  4. I-reboot ang system upang i-set up ito alinsunod sa mga pagbabagong ginawa gamit ang pag-reboot ng utos.

Hakbang 4: Programming ang Modyul

Ang gantimpala ng paggamit ng Raspberry Pi ay, nagbibigay sa iyo ng kakayahang umangkop upang pumili ng isang wika ng programa kung saan nais mong i-program upang ma-interface ang sensing device sa Raspberry Pi. Ginagamit ang kalamangan na ito ng Raspberry Pi, ipinapakita namin dito ang programa nito sa Java.

Upang mai-set up ang kapaligiran sa Java, I-install ang "pi4j libraby" mula sa https://pi4j.com/1.2/index.html Pi4j ay isang Java Input / Output Library para sa Raspberry Pi. Isang madali at pinakahalagang pamamaraan upang mai-install ang "pi4j library "ay upang isagawa ang undermentioned na utos nang direkta sa iyong Raspberry Pi:

curl -s get.pi4j.com | sudo bash

O kaya

curl -s get.pi4j.com

import com.pi4j.io.i2c. I2CBus; import com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; i-import ang java.io. IOException; class MCP23008 {public static void main (String args ) throws Exception {int status, value, value1 = 0x00; // Lumikha ng I2C bus I2CBus bus = I2CFactory.getInstance (I2CBus. BUS_1); // Get I2C device, MCP23008 I2C address is 0x20 (32) I2CDevice device = bus.getDevice (0x20); // Get I2C device, MCP9808 I2C address is 0x18 (24) I2CDevice MCP9808 = bus.getDevice (0x18); // Get I2C device, TCS34903 I2C address is 0x39 (55) I2CDevice TCS34903 = bus.getDevice (0x39); // Set Wait Time register = 0xff (255), wait time = 2.78 ms TCS34903.write (0x83, (byte) 0xFF); // Paganahin ang Pag-access sa IR channel TCS34903.write (0xC0, (byte) 0x80); // Set Atime register to 0x00 (0), maximum count = 65535 TCS34903.write (0x81, (byte) 0x00); // Power ON, pinagana ang ADC, pinagana ang maghintay TCS34903.write (0x80, (byte) 0x0B); Thread.tulog (250); // Basahin ang 8 Bytes ng Data na may malinaw / ir data LSB unang byte data1 = bagong byte [8]; // Basahin ang Data ng Temperatura byte data = bagong byte [2]; katayuan = aparato.read (0x09); // Na-configure ang lahat ng mga pin bilang OUTPUT aparato. Magsulat (0x00, (byte) 0x00); Thread.tulog (500); habang (totoo) {MCP9808.read (0x05, data, 0, 2); // convert data int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF)); kung (temp> 4096) {temp - = 8192; } doble cTemp = temp * 0.0625; System.out.printf ("Ang temperatura sa celsius ay:%.2f C% n", cTemp); TCS34903.read (0x94, data1, 0, 8); doble ir = ((data1 [1] & 0xFF) * 256) + (data1 [0] & 0xFF) * 1.00; dobleng pula = ((data1 [3] & 0xFF) * 256) + (data1 [2] & 0xFF) * 1.00; dobleng berde = ((data1 [5] & 0xFF) * 256) + (data1 [4] & 0xFF) * 1.00; dobleng asul = ((data1 [7] & 0xFF) * 256) + (data1 [6] & 0xFF) * 1.00; // Calculate illuminance double illuminance = (-0.32466) * (red) + (1.57837) * (green) + (-0.73191) * (blue); System.out.printf ("Ang pag-iilaw ay:%.2f lux% n", pag-iilaw); kung (illuminance 30) {halaga = halaga1 | (0x01); } iba pa {halaga = value1 & (0x02); } aparato.write (0x09, (byte) na halaga); Thread.tulog (300); }}}

Hakbang 5: Lumilikha ng File at Pagpapatakbo ng Code

  1. Upang lumikha ng isang bagong file kung saan maaaring maisulat / makopya ang code, gagamitin ang sumusunod na utos: sudo nano FILE_NAME.javaEg. sudo nano MCP23008.java
  2. Matapos likhain ang file, maaari naming mai-input ang code dito.
  3. Kopyahin ang code na ibinigay sa nakaraang hakbang at i-paste ito sa window dito.
  4. Pindutin ang Ctrl + X pagkatapos ay ang "y" upang lumabas.
  5. Pagkatapos ay ipunin ang code gamit ang sumusunod na utos: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
  6. Kung walang mga error, patakbuhin ang programa gamit ang undermentioned na utos: pi4j FILE_NAMEEg. pi4j MCP23008.java

Hakbang 6: Mga Aplikasyon

Pinapayagan ka ng system na ito na makontrol ang mga aparato nang hindi napupunta sa mga switch sa dingding. Ito ay may malawak na kakayahan bilang mga oras ng pag-on o pag-off ng mga aparato ay awtomatikong naka-iskedyul. Mayroong isang maliit na mga aplikasyon ng modyul na ito mula sa mga bahay patungo sa mga industriya, ospital, istasyon ng riles at marami pang mga lugar na maaaring awtomatiko sa isang abot-kayang at madaling paraan sa pamamagitan ng mga bahagi ng plug-and-play.

Hakbang 7: Mga Mapagkukunan

Para sa karagdagang impormasyon tungkol sa TSL34903, MCP9808 MCP23008 Relay Controller, suriin ang mga nasa ibaba na mga link:

  • TSL34903 Datasheet
  • MCP9808 Datasheet
  • MCP23008 Datasheet

Inirerekumendang: