P3Vu / Projekt-grupowy

Rozproszony system inteligentnego oświetlenia ulicznego
0 stars 1 forks source link

#1 Stacja oświetlenia ulicznego #6

Open P3Vu opened 4 years ago

P3Vu commented 4 years ago

Pierwszym głównym elementem naszego projektu jest budowa prototypu tzw. stacji oświetlenia ulicznego. Poszczególne stacje będą dysponować specjalnie zaprojektowaną do tego zadania płytką integrująca wymagane komponenty - system wbudowany. Poniżej przedstawiam wspólny dla wszystkich części projektu schemat ideowy.

schemat1

Bazując na dotychczasowych dyskusjach oraz analizując dostępne w sieci oraz tutaj na githubie pomysły dotyczące realizacji tej treści sporządziłem listę podpunktów jakie możemy zrealizować oraz pewne założenia :

O sterowaniu domowymi LED-ami : http://www.fachowyelektryk.pl/technologie/oswietlenie/792-sterowanie-lampami-led.html

O budowie zarówki LED : https://www.zarowka-led.com/blog/oswietlenie-led/budowa-zarowki-i-schemat-dzialania

Przykładowa lampa solarna, parametry oraz wstępne spojrzenie u producenta: https://www.brasit.pl/solarna-lampa-uliczna/

  1. Czujnik wilgotności - rodzina DHT
  2. Czujnik pyłu rodzina PMS do pomiarów PM10, 2.5, 1.0
  3. Czujniki temperatury - wbudowany np. w STM czy zewnętrzny. 4. Wykrywanie ruchu - bardzo ważna kwestia tego projektu - jakie czujniki - jak mają reagować / wykrywać i jak to oprogramować.
  4. Wykrywanie zmierzchu

Artykuł na dobranoc :

Lampy stosowane w oświetleniu ulicznym ze szczególnym uwzględnieniem źródeł LED https://edroga.pl/drogi-i-mosty/lampy-stosowane-w-oswietleniu-ulicznym-ze-szczegolnym-uwzglednieniem-zrodel-led-cz-i-07055814

Luiza2 commented 4 years ago

Wstępny opis zadań do wykonania.

Hardware :

Software :

P3Vu commented 4 years ago

Czujnik Pyłu PMS3003

Zrealizowałem podłączenie czujnika PMS3003 do płytki Discovery STM32F411. Komunikacja z czujnikiem przebiega z wykorzystaniem interfejsu UART. Do tego czujnika nie wymagane jest napisanie odrębnej biblioteki programistycznej. Czujnik po podłączeniu do zasilania sam wysyła dane przez ten interfejs. Dokumentacja nie daje żadnych informacji co do możliwości komunikacji do czujnika ( ciekawe po co zatem linia RX po stronie czujnika ? może dla zachowania konwencji standardu UART albo programowania wbudowanego wewnątrz czujnika mikroprocesora ).

Pajączek z połączeniem : connects

Schemat z dokumentacji : schem

Widok z Cube-a : procek

Do obsługi czujnika wystarczy dane przychodzące po UARCIE wstawić do tablicy 24 bajtowej, gdyż tyle danych jest wysyłane z czujnika. Dane są wysyłane średnio raz na 1-2 sekundy ( szczegóły dokumentacja ). Żeby zidentyfikować czy dane przychodzą wykorzystałem dostępną na płytce diodę niebieska - kiedy ramka po UARCIE zostanie odebrana wywoływane jest przerwanie i przez callback ustawiam a właściwie zmieniam stan na diodzie na przeciwny. Oczywiście trzeba wystawić '1' na pinach SET i RESET które deklarujemy jako zwykłe GPIO_OUTPUT ( obie linie również zgodnie z dokumentacją podciągamy do 3V przez 10kOhm ). Bez tego czujnik nie rusza - sprawdzone :D . Wstawiłem do folderu 'Czujnik pylu' najważniejszą zawartość do eclips'a i cub'a oraz datasheet-a.

Przez STM Studio patrzymy na zawartośc odczytanych danych w tablicy Received :

screenshot z STM Studio

I krótka analiza na papierze :

wynik1 wynik2

Jak widzimy dane w granicach 30-60 ug/m3 są realistyczne więc wszystko śmiga. Nie wiem dlaczego ale długość ramki wychodzi 20 a nie 28 jak powinno według dokumentacji a także co oznaczają dane Under atmosferic environment nieznacznie się one różnią od wcześniejszych danych ale to są już szczegóły. Data and check juz nie przeliczalem.

Ostatnia informacja - zlacze do czujnika jest dość niestandardowe chyba jakieś 1.25mm od chińczyków więc przy ewentualnym montażu trzeba kupić oryginalne gniazdo do podlutowania na PCB albo przerobić kabelki tak jak ja na pająku.

zlacze

Luiza2 commented 4 years ago

Wymagania i zalecenia w oświetleniu ulic.

Dostęp do obowiązujących norm prawnych jest płatny. Sygnalizację dodatkowych zdarzeń można zrealizować w ramach eksperymentu.

Luiza2 commented 4 years ago

Analiza metod wykrywania ruchu.

Rodzaje czujników:

Dostępne czujniki

nr Rodzaj Zakres pomiarowy Kąt widzenia Cena (zł) Uwagi
1 PIR do 7 m do 100º 7,7
2 Mikrofalowy 2 do 16 m szerokość wiązki 3dB: pion 36º, poziom 72º 43
3 Mikrofalowy do 20 m 24,9 wymaga układu przedwzmacniacza
4 PIR do 7 m do 110º 19,9
5 Laserowy do 4 m 42
6 PIR do 7m 7,7

1) https://botland.com.pl/pl/czujniki-ruchu/1655-czujnik-ruchu-pir-hc-sr501-zielony-5903351241359.html 2) https://botland.com.pl/pl/czujniki-ruchu/5497-dfrobot-gravity-czujnik-mikrofalowy-do-wykrywania-ruchu.html 3) https://botland.com.pl/pl/czujniki-ruchu/7561-mikrofalowy-czujnik-ruchu-hb100-efekt-dopplera.html 4) https://botland.com.pl/pl/czujniki-ruchu/10173-dfrobot-gravity-cyfrowy-czujnik-ruchu-pir.html 5) https://kamami.pl/czujniki-odleglosci/571453-czujnik-odleglosci-vl53l1x-4-400-cm-w-technologii-tof-z-regulatorem-napiecia.html 6) https://botland.com.pl/pl/czujniki-ruchu/1655-czujnik-ruchu-pir-hc-sr501-zielony-5903351241359.html

Przykładowe wykorzystanie czujnika mikrofalowego (2) w połączeniu z PIR (4).

Wysokość latarni ulicznych zawiera się w przedziale od 6 do 12 m. Kąty detekcji czujnika : 72º w poziomie i 36º w pionie. Umieszczenie: przy lampie. Dwa przypadki z wybranymi skrajnymi wysokościami lamp:

image

Wysokość lampy Długość odcinka x (m) Długość odcinka y (m)
6 m 3,9 8,7
12 m 7,8 17,4

Wyeliminowanie fałszywych wykryć obiektów przez wiązkę wsteczną (obrazek) zostanie wyeliminowanie dzięki dodaniu czujnika PIR. image Źródło: https://wiki.dfrobot.com/MicroWave_Sensor_SKU__SEN0192

Mniejszy zasięg czujnika PIR wymusza zainstalowanie go na bocznej części słupa, wstępnie wybrałam wysokość 4 m nad ziemią, dzięki czemu wykorzystujemy maksymalny zasięg siedmiu metrów. Kąt widzenia 110 stopni daje nam skanowanie jezdni i fragmentu chodnika (przypadek ogólny, bez uwzględniania szerokości chodnika i jezdni). Konieczne jest wykorzystanie dwóch czujników do skanowania z obu stron słupa.

image

Zakres temperatur pracy czujnika mikrofalowego: od -20ºC do 50ºC Zakres temperatur pracy czujnika PIR: od -15ºC do 70ºC

Dodatek do obmyślenia: wykorzystanie dwóch czujników do określenia prędkości przemieszczającego się obiektu. Na jej podstawie można oszacować w jakim momencie należy zwiększyć jasność kolejnych lamp.

Przykład teoretyczny: image

Źródło: https://www.researchgate.net/figure/Human-movement-detection-and-identification-for-indoor-person-tracking_fig1_262112135

P3Vu commented 4 years ago

Detekcja zmierzchu Po przedyskutowaniu tematu detekcji zmierzchu porzucamy implementacje tego elementu w naszym projekcie. Powodem tego jest fakt iż rozwiązanie to niewiele wniesie do naszego projektu a wiążę się z sporymi problemami i obostrzeniami po stronie hardware-u ( m.in. zróżnicowany stopień oświetlenia w zależności od środowiska, hermetyczność konstrukcji ).

Luiza2 commented 4 years ago

Wybór modułu LoRaWAN

Zdecydowaliśmy się na wybór zestawu deweloperskiego zawierającego zarówno bramkę jak i węzeł końcowy. Jest to rozwiązanie które pozwoli nam na rozpoczęcie prac niezależnie od miejsca pobytu. Dodatkowo zestawy od firmy STM mają wsparcie w postaci narzędzi konfiguracyjnych (wtyczek do środowiska Eclipse / bibliotek do STM32CubeMX).

P3Vu commented 4 years ago

Zasilanie bateryjne w przypadku zaniku zasilania

Tutaj chciałbym skorzystać z pojedynczej baterii Litowo-Jonowej (18650), która przy pojemności około 2000mAh pozwoliłaby na działanie naszego układu w stanie niskiego poboru mocy pozwalając na rozgłaszanie informacji o awarii głównego zasilania.

Moduł ładowania baterii

Jedną z propozycji jest układ z rodziny TP4056/4054 pozwalający na ładowanie pojedynczej baterii Li-Ion prądem dochodzącym do 1A.

Układ odcięcia przy zbyt niskim poziomie napięcia na bateriach

Baterie Li-Ion są wrażliwe na zbyt niski poziom napięcia rozładowania. W tym celu należy zastosować układ który odłączy baterie w momencie gdy jej poziom napięcia będzie zbyt niski a konkretnie dla układu opisanego w [27] dla wartości 3V.

Wszystkie powyższe elementy oraz dodatkowo tranzystor przełączający napięcie główne jeżeli takie będzie dostępne od zapasowego oraz stabilizatorem LDO pod 3,3V stawią wstępną część zasilania.

P3Vu commented 4 years ago

Zasilanie

Nasz układ jest zasilany w prost z sieci 230V AC stąd potrzebne jest przejście na niższe napięcie operacyjne. I jest tutaj kilka rzeczy do przemyślenia otóż potrzebne są nam zasadniczo 2 napięcia :

Z tego powodu należy przemyśleć koncepcję zastosowania 1 trafo z oddzielnymi uzwojeniami ( 3,3V oraz 12V ), zastosowanie 2 odrębnych transformatorów ( trochę słabo :/ ) albo zmianę któryś z powyższych napięć przez odpowiednie układy.

P3Vu commented 4 years ago

Diagnostyka pojedynczej lampy pod kątem poboru prądu

Elementem, który możemy wykorzystać do tego celu jest Transduktor prądowy. W naszym zastosowaniu pozwala on na generowanie sygnału 0-5V DC w zależności od sygnału przechodzącego przez pętlę magnetyczną na 230V AC. Przez dzielnik napięcia podajemy niskie napięcie na A/C w STM-ie. Ja natknąłem się na ten element przy okazji miernika energii elektrycznej [26].

Przechwytywanie

Pozwala on na badanie obciążenia w zależności od wybranego układu w kombinacjach 10, 25, 50 oraz 100 A. Z informacji o pobieranym prądzie ( na podstawie badań oraz później przy normalnej pracy ) przez naszą lampę w stanie włączonym oraz wyłączonym jesteśmy w stanie przeliczyć ile energii zużywa zarówno lampa jak i LoRaBee ( tak nazwałem płytkę komunikacji bezprzewodowej :D )

Luiza2 commented 4 years ago

Czujnik wilgotności, ciśnienia i temperatury BME280

Informacje wstępne

Zasilanie: 1.71-3.6V (wyprowadzenia Nucleo w stanie wysokim mają 3.3V :) ) Interfejs: I2C/SPI (3 bądź 4 przewodowy)

Zakresy pomiarowe:

Po doprowadzeniu zasilania czujnik pracuje w trybie sleep mode.

Dostępne tryby pracy:

BME280 umożliwia wyłączenie np. czujnika temperatury, aby wykonywać dokładniejsze pomiary ciśnienia. Można ustawiać nadpróbkowanie wilgotności i zmieniać rozdzielczość pomiaru temperatury oraz ciśnienia. Urządzenie posiada filtr IIR który pozwala na uniknięcie przekłamań w pomiarach wywołany np. szybkim podmuchem wiatru.

Zalecane jest odczytywanie wielu rejestrów na raz a nie każdego pojedynczo. W trybie I2C nawet jeśli ciśnienie nie było mierzone to łatwiej odczytywać wszystko niż tylko temperaturę i wilgotność. Razem odczytuje się rejestry od 0xF7 do 0xFE (temperatura, ciśnienie i wilgotność).

W trybie normalnym czas pomiaru nie musi być zsynchronizowany z odczytem przez użytkownika. Wyniki pomiarów mogą być dostępne gdy użytkownik dokonuje odczytu poprzedniego pomiaru. W takim przypadku wykorzystuje się przepisywanie pomiarów do dodatkowych rejestrów w celu zachowania spójności odczytów. Taki tryb jest dostępny tylko podczas jednoczesnego odczytania wszystkich rejestrów w jednej serii. Wykorzystanie kilku niezależnych odczytów może dać niespójne dane. Koniec odczytu serii jest sygnalizowany przez narastające zbocze CS w przypadku SPI lub ramki stop w przypadku I2C.

Podłączenie do STM32Nucleo - F446RE

Czujnik Nucleo (SPI2)
SCL PB10
SDA PC1 (MOSI)
CSB PC0
SDO PC2 (MISO)

Wykorzystałam interfejs SPI. Prędkość transmisji wynosi 2,5 MBit/s (czujnik wymaga prędkości poniżej 10 MBit./s).

Realizacja układu:

podlaczenie

Schemat:

nucleo

Konfiguracja w STM32CubeMX:

cube

Pierwszym zadaniem po doprowadzeniu do czujnika zasilania jest wybór jego interfejsu komunikacyjnego. Odbywa się to za pomocą zmiany stanu na linii CSB. Pojedyncze ustawienie na tym wyprowadzeniu stanu niskiego dezaktywuje interfejs I2C i możemy pracować na SPI w trybie czteroprzewodowym. Kolejne kroki to:

Wyniki jakie otrzymuję w terminalu na bieżącym etapie pracy:

terminal

I dodatkowy opis danych:

dane

Kolejny etap będzie obejmował przeliczanie wyników na bardziej przyjazną postać :) cdn.