Spisu treści:

Automatyka domowa z Raspberry Pi przy użyciu płytki przekaźnikowej: 7 kroków
Automatyka domowa z Raspberry Pi przy użyciu płytki przekaźnikowej: 7 kroków

Wideo: Automatyka domowa z Raspberry Pi przy użyciu płytki przekaźnikowej: 7 kroków

Wideo: Automatyka domowa z Raspberry Pi przy użyciu płytki przekaźnikowej: 7 kroków
Wideo: Automatyka z przekaźnikami w tle - LIVE Q&A z Finder 2024, Grudzień
Anonim
Automatyka domowa z Raspberry Pi przy użyciu płytki przekaźnikowej
Automatyka domowa z Raspberry Pi przy użyciu płytki przekaźnikowej

Duża liczba osób chce wysokiego komfortu, ale w rozsądnych cenach. Czujemy się leniwi, aby oświetlać domy każdego wieczoru, kiedy zachodzi słońce i następnego ranka, ponownie wyłączając światła lub włączać/wyłączać klimatyzator/wentylator/grzałki, tak jak pogoda lub temperatura w pomieszczeniu.

Niedrogie rozwiązanie, aby uniknąć tej dodatkowej pracy polegającej na wyłączeniu urządzeń, gdy jest to wymagane, jest tutaj. Ma to na celu zautomatyzowanie domów przy stosunkowo bardzo niskich kosztach za pomocą prostych produktów typu plug and play. Działa tak, jak gdy temperatura rośnie lub spada, włącza odpowiednio klimatyzator lub grzałkę. Ponadto, w razie potrzeby, pomoże włączyć lub oświetlenie w domu bez ręcznego ich włączania. Można sterować wieloma innymi urządzeniami. Zautomatyzuj świat. Pozwól nam rozpocząć Twój dom.

Krok 1: Wymagany sprzęt

Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt
Wymagany sprzęt

Będziemy używać:

Malina Pi

Raspberry Pi to samodzielny komputer PC oparty na systemie Linux. Ten mały komputer ma moc w rejestrowaniu mocy, używany jako element ćwiczeń z elektroniki oraz operacje na komputerze, takie jak arkusze kalkulacyjne, edytor tekstu, surfowanie po Internecie, poczta e-mail i gry

I2C Shield lub I2C Header

INPI2 (adapter I2C) zapewnia Raspberry Pi 2/3 port I²C do użytku z wieloma urządzeniami I2C

Sterownik przekaźnikowy I2C MCP23008

MCP23008 firmy Microchip to zintegrowany ekspander portów, który steruje ośmioma przekaźnikami poprzez magistralę I²C. Możesz dodać więcej przekaźników, cyfrowych wejść/wyjść, przetworników analogowo-cyfrowych, czujników i innych urządzeń za pomocą zintegrowanego portu rozszerzeń I²C

Czujnik temperatury MCP9808

MCP9808 to czujnik temperatury o wysokiej dokładności, który dostarcza skalibrowane, linearyzowane sygnały czujnika w formacie cyfrowym I²C

Czujnik luminancji TCS34903

TCS34903 to produkt z rodziny czujników koloru, który zapewnia wartość składowej RGB światła i koloru

Kabel połączeniowy I2C

Kabel połączeniowy I2C to kabel 4-żyłowy, który służy do komunikacji I2C pomiędzy dwoma podłączonymi przez niego urządzeniami I2C

Adapter micro USB

Do zasilania Raspberry Pi potrzebny jest kabel Micro USB

Zasilacz 12V do płytki przekaźnikowej

MCP23008 Sterownik przekaźnikowy działa na zewnętrznym zasilaniu 12V i może być zasilany za pomocą zasilacza 12V

Możesz kupić produkt klikając na nie. Więcej świetnych materiałów znajdziesz również w sklepie Dcube Store.

Krok 2: Podłączenie sprzętu

Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu
Podłączenie sprzętu

Wymagane połączenia (patrz zdjęcia) są następujące:

  1. To będzie działać na I2C. Weź nakładkę I2C dla Raspberry Pi i delikatnie podłącz ją do pinów GPIO Raspberry Pi.
  2. Podłącz jeden koniec kabla I2C do portu wejściowego TCS34903, a drugi koniec do ekranu I2C.
  3. Podłącz wejście czujnika MCP9808 do wyjścia TCS34903 za pomocą kabla I2C.
  4. Podłącz gniazdo wejściowe MCP23008 do wyjścia czujnika MCP9808 za pomocą kabla I2C.
  5. Podłącz również kabel Ethernet do Raspberry Pi. Router Wi-Fi może być również używany do tego samego.
  6. Następnie zasil Raspberry Pi za pomocą adaptera Micro USB i płytki przekaźnikowej MCP23008 za pomocą adaptera 12V.
  7. Na koniec podłącz światło z pierwszym przekaźnikiem i wentylator lub grzałkę z drugim przekaźnikiem. Moduł można rozbudować lub podłączyć więcej urządzeń z przekaźnikami.

Krok 3: Komunikacja za pomocą protokołu I2C

Aby włączyć Raspberry Pi I2C, wykonaj następujące czynności:

  1. W terminalu wpisz następujące polecenie, aby otworzyć ustawienia konfiguracji: sudo raspi-config
  2. Wybierz "Opcje zaawansowane" tutaj.
  3. Wybierz „I2C” i kliknij „Tak”.
  4. Uruchom ponownie system, aby skonfigurować go zgodnie ze zmianami wprowadzonymi za pomocą polecenia reboot.

Krok 4: Programowanie modułu

Nagrodą za korzystanie z Raspberry Pi jest to, że zapewnia elastyczność wyboru języka programowania, w którym chcesz zaprogramować interfejs urządzenia czujnikowego z Raspberry Pi. Wykorzystując tę zaletę Raspberry Pi, demonstrujemy tutaj jego programowanie w Javie.

Aby skonfigurować środowisko Java, zainstaluj „pi4j libraby” z https://pi4j.com/1.2/index.html Pi4j to biblioteka wejścia/wyjścia Java dla Raspberry Pi. Prosta i najbardziej preferowana metoda instalacji „pi4j biblioteka” jest wykonanie poniższego polecenia bezpośrednio w Twoim Raspberry Pi:

curl -s get.pi4j.com | sudo bash

LUB

curl -s get.pi4j.com

importuj com.pi4j.io.i2c. I2CBus; importuj com.pi4j.io.i2c. I2CDurządzenie; importuj com.pi4j.io.i2c. I2CFabryka; import java.io. IOException; class MCP23008 { public static void main(String args) wyrzuca wyjątek { int status, wartość, wartość1= 0x00; // Utwórz magistralę I2C Magistrala I2CBus = I2CFactory.getInstance(I2CBus. BUS_1); // Pobierz urządzenie I2C, MCP23008 Adres I2C to 0x20(32) Urządzenie I2CDevice = bus.getDevice(0x20); // Pobierz urządzenie I2C, MCP9808 Adres I2C to 0x18(24) I2CDevice MCP9808 = bus.getDevice(0x18); // Pobierz urządzenie I2C, TCS34903 Adres I2C to 0x39(55) I2CDevice TCS34903 = bus.getDevice(0x39); // Ustaw rejestr czasu oczekiwania = 0xff (255), czas oczekiwania = 2,78 ms TCS34903.write(0x83, (byte)0xFF); // Włącz dostęp do kanału IR TCS34903.write(0xC0, (byte)0x80); // Ustaw rejestr Atime na 0x00 (0), maksymalna liczba = 65535 TCS34903.write(0x81, (byte)0x00); // Zasilanie włączone, ADC włączone, Czekaj włączone TCS34903.write(0x80, (byte)0x0B); Wątek.uśpienie(250); // Odczytaj 8 bajtów danych za pomocą danych clear/ir LSB first byte data1 = new byte[8]; // Odczyt danych temperatury byte data = new byte[2]; status = urządzenie.odczyt(0x09); // Skonfigurowano wszystkie piny jako WYJŚCIE device.write(0x00, (byte)0x00); Wątek.sen(500); while(true){ MCP9808.read(0x05, dane, 0, 2); // Konwertuj dane int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF)); jeśli (temp > 4096) { temp -= 8192; } podwójne cTemp = temp * 0,0625; System.out.printf("Temperatura w stopniach Celsjusza to: %.2f C %n", cTemp); TCS34903.read(0x94, dane1, 0, 8); podwójny ir = ((dane1[1] i 0xFF) * 256) + (dane1[0] i 0xFF) * 1,00; podwójny czerwony = ((dane1[3] i 0xFF) * 256) + (dane1[2] i 0xFF) * 1,00; podwójny zielony = ((dane1[5] i 0xFF) * 256) + (dane1[4] i 0xFF) * 1,00; podwójny niebieski = ((dane1[7] i 0xFF) * 256) + (dane1[6] i 0xFF) * 1,00; // Oblicz podwójne natężenie oświetlenia = (-0,32466) * (czerwony) + (1,57837) * (zielony) + (-0,73191) * (niebieski); System.out.printf("Natężenie oświetlenia wynosi: %.2f lux%n", natężenie oświetlenia); if (natężenie oświetlenia 30) { wartość = wartość1 | (0x01); } else { wartość = wartość1 i (0x02); } urządzenie.write(0x09, (bajt)wartość); Wątek.uśpienie(300); } } }

Krok 5: Tworzenie pliku i uruchamianie kodu

  1. Aby utworzyć nowy plik, w którym można zapisać/skopiować kod, użyjemy następującego polecenia: sudo nano NAZWA_PLIKU.javaEg. sudo nano MCP23008.java
  2. Po utworzeniu pliku możemy tutaj wpisać kod.
  3. Skopiuj kod podany w poprzednim kroku i wklej go w oknie tutaj.
  4. Naciśnij Ctrl+X, a następnie „y”, aby wyjść.
  5. Następnie skompiluj kod za pomocą następującego polecenia: pi4j NAZWA_PLIKU.javaEg. pi4j MCP23008.java
  6. Jeśli nie ma błędów, uruchom program za pomocą poniższego polecenia: pi4j NAZWA_PLIKUEg. pi4j MCP23008.java

Krok 6: Aplikacje

System ten pozwala na sterowanie urządzeniami bez podchodzenia do włączników ściennych. Ma to szerokie możliwości, ponieważ czasy włączania i wyłączania urządzeń są automatycznie zaplanowane. Istnieje kilka zastosowań tego modułu, od domów po przemysł, szpitale, dworce kolejowe i wiele innych miejsc, które można zautomatyzować w przystępny i łatwy sposób dzięki jego komponentom typu plug-and-play.

Krok 7: Zasoby

Aby uzyskać więcej informacji na temat kontrolera przekaźników TSL34903, MCP9808 MCP23008, zapoznaj się z poniższymi linkami:

  • Karta katalogowa TSL34903
  • Arkusz danych MCP9808
  • Arkusz danych MCP23008

Zalecana: