Elektroda.pl
Elektroda.pl
X
Arrow Multisolution Day
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Detektor wyładowań atmosferycznych dla Raspberry Pi

ghost666 15 Cze 2015 17:07 11997 22
  • Detektor wyładowań atmosferycznych dla Raspberry Pi

    Detekcja wyładowań atmosferycznych to bardzo ciekawa i przydatna sprawa w domowych stacjach meteorologicznych. Jakiś czas temu opisywana była stacja meteorologiczna oparta o Raspberry Pi - Link. W tym artykule skupimy się na zastosowanym w tym urządzeniu detektorze wyładowań atmosferycznych.

    W artykule omówimy:

    Jak działa detektor wyładowań.
    Jak podłączyć detektor do Raspberry Pi poprzez multiplekser I²C.
    Jak najlepiej umieścić detektor w urządzeniu
    Jak zbierać dane i je prezentować.
    Obejrzymy elementy wykonane w technologii druku 3D, do montażu detektora.
    Poznamy oprogramowanie w języku Python, jakie kontroluje detektor wyładowań atmosferycznych.

    Detektor wyładowań atmosferycznych dla Raspberry Pi


    Czym jest Weather Pi

    WeatherPi to zasilana ogniwami fotowoltaicznymi kompletna stacja meteorologiczna, komunikująca się po WiFi. Najważniejszymi własnościami i funkcjami stacji są:

    Zbieranie 20 różnych zmiennych środowiskowych.
    Zasilanie ogniwami fotowoltaicznymi.
    Monitorowanie napięć, prądów i obciążeń w instalacji zasilającej,
    Zintegrowany kontroler zasilania.
    Zintegrowana baza danych MySQL do przechowywania odczytów.
    Możliwość zdalnego zmieniania programu.
    Możliwość pobierania danych na PC w celu ich przetwarzania i prezentacji.
    Można dodać funkcje korzystając z API do pisania SMSów, Twittów itp.
    Kontrola zdalna z pomocą iPada.

    Detekcja błyskawic

    Poniższy opis pokazuje czym jest i jak podłączyć do Raspberry Pi moduł Embedded Adventures MOD-1016 oparty o układ scalony AS3935.

    Czym jest i jak działa układ AS3935

    AS3935 firmy Austrian Microsystems to w pełni programowalny scalony detektor wyładowań atmosferycznych, który pozwala na detekcję obecności potencjalnie niebezpiecznych wyładowań w otoczeniu układu scalonego. Pozwala on także na ocenę odległości w jakiej nastąpiło wyładowanie atmosferyczne, co umożliwia określenie jak daleko znajduje się np. front burzowy. Wbudowane algorytmy detekcji, pozwalają na wykrywanie naturalnych wyładowań i odróżnianie ich od zakłóceń antropogenicznych





    AS3935 dostarcza także istotnych informacji odnośnie szumu w otoczeniu elektromagnetycznym układów scalonych. Pozwala to na informowanie innych układów, na przykład mikrokontrolera o wysokim poziomie szumu elektromagnetycznego w otoczeniu.

    Opisywany układ może być programowany poprzez standardowy interfejs SPI lub też I²C. Jeśli wybrany zostanie ten drugi, możliwy jest wybór jednego z czterech adresów sprzętowych. Układ posiada dwa wewnętrzne generatory zegarowe: TRCO i SRCO, a specjalny algorytm pozwala na podnoszenie ich precyzji w układzie. AS3925 zasilany może być napięciem stabilizowanym lub poprzez wbudowany stabilizator napięcia.

    Układ wykrywa wyładowania chmury-ziemia i chmury-chmury z odległości do 40 km. Rozdzielczość pomiaru odległości może wynosić zaledwie 1 km.

    MOD-1016 to moduł oparty o układ AS3935, który służy do detekcji wyładowań atmosferycznych. Moduł jest wstępnie skalibrowany, co oznacza, że nie trzeba przeprowadzać procedury kalibracji po montażu układu wymagającej dosyć skomplikowanych obliczeń. MOD-1016 jest wynikiem wielu testów i iteracji prototypu, dzięki czemu oferuje on maksymalnie ile można wyciągnąć z układu AS3935.

    MOD-1016 może być zasilany napięciem od 2,4 V do 5,5 V. Zużywa 8 µA w trybie power down i 65 µA nasłuchując błyskawic. Podczas analizy wykrytego błysku, przeprowadzania obliczeń odległości i transmisji danych układu zużywa 350 µA.

    Poniżej zaprezentowano schemat modułu MOD-1016 i rysunek ścieżek płytki.

    Detektor wyładowań atmosferycznych dla Raspberry Pi Detektor wyładowań atmosferycznych dla Raspberry Pi


    Poniżej znajduje się opis, jak zintegrować w kilku prostych krokach MOD-1016 z Raspberry Pi.

    Krok 1: Podłączenie detektora błyskawic do Weather Pi.

    Detektor wyładowań atmosferycznych dla Raspberry Pi

    Jako że MOD-1016 ma ustalony na sztywno adres I²C (0x03) konieczne jest zastosowanie multipleksera tej szyny, gdyż inaczej występuje konflikt adresu, dlatego też moduł zostanie podłączony na drugiej szynie I²C.

    Czterokanałowy multiplekser I²C

    Aby obejść problem z konfliktem adresów, do Weather Pi dodany jest multiplekser adresowy tego interfejsu. Pozwala on na podłączenie wielu urządzeń do RPi, nawet jeśli chcą one współdzielić adres. Aktualnie adresy w Weather Pi prezentują się następująco:













    ModułAdresNumer szyny I²C
    BarometrBMP1800x77Bus 0
    Zegar czasu rzeczywistegoDS32310x68Bus 0
    ATC EEPROM0x56 (or 0x57)Bus 0
    Konwerter ADC ADS1015 0x49Bus 0
    Pamięć FRAM 0x50Bus 0
    Konwerter ADC ADS1015 w module SunAirPlus0x48Bus 1
    Trójkanałowy monitor prądu i napięcia INA3221 w module SunAirPlus0x40Bus 1
    MOD-10160x03Bus 0
    Kolejny MOD-10160x03Bus 2
    Termometr/higrometr AM2315 0x5CBus 1
    Czterokanałowy multiplekser I²C0x73Na wszystkich szynach
    Higrometr HTU21D-F0x40Bus 0


    Jak widać szereg układów ma taki sam adres, więc zastosowanie multipleksera jest koniecznością.

    Poniżej widać jak wygląda, z punktu widzenia Raspberry Pi, sieć interfejsów I²C. Poniższy tekst jest wyjściem przykładowego kodu zrealizowanego na systemie, pozwalającego na monitorowanie wszystkich czterech szyn I²C multipleksera. Weather Pi korzysta tylko z szyn 0, 1 i 2. Na szynie 2 znajduje się jedynie moduł MOD-1016.

    Code:
    Test SDL_Pi_TCA9545 Version 1.0 - SwitchDoc Labs
    

    Sample uses 0x73
    Program Started at:2015-05-19 02:45:59

    -----------BUS 0-------------------
    addr = 0x73 returndata = 0x81
    tca9545 control register B3-B0 = 0x1
    ignore Interrupts if INT3' - INT0' not connected
    tca9545 control register Interrupts = 0x8
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          03 -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: 40 -- -- -- -- -- -- -- -- 49 -- -- -- -- -- --
    50: 50 -- -- -- -- -- 56 -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
    70: -- -- -- 73 -- -- -- 77                         

    -----------------------------------

    -----------BUS 1-------------------
    addr = 0x73 returndata = 0xa2
    tca9545 control register B3-B0 = 0x2
    ignore Interrupts if INT3' - INT0' not connected
    tca9545 control register Interrupts = 0xa
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: 40 -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- 73 -- -- -- --                         

    -----------------------------------

    -----------BUS 2-------------------
    addr = 0x73 returndata = 0x84
    tca9545 control register B3-B0 = 0x4
    ignore Interrupts if INT3' - INT0' not connected
    tca9545 control register Interrupts = 0x8
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          03 -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- 73 -- -- -- --                         

    -----------------------------------


    Krok 2: testowanie detektora błyskawic

    Detektor wyładowań atmosferycznych dla Raspberry Pi

    Nie powinno być wielkim zaskoczeniem, że detektor błyskawic jest układem czułym na zakłócenia radiowe (RFI). Jeśli umieści się detektor obok monitora, telefonu komórkowego itp. może on działać niepoprawnie. Jak pokazane zostanie poniżej, konieczne było zamontowanie układu z daleka od RPi, aby działał on niezawodnie.

    Jednym z problemów, jaki napotyka się wykorzystując układ AS3935 w swoich układach, jest problem z testowaniem jego działania. Oczywiście umieszczając układ w zaszumionym otoczeniu przekonać się można, że działa, ale nie daje to realnie przydatnych informacji, odnośnie czułości i detekcji pożądanych sygnałów. Udało się w ten sposób wygenerować kilka 'błyskawic', ale nie w powtarzalny i zaplanowany sposób.

    Problem rozwiązany został zakupem specjalnego modułu, pozwalającego na generację "sztucznych błyskawic" w zaplanowany sposób. Wydatek 230 dolarów na ten moduł, pozwolił na rozwiązanie szeregu problemów z pierwszymi wersjami projektu. Okazało się jednocześnie, że pod koniec tworzenia tego układu nadarzyła się burza, która pozwoliła na przetestowanie jego funkcji w realnym otoczeniu.

    Detektor wyładowań atmosferycznych dla Raspberry Pi


    Około 6 km od miejsca, gdzie realizowany był projekt przeszła burza z piorunami. Interfejs RasPiConnect pozwalał na odbieranie poprzez WLAN informacji o wyładowaniach i ich bliskości.

    Detektor wyładowań atmosferycznych dla Raspberry Pi


    Krok 3: druk uchwytu do układu.

    Detektor wyładowań atmosferycznych dla Raspberry Pi

    Początkowo MOD-1016 zainstalowany był bezpośrednio na wyprowadzeniach płytki WeatherPiArduino. Widać go na poniższym zdjęciu.

    Detektor wyładowań atmosferycznych dla Raspberry Pi


    Okazało się nie być to najlepszą lokacją dla tego modułu. Duże natężenie szumu elektromagnetycznego, pochodzące z otaczających układów elektronicznych, powodowało, że układ informował o wysokim poziomie szumów, a detektor błyskawic funkcjonował tylko z testerem nastawionym bardzo wysoko. Konieczne było odsunięcie układu od reszty elektroniki, co można było przewidzieć wcześniej.

    Układ został zamontowany w osobnej obudowie, zamontowanej poza główną obudową systemu. Wykonana została ona w technologii druku 3D w formie wysuniętego pylona w którym znajduje się jedynie płytka drukowana z modułem z układem AS3935. Dokumentację tego elementu można pobrać z strony z opisem.

    Detektor wyładowań atmosferycznych dla Raspberry Pi


    Detektor wyładowań atmosferycznych dla Raspberry Pi Detektor wyładowań atmosferycznych dla Raspberry Pi


    Krok 4: oprogramowanie detektora wyładowań atmosferycznych.

    Detektor wyładowań atmosferycznych dla Raspberry Pi

    Po poszukiwaniach odpowiedniego pakietu, udało znaleźć się kod napisany przez Phila Fenstermachera. Po drobnych przeróbkach związanych z ustawieniem przerwań udało się uruchomić ten kod.

    Kompletne oprogramowanie WeatherPi dostępne jest na githubie. Poniżej zaprezentowano kod obsługujący AS3935.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Oraz kod przetwarzający przerwania:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Oraz ich obsługa:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    I finalnie przekazywanie informacji dalej:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Krok 5: rezultaty

    Detektor wyładowań atmosferycznych dla Raspberry Pi

    Moduł z AS3935 działał przez 5 dni, w tym czasie wykrył dwie burze. Pierwsza była niewielka, przesuwająca się na północ od miejsca gdzie zainstalowany był Weather Pi. Kierownik laboratorium grał wtedy w golfa nieopodal i zadzwonił do firmy z informacją o burzy. Odpowiedź była taka, że wiedzieli już o niej.

    Kolejna burza, dwa dni później, była jedną z większych. Poniżej znajduje się log, pokazujący, że front przesunął się około 6 km od Weather Pi.

    Detektor wyładowań atmosferycznych dla Raspberry Pi


    Podsumowując - dodanie detektora błyskawic do Weather Pi nie było wcale trudne. Analogicznie można dodać ten moduł do każdej płytki rozwojowej z Weather Pi, lub Arduino, gdyż MOD-1016 i AS3935, dzięki rozmaitości interfejsów pozwala na proste podłączenie do tych układów.

    Źródła:

    http://www.instructables.com/id/Lightning-Detector-for-Raspberry-Pi-WeatherPi-Weat/?ALLSTEPS
    http://www.embeddedadventures.com/as3935_lightning_sensor_module_mod-1016.html


    Fajne!
  • Arrow Multisolution Day
  • #2 15 Cze 2015 21:41
    djkomprez
    Poziom 21  

    Gdzie nabyłeś ten układ i w jakiej cenie ?

  • #3 15 Cze 2015 21:47
    maxxim
    Poziom 15  

    On go nie nabył. Tłumaczył tylko link. To jest diy zagranica.

  • #4 15 Cze 2015 21:57
    djkomprez
    Poziom 21  

    Właśnie wiem .. ale miałem nadzieję że takowy posiada ;)

  • Arrow Multisolution Day
  • #5 15 Cze 2015 22:01
    ghost666
    Tłumacz Redaktor

    Od siebie już dopowiem, że ciekawi mnie, czy można jakoś oprócz odległości wyznaczać kierunek, gdzie padł strzał.

    Dodano po 4 [minuty]:

    djkomprez napisał:
    Właśnie wiem .. ale miałem nadzieję że takowy posiada ;)


    Można kupić np tutaj - http://www.digikey.com/product-detail/en/AS3935-BQFT/AS3935-BQFTCT-ND/3182215

  • #6 15 Cze 2015 22:12
    T-play
    Poziom 14  

    Za pomocą jednego układu raczej nie, chyba, że by zastosować antenę kierunkową(reflektor) obracającą się wokół cewki jak radar, reflektor ten ekranował by układ z pewnej ze stron, znając jego położenie, można by pewnie określić kierunek strzału... Tylko pytanie czy błyskawica nie jest za szybka, by uzyskać sensowny odczyt przydał by się co najmniej jeden obrót na okres trwania wyładowania...

    A za pomocą paru układów rozmieszczonych w kilku miejscach raczej by to nie było problemem ;) Ta strona pewnie działa na takiej zasadzie: http://www.blitzortung.org

  • #7 15 Cze 2015 22:27
    ghost666
    Tłumacz Redaktor

    T-play napisał:
    Za pomocą jednego układu raczej nie, chyba, że by zastosować antenę kierunkową(reflektor) obracającą się wokół cewki jak radar, reflektor ten ekranował by układ z pewnej ze stron, znając jego położenie, można by pewnie określić kierunek strzału... Tylko pytanie czy błyskawica nie jest za szybka, by uzyskać sensowny odczyt przydał by się co najmniej jeden obrót na okres trwania wyładowania...

    A za pomocą paru układów rozmieszczonych w kilku miejscach raczej by to nie było problemem ;) Ta strona pewnie działa na takiej zasadzie: http://www.blitzortung.org


    Wystarczy przybliżona dokładność, dla zabawy. Wyobrażam sobie, że gdyby wziąć cztery detektory, to może dałoby się powiedzieć z jakiego kierunku świata przynajmniej.

  • #9 16 Cze 2015 00:00
    ghost666
    Tłumacz Redaktor

    konrad123456 napisał:
    Nie lepiej zainwestować w blitzortunga ? :D


    On ma detektor kierunkowy, czy wykrywa lokalizację na podstawie pomiarów z całej sieci? Inna sprawa że kit kosztuje 200 euro, a poza tym nie jest aktualnie dostępny ;).

  • #10 16 Cze 2015 07:56
    konrad123456
    Poziom 15  

    ghost666 napisał:
    konrad123456 napisał:
    Nie lepiej zainwestować w blitzortunga ? :D


    On ma detektor kierunkowy, czy wykrywa lokalizację na podstawie pomiarów z całej sieci? Inna sprawa że kit kosztuje 200 euro, a poza tym nie jest aktualnie dostępny ;).


    Wykrywa wyładowanie na podstawie minimum 4 stacji. Wysyła dane do sieci i określa punkt wyładowania . W moim przypadku zakupiłem same płytki PCB a części w Polsce . Koszt wraz z antenami około 600zł :)

  • #11 16 Cze 2015 14:23
    djkomprez
    Poziom 21  

    600zł ... a to wychodzi około stówki + jakiś moduł wifi/ethernet ....

  • #12 17 Cze 2015 14:59
    ramrusazer
    Poziom 12  

    Jakieś 1.5roku temu kupowałem 6szt w EMBEDDED ADVENTURES

  • #13 18 Cze 2015 13:07
    k750i
    Poziom 17  

    Kiedys interesowałem się tym tematem i dużo czytałem o tym detektorze, na zagranicznych forach ktoś pisał, że wykrywa wszystkie możliwe zakłócenia oprócz wyładowań atmosferycznych :D

    kol. ramrusazer czy tylko kupowałeś czy miałeś złożony i działający układ aby odnieść sie do opinii zagranicznych for odnośnie działania?

  • #14 18 Cze 2015 13:12
    ramrusazer
    Poziom 12  

    Działa bez większych problemów, kwestia ustawienia progów, owszem jeżeli mamy jakieś mocno siejące urządzenie, czy blisko nadajnik to mogą się pojawić problemu.

    U mnie w środku miasta przy bardzo gęstym zabudowaniu nie było problemów z wykrywaniem burzy nawet w odległości 20-30km, co zgadzało się z burze.dzis.net

    J.w wspomniane było, kwestia ustawienia w pewniej odległości 3-4 czujników i wyliczanie z której strony burza się zbliża jeżeli ta kwestia nas interesuje.

    Mnie w sumie interesował sam fakt burzy, by odpowiednio wcześniej wyłączyć urządzenia i tyle.

  • #15 18 Cze 2015 15:54
    k750i
    Poziom 17  

    jest dostępna na stronie embeddedadventure tak jak pisze kol. ramrusazer w cenie 18.69 euro

  • #16 19 Cze 2015 08:26
    TMK_M
    Poziom 22  

    konrad123456 napisał:
    Nie lepiej zainwestować w blitzortunga ? :D


    Jak wygląda procedura przyłączenia się do projektu?
    Płytki od nich można kupić czy samemu trzeba robić/ zamawiać?

  • #17 19 Cze 2015 11:55
    Euzebiusz23091998
    Poziom 15  

    W sumie to można by zbudować ciekawe urządzenie wypinające nam komouter telewizor itd. z kontaktu po wykryciu zbliżającej się burzy :) jedna rzecz mniej do pilniwania.

  • #19 26 Cze 2015 22:19
    ghost666
    Tłumacz Redaktor

    hv222 napisał:
    Witam,
    Zrobiłem własne płytki do tego układu. Nie jest to nic specjalnego, więc nie ma sensu zakładania nowego tematu. Płytki jeszcze nie testowane. Może komuś się przyda. Layout zaprojektowany na warstwie top. skala 1:1. Załączone pliki są w lustrze.
    Detektor wyładowań atmosferycznych dla Raspberry Pi Detektor wyładowań atmosferycznych dla Raspberry Pi


    Mógłbyś sprawdzić jak z kierunkowością takiego układu?

  • #21 18 Sie 2017 23:51
    Erbit
    Poziom 30  

    Witajcie.

    Zakupiłem właśnie mod1016 - sądzę, że w przyszłym tygodniu przyjdzie. Zamierzam wykorzystać go do automatyzacji domu a docelowo i przy PV.

    Temat stary ale proponuję jeszcze ten link -> http://www.switchdoc.com/weatherpiarduino-bare-board/

    ghost666 napisał:

    Mógłbyś sprawdzić jak z kierunkowością takiego układu?

    Nie ma "kierunkowości" w tym układzie. On podaje jedynie odległość. Aby ustalić kierunek potrzebnych jest kilka punktów pomiarowych (najlepiej odległych od siebie) i skorelowanie pomiarów z jednego czasu czyli tak jak zrobili to w blitzortung.org opierając się o czas z GPS.

    Polecam efekty -> http://pl.blitzortung.org/live_dynamic_maps.php
    Właśnie przez Europę przewala się pasmo wyładowań i obecnie minęło granicę Niemiec. Dziś w nocy w całej Polsce będą niezłe burze.

  • #22 19 Sie 2017 10:53
    TechEkspert
    Redaktor

    @Erbit super, gdy moduł już przyjedzie, napisz w DIY lub artykułach jak oceniasz efekty jego działania.

    Co do lokalizacji burz podoba mi się wspomniany amatorski projekt http://pl.blitzortung.org/cover_your_area.php którego siła leży w korelacji danych z wielu stacji. Zastanawiam się czy przy tej ilości stacji jego możliwości przerosły już profesjonalne systemy lokalizacji wyładowań?

  • #23 19 Sie 2017 13:44
    Erbit
    Poziom 30  

    TechEkspert napisał:
    ...Zastanawiam się czy przy tej ilości stacji jego możliwości przerosły już profesjonalne systemy lokalizacji wyładowań?


    Jak pisałem post #21 to od Koszalina poprzez Poznań aż po czeską Pragę było pasmo wyładowań - szkoda, że tego nie widziałeś. Obawiałem się, że to pasmo będzie przemieszczało się dalej prze Polskę ale jak widać "wypstrykało się" i do Łodzi dotarły tylko chmury i opady. Szkoda bo można było obserwować jak to działa. Teraz większe wyładowania są na północy Danii.

    Sądzę, że ze względu na ilość stacji mają już bardzo ciekawą ilość informacji. Wiem też, że zasięg urządzeń stosowanych przez blitzortung.org jest znacznie większy niż modułu mod1016 choć zasięg (dokładność) może wynikać tylko i wyłącznie z anteny. W ich projekcie antena jest sporych rozmiarów a w mod1016 antena jest kompaktowa na płytce bo pewno było takie założenie.

    Jak na razie za taki wskaźnik wyładowań robi u mnie UPS - jak jest burza w pobliżu to szaleje mimo, że burzy nie widać ;) . W przyszłym tygodniu nie znajdę czasu by złożyć układ z mod1016 ale zapewne jak to zrobię i skalibruję to coś napiszę.

    Można też kupić sam układ AS3935 i zrobić tak jak opisał kolego @hv222 w poście #18.

    [edyta]
    W ustawieniach mapy blitzortung.org w sekcji "animacja" włącz sobie opcje "wyładowania" oraz "wykryte".