Skip to content

Oświetlenie LED do szafy wykorzystujące Raspberry Pi Zero z podłączonym czujnikiem dystansu wraz z zapisem godzin otwarcia do bazy danych.

Notifications You must be signed in to change notification settings

Io-Maciek/SzafaOswietlenie

Repository files navigation

Wstęp

  Repozytorium te zawiera kod do oświetlenia do szafy z dzwiami przesuwnymi. Ideą jest uruchomienie paska led po wystarczającym odsunięciu drzwii. Dodatkowo w celu zbierania logów i bezpieczeństwa wprowadzone zostało połączenie z bazą danych, do której przekazywane są informacje o czasie otwarcie i zamknięcia szafy.

  Mimo, iż głowna funkcjonalność projektu została już zaimplementowana projekt ciągle jest rozwijany i planowane jest stworzenie alarmu i prostego REST API.

Wymagane elementy

  Na ten moment, elementy i moduły, które zostały użyte to:

  Prócz fizycznych elementów opcjonalne są poniższe pliki w katalogu projektu:

- adres.txt - jeżeli jest obecny wysyła informacje na temat otwarcia i zamknięcia szafy do bazy danych. Musi zawierać trzy linie:

  1. Adres IP i port serwera z bazą danych
  2. Login użytkownika
  3. Hasło użytkownika

- auth.txt - jeżeli jest obecny wymaga przed wejściem na stronę (czy API) autoryzację za pomocą nagłówka Autorization basic. Musi zawierać dwie linie:

  1. Login użytkownika
  2. Hasło

- sinricpro_login.txt - jeżeli jest obecny pozwala na dodanie szafy jako urządzenia w aplikacji SinricPro. Musi mieć trzy linie:

  1. APP_KEY
  2. APP_SECRET
  3. DEVICE_ID

- smtp.txt - jeżeli jest obecny, wysyła informację na gmail o otwarciu, zamknięciu szafy oraz czasie trwania. Wymagane 4 linie:

  1. Email działający jako serwer SMTP (sender)
  2. Hasło na email (sender)
  3. Email (receiver)
  4. Minimalny czas trwania (w sekundach) statusu, po którym zostanie wysłana wiadomość na mail.

W przypadku wykorzystania gmail-a należy włączyć logowanie dwu-etapowe i ustawić hasło aplikacji. Więcej informacji można znaleźć tutaj.

- Wymaga minimalnej wersji python-a w wersji 3.9.7

Aby zainstalować na Raspberry Pi Zero:

wget https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tar.xz
cd Python-3.9.7
./configure --enable-optimizations
make -j4
sudo make altinstall

Struktura tabeli w bazie

ID Data Stan Dlugosc CzyStartowe CzyOffline
int datetime2 bit float bit bit

Funkcje i plany

  • Mierzenie odległości
  • Włączanie i wyłączanie przekaźnika zapalającego pasek LED
  • Zapisywanie informacji o godzinie otworzenia i zamknięcia szafy
    • Asynchroniczne łączenie z bazą danych
    • Zapisywanie do pliku temp.txt w przypadku braku połączenia
    • Przekazywanie informacji z pliku do bazy po ponownym połączeniu
    • Wyłączenie łączenia z bazą, jeżeli nie wykryto pliku adres.txt
  • Wyłączenie światła po dotknięciu czujnika do czasu zamknięcia szafy lub ponownego dotknięcia (funkcja nadpisu)
  • Mechanizm przypominający o zamknięciu szafy
  • Stworzenie API
    • Uruchomienie serwera za pomocą socketa
    • Edytowanie konfiguracji programu za pomocą przeglądarki (czas do alarmu, wyłączenie alarmu, głośność)
  • Stworzenie aplikacji mobilnej do wyświetlania danych i edytowania konfuguracji
  • Możliwość wyłączenia i włączenia
  • Połączenie z aplikacjami typu smart home (Google Home, SinricPro)

Diagram połączenia

zdjecie

About

Oświetlenie LED do szafy wykorzystujące Raspberry Pi Zero z podłączonym czujnikiem dystansu wraz z zapisem godzin otwarcia do bazy danych.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages