Spisu treści:
- Krok 1: Spójrzmy na przegląd
- Krok 2: Skonfiguruj dla Raspberry Pi 1 (biuro)
- Krok 3: Skonfiguruj dla Raspberry Pi 2 (drzwi)
- Krok 4: Skonfiguruj bota Telegram
- Krok 5: Skonfiguruj DynamoDB
- Krok 6: Skonfiguruj zasobnik AWS S3
- Krok 7: Skonfiguruj AWS SNS
- Krok 8: Tworzenie reguły
- Krok 9: Tworzenie interfejsu internetowego
- Krok 10: Skrypty główne
Wideo: Raspberry Pi - Smart Office: 10 kroków (ze zdjęciami)
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Czego dotyczy aplikacja?
OfficeHelperBOT to aplikacja ukierunkowana na ustawienie inteligentnego biura. 2 Raspberry Pi 3 Model B byłby do tego skonfigurowany.
Raspberry Pi 1 będzie główną maszyną, która będzie pobierać wszystkie wartości z czujników, publikując dane za pośrednictwem MQTT, przechowując dane w bazie danych w chmurze, z której korzystamy w DynamoDB i uruchamiając serwer portalu internetowego.
Raspberry Pi 2 będzie używany przy drzwiach. Wymagałoby to od pracownika zweryfikowania swojej tożsamości, zanim uzyska dostęp do biura. Można to zrobić na dwa sposoby, za pomocą sekwencji kodu PIN i weryfikacji kodu QR. W przypadkach, w których weryfikacja może być niewłaściwie wykorzystana, zrobimy zdjęcie osobie, która nie przeszła weryfikacji i zapiszemy jej zdjęcie w zasobniku AWS S3.
Strona internetowa byłaby w stanie wyświetlić zdjęcia DHT, światło, wykryty ruch i wideo z biura. Strona internetowa byłaby również w stanie sterować oświetleniem biura, a także oglądać na żywo transmisję z CCTV biura.
Byłby również bot Telegram, który umożliwiałby sterowanie oświetleniem LED w biurze, sprawdzanie wartości wartości czujników, takich jak temperatura, a także umożliwianie pracownikowi uzyskanie obrazu kodu QR, jeśli zgubi obraz kodu QR lub zapomniał kodu PIN poprzez żądanie i pobranie obrazu kodu QR z AWS S3 Bucket.
Krok 1: Spójrzmy na przegląd
Schemat architektury systemu
Jak maszyny będą się ze sobą komunikować
Wynik sprzętowy
Zobacz, jak ostatecznie wyglądałyby dwa Raspberry Pi
Portal internetowy
Zobacz portal internetowy stworzony za pomocą Pythona za pośrednictwem Flask
Telegram Bot
Odnajdywanie Bota, którego stworzyliśmy
Transmisja na żywo
Używanie jednego urządzenia PiCam jako telewizji przemysłowej i przesyłanie strumieniowe materiału na żywo
Wymagania sprzętowe
- 2x Raspberry Pi
- 2x płytka GPIO
- 1x LDR
- 1x DHT11
- 1x czujnik ruchu
- 4x LED
- 7x przycisk
- 2x brzęczyk
- 2x wyświetlacz LCD
- 1x kamera internetowa
Krok 2: Skonfiguruj dla Raspberry Pi 1 (biuro)
- Utwórz folder do przechowywania html o nazwie szablony
- Utwórz folder do przechowywania plików css/javascript o nazwie statyczne
- Utwórz folder do przechowywania plików aparatu o nazwie camera z 3 podfolderami capture_photos, motion_photos, motion_videos
mkdir ~/ca2
mkdir ~/ca2/szablony
mkdir ~/ca2/static
mkdir ~/ca2/static/camera
mkdir ~/ca2/static/camera/capture_photos
mkdir ~/ca2/static/camera/motion_photos
mkdir ~/ca2/static/camera/motion_Videos
Krok 3: Skonfiguruj dla Raspberry Pi 2 (drzwi)
- Utwórz folder do przechowywania plików o nazwie drzwi
- Utwórz folder do przechowywania obrazów kodu QR o nazwie qr_code
mkdir ~/drzwi
mkdir ~/drzwi/qr_code
Krok 4: Skonfiguruj bota Telegram
- Otwórz telegram
- Znajdź „Ojca Dolnego”
- Wpisz "/start"
- Wpisz „/nowybot”
- Postępuj zgodnie z instrukcjami, nazwa dla bota, nazwa użytkownika dla bota, zanotuj token uwierzytelniający bota
Krok 5: Skonfiguruj DynamoDB
- Zarejestruj się w AWS
- Wyszukaj DynamoDB w usłudze AWS
- Kliknij „Utwórz tabelę”
- Wpisz nazwę tabeli
- Ustaw klucz partycji jako „id” (ciąg) i dodaj klucz sortowania jako „datetime” (ciąg)
- Zrób to dla 4 stołów, dht, świateł, galerii, pracownika
Zapowiedź 4 stołów
Krok 6: Skonfiguruj zasobnik AWS S3
- Wyszukaj AWS S3
- Kliknij „Utwórz zasobnik”
- Postępuj zgodnie z zasadami, aby nazwać wiadro
- Śledź zrzuty ekranu
- Utwórz zasobnik
Jak w ogóle wgrać do zasobnika S3?
Nie mamy portalu administracyjnego, więc ręcznie importowalibyśmy obraz QR Code za pomocą graficznego interfejsu użytkownika AWS. Postępuj zgodnie ze zrzutami ekranu, aby utworzyć zasobnik. Fragment kodu to logika wymagana do przesłania obrazu do S3 Bucket
Krok 7: Skonfiguruj AWS SNS
- Wyszukaj AWS SNS
- Obserwuj tag tematu
- Utwórz nowy temat
- Ustaw nazwę tematu i wyświetlaną nazwę
- Edytuj zasady, aby umożliwić wszystkim publikowanie
- Zapisz się do tworzonego tematu
- Ustaw e-mail w polu punktu końcowego, aby otrzymywać e-maile, gdy wartość osiągnie określoną wartość
Krok 8: Tworzenie reguły
- Kliknij „Utwórz regułę”
- Wpisz imię i krótki opis
- Wybierz najnowszą wersję SQL, aby wysłać całą wiadomość MQTT
- Silnik reguł używa filtru tematów, aby określić, które reguły mają być wyzwalane po odebraniu wiadomości MQTT
- Kliknij „Dodaj akcję”
- Wybierz wysyłanie wiadomości przez powiadomienia push SNS
Krok 9: Tworzenie interfejsu internetowego
Utwórz te nowe pliki html o nazwie
- głowa
- Zaloguj sie
- dzienniki
- dht
- lekki
- Galeria
- ruch
- prowadzony
Skopiuj i wklej z pliku Dysku Google do odpowiedniego html.
drive.google.com/file/d/1zd-x21G7P5JeZyPGZp1mdUJsfjoclYJ_/view?usp=sharing
Krok 10: Skrypty główne
Istnieją 3 główne skrypty
- server.py - Utwórz portal internetowy
- working.py - Logika dla Raspberry Pi 1 (Biuro)
- door.py Logika dla Raspberry Pi 2 (drzwi)
Po prostu uruchamiamy wszystkie 3 kody, aby uzyskać pożądany wynik
Możemy go pobrać z dysku Google pod Main.zip
drive.google.com/open?id=1xZRjqvFi7Ntna9_KzLzhroyEs8Wryp7g