Spisu treści:

SmartHome z Raspberry Pi: 5 kroków
SmartHome z Raspberry Pi: 5 kroków

Wideo: SmartHome z Raspberry Pi: 5 kroków

Wideo: SmartHome z Raspberry Pi: 5 kroków
Wideo: Instalacja Home Assistant na Raspberry Pi 2024, Listopad
Anonim
SmartHome z Raspberry Pi
SmartHome z Raspberry Pi

Na potrzeby tego projektu wykonałem SmartHome, który może być obsługiwany przez stronę internetową i telefon komórkowy. Do tego używam Raspberry PI jako bazy danych i serwera WWW.

Kieszonkowe dzieci

Jeśli chcesz to zacząć, potrzebujesz kilku rzeczy:

  • 5 białych diod led (5mm)
  • 1 czujnik temperatury z jednym przewodem
  • 1 LDR (rezystor zależny od światła)
  • 2 serwosilniki
  • 1 karta microSD (dla Raspberry Pi)
  • 1 zasilacz płyty chlebowej
  • 1 Raspberry Pi 3 Model B+
  • 3 płyty piankowe
  • 1 silnik krokowy (5V)
  • 1 czytnik RFID-RC522
  • 8 rezystorów (220 omów)
  • 1 rezystor (10K Ohm)
  • 2 deski do krojenia chleba
  • 2 paczki przewodów połączeniowych
  • 1 wyświetlacz LCD 16x2
  • 1 PCF8574AN
  • 4 małe okienka (druk 3D)
  • 1 drzwi (druk 3D)
  • 2 duże okna (druk 3D)
  • 1 brama garażowa (druk 3D)

Jeśli potrzebujesz tego wszystkiego, aby kupić, maksymalny koszt wyniesie około 150 €

Krok 1: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie
Okablowanie

Najprościej zacząć od okablowania tak, że masz już podstawy, tą metodą możesz łatwo sprawdzić, czy wszystko działa podczas pisania kodu.

W ten sposób możesz sprawdzić, czy masz wystarczająco dużo pinów na Raspberry Pi, aby wszystko podłączyć. W tym przypadku użyłem PCF8574AN do sterowania moim LCD za pomocą mniejszej liczby pinów GPIO.

Do narysowania schematu wykorzystałem Fritzing. Jest to poręczny program, w którym możesz przeglądać swoje okablowanie w dobrze zorganizowany sposób.

Jak widać na drugim zdjęciu kabli jest bardzo dużo, więc nadal trzeba pracować w zorganizowany sposób.

Krok 2: Mieszkanie

Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania

Do obudowy użyłem płyt piankowych jako ścian. Za pomocą noża pocięłam deski w pożądane kształty. Okna, drzwi i brama garażowa są drukowane w 3D. Oczywiście wcześniej narysowałem dom, więc wiedziałem, jakich wymiarów muszę użyć.

Do narysowania domu użyłem programu SketchUp. Użyłem pistoletu do klejenia, aby utrzymać ściany prosto i trzymać je razem. Jeśli widać na zdjęciach, okno i drzwi garażowe są przymocowane klejem, aby było wystarczająco mocne. Czarne pudełko na 3 zdjęciu pudełko, które kiedyś transportowałem, aby wszystko pozostało nienaruszone

Krok 3: Baza danych

Baza danych
Baza danych

Przede wszystkim musisz zaprojektować bazę danych za pomocą Mysql Workbench. Jeśli się to uda, musisz zainstalować bazę danych Mysql na Raspberry Pi.

Pierwszym krokiem, który wykonujesz, jest sprawdzenie, czy Twoje Pi jest zaktualizowane. Możesz użyć następującego polecenia:

aktualizacja sudo apt-get

oraz

sudo apt-get upgrade

Teraz możesz zainstalować serwer Mysql:

sudo apt-get install mysql-server

Jeśli serwer Mysql jest zainstalowany, zainstaluj klienta Mysql

sudo apt-get install mysql-client

Jeśli teraz spojrzysz na serwer sql za pomocą polecenia:

sudo mysql

Możesz teraz zaimportować kod bazy danych, otwierając plik.mwb za pomocą środowiska roboczego sql i inżyniera naprzód. Kopiujesz kod i wklejasz go do mysql z Raspberry. Baza danych jest tworzona.

Aby użytkownik mógł uzyskać wszystkie uprawnienia, po prostu dodaj swoją nazwę użytkownika w tabeli

nadaj wszystkie uprawnienia w smarthome.* 'twoje imię'@'%' identyfikowane przez 'twoje imię';

oczywiście musisz teraz odświeżyć tabelę

PRZYWILEJE WSPÓŁPRACUJĄCE;

Aby to sprawdzić, możesz po prostu spróbować:

korzystaj ze smarthome;

wybierz * z historiik;

W tabeli użytkowników imiona i nazwiska użytkowników pojawiają się wraz z ich odznaką, tutaj możesz dodać nowych użytkowników. W tabeli urządzeń można znaleźć wszystkie aktywne czujniki wraz z ich id. W tabeli historiik widać wszystko, co się dzieje, jak czujnik temperatury, identyfikator ze statusem bramy garażowej i inne.

Krok 4: Konfiguracja

Aby ustawić obraz na Raspberry Pi, możesz użyć Putty, jest to darmowy program. Możesz znaleźć podstawowy plik obrazu tutaj:

Interfejsy

Oczywiście musisz włączyć niektóre interfejsy na Pi. Najpierw przejdź do strony konfiguracji.

sudo raspi-config

Teraz możesz przejść do kategorii 1-Wire i Spi i obie je włączyć. Będziesz ich potrzebował do czujnika temperatury.

Wi-Fi

Wykonaj kolejne kroki, aby uzyskać Wi-Fi na Pi.

Najpierw zaloguj się jako root

sudo-i

Następnie wpisz nazwę i hasło swojej sieci Wi-Fi

wpa_passphrase = "nazwa wifi" "hasło" >> /etc/wpa_supplicant/wpa_supplicant.conf

Następnie wprowadź klienta WPA

wpa_cli

wybierz interfejs

interfejs wlan0

Teraz przeładuj konfigurację

przekonfigurować

A teraz możesz sprawdzić, czy jesteś podłączony

ip a

Pakiety

Pierwszą rzeczą do zrobienia jest aktualizacja najnowszych wersji

aktualizacja sudo apt

W przypadku Pythona instalujemy i upewniamy się, że Pi wybiera odpowiednią wersję

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Aby serwer WWW mógł uruchomić Witrynę, musimy zainstalować Apache2

sudo apt zainstaluj apache2 -y

Należy również zainstalować niektóre pakiety Pythona

  • Kolba
  • Flask-Cors
  • Flask-MySQL
  • Kolba-Gniazdo IO
  • PyMySQL
  • Python-socketIO
  • upraszanie
  • pypeć
  • gpio
  • Gevent
  • Gevent-websocket

jeśli występują problemy z pakietem, którego nie znaleziono, po prostu kliknij go prawym przyciskiem myszy i pozwól mu się zainstalować.

Krok 5: Kod

Kod
Kod
Kod
Kod

backend

Dla backendu piszemy kod w pythonie i używamy pycharm do pisania. Trasy z backendu można sprawdzić u listonosza. Dzięki tej aplikacji możesz korzystać z metod POST i GET. W backendzie użyłem wielowątkowości, więc wszystko działa w tle i może ze sobą współpracować. Do ustawienia obrazu na Raspberry Pi można użyć Putty, jest to darmowy program.

frontend

Na froncie znajduje się kilka przycisków, które mogą włączać światła, otwierać port garażu i drzwi. Używając javascript i CSS styl przycisków zmienia się, gdy są one aktywne. Dostępna jest również temperatura na żywo i wykres z poprzednimi temperaturami. Na stronie użytkownika możesz zobaczyć różnych użytkowników, możesz także dodać użytkownika do bazy danych, a także istnieje historia użytkowników, w której możesz zobaczyć, kto jako ostatni otworzył lub zamknął drzwi garażowe.

Kod dla frontendu i backendu znajdziesz na

github.com/NMCT-S2-Project-1/nmct-s2-proje…

Zalecana: