Spis treści:
Systemy inteligentnego domu coraz częściej możemy spotkać w polskich domach. Sterowanie urządzeniami, bezpieczeństwo i monitorowanie naszych czterech ścian to ciekawe i wygodne rozwiązanie, jednak ze względu na wysokie ceny gotowych systemów sporo osób decyduje się na instalowanie samych modułów do sterowania urządzeniami w domu.
Dzisiaj sami zbudujemy system, który pozwoli na sterowanie domem przez Internet!
Główne założenia projektu:
- Sterowanie urządzeniami zasilanymi z sieci,
- Odczyt temperatury,
- Prosta i wygodna konstrukcja,
- Sterowanie i sprawdzanie stanu urządzeń w dowolnym miejscu na świecie.
Co będzie nam potrzebne?
Aby system zapewniał wygodną obsługę przez stronę www, zastosujemy uwielbiane przez elektroników Raspberry Pi Zero W – minikomputer, który zaskoczy Was pozytywnym stosunkiem ceny do jakości. Model z literą “W” posiada wbudowane Wi-Fi i Bluetooth, więc nie będziemy musieli martwić się o połączenie z Internetem. Oprócz minikomputera musimy zakupić przekaźniki do sterowania urządzeniami sieciowymi – tutaj zastosujemy gotowe moduły Grove, które podłączymy do nakładki na Raspberry Pi. W ten sposób ograniczymy problematykę prowadzenia przewodów do minimum. Aby zmierzyć temperaturę, która panuje w domu (lub poza nim, wybór pozostawiam Wam), niezbędny będzie czujnik temperatury. My zastosujemy popularny DS18B20.
Dokładna lista zakupów mieści się poniżej.
- Raspberry Pi Zero W
- Karta pamięci do minikomputera
- Zasilacz 5V, microUSB
- Grove Base Hut dla Raspberry Pi Zero
- Przekaźniki Grove – 4 sztuki
- Przewody łączące przekaźniki z nakładką na RPi – 4 sztuki
- Sonda pomiarowa z DS18B20
- Przewody, które wykorzystamy do połączenia DS18B20 z RPi
- Rezystor 4.7 k Ohm
- Goldpiny 2×20 męskie
Oprócz elementów elektronicznych przyda nam się lutownica, cążki do obcinania przewodów i oczywiście zapał do stworzenia własnego systemu!
Przygotowanie Raspberry Pi do pracy
Malina, podobnie jak komputery klasy PC czy laptopy, potrzebuje systemu operacyjnego. Systemu nie wgrywamy jednak na dysk twardy, a na kartę microSD. Zacznijmy od pobrania obrazu systemu ze strony Raspberry Pi.
Mamy tutaj dostępne trzy wersje. W lewym dolnym rogu znajduje się wersja Lite, czyli najbardziej odchudzona i bez interfejsu graficznego. W prawym górnym rogu widoczna jest wersja z interfejsem graficznym, a w lewym górnym rogu – wersja z interfejsem graficznym i rekomendowanym oprogramowaniem. My pobieramy tę ostatnią, ponieważ większość programów, których będziemy używali, jest już domyślnie zainstalowana w systemie, dzięki czemu nie będziemy tracili czasu na dodatkowe pobieranie i instalację. Kiedy paczka z obrazem systemu się pobierze, możemy wówczas włożyć kartę microSD do czytnika tak, aby mógł ją odczytać komputer, na którym pobrana została paczka.
Wgrajmy teraz na kartę pamięci system. Tutaj również operacja jest bardzo prosta. Zaczynamy od pobrania programu Etcher. Etcher jest oprogramowaniem, które umożliwia bezproblemowe wgrywanie obrazów systemu na karty pamięci. Po pobraniu i zainstalowaniu programu klikamy w nim na “Select Image” i wskazujemy lokalizację pobranej paczki z systemem. Następnie wybieramy “Select Drive” i wskazujemy naszą kartę pamięci. Na samym końcu klikamy “Flash!” i czekamy, aż obraz systemu wgra się na kartę pamięci.
Po wgraniu systemu zainicjujmy komunikację bezprzewodową. Otwieramy katalog Boot zapisany na karcie pamięci i tworzymy tam pusty plik bez rozszerzenia o nazwie ssh. Aby uniknąć problemów sprawdźmy, czy system pokazuje rozszerzenia plików. Możemy zmienić to klikając w “Widok”, następnie w “Opcje:”. Odznaczamy pole “Ukryj rozszerzenia znanych typów plików”.
Teraz możemy kliknąć na pole w folderze prawym przyciskiem myszy, wybrać “Nowy”, dalej wybrać “Dokument tekstowy” i nadać mu nazwę “ssh”, a rozszerzenie .txt usunąć.
Ostatnim krokiem do prawidłowej komunikacji jest stworzenie połączenia z siecią Wi-Fi, czyli wskazanie malinie z jaką siecią ma się połączyć. Tutaj sytuacja jest również prosta, w folderze Boot tworzymy plik tekstowy wpa_supplicant.conf. Otwieramy go za pomocą edytora tekstu (możemy to zrobić za pomocą systemowego notatnika) i wpisujemy tą zawartość:
country=PL
update_config=1
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid=”Wpisz tutaj swoją nazwę sieci”
psk=”Tutaj wpisz swoje hasło”
key_mgmt=WPA-PSK
}
W “ssid” wpisujemy nazwę sieci, a w “psk” hasło. Zadbajmy tutaj o brak literówek, ponieważ jeśli jakaś wystąpi, to Raspberry Pi nie połączy się z siecią. Po wszystkim plik zapisujemy i kartę wkładamy do maliny, a zasilacz podłączamy najpierw do gniazdka, a potem do złącza microUSB maliny przeznaczonego do zasilania. Teraz zaczyna się magia!
Połączenie komputera PC z maliną
Raspberry Pi co prawda umożliwia podłączenie monitora, klawiatury i myszy, jednak my będziemy sterowali tym minikomputerem przez nieco większego brata, czyli przez PC lub laptopa.
Sprawdźmy, czy malina połączyła się z siecią bezprzewodową! Aby to zrobić, musimy wejść na panel konfiguracyjny routera (najczęściej pod adresem 192.168.1.1) i wyświetlić urządzenia połączone po Wi-Fi. Jeśli widać urządzenie o nazwie “raspberrypi” to znaczy, że wszystko się udało. Jeśli jednak malina się nie połączyła, to sprawdźmy, czy nie popełniliśmy literówki w pliku wpa_supplicant.conf – najczęściej to jest przyczyna problemu z połączeniem.
Zainstalujmy teraz Putty. Jest to klient usług Telnet i SSH, który pozwala nam na wygodne połączenie się z maliną i sterowanie za pomocą terminala. Program możemy pobrać ze strony oprogramowania. Po zainstalowaniu włączamy program, w “Host Name” wpisujemy lokalny adres maliny, w “Port” wpisujemy 22, a po wszystkim klikamy “Open”.
Gdy klikniemy “Open” pojawi nam się ekran logowania. Domyślne dane do logowania to:
login – pi
hasło – raspberry
I takie dane wpisujemy, a po zalogowaniu powinien przywitać nas taki widok:
Teraz zainstalujmy Apache. Jest to serwer www z bazą danych i interpreterem PHP. Aby zainstalować potrzebne programy, musimy zaktualizować system. Aktualizacja systemu ogranicza się do wprowadzenia kolejno trzech poleceń:
sudo apt update
sudo apt upgrade
Konfiguracja serwera
Teraz musimy zainstalować Apache. Aby to zrobić, wystarczy do terminala wpisać jedno polecenie, a mianowicie:
sudo apt install apache2 -y
Gdy w terminalu dostaniemy komunikat, że instalacja została zakończona, to możemy wówczas sprawdzić, czy serwer działa. Aby to zrobić wpisujemy w naszym komputerze lokalny adres maliny – w moim przypadku jest to “192.168.1.2”, po zatwierdzeniu enterem powinniśmy ujrzeć taki widok:
Byśmy mogli teraz odczytywać strony ze skryptami w języku PHP, musimy zainstalować interpreter PHP. Wpisujemy w terminalu:
sudo apt install php -y
Po zainstalowaniu warto zresetować Apache. Aby to zrobić wpisujemy:
sudo service apache2 restart
Po restarcie usług należy zainstalować oprogramowanie, które będzie obsługiwać bazy danych. Co prawda sposób wykorzystania przez nas bazy jest banalny, jednak dzięki obsłudze baz możemy dodać później różne udogodnienia i narzędzia statystyczne. Aby dodać narzędzie baz danych wraz z oprogramowaniem, które pozwoli na zarządzanie nimi w php, musimy wprowadzić polecenia:
sudo apt install mariadb-server -y
sudo apt install php-mysql -y
Po zainstalowaniu znowu resetujemy serwer, aby zmiany zostały wprowadzone. Teraz musimy stworzyć nowego użytkownika dla bazy danych. Aby to zrobić, musimy zalogować się na konto domyślnego użytkownika, czyli roota. Do zalogowania używamy poniższego polecenia:
sudo mysql –user=root
Teraz na ekranie możemy zobaczyć, jak konsola systemu przechodzi do programu MariaDB, czyli interpretera baz danych. Stwórzmy nowego użytkownika – nazwiemy go “domownik”, do logowania będzie używał hasła “domek”.
CREATE USER ‘domownik’@’localhost’ IDENTIFIED BY ‘domek’;
Aby nowy użytkownik mógł zarządzać bazami musimy nadać mu uprawnienia, wpisujemy zatem polecenie:
GRANT ALL PRIVILEGES ON *.* TO ‘domownik’@’localhost’;
Teraz kliknijmy CTRL+C, aby wyjść z programu (ten skrót powoduje zakończenie działającego procesu; śmiało możemy używać go też w innych sytuacjach).
Teraz zainstalujemy interpreter graficzny do obsługi baz danych. Nazywa się phpMyAdmin i znacząco ułatwi nam pracę z bazami danych. Dzięki oprogramowaniu phpMyAdmin możemy tworzyć bazy danych w wygodnym interfejsie graficznym. Do instalacji użyjemy znanego nam już polecenia “sudo apt install”, jednak tym razem na końcu dodajemy “phpmyadmin”, aby polecenie wyglądało tak:
sudo apt install phpmyadmin
Teraz uruchomi się instalator. W pierwszym oknie wybieramy nasze środowisko, czyli apache2, w następnym oknie klikamy “ok”, a w ostatnim wybieramy “no”.
Teraz wykonajmy jeszcze jedną operację, dzięki której będziemy mieli dostęp do phpMyAdmina pod adresem /phpmyadmin. Aby to zrobić wpisujemy polecenie:
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
Na koniec zresetujmy serwer i z drugiego komputera podłączonego do tej samej sieci wejdźmy na adres: adres_lokalny_rpi/phpmyadmin (oczywiście musimy wpisać nasz rzeczywisty adres, w moim wypadku będzie to 192.168.1.2/phpmyadmin). Operację zatwierdzamy enterem. Teraz powinniśmy zobaczyć obraz taki jak poniżej. Do zalogowania użyjemy danych naszego “domownika”.
Stwórzmy teraz bazę danych. W lewym górnym rogu klikamy “Nowa”, pola uzupełniamy jak poniżej, bazę nazywamy“sterowanie”, a kodowanie znaków ustawiamy na utf8_general_ci.
Pokaże nam się teraz kreator tworzenia tabeli. W nazwie wpisujemy “przekazniki”, w liczbie kolumn wybieramy “2”.
Po zatwierdzeniu program przeniesie nas do ustawienia kolumn, które powinny być uzupełnione jak poniżej.
Gdy stworzyliśmy już tabelę, to klikamy na przycisk z napisem “SQL” na górnym pasku i w pole tekstowe wpisujemy poniższe zapytanie. Później klikamy “Wykonaj”.
INSERT INTO `przekazniki`(`przekaznik`, `stan`) VALUES (‘przekaznik1′,’0’), (‘przekaznik2′,’0’), (‘przekaznik3′,’0’), (‘przekaznik4′,’0’)
Stworzyliśmy dzisiaj serwer, skonfigurowaliśmy bazę danych i stworzyliśmy w niej tabelę, dzięki której będziemy mogli odczytywać stan przekaźników. W następnej części stworzymy testowy układ i wgramy działającą stronę internetową.
Prosty system inteligentnego domu – FAQ
Do urządzeń tworzących system inteligentnego domu (Smart Home) zaliczamy wszystkie sprzęty i akcesoria automatyki domowej, które poprawiają komfort i bezpieczeństwo domowników. Część urządzeń w obrębie inteligentnego domu działa w pełni automatycznie, natomiast innymi można sterować np. za pośrednictwem aplikacji zainstalowanej na urządzeniu domowych. Najczęściej inteligentny dom tworzą takie urządzenia jak inteligentne gniazdka, inteligentne włączniki, asystenci głosowi, systemy monitoringu IP, sterowniki bram, bramki sieciowe, stacje pogodowe, dzwonki, wizjery i wiele innych.
Określenie inteligentny dom odnosi się do budynków mieszkalnych, w których zastosowano inteligentne rozwiązania automatyki domowej. Dzięki niej użytkownicy mogą zdalnie (np. za pośrednictwem aplikacji zainstalowanej na urządzeniu mobilnym) sterować m.in. oświetleniem, klimatyzacją, roletami okiennymi, rekuperacją i ogrzewaniem. Inteligentne rozwiązania poprawiają komfort życia, wpływają na podwyższenie poziomu bezpieczeństwa i pozwalają zaoszczędzić na rachunkach, m.in. za energię elektryczną i ogrzewanie.
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 5 / 5. Liczba głosów: 5
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.
Jedna odpowiedź
Nie sądziłem, że programowanie raspberry pi jest takie łatwe. Obawiałem się, że będzie to trudniejsze.