Spisu treści:

System śmieci: 7 kroków
System śmieci: 7 kroków

Wideo: System śmieci: 7 kroków

Wideo: System śmieci: 7 kroków
Wideo: Erick Worre - Bądź pro! 7 kroków do mistrzostwa w marketingu sieciowym. Audiobook 2024, Listopad
Anonim
System śmieci
System śmieci

Postanowiliśmy spróbować znaleźć sposób na śledzenie zapełniania śmieci przez społeczność lub czujnik w każdym śmieci w okolicy, aby spróbować usprawnić usuwanie śmieci. Pomyśleliśmy, że jeśli ciężarówka przyjeżdża co dwa tygodnie na zbiórkę, co jeśli ja lub mój sąsiad tylko trochę wyrzucimy. Czy nie byłoby nieefektywne wysyłanie ciężarówki tam, gdzie połowa dzielnicy nie wysłała pełnych pojemników na śmieci? Byłoby super, gdyby można było zobaczyć, jak śmietnik sąsiada zapełnia się, a potem korzysta z jego śmieci, jeśli moje były pełne, a ich puste i odwrotnie. Zdecydowaliśmy się użyć czujnika ultradźwiękowego HC-SR04 wraz z raspberry pi, aby spróbować rozwiązać ten projekt.

Kieszonkowe dzieci

Czujnik ultradźwiękowy (HC-SR04)

Raspberry Pi (użyliśmy Pi 4 Model B)

Deska do krojenia chleba

Kable rozruchowe

Para rezystorów (3 x 1 kΩ)

Krok 1: Podłączanie HC-SR04

Podłączanie HC-SR04
Podłączanie HC-SR04

Ponieważ używamy Raspberry Pi, musimy użyć dzielnika napięcia do regulacji napięcia wchodzącego do pinów GPIO Pi, ponieważ pozwalają one tylko na 3,3 V. HC-SR04 używa 5 V, ale musi zostać obniżony do 3,3 V podczas podłączania go do Pi. Podłącz odpowiednio piny 5 V i uziemienia i zgodnie z programem podłącz piny echa i wyzwalacza do odpowiednich pinów. W naszym programie użyliśmy pinów 23 i 24 odpowiednio dla echa i wyzwalacza.

Krok 2: Mosquitto i Paho MQTT

Zanim zaczniemy programować w Pythonie, aby czujnik ultradźwiękowy działał z Pi, powinniśmy zainstalować te aplikacje, aby czujnik ultradźwiękowy komunikował się z naszym oprogramowaniem do programowania Node-RED. Mosquitto to broker MQTT, którego można używać na Pi, podczas gdy Paho MQTT to biblioteka, która umożliwia kodowanie w Pythonie, aby czujnik komunikował się z brokerem MQTT. Aby zainstalować oba z nich, wpisz te polecenia na swoim terminalu Pi

aktualizacja sudo apt

sudo apt install -y mosquitto mosquitto-klienci

sudo apt-get zainstaluj python3-pip

sudo pip3 zainstaluj paho-mqtt

Krok 3: Program Pythona dla czujnika ultradźwiękowego

Jest to program, którego użyłem do odczytywania danych przychodzących z czujnika, a także publikowania do brokera MQTT.

Krok 4: Węzeł-CZERWONY

Węzeł-CZERWONY
Węzeł-CZERWONY
Węzeł-CZERWONY
Węzeł-CZERWONY
Węzeł-CZERWONY
Węzeł-CZERWONY
Węzeł-CZERWONY
Węzeł-CZERWONY

Niektóre węzły nie są preinstalowane w programie, więc może być konieczne zainstalowanie ich z palet. Te, które musisz zainstalować, to node-red-dashboard i node-red-node-sqlite.

Tutaj zaczynamy korzystać z naszego oprogramowania do programowania i czujnika. Pierwszym węzłem, którego potrzebujesz, jest węzeł MQTT-in, który pozwala nam używać naszego czujnika uruchamiającego program z góry do wysyłania danych do tego oprogramowania. Węzeł zakresu, którego użyliśmy, odwraca wartości, które mamy (tj. 5 cm jest pełne z programu, więc odwracamy go do 100%). Po węźle zakresu mamy 2 węzły funkcyjne, jeden do wyświetlania wiadomości na naszym pulpicie nawigacyjnym, a drugi do wyświetlania obrazu, że śmieci są pełne. Program dla węzłów funkcyjnych jest załączony.

Jeśli to możliwe, przepływ ten można by wykorzystać do wielu czujników ultradźwiękowych. Jednak dla naszego projektu musieliśmy wykonać dane symulacyjne, ponieważ nie byliśmy w stanie zdobyć więcej czujników. Sposób, w jaki to zrobiliśmy, jest bardzo podobny, ale mamy przyciski, które użytkownik może kliknąć, aby losowo dodać 1-10 procent śmieci w każdym ze śmieci. Użyliśmy 2 przycisków, jednego do dodawania śmieci i jednego do czyszczenia. Miernik, komunikaty i wskaźnik są nadal dokładnie takie same, kod do zliczania i liczenia śmieci jest jednak nieco inny.

Krok 5: Rejestrowanie danych

Rejestrowanie danych
Rejestrowanie danych
Rejestrowanie danych
Rejestrowanie danych
Rejestrowanie danych
Rejestrowanie danych

Uznaliśmy, że dobrym pomysłem będzie rejestrowanie, jak pełne są śmieci, gdy ciężarówka przyjeżdża je opróżniać. Za pomocą węzła sqlite jesteśmy w stanie odczytywać i zapisywać dane, co również zapisuje je w Pi. Będziesz musiał zainstalować ten węzeł, jak powiedziałem wcześniej.

Kroki do tworzenia i rejestrowania danych przebiegają następująco:

1. Utwórz bazę danych

2. Zaloguj dane

3. Wyciągnij dane, aby pokazać się na naszym desce rozdzielczej

4. Wyczyść i usuń dane

Sposób działania SQL polega na tym, że musisz utworzyć i wykonać temat, który to CREATE TABLE, INSERT INTO, SELECT FROM i DELETE FROM. Używając węzłów znaczników czasu, możemy uruchamiać tematy w węźle sqlite, który wykonuje każdą z tych funkcji (tworzenie, wstawianie, wybieranie i usuwanie). Wystarczy raz utworzyć bazę danych, a po jej zakończeniu możemy logować do niej dane. Po utworzeniu bazy danych możemy rejestrować dane i ponownie używaliśmy danych wprowadzonych przez użytkownika, aby zarejestrować przybycie ciężarówki. Zrobiliśmy to tak, abyś nie był w stanie rejestrować danych, dopóki ciężarówka nie będzie mogła przyjechać, która ma 5 śmieci przy 80% pojemności (uznawane za pełne). Ponownie użyliśmy węzła zakresu, aby przeskalować 500 z powrotem do 0-100%. Mamy wtedy możliwość usunięcia wszystkich danych z bazy, jeśli chcemy. Węzeł tabeli interfejsu użytkownika jest węzłem, który pozwala nam zobaczyć tabelę w ładnie sformatowanej formie na naszym pulpicie nawigacyjnym.

Krok 6: Układ

Po tym wszystkim możesz stworzyć układ, który chcesz za pomocą Node-RED. Na bocznej karcie będziesz mógł je rozmieścić tak, jak chcesz, a masz o wiele więcej opcji dostosowywania. Dołączony jest również mój przepływ dla całego mojego programu.

Krok 7: Wniosek

Po zakończeniu tego projektu są obszary, w których program może się dalej rozwijać. Nigdy nie znalazłem sposobu na automatyczne rejestrowanie, ponieważ jedynym sposobem, w jaki mogliśmy to zrobić, było rejestrowanie w odstępach i nie potrzebowalibyśmy żadnych powtarzających się numerów, gdyby śmieciarka raz przyjechała. Myślę, że jest to częściowo spowodowane tym, że zdecydowaliśmy się mocno uzależnić go od węzłów funkcji i programowania, ponieważ jesteśmy bardziej komfortowi z tym programowaniem. Po zbadaniu, gdy skończyliśmy, stało się jasne, że istnieją węzły stworzone do wszystkiego i mogłoby to znacznie ułatwić życie, gdybyśmy wcześniej znaleźli funkcję węzłów przełącznika i rbe. Był też węzeł wykonany dla czujników ultradźwiękowych, których nie udało nam się uruchomić. Ułatwiłoby to sprawę, ponieważ nie byłoby potrzeby używania MQTT ani programu Python, ponieważ jest to tylko węzeł z wyzwalaczem i pinami echa. Zdecydowaliśmy się obejść ten problem, tworząc program w Pythonie, jak widzieliście powyżej. Ogromną wskazówką dla każdego, kto chce zagłębić się w Node-RED, jest to, że powinieneś użyć wielu węzłów debugowania, aby dowiedzieć się, czy każdy przepływ działa i daje to, czego chcesz/potrzebujesz.

Zalecana: