Jak zbudować inteligentny przełącznik światłoczuły z Raspberry Pi i IFTTT

  • Gabriel Brooks
  • 0
  • 2849
  • 701
Reklama

Zarówno przełączniki o zmierzchu do świtu, jak i wyłączniki czasowe to przydatne sposoby na automatyzację oświetlenia. Czy nie byłoby wspaniale, gdybyś mógł połączyć te dwa elementy, a nawet podłączyć je do Internetu, aby uzyskać naprawdę inteligentny system oświetlenia?

Raspberry Pi, przekaźnik, czujnik światła i odrobina kodu to wszystko, czego potrzebujesz, aby osiągnąć tę automatyczną nirwanę oświetleniową na sznurku.

Co będziesz potrzebował

Komponenty inteligentnego przełącznika światłoczułego można łatwo znaleźć. Będziesz potrzebował:

  • Dowolny model Raspberry Pi z systemem Raspbian.
  • Płytka przekaźników, którą można łatwo znaleźć na Amazon.
  • Czujnik jasności Adafruit TSL2561.
  • Przewody rozruchowe.
  • Niektóre światła do automatyzacji!

Jak działa inteligentny przełącznik światłoczuły

Korzystając z przekaźnika w taki sam sposób, jak nasz projekt automatycznego otwierania drzwi garażowych Jak zautomatyzować bramę garażową za pomocą IFTTT i Raspberry Pi Jak zautomatyzować bramę garażową za pomocą IFTTT i Raspberry Pi W tym samouczku pokażemy, jak zautomatyzować brama garażowa wykorzystująca wyłącznie Raspberry Pi i IFTTT. , możesz zaprogramować Raspberry Pi, aby włączał i wyłączał obwód oświetlenia w ustalonych godzinach. Dodanie czujnika jasności do miksu oznacza, że ​​Pi może wykryć poziom światła w otoczeniu i zdecydować, aby włączyć światła tylko wtedy, gdy są naprawdę potrzebne.

Ponieważ Pi to niewielki komputer, który można podłączyć do sieci, można go skonfigurować również do sterowania przez Internet. Twoje inteligentne światła będą miały trzy wejścia do określenia, kiedy się włączą:

  1. Zaprogramowany harmonogram.
  2. Poziom światła otoczenia.
  3. Sygnał zastępujący wysyłany przez sieć.

Krok 1: Podłącz Raspberry Pi do przekaźnika

Jeśli dopiero zaczynasz korzystać z GPIO, zacznij od przeczytania Wszystko, co musisz wiedzieć o pinach GPIO Raspberry Pi.

Najpierw sprawdź, czy tablica przekaźników ma zworkę łączącą styki VCC i JD-VCC. Jeśli tak, usuń go.

Po wyłączeniu zasilania podłącz kartę przekaźników do swojego Pi w następujący sposób:

  • Pi Pin 2 (5v) do JD-VCC na płycie przekaźników.
  • Pi Pin 6 (GND) do GND na płycie przekaźników.
  • Pi Pin 15 (GPIO 22) do IN1 na płycie przekaźników
  • Pi Pin 17 (3.3v) do VCC na płycie przekaźników.

Krok 2: Podłącz czujnik luminancji

TSL2561 to czujnik światła, który może wykrywać podczerwień, pełne spektrum i światło widzialne dla ludzi. Może wysyłać bardzo dokładny odczyt cyfrowy do Raspberry Pi. Czujnik zgłasza poziom światła w skali od 0,1 (brak światła) do 40 000 (jasne słońce).

Płyta TSL2561 komunikuje się z Raspberry Pi przy użyciu protokołu i2c. I2C potrzebuje tylko dwóch połączeń, jednego do zegara, aby utrzymać synchronizację dwóch urządzeń, a drugiego do przesyłania danych. Oczywiście czujnik luksowy również potrzebuje trochę energii, więc można wykonać cztery połączenia:

  • Podłącz Pi Pin 1 (3.3v) do Vin (lub VCC) na czujniku lux
  • Podłącz Pi Pin 3 (SDA) do SDA na czujniku lux
  • Podłącz Pi Pin 5 (SCL) do SCL na czujniku lux
  • Podłącz Pin Pin 9 (GND) do GND czujnika luksa

Krok 3: Skonfiguruj i zainstaluj zależności

Zanim przejdziesz dalej, musisz sprawdzić, czy I2C jest włączony na twoim Raspberry Pi (domyślnie jest wyłączony). Wpisz następujące polecenie w terminalu:

sudo raspi-config

Wybierz Opcje interfejsu> P5 I2C, następnie wybierz tak.

Trafienie Wchodzić następnie wybierz koniec aby wyjść z ekranu konfiguracji. Uruchom ponownie Pi, aby zmiana zaczęła obowiązywać:

sudo restart

Niektóre zależności są konieczne, aby Pi mógł komunikować się z płytką czujnika. Wpisz następujące polecenia:

sudo apt-get update sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools

Możesz sprawdzić, czy wszystko działa, pisząc:

sudo i2cdetect -y 1

Jeśli twoje zależności są zainstalowane, a czujnik luksowy jest podłączony prawidłowo, zobaczysz taką odpowiedź:

Tutaj narzędzie zgłasza, że ​​znalazło urządzenie I2C (czujnik lux) pod adresem I2C 39.

Jeszcze nie skończyłeś z zależnościami. Będziesz także potrzebował kilku bibliotek. Najpierw utwórz folder, aby przechowywać wszystko związane z tym projektem w:

mkdir ~ / lighting cd ~ / lighting

Następnie pobierz butelkę, lekką platformę, która utworzy prosty serwer WWW na twoim Pi. Użyjesz go do sterowania oświetleniem z sieci.

wget https://bottlepy.org/bottle.py

Pozostałe biblioteki, których potrzebujesz, znajdują się w Github, więc jeśli na Raspberry Pi nie ma jeszcze zainstalowanego Git, dodaj go teraz:

sudo apt-get install git

Teraz sklonuj dwie biblioteki, takie jak to:

klon git https://github.com/adafruit/Adafruit_Python_GPIO.git klon git https://github.com/adafruit/Adafruit_Python_PureIO.git

Na koniec utwórz skrypt testowy, tworząc nowy plik:

nano test.py

Wklej ten kod (dzięki uprzejmości Adafruit):

#! / usr / bin / env python # - * - coding: utf-8 - * - from __future__ import absolut_import, dzielenie, print_function, unicode_literals z tsl2561 import TSL2561 if __name__ == "__main__": tsl = TSL2561 (debugowanie = Prawda ) print (tsl.lux ())

naciśnij Ctrl + X aby zapisać, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby wyjść.

Po zakończeniu uruchom skrypt testowy:

python test.py

Jeśli wszystko jest zainstalowane i działa, otrzymasz numer. Ta liczba jest odczytem lux z czujnika. Spróbuj zablokować czujnik lub przesunąć go, aby uzyskać więcej lub mniej światła. Następnie ponownie uruchom skrypt testowy i sprawdź, jak zmienia się liczba.

Krok 4: Utwórz skrypty automatyzacji

Raspberry Pi włącza światła, gdy robi się ciemno, ale także wyłącza je w określonych porach. Na przykład możesz chcieć włączyć światła, gdy wieczorem robi się ciemno, a następnie zgasić około północy, aby zaoszczędzić prąd. Mogli przyjść ponownie wcześnie rano, a potem wyłączyć się, gdy zapali się światło.

Aby zarządzać harmonogramem z wieloma takimi strefami czasowymi, istnieją dwa różne skrypty. Jeden (onzone.py) będzie działać co minutę w czasie, gdy chcesz, aby światła były włączone, gdy jest ciemno. Inny (offzone.py) będzie działać co minutę w czasie, gdy chcesz, aby światła były wyłączone, niezależnie od poziomu światła.

Skrypty będą uruchamiane przy użyciu zadań crona Jak planować zadania w systemie Linux za pomocą Crona i Crontaba Jak planować zadania w systemie Linux za pomocą Crona i Crontaba Możliwość automatyzacji zadań jest jedną z tych futurystycznych technologii, które już tu są. Każdy użytkownik Linuksa może skorzystać z planowania systemu i zadań użytkownika, dzięki cron, łatwej w obsłudze usłudze w tle. . Wybierając godziny dnia i nocy, w których uruchamiany jest każdy skrypt, łatwo będzie ustawić godziny, w których światła będą włączane automatycznie. Możesz ustawić tyle okresów włączenia i wyłączenia, ile chcesz.

Oprócz skryptów do automatycznego kontrolowania świateł istnieje trzeci skrypt do zarządzania sytuacjami zastępującymi. Umożliwi to zdalne włączanie świateł, niezależnie od poziomu oświetlenia otoczenia.

Skrypt 1: Strefa ON

Ten skrypt w Pythonie będzie uruchamiany co minutę dnia, kiedy chcesz, aby światła włączały się, gdy jest ciemno. Pobierz skrypt, kopiując i wklejając to polecenie do terminala:

wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py

Za każdym razem, gdy plik onzone.py jest uruchamiany, pobiera wartość luksową z czujnika, aby sprawdzić, czy jest ciemno. Jeśli tak, sprawdzi, czy światła są włączone, czy wyłączone. Jeśli są wyłączone, włączy je. Jeśli nie jest ciemno, skrypt sprawdzi, czy światła są włączone. Jeśli tak, wyłączy je, chyba że zostaną zastąpione.

Skrypt używa zmiennej o nazwie lowlux aby zdecydować, w którym momencie jest wystarczająco ciemno, aby włączyć światła. Możesz zmienić to na odpowiednie dla twojej instalacji, zmieniając wartość w tym wierszu u góry onzone.py:

lowlux = 50

Skrypt 2: Strefa OFF

Ten skrypt będzie uruchamiany co minutę dnia, w którym chcesz, aby światła były wyłączone, chyba że zostały zastąpione. Pobierz skrypt:

wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py

Ten skrypt nie dba o to, jak jasny lub ciemny jest. Jego zadaniem jest po prostu wyłączanie świateł, jeśli są włączone (chyba że zostały zastąpione).

Skrypt 3: Serwer zastępowania

Ten skrypt tworzy prostą usługę internetową, która może akceptować polecenia do wykonywania następujących czynności:

  1. Włącz światła na kilka minut, niezależnie od poziomu oświetlenia otoczenia.
  2. Wyłącz światła.
  3. Dowiedz się, czy światła są aktualnie włączone, czy wyłączone.
  4. Dowiedz się, jak długo jeszcze światła mają pozostać włączone, gdy zostaną zastąpione.

Pobierz skrypt:

wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py

Przed przejściem do następnego kroku uruchom skrypt offzone.py w następujący sposób:

python offzone.py

Spowoduje to utworzenie plików kontrolnych używanych przez skrypty do śledzenia wszystkiego.

Krok 5: Zaplanuj skrypty

Twój Raspberry Pi może uruchamiać skrypty automatyzacji z cronem. Skonfiguruj harmonogram w ten sposób:

sudo crontab -e

Wklej te dwa wiersze do edytora tekstu:

* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL * 0,1,2,3,4,5,6 , 10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL

Uwaga: jeśli nazwa użytkownika zalogowana do Raspberry Pi nie była domyślna Liczba Pi, odpowiednio zmienić ścieżkę.

Wymień wszystkie godziny, w których chcesz włączyć światła, gdy jest ciemno w pierwszej linii. Wszystkie godziny, w których chcesz wyłączyć światła, będą znajdować się w drugiej linii.

Teraz ustaw skrypt zastępowania, aby uruchamiał się automatycznie po uruchomieniu Pi:

sudo nano /etc/rc.local

Wklej ten wiersz na dole pliku, a następnie zapisz i wyjdź:

python nohup /home/pi/lighting/lightserver.py &

Na koniec zrestartuj Raspberry Pi, abyś mógł sprawdzić, czy skrypt serwera ładuje się tak, jak powinien

sudo restart

Krok 6: Przetestuj przekaźnik

Przed podłączeniem świateł sprawdź, czy wszystko działa, korzystając z funkcji zastępowania. Wpisz następujące polecenie w przeglądarce internetowej w tej samej sieci co Pi, zastępując adres IP adresem własnego Raspberry Pi:

11.22.33.44:1234/overrideon/3

Jeśli wszystko będzie dobrze, usłyszysz kliknięcie przekaźnika, a przeglądarka odpowie, że światła zostały włączone na trzy minuty.

Gdy przekaźnik jest zamknięty, możesz przetestować inne funkcje zastępowania. Dzięki temu dowiesz się, o ile więcej minut światła będą włączone z powodu nadpisania:

11.22.33.44:1234/getoverrideremerem

To powinno ci powiedzieć, że światła są włączone:

11.22.33.44:1234/lightstatus

Wreszcie możesz je ponownie wyłączyć za pomocą:

11.22.33.44:1234/overrideoff

Przekaźnik kliknie, gdy się otworzy.

Krok 7: Podłącz swoje światła

Wyłącz i odłącz Raspberry Pi przed podłączeniem lamp do przekaźnika. Zamiast normalnego przełącznika użyj normalnie otwartych (NO) złączy na płycie przekaźników:

Na koniec możesz zainstalować czujnik lux w miejscu, w którym będzie on przechwytywał poziom światła otoczenia. Pamiętaj, że TSL2561 zgłosi, że jest nasycony, jeśli napotka bezpośrednie jasne światło słoneczne, więc najlepiej, jeśli to możliwe, trzymać go w cieniu.

Więcej projektów Raspberry Pi do wypróbowania

Zdalne zastępowanie nowej konfiguracji inteligentnego oświetlenia przez wpisywanie poleceń w przeglądarce internetowej jest dość kłopotliwe. Lepszym sposobem jest podłączenie czegoś takiego jak Amazon Echo, aby ułatwić sobie życie. Połączenie usługi Alexa i usługi Webhooks w IFTTT to prosty sposób na dodanie sterowania głosowego.

Zobacz nasz przewodnik na temat korzystania z IFTTT, aby pomóc Ci zacząć.

Inną opcją jest użycie skrótów Siri. Pojedynczy skrót z menu może sprawdzać stan lamp i używać funkcji zastępowania, aby je włączać i wyłączać.

Jeśli podobał ci się ten projekt, koniecznie sprawdź te dziwne projekty Raspberry Pi 10 najdziwniejszych projektów Raspberry Pi 10 najdziwniejszych projektów Raspberry Pi W każdym z nas jest szalony naukowiec, a Raspberry Pi pozwala ci wyjść z gry. Czasami rzeczy stają się dziwne. Bardzo dziwne. po więcej pomysłów.




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.