Spisu treści:
- Krok 1: Okablowanie sprzętu do Pi
- Krok 2: Kodowanie głównych programów
- Krok 3: Tworzenie bazy danych
- Krok 4: Kodowanie sprzętowe
Wideo: Beargardian: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Hej chłopaki do szkoły Potrzebowałem pomysłu na projekt. Pomyślałem więc, że to musi być projekt z raspberry pi i to jest lokalne. Nagle wpadłem na świetny pomysł i nie pytaj mnie, skąd mam ten pomysł, ale pomyślałem o uaktualnieniu do niani elektronicznej. Zastanów się chwilę nad tym pomysłem, większość elektronicznych niań ma tylko funkcję słuchania pokoju dziecka.
Cechy
- Mały pokaz świetlny z regulowanymi kolorami
- Kamera, która pokazuje obrazy na żywo
- Głośnik do odtwarzania muzyki
- Czujniki do uchwycenia ruchu dziecka
- Wszystko to pokazuje na stronie internetowej
Krótka informacja
Pozwólcie, że wyjaśnię to w krótkiej wersji. Potrzebujemy więc strony internetowej i do tego projektu używam Flask, potrzebujemy również bazy danych i używam mysql, także skryptu, który uruchamia sprzęt i to jest z python (3) i na koniec potrzebujemy konfiguracji serwera to byłby nginx na PI.
Czego potrzebujemy
- Raspberry Pi 3
- Silnik krokowy 28BYJ
- Moduł krokowy sterownika krokowego ULN2003
- Led rgb z 3 rezystorami 330Ohm
- Kamera Pi NoIR V2
- Czujnik ultradźwiękowy HC-SR04
- Mikromoduł od ardiuno
- MAX98357A
- Głośnik 8Ohm
- I nie zapomnij kupić niedźwiedzia
Konfiguracja raspberry pi ----------------------------------------------- -------------------------------------------------- --------------------------
Najpierw musimy skonfigurować Pi. Zacznij już logować się przez putty, jeśli nie masz putty, polecam to pobrać, po prostu wpisz swoje statyczne ip Pi za pomocą ssh i idź z tym. Jeśli musisz zainstalować Raspberry Pi to mam złe wieści, nie wyjaśniam tego w tym projekcie.
Zainstaluj pakiety
aktualizacja sudo apt
sudo apt install -y python3-venv python3-pip python3-mysqldb mysql-server uwsgi nginx uwsgi-plugin-python3
Wirtualne środowisko
python3 -m pip install --upgrade pip setuptools wheel virtualenv
mkdir {nazwa folderu projektu} && cd {nazwa folderu projektu} python3 -m venv --system-site-packages env source env/bin/activate python -m pip install mysql-connector-python argon2-cffi Flask-HTTPAuth Flask- MySQL-mysql-connector-python passlib
Teraz musisz sklonować repozytorium git w folderze projektu
github.com/NMCT-S2-Projekt-I/Projekt-I.git
Jeśli zajrzysz do folderu projektu, musisz zobaczyć 5 folderów
- konf
- zazdrościć
- czujnik
- sql
- sieć
Baza danych
sudo systemctl status mysql
ss-lt | grep mysql sudo mysql
utwórz użytkownika w bazie danych ze wszystkimi uprawnieniami i stwórz swoją bazę danych
utwórz użytkownika 'user'@'localhost' identyfikowanego przez 'password';
utwórz bazę danych nazwabazy danych; nadaj wszystkie uprawnienia do nazwy twojej bazy danych.* do 'user'@'localhost' z opcją grant;
Pliki konfiguracyjne dla serwera
W uwsgi-flask.ini zmieniasz 'module = …' na 'module= web:app' i ścieżkę do swojego wirtualnego środowiska, którą utworzyłeś. W pozostałych plikach musisz zmienić ścieżki na rzeczywiste ścieżki bezwzględne twojego katalogu.
Gdy już to zrozumiesz, możesz ustawić pliki we właściwym miejscu.
sudo cp conf/project1-*.service /etc/systemd/system/
sudo systemctl daemon-reload sudo systemctl start project1-* sudo systemctl status project1-*
teraz musimy ustawić to dostępne
sudo cp conf/nginx /etc/nginx/sites-available/project1
sudo rm /etc/nginx/sites-enabled/default sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/project1 ponowne uruchomienie sudo systemctl nginx.service sudo nginx -t
Jeśli wszystko poszło dobrze, powinieneś mieć hello world z tym poleceniem
wget -qO - host lokalny
Gotowe ! Cóż, to jest część, która pozwala uruchomić system na…
Krok 1: Okablowanie sprzętu do Pi
za pomocą BCM
audio MAX98357A
- BCK do GPIO 18
- Dane do GPIO 21
- LRCK do GPIO 19
lekki
- czerwony do GPIO 17
- zielony do GPIO 27
- niebieski do GPIO 22
moduł silnika ULN2003
- pin 1 do GPIO 5
- pin 2 do GPIO 6
- pin 3 do GPIO 13
- pin 4 do GPIO 26
mikro
D0 do GPIO 21
czujnik ultradźwiękowy
- wyzwalanie do GPIO 16
- echo do GPIO 20
Krok 2: Kodowanie głównych programów
Nie wchodzę tutaj w szczegóły, ale możesz sprawdzić mój kod na github.
Na początek zrobiłem swój html i css, indeks, login, rejestr, ekran główny, muzykę, addmusic, addbear, światło, aparat, ustawienia aparatu, czujnik, stronę deski rozdzielczej. Pliki html muszą znajdować się w szablonach, a pliki css w folderze static/css. Możesz w pełni dostosować CSS, jak chcesz.
Jeśli wykonałeś tę część, musisz ustawić swoją kolbę. Flask jest łatwy w użyciu tylko przykładem hello world
# najpierw importuj kolbę
z flask import * @app.route('/') def index(): return render_template('index.html')
Teraz w moim kodzie jest to już wypełnione, jedyne, co musisz zrobić, to zmienić użytkownika bazy danych i hasło na to od Ciebie i oczywiście utworzyć tę samą bazę danych, którą możesz również znaleźć na github.
Krok 3: Tworzenie bazy danych
Prawdziwym fanom powiem, jak stworzyć tę samą bazę danych.
Więc najpierw musimy stworzyć bazę danych, jeśli nie zrobiłeś tego w pierwszym kroku.
stworzyć bazę Beargardian;
Gdy to zrobisz, utworzysz tabele w mysql workbench lub phpadmin
tabela użytkownika ma
- identyfikator użytkownika
- Imię
- nazwisko
- imię dziecka
- hasło z sha1
- folder użytkownika
- muzyka do odtwarzania (int)
- lampka do zabawy (wew.)
- nagranie odtwarzania (wew.)
stolik muzyczny ma
- musicID
- utwór muzyczny
- ścieżka
- folder użytkownika
- status
- Tom
stół do nagrywania ma
- identyfikator nagrania
- ścieżka
- folder użytkownika
- czas
- dzień
tabela kolorów ma
- IDKoloru
- czerwony
- Zielony
- niebieski
- jasność
- identyfikator użytkownika
Niedźwiedź ma
- identyfikator niedźwiedzia (dziesiętny(8))
- domyślna wartość identyfikatora użytkownika zerowa
- niedźwiedź
stół czujnika ma
- ID czujnika
- dystans
- mikro
- identyfikator niedźwiedzia
- czas
- dzień
- czas spania
Więc teraz pomyślnie utworzyłeś bazę danych, przejdźmy do sprzętu.
Krok 4: Kodowanie sprzętowe
Pokażę trochę kodu i powiem, dlaczego zrobiłem to w ten sposób.
Na początek zastosowałem gwintowanie, co jest absolutną koniecznością w tym projekcie. Co to jest gwintowanie, hmmm dobre pytanie ! Cóż, zagrożenie w pythonie polega na uruchamianiu wielu programów jednocześnie. Więc jeśli na przykład zmienisz kolor, możesz również nagrywać. Jest łatwy w użyciu, nie martw się.
import _threaddef nazwa_funkcji(coś, coś_innego): kod do uruchomienia
_thread.start_new_thread(nazwa_funkcji, krotka_z_zmiennymi_funkcjami)
Jeśli spojrzałeś na mój program, zobaczyłeś logger.info('…'). To jest funkcja drukowania, ale znacznie lepsza, ponieważ na Pi nie można drukować rzeczy, więc tworzę plik i drukuję go tam. Możesz ustawić plik dziennika za pomocą tego kodu.
logger = logging.getLogger(_name_)logger.setLevel(logging. INFO) # utwórz procedurę obsługi pliku handler = logging. FileHandler('logger.log') handler.setLevel(logging. INFO)
# utwórz format logowania
formatter = logging. Formatter('%(asctime)s - %(name)s - %(message)s') handler.setFormatter(formatter)
# dodaj programy obsługi do rejestratora
logger.addHandler(obsługa)
logger.info('uruchomienie sprzętu\n-------------------------------------------')
dalej w samym kodzie wszystko wyjaśniam.
Zalecana:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
Lewitacja akustyczna z Arduino Uno krok po kroku (8 kroków): 8 kroków
Lewitacja akustyczna z Arduino Uno Krok po kroku (8-kroków): ultradźwiękowe przetworniki dźwięku Zasilacz żeński L298N Dc z męskim pinem dc Arduino UNOBreadboardJak to działa: Najpierw wgrywasz kod do Arduino Uno (jest to mikrokontroler wyposażony w cyfrowy oraz porty analogowe do konwersji kodu (C++)
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: 6 kroków
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: W tym samouczku dowiemy się, jak śledzić kroki silnika krokowego na wyświetlaczu OLED. Obejrzyj film demonstracyjny.Kredyt samouczka oryginalnego trafia do użytkownika YouTube „sky4fly”
Bolt - DIY Wireless Charging Night Clock (6 kroków): 6 kroków (ze zdjęciami)
Bolt - DIY Wireless Charging Night Clock (6 kroków): Ładowanie indukcyjne (znane również jako ładowanie bezprzewodowe lub ładowanie bezprzewodowe) to rodzaj bezprzewodowego przesyłania energii. Wykorzystuje indukcję elektromagnetyczną do dostarczania energii elektrycznej do urządzeń przenośnych. Najpopularniejszym zastosowaniem jest stacja ładowania bezprzewodowego Qi
Jak zdemontować komputer za pomocą prostych kroków i zdjęć: 13 kroków (ze zdjęciami)
Jak zdemontować komputer za pomocą prostych kroków i zdjęć: To jest instrukcja demontażu komputera. Większość podstawowych komponentów ma budowę modułową i jest łatwa do usunięcia. Jednak ważne jest, abyś był w tym zorganizowany. Pomoże to uchronić Cię przed utratą części, a także ułatwi ponowny montaż