Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Niedawno wstałem wcześnie, wiele razy na dworze jest jeszcze ciemno, ale nie chcę włączać światła, żeby wpłynąć na odpoczynek żony, więc zastanawiałem się nad kupnem lampki nocnej. Szukałem wielu sklepów z lampką nocną, ale nie sądzę, że to chcę, ale widziałem lampkę nocną o nazwie DockerPi w sklepie w Amazon, który jest sterowany przez Raspberry Pi. Jest bardzo dobry i może zapewnić funkcje DIY. Przeczytałem opis wiki tego produktu, można nim sterować bezpośrednio z wiersza poleceń, jako programista korzystający z systemu Linux, myślę, że jest to bardzo fajne, więc odkupiłem go i rozpocząłem ten projekt.
Krok 1: Krok 1: Przygotuj wszystkie rzeczy
Po rozpakowaniu, a następnie zdejmuję osłonę ochronną na akrylowej płytce, a następnie montuję ten moduł DockerPi do mojego Raspberry Pi za pomocą śrub i miedzianego sztyftu. naprawiono stabilnie.
Krok 2: Krok 2: Flashuj najnowszy obraz systemu operacyjnego Rasbpian na kartę SD
Pobieram najnowszy obraz Raspbian z:
a następnie sflashuj obraz za pomocą oprogramowania o nazwie: etcher
możesz pobrać tutaj:
rozpakuj plik obrazu z paczki gzip, a otrzymasz plik *.img, wybierz obraz i wybierz dysk, na którym twój komputer rozpoznał kartę TF, po prostu naciśnij "Flash" i poczekaj kilka minut, wszystko się skończy.
a następnie wyjmij kartę TF i włóż ją do Raspberry Pi i włącz ją.
Krok 3: Krok 3: Włącz funkcję I2C z Raspi-config
Po uruchomieniu Raspberry pi otworzyłem terminal i wpisałem to polecenie: sudo raspi-config
i przejść do „Opcji interfejsu” i wybrać „I2C” i włączyć go. dlaczego powinienem używać tego polecenia?
Ponieważ moduł Nightlight DockerPi wykorzystuje protokół I2C komunikuje się z Raspberry Pi.
Krok 4: Krok 4: Podłącz panel akrylowy do gniazda
Bardzo dobrze pasuje do gniazda, a na zdjęciu widać, że panel akrylowy może pozostać w gnieździe.
kolejnym krokiem jest uruchomienie kodu testowego, aby sprawdzić, czy działa poprawnie.
Przykładowy kod pobrałem z github wpisując to polecenie w terminalu w raspberry Pi.
cd ~
klon git
cd dockerpi/Podświetlenie nocne/
sudo./Nightligh.sh
a potem moja lampka nocna włącza się i świeci.
Przeczytałem instrukcję na jej wiki i znalazłem mapę rejestru wszystkich świateł LED.
Następnym krokiem będzie najzabawniejsza część, chcę dodać czujnik piroelektryczny na podczerwień ludzkiego ciała, niech wykryje, że jestem oświetlony, aby zapalić tę małą lampkę nocną ~
Krok 5: Krok 5: Konfiguracja czujnika piroelektrycznego na podczerwień
Tutaj używamy czujnika ruchu PIR. PIR oznacza pasywną podczerwień. Ten czujnik ruchu składa się z soczewki Fresnela, detektora podczerwieni i pomocniczego obwodu wykrywania. Soczewka czujnika skupia wszelkie promieniowanie podczerwone znajdujące się wokół niego w kierunku detektora podczerwieni. Nasze ciała wytwarzają ciepło podczerwone, które w rezultacie jest odbierane przez czujnik ruchu. Czujnik wysyła sygnał 5V przez okres jednej minuty, gdy tylko wykryje obecność osoby. Oferuje wstępny zasięg wykrywania około 6-7 metrów i jest bardzo czuły. Gdy czujnik ruchu PIR wykryje osobę, wysyła sygnał 5 V do Raspberry Pi przez jego GPIO i określamy, co powinien zrobić Raspberry Pi, gdy wykrywa intruza poprzez kodowanie Pythona. Tutaj właśnie wyświetlamy "Wykryto intruza".
Po skonfigurowaniu Raspberry Pi możemy teraz zacząć bawić się jego pinami GPIO. Tutaj spróbujemy mrugnąć diodą LED za pomocą skryptu Pythona. Skopiuj i wklej następujący kod do swojego Raspberry Pi. Możesz to zrobić, otwierając edytor tekstu "leafpad" na swoim Raspberry Pi i kopiując do niego ten kod, a następnie zapisz go jako plik Pythona: nightlight.py:
#importuj biblioteki.
importuj RPi. GPIO jako GPIO
czas importu
importuj smbus
URZĄDZENIE_BUS = 1
ADRES_URZĄDZENIA = 0x15
GPIO.setwarnings (Fałsz)
GPIO.setmode(GPIO. BOARD)
GPIO.setup(11, GPIO. IN) #Odczytaj wyjście z czujnika ruchu PIR
bus = smbus. SMBus(DEVICE_BUS) # instancja smbus dla urządzenia i2c, oznacza lampkę nocną.
podczas gdy prawda:
próbować:
i=GPIO.wejście(11)
if i==0: #Gdy sygnał wyjściowy z czujnika ruchu jest NISKI
drukuj ("Brak intruzów", i)
dla i w zakresie (1, 25):
bus.write_byte_data(DEVICE_ADDR, i, 0x00) #Wyłącz diodę LED
czas.sen(0.2)
czas.sen(0.1)
elif i==1: #Gdy wyjście z czujnika ruchu jest WYSOKIE
print("Wykryto intruza", i)
dla i w zakresie (1, 25):
bus.write_byte_data(DEVICE_ADDR, i, 0xFF) #Wyłącz diodę LED
czas.sen(0.2)
czas.sen(0.1)
z wyjątkiem KeyboardInterrupt jako e:
print("Zakończ pętlę")
a następnie zapisz go i uruchom podczas uruchamiania Raspberry Pi.
sudo vim.tiny /etc/rc.local
i dodaj tę linię przed wyjściem 0:
sudo python /home/pi/nightlight.py &
a następnie zapisz go i zrestartuj swoje Pi, będzie działać poprawnie …
Dzięki za oglądanie ~