Inteligentny dom oparty na Arduino: instrukcja krok po kroku na temat montażu
Do tej pory systemy takie jak "inteligentny dom" z niesamowitej egzotyki, dostępne tylko dla najbogatszych, stały się powszechne, do których każdy może się przyłączyć. Jest coś do wyboru: wielu programistów opanowało wydanie takich systemów sprzętu i oprogramowania. Do najbardziej znanych należy Arduino, którego produkty poznamy teraz.
Spis treści
- 1Czym jest "inteligentny dom"
-
2Zapoznanie się z Arduino
- 2.1Zalety systemu Arduino
-
2.2Jakie rozwiązania oferuje Arduino?
- 2.2.1Wideo: zaczynamy pracę z Arduino - zarządzamy diodą LED za pośrednictwem interfejsu sieciowego
-
3Przygotowanie projektu na Arduino
- 3.1Niezbędne komponenty do produkcji systemu "inteligentnego domu"
-
4Zbuduj "inteligentny dom instrukcje krok po kroku
- 4.1Podłączanie urządzeń wykonawczych i czujników
- 4.2Opracowanie kodu programu
- 4.3Instalowanie aplikacji klienckiej na smartfonie (dla systemu Android)
- 4.4Konfigurowanie przeglądarki do pracy z "inteligentnym domem"
- 4.5Praca z routerem
- 4.6Zakładanie konta na noip.com
- 4.7Wideo: inteligentny dom na Arduino
- 5Funkcje niektórych urządzeń Arduino
Czym jest "inteligentny dom"
Termin ten ma bardziej zrozumiały analog - "automatyzacja domu". Istotą takich rozwiązań jest zapewnienie automatycznego wykonywania różnych procesów zachodzących w domach, biurach lub wyspecjalizowanych obiektach. Najprostszym przykładem jest automatyczne włączanie oświetlenia w czasie, gdy jeden z pasażerów wchodzi do pokoju.
W każdym systemie "inteligentnego domu" można wyróżnić następujące komponenty:
- Część zmysłowa. Jest to zestaw urządzeń, których główna część jest reprezentowana przez różne czujniki, co pozwala systemowi rejestrować zdarzenia o różnym charakterze. Przykładami są czujniki temperatury i ruchu. Inne urządzenia części czujnikowej służą do przesyłania poleceń użytkownika do systemu. Są to zdalne przyciski i piloty z odbiornikami.
- Część wykonawcza. Są to urządzenia, które system może kontrolować, reagując w ten sposób na zdarzenie zgodnie ze scenariuszem zdefiniowanym przez użytkownika. Przede wszystkim jest to przekaźnik, za pomocą którego kontroler "inteligentnego domu" może zasilać dowolne urządzenie elektryczne, to znaczy włączać je i wyłączać. Na przykład na bawełnie w dłoni (system "słyszy" ją za pomocą mikrofonu) można skonfigurować aktywację przekaźnika, który dostarcza moc do wentylatora. Uwaga: w tym przykładzie wentylator może być dowolny. Możesz jednak użyć urządzenia specjalnie wydanego do pracy w ramach określonego systemu. Na przykład Arduino produkuje silniki elektryczne do swoich systemów, za pomocą których można na przykład zamknąć lub otwórz okno, a Xiaomi (chiński producent podobnych systemów) - urządzenia sterujące filtr powietrza. Takie urządzenie jest całkowicie kontrolowane przez system, to znaczy, że może nie tylko włączyć, ale także zmienić ustawienia.
- Procesor. Można również nazwać kontrolerem. Jest to "mózg" systemu, który koordynuje i koordynuje pracę wszystkich jego elementów.
- Oprogramowanie. Jest to zestaw instrukcji sterujących procesorem. W systemach niektórych producentów, w tym Arduino, użytkownik może napisać program niezależnie, w innych - stosowane są gotowe rozwiązania, w których tylko typowe scenariusze.
Nowoczesne systemy "inteligentnego domu" podzielone są na kilka odmian:
- Wyposażony we własny kontroler.
- Wykorzystanie w tym charakterze procesora komputera użytkownika (tabletu, smartfona).
- Przetwarzanie informacji za pomocą zdalnego serwera należącego do firmy deweloperskiej (usługa w chmurze).
System może nie tylko aktywować to urządzenie, ale także poinformować użytkownika o zdarzeniu, które wystąpiło, wysyłając wiadomość na telefon lub w inny sposób. W ten sposób można mu powierzyć funkcje alarmowe, w tym ochronę przeciwpożarową.
Scenariusze mogą być znacznie bardziej złożone niż opisaliśmy w przykładach. Na przykład, możliwe jest nauczenie systemu, aby zawierał kocioł i przekazywał do niego dostawę gorącej wody po odcięciu zasilania centralnego, jeśli ujawni się obecność kogoś od lokatorów w domu (pomoc w podczerwieni, czujniki ultradźwiękowe, a także czujniki) ruch).
Zapoznanie się z Arduino
Arduino to włoska firma zajmująca się opracowywaniem i produkcją komponentów i oprogramowania dla prostych inteligentnych systemów domowych przeznaczonych dla osób nie będących specjalistami. Warto zauważyć, że twórca ten spowodował, że architektura tworzonych przez niego systemów była całkowicie otwarta, co umożliwiło to producentów zewnętrznych do opracowywania nowych i kopiowania istniejących urządzeń zgodnych z Arduino, a także do tworzenia oprogramowania dla ich.
Takie podejście zapewniło wysoką popularność systemom włoskiej firmy, ale ma również wadę: ze względu na fakt, że do produkcji komponenty do systemów Arduino są brane, że tak powiem, wszyscy, którzy nie są leniwi, nie zawsze udaje im się po raz pierwszy osiągnąć wysoką jakość produkt. Często trzeba zmierzyć się z problemem zgodności komponentów różnych producentów.
Potencjalny użytkownik powinien mieć świadomość, że od 2008 r. Istnieją dwie firmy produkujące produkty pod marką Arduino. Na początku, który rozpoczął ten kierunek, oficjalna strona znajduje się pod adresem www.arduino.cc; drugi, nowo utworzony - na www.arduino.org. To, co zostało opracowane przed podziałem, na obu stronach jest równo reprezentowane, ale zakres nowych produktów jest już inny.
Oprogramowanie dla systemów "inteligentnego domu" Arduino ma postać powłoki programowej (zwanej IDE), w której można pisać i kompilować programy. Jest dystrybuowany bezpłatnie. Programy są napisane w C ++.
Wersje programu Arduino IDE prezentowane na tych stronach są również bardzo różne, choć mają one takie same nazwy, ale również numery wersji.Z tego powodu są dość łatwe do zmieszania. Różnica polega na tym, że każde oprogramowanie obsługuje swoje biblioteki i tablice.
"Sprzęt" systemu składa się z płyty głównej z mikrokontrolerem (płyta procesora) i zainstalowanych na niej kart rozszerzeń, które są powszechnie nazywane shildami. Podłączenie ekranu do płyty procesora pozwala na dodanie nowych elementów do inteligentnego domu. Zmontowany system może być całkowicie autonomiczny lub współpracować z komputerem za pośrednictwem standardowego interfejsu przewodowego lub bezprzewodowego.
Zalety systemu Arduino
Ten pakiet oprogramowania sprzętowego przyciąga użytkownika z takimi zaletami:
- możliwość samodzielnej pracy z powodu obecności własnego kontrolera;
- duże możliwości konfiguracji systemu (sam użytkownik pisze program, w którym można dostarczyć scenariusze o dowolnej złożoności);
- Prostota procesu ładowania programu do kontrolera: programator nie jest do tego potrzebny, wystarczy mieć kabel USB (w mikrokontrolerze jest firmware bootloadera);
- przystępny koszt komponentów ze względu na brak praw monopolistycznych dla konkretnego producenta (architektura jest otwarta).
Jeśli bootloader bootloadera zaczął działać nieprawidłowo lub nie pojawił się w zakupionym mikrokontrolerze, użytkownik ma możliwość samodzielnego wygenerowania go. Powłoka oprogramowania IDE zapewnia wsparcie dla wielu najpopularniejszych i popularnych programistów do tego celu. Ponadto prawie wszystkie procesory Arduino mają męskie złącze umożliwiające programowanie w obwodzie.
Program Arduino IDE, prezentowany na stronie internetowej arduino.cc, platformy oprogramowania sprzętowego użytkownika, podczas gdy w wersji programu na arduino.org takie funkcja jest nieobecna.
Jakie rozwiązania oferuje Arduino?
Ponieważ produkcja czujników i urządzeń zgodnych z Arduino jest obsługiwana przez wiele firm, zakres tych produktów jest dość szeroki. Tutaj najczęściej stosuje się:
- Czujniki monitorujące parametry klimatyczne:
- temperatura;
- wilgotność;
- opady atmosferyczne (czujnik deszczu i śniegu);
- iluminacja;
- ciśnienie.
- Czujniki, pozwalające określić położenie przestrzenne obiektu, na którym są zamocowane:
- 6-osiowy czujnik żyroskopowy z przyspieszeniomierzem;
- kompas.
- Czujniki, pozwalające zarejestrować obecność różnych obiektów:
- czujnik ruchu;
- czujnik podczerwieni (przymocuj nieruchomą osobę siedzącą lub zwierzę ciepłokrwiste);
- czujnik ultradźwiękowy (wykrywa obiekty o dowolnej temperaturze i określa odległość do nich).
- Czujniki awaryjne:
- czujnik dymu;
- czujnik ognia;
- czujnik wycieku gazu;
- czujnik dwutlenku węgla.
- Inne urządzenia, na przykład:
- mikrofon;
- godziny;
- czujnik otwarcia drzwi;
- zdalne sterowanie (częstotliwość radiowa i podczerwień) z odbiornikami;
- przyciski zdalnego sterowania.
Niektóre z tych urządzeń są zawarte w zestawie podstawowym Arduino Start, który od niektórych producentów nosi nazwę StarterKit.
Część wykonawcza zawiera ogromny zestaw urządzeń, na przykład:
- silniki elektryczne;
- przekaźniki i różne przełączniki;
- ściemniacze (pozwalają na płynną zmianę intensywności oświetlenia);
- zamykacze drzwi;
- Zawory i trójdrożne zawory z serwonapędami.
Jeśli planujesz podłączyć oświetlenie za pomocą przekaźnika Arduino, lepiej użyć lamp LED jako opraw oświetleniowych. Lampy żarowe po podłączeniu przez takie przekaźniki szybko się palą.
.Wideo: zaczynamy pracę z Arduino - zarządzamy diodą LED za pośrednictwem interfejsu sieciowego
Przygotowanie projektu na Arduino
Proces tworzenia i konfiguracji "inteligentnego domu" Arduino zostanie pokazany na przykładzie systemu, w którym zostaną zbudowane następujące funkcje:
- monitorowanie temperatury na ulicy i w pomieszczeniach;
- monitorowanie stanu okna (otwarte / zamknięte);
- monitorowanie warunków pogodowych (czyste / deszczowe);
- generowanie sygnału dźwiękowego po wyzwoleniu czujnika ruchu, jeżeli funkcja alarmu jest włączona.
System zostanie skonfigurowany w taki sposób, aby dane mogły być przeglądane za pomocą specjalnego aplikacji, a także przeglądarki internetowej, czyli użytkownik będzie mógł to zrobić z dowolnego miejsca, w którym jest dostęp w Internecie.
Użyte skróty:
- "GND" jest podstawą.
- "VCC" - jedzenie.
- "PIR" - czujnik ruchu.
Niezbędne komponenty do produkcji systemu "inteligentnego domu"
Do systemu inteligentnego domu Arduino potrzebne są:
- płyta mikroprocesorowa Arduino;
- Moduł Ethernet ENC28J60;
- dwa czujniki temperatury marki DS18B20;
- mikrofon;
- czujnik deszczu i śniegu;
- czujnik ruchu;
- przełącznik trzciny;
- przekaźnik;
- Oporność rezystora, kOhm;
- skrętka dwużyłowa;
- Kabel Ethernet.
Koszt wszystkich komponentów wynosi około 90 USD.
Zbuduj "inteligentny dom instrukcje krok po kroku
To jest kolejność, w której musisz działać.
Podłączanie urządzeń wykonawczych i czujników
Łączymy wszystkie komponenty zgodnie ze schematem.
Opracowanie kodu programu
Użytkownik zapisuje cały program w powłoce Arduino IDE, dla której ten ostatni jest wyposażony w edytor tekstu, kierownik projektu, kompilator, preprocesor i środki do wypełnienia kodu programu do mikroprocesora płytki Arduino. Opracowane wersje IDE dla systemów operacyjnych Mac OS X, Windows i Linux. Językiem programowania jest C ++ z kilkoma uproszczeniami. Programy użytkownika dla Arduino są zwykle nazywane szkicami szkicu lub szkicami, IDE zapisuje je do plików z rozszerzeniem ".ino".
Funkcja main (), która jest obowiązkowa w C ++, jest tworzona automatycznie przez opakowanie IDE, określając w nim szereg standardowych działań. Użytkownik powinien napisać funkcje setup () wykonywane raz w czasie rozpoczęcia) i loop () (wykonywane w nieskończonej pętli). Obie te funkcje są obowiązkowe dla Arduino.
Pliki nagłówkowe standardowych bibliotek nie muszą być wstawiane do programu - IDE robi to automatycznie. Nie dotyczy bibliotek użytkowników - muszą one być określone.
.Dodawanie bibliotek do IDE "Project Managera" odbywa się w dość niecodzienny sposób. W postaci kodu źródłowego napisanego w C ++ są one dodawane do specjalnego folderu w katalogu roboczym powłoki IDE. Następnie nazwy tych bibliotek pojawiają się w odpowiednim menu IDE. Te, które znaczniki użytkownika zostaną dodane do listy kompilacji.
.IDE zapewnia minimum ustawień, a w ogóle nie ma możliwości skonfigurowania kompilatora. Tak więc początkujący programista jest odporny na błędy.
Oto przykład najprostszego programu, który powoduje, że dioda LED podłączona do 13 wyjścia płytki błyska co 2 sekundy:
.void setup () {pinMode (13, WYJŚCIE); // Wyjście 13 wyjścia Arduino}
void loop () {digitalWrite (13, WYSOKI); // Włączenie 13 wyjścia, parametr wywołania funkcji cyfrowej HIGH jest znakiem wysokiego poziomu logicznego
opóźnienie (1000); // Opóźnienie cyklu przez 1000 msek - 1 sekundę
digitalWrite (13, LOW); // Wyjście wyłączone 13, wywołanie parametru LOW - niski poziom logiczny atrybutu
opóźnienie (1000); // Opóźnienie cyklu przez 1 sekundę}
.Obecnie jednak, zanim użytkownik nie zawsze jest taka potrzeba osobiście napisać program: sieć jest wyłożona wielu gotowych bibliotek i skecze (spójrz tutaj: http://arduino.ru/Reference). Jest gotowy program dla systemu rozważanego w tym przykładzie. Musi zostać pobrany, rozpakowany i zaimportowany do IDE. Tekst programu opatrzony jest komentarzem wyjaśniającym zasadę jego działania.
Kiedy użytkownik kliknie przycisk "Odśwież" w przeglądarce lub aplikacji na smartfonie, mikrokontroler Arduino wysyła dane do tego klienta. Na każdej stronie, zidentyfikowane jako «/ tempin», «/», «tempout / deszczu», «/», «okiennej / ALARM», wprowadza kod, który jest wyświetlany na ekranie.
Instalowanie aplikacji klienckiej na smartfonie (dla systemu Android)
Aby odbierać dane z systemu inteligentnego domu w sieci, możesz pobrać gotową aplikację.
Oto, co musi zrobić właściciel gadżetu:
- Pobierz plik SmartHome.apk.
- Wyślij to na swój telefon.
- Po otwarciu "Menedżera plików" umieść ten plik.
- Kliknij go i wybierz "Zainstaluj" (należy zaznaczyć "znacznik wyboru umożliwiając instalację programów poza usługą Google Play).
- Po zakończeniu instalacji aktywuj aplikację.
- Ustaw to.
Dzięki tej aplikacji można nie tylko odbierać informacje z systemu inteligentnego domu, ale także zarządzać nim - włączać i wyłączać alarmy. Jeśli jest włączony, aplikacja otrzyma powiadomienie po uruchomieniu czujnika ruchu. Przesłuchanie systemu Arduino dla wyzwalacza aplikacji czujnika ruchu odbywa się z częstotliwością raz na minutę.
Aktywując ikonę "Ustawienia możesz edytować swój adres IP.
Konfigurowanie przeglądarki do pracy z "inteligentnym domem"
W pasku adresu przeglądarki wpisz XXX.XXX.XXX.XXX/all, gdzie "XXX.XXX.XXX.XXX" jest twoim adresem IP. Po tym będzie możliwe otrzymywanie danych z systemu i zarządzanie nim.
Przedstawiony tutaj kod pozwala przeglądarce włączać i wyłączać światło, podczas gdy w aplikacji na smartfony z Androidem taka funkcja nie jest zaimplementowana.
Praca z routerem
Następnie na routerze trzeba otworzyć port:
- otwórz ustawienia routera;
- przepisać adres Arduino IP;
- otwórz port 80.
Zakładanie konta na noip.com
Ten krok jest opcjonalny, ale jest konieczny, jeśli chcesz przypisać nazwę domeny do adresu. Aby to zrobić, musisz się zarejestrować na stronie https://www.noip.com/, przejdź do sekcji "Dodaj hosta" i wprowadź adres IP systemu.
Utworzenie projektu jest zakończone, możesz sprawdzić stan systemu.
Wideo: inteligentny dom na Arduino
Funkcje niektórych urządzeń Arduino
Biorąc pod uwagę, że komponenty kompatybilne z Arduino są produkowane przez wiele firm trzecich, których jakość jest sama w sobie firma Arduino nie kontroluje, użytkownik jest bardziej skłonny do zakupu komponentu, który nie działa całkiem poprawnie.
.Podobna sytuacja rozwinęła się w rozwoju komputerów osobistych. W pewnym momencie IBM uczynił architekturę swoich komputerów otwartymi, w wyniku czego komputery kompatybilne z IBM i poszczególne komponenty zaczęły produkować wiele firm. W rezultacie "osobowości" tego typu są szeroko rozpowszechnione na całym świecie, jednak jakość komponentów i stopień ich kompatybilności w wielu przypadkach nie były na najwyższym poziomie. Przeciwne taktyki stosowały się do firmy Apple. Ograniczyło to kręgi programistów z dostępem do architektury, a ta sama polityka była realizowana w dziedzinie tworzenia oprogramowania. W rezultacie komputery Apple były mniej powszechne i droższe, ale są o rząd wielkości lepsze od urządzeń kompatybilnych z IBM z systemem Windows.
.W przypadku niektórych komponentów systemów Arduino użytkownicy zauważyli, co następuje:
- Czujnik temperatury DHT11, dostarczany z zestawem podstawowym (StarterKit), daje znaczący błąd 2-3 stopni. W pomieszczeniu zaleca się użycie czujnika temperatury DHT22, dającego dokładniejsze wskazania i do instalacji na ulicy - DHT21, zdolny do pracy w ujemnych temperaturach i posiadający ochronę przed mechanicznymi obrażenia.
- Na niektórych płytach mikroprocesorowych Arduino, gdy podłączony do nich przekaźnik zamyka się, port COM ulega uszkodzeniu. Z tego powodu mikrokontroler nie może wczytać szkicu: po rozpoczęciu napełniania, procesor uruchamia się ponownie. Przekaźnik kliknie, port COM zostanie wyłączony i proces ładowania szkicu zostanie przerwany.
- Czujnik zamknięcia okna / drzwi czasami zaskakuje w postaci fałszywych trafień. W związku z tym szkic jest tak napisany, że system generuje niezbędne działanie dopiero po otrzymaniu kilku sygnałów z rzędu.
- Aby skonfigurować zarządzanie procesami za pomocą klaśnięć, niektórzy niedoświadczeni użytkownicy zamawiają detektor dźwięku z ręczną regulacją progów zamiast mikrofonu. W tym celu komponent ten nie jest odpowiedni, ponieważ ma bardzo krótki zasięg: konieczne jest klaskać nie więcej niż 10 cm od detektora. Ponadto czujnik ten przesyła sygnały o impulsach krótkotrwałych, tak że w obecności dużej Szkic, który zajmuje stosunkowo dużo czasu, mikrokontroler po prostu nie ma dla nich czasu naprawić.
- W przypadku instalacji przeciwpożarowej należy stosować wykrywacz dymu, a nie czujnik pożarowy. Ten ostatni rejestruje płomień nie większy niż 30 cm od niego.
- W przypadku nieprawidłowego działania mikrokontrolera lub błędów w kodzie, lepiej jest użyć przekaźników normalnie zamkniętych z szeregowo połączonymi przełącznikami ręcznymi.
Aby uniknąć zakupu komponentów o niskiej jakości, doświadczeni użytkownicy zalecają wstępne zbadanie ich recenzji opublikowanych w Internecie. Niedrogie czujniki można kupić w kilku wersjach, aby osobiście sprawdzić, który z nich działa lepiej.
Być może system "inteligentnego domu" od Arduino nie jest najlepszy, ale najszerszy wybór komponentów i ich przystępny koszt sprawiły, że jest to jeden z najbardziej popularnych. Korzystając z naszych wskazówek, szybko nauczysz się tworzyć projekty Arduino, automatyzując różne procesy domowe.
.