Spisu treści:
- Krok 1: Rzeczy, których potrzebujesz
- Krok 2: Przygotuj Raspberry Pi na 433 MHz
- Krok 3: Skonfiguruj serwer Smart Home
- Krok 4: Konfiguracja klientów
- Krok 5: Wniosek
Wideo: Inteligentny dom Raspberry Pi: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:26
Istnieje już kilka produktów, które sprawiają, że Twoje mieszkanie jest mądrzejsze, ale większość z nich to autorskie rozwiązania. Ale dlaczego potrzebujesz połączenia z Internetem, aby włączyć światło za pomocą smartfona? To był jeden z powodów, dla których zbudowałem własne rozwiązanie Smart Home.
Zaprogramowałem aplikację serwerową działającą na Raspberry Pi. Jest to projekt open source oparty na javie, który umożliwia skonfigurowanie mieszkania i podłączenie kilku klientów i „jednostek sterowanych”. Przedstawiam rozwiązanie, które obsługuje przełączniki zasilania rc, odtwarza muzykę i wideo na Raspberry Pi, pokazuje stan na inteligentnym lustrze i może być sterowane przez aplikację na Androida i dwie aplikacje pebble. Źródło jest hostowane na github
Krok 1: Rzeczy, których potrzebujesz
Aby skonfigurować inteligentny dom, potrzebujesz następujących „składników”
- Raspberry Pi co najmniej model 2 B
- Nadajnik 433 MHz, coś takiego
- 3 kable połączeniowe łączące Raspberry Pi z nadajnikiem
- Niektóre gniazda sterowania radiowego na 433 MHz
- Smartfon z Androidem do uruchomienia aplikacji klienckiej
Dodatkowo możesz rozszerzyć Smart Home o więcej opcjonalnych klientów i jednostek takich jak ta
- Pebble smartwatch
- Smart Mirror, zobacz ten projekt
- Sterowana taśma LED 433 MHz, zobacz ten
Krok 2: Przygotuj Raspberry Pi na 433 MHz
W kolejnych krokach potrzebujesz dostępu do wiersza poleceń na Raspberry Pi. Aby uzyskać dostęp, możesz przeczytać tę instrukcję
Połącz nadajnik 433 MHz z Raspberry Pi, jak pokazano na powyższym obrazku
- GND (nadawca) 6 GND (raspi)
- VCC (nadajnik) 2 +5V (raspi)
- DANE (nadawca) 11 GPIO 17 (raspi)
Proszę również podłączyć antenę 17cm do pinu ANT (nadawcy). To znacznie zwiększa sygnał.
Ponieważ potrzebujemy bibliotek z innych repozytoriów git, musimy zainstalować git
sudo apt-get zainstaluj git-core -y
Aby skonfigurować Raspberry Pi do komunikacji 433 MHz, potrzebujemy biblioteki okablowania Pi dla lepszej obsługi GPIO.
klon git git://git.drogon.net/wiringPi
okablowanie cdPi./build
Następnie potrzebujemy biblioteki, która implementuje protokoły zasilania typowo rc.
klon git git://github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi make cp send /usr/bin/
Plik wykonywalny „send” umożliwia wysyłanie kodów do przełączania większości dostępnych zasilaczy.
W mojej konfiguracji Smart Home mam również pasek LED rc opisany przez tę instrukcję: https://www.instructables.com/id/RC-control-LED… Aby ustawić kolory dla tej taśmy LED, potrzebujesz innego pliku wykonywalnego wysyłania, który pozwala wysłać dowolną wartość typu Integer (która koduje kolor).
Dlatego skompiluj sendInt.cpp w repozytorium rcswitch-pi i przenieś go do /usr/bin/sendInt.
sudo g++ sendInt.cpp -o /usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch-pi -lwiringPi
Teraz powinieneś być w stanie wysyłać polecenia rc za pomocą dwóch plików wykonywalnych /usr/bin/send i /usr/bin/sendInt
Krok 3: Skonfiguruj serwer Smart Home
Przede wszystkim musisz zainstalować kilka pakietów. Aplikacja Smart Home jest oparta na javie i działa dobrze z openjdk-11. Nie jestem pewien co do innych środowisk wykonawczych java. mplayer to minimalistyczny odtwarzacz muzyki z wiersza poleceń. Omxplayer używa grafiki Raspberry Pi do kodowania wideo, więc powinna być używana do wideo. Program ant jest potrzebny do zbudowania aplikacji java.
sudo apt-get zainstaluj mplayer omxplayer openjdk-11-jdk ant -y
Katalogi instalacyjne dla pliku jar i dzienników.
sudo mkdir /opt/neo
sudo chown pi:pi /opt/neo mkdir /home/pi/Logi
Skonfiguruj skrypt startowy, aby aplikacja uruchamiała się automatycznie przy starcie. Dlatego skopiuj załączony skrypt smart-home do katalogu /etc/init.d/ Utworzyłem również skrypt w /usr/bin/, który przesyła polecenia do załączonego skryptu, więc po prostu wpisuję smart-home do konsoli, aby wykonywać polecenia.
sudo cp smart-home /etc/init.d/smart-home
sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#! /bin/bash' > /usr/bin/smart-home" sudo sh -c "echo '/etc/init. d/smart-home \$1' >> /usr/bin/smart-home" sudo chmod +x /usr/bin/smart-home sudo update-rc.d domyślne ustawienia smart-home
Teraz nadszedł czas, aby pobrać repozytorium i zbudować aplikację. Jeśli nie chcesz sam go kompilować, możesz po prostu pobrać załączony plik smarthome.jar i przenieść go do /opt/neo/
git klon [email protected]:dabastynator/SmartHome.git
ant -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/* /opt/neo/
Spróbuj uruchomić inteligentny dom i sprawdź plik dziennika. Aby uzyskać dostęp do GPIO, aplikacja musi zostać uruchomiona przez sudo.
początek inteligentnego domu sudo
Kot Logs/smarthome.log
Powinien pojawić się komunikat o błędzie Plik konfiguracyjny nie istnieje, który wskazuje na następny krok. Repozytorium zawiera plik readme wyjaśniający plik konfiguracyjny. Widać to ładnie wyrenderowane na github:
Skopiuj ten plik xml do /home/pi/controlcenter.xml, a następnie ustaw lokalizację serwera multimediów i zmień zawartość zgodnie z potrzebami. Po zakończeniu konfiguracji i ponownym uruchomieniu smart-home (sudo restart smart-home) powinieneś zobaczyć następującą zawartość w smarthome.log
24.05-08:26 ZDALNE INFORMACJE przez de.neo.smarthome.cronjob. CronJob@15aeb7ab: Zaplanuj zadanie cron
24 maja /action) 24.05-08:26 INFORMACJE RMI przez dodanie obsługi sieciowej (5061/mediaserver) 24.05-08:26 INFORMACJE RMI przez dodanie obsługi internetowej (5061/switch) 24.05-08:26 INFORMACJE RMI przez dodanie obsługi internetowej (5061/controlcenter) 24.05-08:26 INFORMACJE RMI przez serwer internetowy Start z obsługą 5 (localhost:5061) 24.05-08:26 INFORMACJE ZDALNE przez Controlcenter: Dodaj 1. jednostkę sterującą: MyUnit (xyz) …
Serwer WWW już działa:-)
Krok 4: Konfiguracja klientów
Klient smartfona z systemem Android
Repozytorium git dla aplikacji smart-home zawiera również źródło dla klienta Androida, więc możesz je skompilować samodzielnie. Ale do tego kroku dołączyłem APK, co ułatwia. Przy pierwszym uruchomieniu aplikacja prosi o serwer, jak na pierwszym obrazku powyżej. Wpisz adres URL serwera i token bezpieczeństwa.
To powinno być to. Masz teraz dostęp do serwera i steruj swoim mieszkaniem, odtwarzając muzykę i oglądaj filmy zdalnie na swoim Raspberry Pi. Pamiętaj, że możesz dodawać widżety do ekranu głównego, dzięki czemu przełączniki i sterowanie muzyką są bardziej dostępne.
Klient Smartwatch Pebble
Źródło dla dwóch klientów pebble jest hostowane na github. Jedna aplikacja pokazuje aktualnie odtwarzany plik muzyczny: https://github.com/dabastynator/PebbleRemoteMusic… Umożliwia to również wstrzymywanie/odtwarzanie oraz zwiększanie/zmniejszanie głośności.
Druga aplikacja uruchamia trzy akcje: https://github.com/dabastynator/PebbleControl Nazwy wyzwalaczy to: mobile.come_home mobile.leaving i mobile.go_to_bed. Jeśli zdefiniujesz reguły zdarzeń dla tego wyzwalacza w pliku konfiguracyjnym xml, uruchomisz je przez zegarek.
To wszystko jest open-source, ale nie musisz go samemu kompilować, dołączyłem też aplikacje pebble. Pobierz PBW za pomocą smartfona, telefon powinien zainstalować je na zegarku. Aplikacje żwirowe wymagają konfiguracji, aby komunikować się z serwerem. Załączyłem zrzut ekranu, jak wyglądają moje ustawienia.
Smartwatch Garmin klient
Dostępny jest również klient dla smartwatchy Garmin. Aplikacja jest dostępna w sklepie z aplikacjami Garmin Connect i można ją zainstalować tutaj:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Klient Smart Mirror
Stworzyłem już instrukcję, która wyjaśnia, jak stworzyć Smart Mirror, zobacz to https://www.instructables.com/id/Smart-Mirror-by-R…. Kod źródłowy jest również hostowany na github: https:// github.com/dabastynator/SmartMirror. Oprogramowanie Smart Mirror odczytuje konfigurację z pliku smart_config.js, który nie jest częścią repozytorium git. Zawartość pliku konfiguracyjnego powinna wyglądać jak na poniższej liście:
var mOpenWeatherKey = 'twój-klucz-otwórz-pogody';
var mSecurity = 'twój-token-zabezpieczenia';
Musisz również dostosować pierwsze dwie linie pliku smart_mirror.js, aby określić adres IP serwera Smart Home i lokalizację, aby uzyskać odpowiednią pogodę.
Więcej klientów
Aplikacja serwerowa to prosty serwer WWW. Umożliwia to wywoływanie działań z dowolnego klienta za pomocą prostych połączeń internetowych. W filmie demonstracyjnym pokazuję aplikację na Androida w połączeniu z AutoVoice. Dzięki temu mogę wyzwalać zdarzenia za pomocą prostych poleceń głosowych. Na przykład „ok google, czas spać” może wywołać mobile.go_to_bed. Ale możesz też wykonywać połączenia internetowe, na przykład z IFTTT. Co powiesz na migający na żółto pasek LED do powiadamiania e-mailem?
Możesz poprosić serwer o możliwe wywołania internetowe, takie jak poniższe linki (zastąp ip, port i token swoją konfiguracją)
localhost:5061/controlcenter/api?token=secu…
localhost:5061/action/api?token=security-to…
localhost:5061/mediaserver/api?token=securi…
localhost:5061/switch/api?token=security-to…
localhost:5061/ledstrip/api?token=security-…
Krok 5: Wniosek
Jest jeszcze kilka funkcji do zaimplementowania: Ponieważ serwer zapewnia tylko proste web-api, klienci robią dużo sondowania. Aby ograniczyć odpytywanie, chcę zintegrować MQTT dla lepszego powiadamiania. Również zasilacze wifi powinny działać bardziej niezawodnie niż zasilacze rc, ponieważ rc jest tylko jednokierunkową komunikacją.
Tworzenie dla tego projektu sprawia dużo frajdy. I całkiem fajnie jest kontrolować mieszkanie za pomocą kilku urządzeń, nawet jeśli połączenie internetowe się zepsuje.
Zalecana:
Jak zrobić inteligentny dom za pomocą modułu przekaźnika sterującego Arduino - Pomysły na automatykę domową: 15 kroków (ze zdjęciami)
Jak zrobić inteligentny dom za pomocą modułu przekaźnika sterującego Arduino | Pomysły na automatykę domową: W tym projekcie automatyki domowej zaprojektujemy moduł przekaźnika inteligentnego domu, który może sterować 5 urządzeniami domowymi. Ten moduł przekaźnikowy może być sterowany z telefonu komórkowego lub smartfona, pilota na podczerwień lub pilota do telewizora, przełącznika ręcznego. Ten inteligentny przekaźnik może również wykrywać r
Inteligentny dom z Arduino: 11 kroków (ze zdjęciami)
Inteligentny dom z Arduino: Hello.Pokażę Ci jak zbudować własny inteligentny dom. Pokazuje temperaturę zarówno wewnątrz, jak i na zewnątrz, czy okno jest otwarte czy zamknięte, pokazuje, kiedy pada i alarmuje, gdy czujniki czujnika PIR się poruszają. Zrobiłem aplikację na Androida do
Inteligentny budzik: inteligentny budzik z Raspberry Pi: 10 kroków (ze zdjęciami)
Inteligentny budzik: inteligentny budzik z Raspberry Pi: Czy kiedykolwiek chciałeś mieć inteligentny zegar? Jeśli tak, to jest to rozwiązanie dla Ciebie! Zrobiłem Inteligentny Budzik, jest to zegar, w którym możesz zmienić godzinę alarmu zgodnie ze stroną internetową. Gdy alarm się włączy, rozlegnie się dźwięk (brzęczyk) i 2 światła będą
Raspberry Pi - Inteligentny dom: 5 kroków
Raspberry Pi - Smart House: Projekt Raspberry Pi Smart House jest wyposażony w wiele różnych funkcji, które umożliwiają użytkownikowi śledzenie domu z dowolnego miejsca (oczywiście z Internetem!) Na dowolnym komputerze/urządzeniu mobilnym. Funkcje Smart House pozwalają użytkownikowi t
Najtańszy inteligentny dom za 38 USD: 8 kroków (ze zdjęciami)
Najtańszy inteligentny dom za 38 USD: Czy słyszałeś o nowym Raspberry Pi Zero? Wyceniony tylko na 5 USD (lub 10 USD za wersję W), rewolucjonizuje inteligentny dom, czyniąc go tańszym niż kiedykolwiek i dostępnym dla każdego budżetu. Kolejnym elementem zwiększania dostępności inteligentnego domu jest połączenie