Inteligentny alarm: 6 kroków
Inteligentny alarm: 6 kroków
Anonim
Inteligentny alarm
Inteligentny alarm

Ze szkoły dostałam zadanie wykonania projektu. Wybrałem inteligentny alarm, ponieważ zawsze przesypiam alarm i tęsknię za szkołą. Możesz wyłączyć alarm tylko wtedy, gdy jest światło, dźwięk i ruch, więc nie możesz ponownie zasnąć lub uśpić go bez otwierania oczu. Istnieje również strona internetowa, na której możesz przeglądać swój schemat snu, ustawiać alarmy i tworzyć nowe.

Kieszonkowe dzieci

Do zbudowania projektu potrzebne są pewne materiały. możesz znaleźć listę poniżej. wszystko można również znaleźć w zestawieniu materiałów, w tym cenę.

  1. Malina pi 3
  2. T-cobbler tablica zaciskowa
  3. Czujnik PIR
  4. Czujnik światła
  5. Czujnik wykrywania dźwięku
  6. Brzęczyk
  7. wyświetlacz LCD
  8. Przycisk

Krok 1: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy

Zanim zacząłem budować wszystko, zrobiłem 2 schematy (1 elektryczny i 1 na płytce prototypowej) na fritzowaniu i skontrolowałem je, aby upewnić się, że nie ma w nim żadnych usterek. Kiedy byłem już pewien, że wszystko jest w porządku, zacząłem projekt. Najpierw zacząłem od brzęczyka i przycisku, bo to były najłatwiejsze elementy. Potem podłączyłem wyświetlacz do Raspberry Pi. Na koniec podłączyłem wtedy moje czujniki. czujnik światła i czujnik ruchu są łatwe, ponieważ nie potrzebujesz niczego więcej, ale czujnik PIR potrzebuje czegoś dodatkowego. Aby upewnić się, że PIR nie spowoduje zwarcia, należy użyć mostka napięciowego. Oznacza to, że musisz użyć dodatkowego rezystora 1k om i 2 k om, aby mieć pewność, że wszystko pójdzie dobrze. Dokładne zastosowanie pinów i sposób podłączenia wszystkiego do pi znajdziesz na schematach.

Krok 2: Baza danych

Baza danych
Baza danych

Do przechowywania wszystkich danych potrzebowałem bazy danych.

Moja baza danych składa się z 6 tabel.

  1. Czujnik
  2. Czujniki_historii
  3. Osoba
  4. Alarm_osoba
  5. Wzorzec_snu
  6. Alarm

w bazie danych znajdują się 2 części. 1 dla czujników i 1 dla osoby i wszystkich jej statystyk.

Tabela czujników zawiera identyfikator i nazwę. Ta tabela jest połączona z czujnikami History_sensors, które mają identyfikator, wartość, identyfikator_czujnika i nazwę. sensor_id jest potrzebny, aby wiedzieć, który czujnik ma wartość, a data jest potrzebna, aby wiedzieć, kiedy czujnik ją zmierzył.

Osoba w tabeli zawiera identyfikator, nazwę i hasło. Hasło i nazwa są potrzebne do zalogowania się, aby nikt inny nie mógł ustawić za Ciebie alarmu. Ta tabela jest połączona z tabelami sleep_pattern i Alarm_person. Tabela Sleep_patern zawiera identyfikator, godziny_snu, datę, identyfikator_osoby, porę snu i godzinę budzenia. Oto dane przechowywane, aby stworzyć grafikę dotyczącą twojego snu.

Tabela Alarm_person zawiera Person_id, Alarm_id i czas. Ta tabela jest potrzebna, ponieważ różne osoby mogą jednocześnie korzystać z alarmu, a jedna osoba może korzystać z wielu alarmów. Ostatnia tabela to tabela alarmów. Ten zawiera identyfikator i opis.

Krok 3: Zaplecze

Zaplecze
Zaplecze
Zaplecze
Zaplecze

W back-endzie musiałem napisać różne funkcje.

  1. zapytaj o czujniki stołu
  2. zapytaj o tabelę history_sensors
  3. poproś o wzór snu
  4. ustaw nowy alarm
  5. poproś o alarm stołu
  6. zarejestruj użytkownika
  7. Zaloguj sie
  8. umieść wartości czujników w tabeli history_sensors

Użyłem pycharm i napisałem kod w Pythonie.

dla wszystkich funkcji używam @app.route, a następnie adresu. za każdym razem musisz użyć innego adresu, ponieważ w przeciwnym razie nie zadziała. Następnie piszę funkcję if z metodą jako wartością, więc jeśli to prawda, wykonuje kod. w wartości if znajduje się try catch i instrukcja sql, aby pobrać dane lub je odłożyć.

W przypadku funkcji z czujnikami jest inaczej. Tutaj nie użyłem @app.route, ale właśnie stworzyłem funkcję czujnika. tutaj deklarujesz swoje piny i tworzysz funkcję zwrotną. w ten sposób za każdym razem, gdy czujnik wykryje coś, funkcja jest wykonywana. W funkcji zwrotnej użyłem if, która działa, gdy czujnik coś wykryje. W if znajduje się kod do umieszczania danych w tabeli za pomocą instrukcji sql. Jest w nim również cały sen, ponieważ w przeciwnym razie umieściłoby zbyt wiele wartości w tabeli dla tylko 1 wykrycia.

Na moim githubie możesz znaleźć pełny kod projektu.

Krok 4: Strona internetowa

Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa
Strona internetowa

Dla mojej strony pracowałem z html i css moja strona zawiera 11 stron html.

Stron jest tak dużo, ponieważ wszystko działa na stronie. możesz ustawić alarm, dodać alarm i go usunąć. Na stronie ustawień możesz zmienić swoje hasło i adres e-mail. Masz stronę ze swoim wzorcem snu. Możesz również dodać moment, w którym poszedłeś spać i kiedy się obudziłeś. Pozytywną rzeczą jest to, że każda strona ma ten sam wygląd i używa w większości tych samych elementów, więc CSS jest często taki sam na każdej stronie.

Krok 5: Front-end

Front-end jest napisany w javascript.

Krok 6: Sprawa

Sprawa
Sprawa
Sprawa
Sprawa

W moim przypadku wybrałem drewno. Cięcie nie jest takie trudne, ładnie wygląda. Mój futerał to 26cm na 14 cm przy wzroście 7,5 cm. Jest taka duża bo wszystko co potrzebne żeby się zmieściło. Zrobiłem otwory na czujniki, przycisk i lcd, żeby czas był widoczny i czujniki mogły wykrywać ruch czy światło. Do ich wykonania użyłem wycinarki laserowej. W środku znajduje się moja płytka do krojenia chleba i Raspberry Pi.