Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tym prostym projekcie użyjemy czujnika ruchu, aby wykryć, czy obiekt przechodzi przed naszym Raspberry Pi. Następnie policzymy, ile razy to się zdarzy, i wyślemy tę wartość do Ubidots.
Liczniki osób są zazwyczaj drogimi urządzeniami używanymi w branży detalicznej, aby zrozumieć, jak zachowują się kupujący. Dzięki Raspberry Pi i Ubidots jesteśmy w stanie zbudować funkcjonalny licznik ludzi w kilka godzin i za kilka dolarów!
Po przesłaniu danych zliczających osoby do Ubidots, możemy tworzyć ładne wykresy do analizy, a także alerty SMS/e-mail.
Krok 1: Zdobycie odpowiednich materiałów
Aby ukończyć ten projekt, potrzebujesz:
- Raspberry Pi Model B
- Czujnik PIR firmy Parallax
- Klucz USB WiFi zgodny z Raspberry Pi
- Zestaw baterii USB do zasilania Raspberry Pi (jest to opcjonalne w przypadku, gdy chcesz pozostawić Pi całkowicie bezprzewodowe)
- Trzy przewody połączeniowe żeńsko-żeńskie
- Konto Ubidots - lub - Licencja STEM
Krok 2: Podłączanie rzeczy
Czujnik ruchu PIR jest dość prosty w obsłudze, ponieważ ma tylko trzy piny:
- V+
- GND
- Pin sygnałowy, który wyprowadza „1”, gdy jest ruch i „0”, gdy nie ma.
Nie ma potrzeby lutowania czegokolwiek ani pisania skomplikowanych funkcji I2C lub szeregowych do wykrywania tego sygnału; po prostu podłącz kable bezpośrednio do pinów GPIO swojego Raspberry Pi i zadziała!
Krok 3: Obudowa
Ponieważ czujnik PIR jest bardzo czuły na ruch, użyłem przełącznika znajdującego się za nim, aby ustawić jak najniższą czułość. Wziąłem też stare etui z okularów przeciwsłonecznych i zrobiłem w nim dziurę, a następnie umieściłem w nim czujnik RPi i PIR. W ten sposób czujnik ruchu jest silnie skupiony w jednym punkcie, zamiast być tak wielokierunkowym.
Krok 4: Kodowanie RPi
W tym momencie założymy, że wykonałeś podstawową konfigurację swojego Raspberry Pi i patrzysz na jego wiersz poleceń Linuksa. Jeśli nie, zalecamy najpierw zapoznać się z tym przewodnikiem. Możesz również sprawdzić ten post na temat używania Wicd do konfiguracji WiFi swojego Raspberry Pi.
Zacznijmy od upewnienia się, że mamy wszystkie wymagane biblioteki:
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install python-setuptools $ sudo easy_install pip $ pip zainstaluj ubidots
Utwórz nowy plik o nazwie „peoplecounter.py”:
$ sudo nano peoplecounter.py
I napisz do niego poniższy kod. Pamiętaj, aby zastąpić wartości klucza API i identyfikatora zmiennej tymi z Twojego osobistego konta Ubidots. (Uwaga: kod nie jest zbyt elegancki, ale hej, nie jestem programistą w Pythonie, tylko facetem od sprzętu:)
Skrypt składa się z pętli, która sprawdza stan pinu nr 7 (czujnika ruchu). Jeśli odczyta „1”, co oznacza, że był ruch, zwiększa zmienną „liczba osób” i czeka 1,5 sekundy, aby czujnik ruchu wrócił do normy. Odbywa się to 10 razy, upewniając się, że między każdym cyklem jest co najmniej 1 sekunda, a następnie wysyła całkowitą sumę „ruchów” do Ubidots. Jeśli potrzebujesz skalibrować licznik osób, powinieneś pobawić się liniami "time.sleep" z innymi wartościami.
z ubidots importuj ApiClient
importuj RPi. GPIO jako GPIO
czas importu
GPIO.setmode(GPIO. BCM)
GPIO.setup(7, GPIO. IN)
próbować:
api =ApiClient("a21ebaf64e14d195c0044fcc3b9f6dab9d653af3")
ludzie = api.get_variable("5238cec3f91b282c7357a140")
z wyjątkiem: print "Nie można połączyć się z API, sprawdź połączenie internetowe"
licznik = 0
ludziev = 0
podczas (1):
obecność = GPIO.input(7)
jeśli (obecność):
liczba osób += 1
obecność = 0
czas.sen(1.5)
czas.sen(1)
licznik += 1
jeśli(licznik==10):
drukuj liczbę osób
people.save_value({'value':liczba osób})
licznik = 0
ludziev = 0
Krok 5: Wyświetl swoje dane
Na koniec przejdź do pulpitu nawigacyjnego Ubidots i dodaj widżet typu „Oświadczenie”. Spowoduje to wyświetlenie całkowitej liczby osób wykrytych w określonym przedziale czasowym
Krok 6: Podsumowanie
Ten projekt daje wskazówkę, ile osób przechodzi przez dany punkt. Nie podaje dokładnej liczby osób, biorąc pod uwagę ograniczenia czujnika ruchu, ale w niektórych aplikacjach może to wystarczyć.
Zebrane dane można łatwo przesłać do chmury Ubidots, gdzie można je zinterpretować, tworząc alerty, pulpity na żywo, a nawet udostępniając te dane w mediach społecznościowych, jako kod do osadzenia lub po prostu w publicznym linku. Możesz również odczytać te dane z innej aplikacji za pomocą interfejsu API Ubidots.