Spisu treści:

Home_X: 5 kroków
Home_X: 5 kroków

Wideo: Home_X: 5 kroków

Wideo: Home_X: 5 kroków
Wideo: 5 kroków do stworzenia PRZYTULNEJ SYPIALNI 2024, Lipiec
Anonim
Dom_X
Dom_X

Jestem studentem Howest Kortrijk, który studiuje nowe media i technologie komunikacyjne (NMCT).

Wszyscy musieliśmy stworzyć projekt oparty na malinach i/lub Arduino. Musieliśmy użyć czujników i baz danych, aby pokazać dane na stronie internetowej i wtedy wpadłem na pomysł stworzenia mini inteligentnego domu.

Dzięki inteligentnemu domowi będziesz mógł zobaczyć wszystkie odczyty czujników na stronie internetowej.

W tej instrukcji poprowadzę Cię przez każdy krok, abyś mógł odtworzyć ten projekt dla siebie.

Krok 1: Materiały: czego potrzebujesz

  • Malina Pi
  • DHT22
  • Grove - czujnik jakości powietrza
  • Grove - czujnik gazu (MQ2)
  • Deska do krojenia chleba
  • Szewc Raspberry Pi T
  • Przewody połączeniowe męskie/żeńskie
  • Diody LED 5mm
  • Rezystory
  • Drewno i narzędzia
  • Siłownik
  • GrovePi+

Możesz kupić te produkty online (Ali express, amazon, elektronika kiwi…) lub w lokalnych sklepach.

Szczegółowa lista części wraz z linkiem do sklepów znajduje się poniżej w BOM.

Krok 2: Okablowanie

Okablowanie
Okablowanie
Okablowanie
Okablowanie

Użyłem Fritzing do okablowania, aby mieć ładny przegląd tego, jak powinno być wykonane moje okablowanie. Ja sam używałem GrovePi+ dla 2 moich czujników. Jeśli planujesz zrobić to bez GrovePi+, postępuj zgodnie ze schematem Fritzing. U Ciebie czujniki nie działają, spróbuj użyć innych pinów.

Możesz znaleźć plik Fritzing poniżej.

Krok 3: Baza danych przy użyciu MySQL

Baza danych przy użyciu MySQL
Baza danych przy użyciu MySQL

Jednym z najistotniejszych zadań jakie musieliśmy zrealizować było połączenie z bazą danych MySQL.

Za każdym razem, gdy czujnik otrzymuje odczyty lub zapala się światło, zobaczysz te zmiany w bazie danych.

Baza danych przesyła następnie te dane do strony internetowej, aby użytkownik również mógł je tam zobaczyć.

Poniżej znajduje się mój plik.xml, w którym masz przegląd działania bazy danych, ale najpierw musisz zainstalować MySQL i kolbę na Raspberry Pi.

Kodowanie czujników odbywało się przez pycharm, więc upewnij się, że jest on również zainstalowany (na twoim komputerze).

Najpierw musisz sprawdzić dostępność aktualizacji i zainstalować pakiety, takie jak:

aktualizacja sudo apt-get && aktualizacja sudo apt-get

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Teraz użyjemy wirtualnego środowiska:

ja@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenvme@my-rpi:~ $ mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system- site-packages env ja@my-rpi:~/project1 $ source env/bin/activate (env)me@my-rpi:~/project1 $ python -m pip zainstaluj mysql-connector-python argon2-cffi Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Powinien powiedzieć, że mariadb.service jest aktywny.

Teraz w pycharm przejdź do VCS > Importuj z kontroli wersji > GitHub en clone

Następnie skonfiguruj konfigurację wdrożenia dla właśnie utworzonego katalogu, np. /home/ja/projekt1.

Po wykonaniu tej czynności przejdź do ustawień tłumacza i skonfiguruj środowisko wirtualne, które właśnie stworzyłeś, np. /home/ja/projekt/env/bin/python. Należy również wypełnić mapowanie ścieżki.

Jeśli zrobiłeś to wszystko, baza danych powinna już działać.

sudo systemctl status mysql

Teraz musimy stworzyć użytkowników dla naszej bazy danych, jak na przykład:

sudo mariadb

UTWÓRZ UŻYTKOWNIKA 'project-admin'@'localhost' IDENTYFIKOWANEGO PRZEZ 'adminpassword'; CREATE USER 'project-web'@'localhost' IDENTYFIKOWANY PRZEZ 'webpassword'; UTWÓRZ UŻYTKOWNIKA 'project-sensor'@'localhost' IDENTYFIKOWANE PRZEZ 'sensorpassword'; Projekt TWORZENIE BAZY DANYCH;

PRZYZNAJ WSZYSTKIE UPRAWNIENIA W projekcie.* 'project-admin'@'localhost' Z OPCJĄ PRZYZNANIA; PRZYZNAJ WYBÓR, WSTAW, AKTUALIZUJ, USUŃ W projekcie.* DO 'project-web'@'localhost'; PRZYZNAJ WYBIERZ, WSTAW, AKTUALIZUJ, USUŃ W projekcie.* DO 'project-sensor'@'localhost'; PRZYWILEJE WSPÓŁPRACUJĄCE;

Teraz aby zobaczyć naszą bazę danych w pyarmie musimy nawiązać połączenie.

Możemy to zrobić, przechodząc do Widok > Okna narzędziowe > Baza danych i klikając zielony przycisk „plus”.

Źródło danych > MySQL i kliknij (jeśli jest obecny) przycisk Pobierz sterownik, który się pojawi.

Następnie przejdź do SSH/SSL i sprawdź SSH. Wpisz hosta/użytkownika/hasło dla pi i użyj portu 22, jeśli nie został jeszcze wypełniony.

Jeśli chcesz, aby pycharm zapamiętał Twoje hasło, zaznacz pole wyboru "Zapamiętaj hasło".

W zakładce "Ogólne" wpisz localhost w hoście, projekt w Bazie danych i użyj project-admin z hasłem, aby móc przetestować połączenie.

Aby teraz baza danych była użyteczna, musisz uruchomić plik.sql, który umieściłem poniżej. Spróbuj użyć opcji importu, jeśli nie możesz zaimportować pliku zrzutu, musisz dodać tabele ręcznie.

Po wykonaniu tej czynności musisz znaleźć katalog conf z dwoma plikami.service. Tam zmień każdy seb, który znajdziesz, z nazwą użytkownika, którego używasz na swoim pi. Ponadto grupa musi być www-data.

Następnym krokiem jest uruchomienie tych usług na swoim pi, na przykład:

sudo cp conf/project-*.service /etc/systemd/system/

sudo systemctl demon-reload

sudo systemctl uruchom projekt-*

sudo systemctl status projektu-*

Powinieneś zobaczyć dwie aktywne usługi, gdy wszystko pójdzie zgodnie z planem.

Ostatnim krokiem jest włączenie nginx.

Najpierw sprawdź Apache2 na swoim pi, jeśli masz to zainstalowane, usuń go lub wyłącz.

W pliku nginx najpierw musisz zmienić uwsgi_pass, a następnie uruchomić te polecenia.

sudo cp conf/nginx /etc/nginx/sites-available/project

sudo rm /etc/nginx/sites-enabled/default

sudo ln -s /etc/nginx/sites-available/project1/etc/nginx/sites-enabled/projekt

sudo systemctl uruchom ponownie nginx.service

sudo systemctl status nginx.service

Nginx powinien być aktywny i działać. Jeśli wszystko się zgadza, możesz teraz surfować do swojego pi. Na początku zobaczysz "Hello world", ale nadal musisz zmienić zawartość tego pliku za pomocą mojego kodu poniżej.

Możesz włączyć usługi, aby działały automatycznie po uruchomieniu pi.

Kiedy to zrobiłeś, upewnij się, że umieściłeś co najmniej 1 dom z adresem w bazie danych. Możesz to zrobić za pomocą prostego wstawienia do.

Krok 4: Kodowanie

Kodowanie
Kodowanie
Kodowanie
Kodowanie

Możesz pobrać kod przez Github:

github.com/NMCT-S2-Projekt-I/Projekt-i-Tib…

Kod czujników znajduje się w pliku sensor.py.

Nie zapomnij zmienić mojego imienia na Twoje (lub użytkownika, którego używasz na swoim pi) w plikach usług, aby mogły działać poprawnie i umieścić mój kod w już istniejących plikach w Twoim Pycharm.

Krok 5: Mieszkanie

Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania
Mieszkania

Zrobiłem szybki rysunek, jak chciałem mój dom, ale twój może wyglądać zupełnie inaczej. Musisz tylko upewnić się, że masz całość, aby serwo mogło otwierać i zamykać okno.

Do cięcia drewna używałem głównie małej wiertarki i piły. Upewniłem się również, że ściany są wystarczająco grube, abym mógł w nich umieścić moje serwo.

Kiedy skończysz projekt i serwo jest na swoim miejscu, wystarczy podłączyć czujniki i umieścić pi w domu i gotowe.

Jak już wspomniałem Twój dom może wyglądać dokładnie tak samo jak mój, wystarczy zrobić miejsce na serwo i okno.

Wreszcie skończyłeś z projektem. Mam nadzieję, że ten przewodnik jest wystarczająco jasny, abyś ty też mógł stworzyć niesamowity smarthouse, tak jak ja.

Powodzenia.

Zalecana: