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

Barometr na I2C do Raspberry Pi

ghost666 15 Lip 2015 09:27 6435 8
  • Barometr na I2C do Raspberry Pi

    Układ scalony BMP180 jest cyfrowym barometrycznym ciśnieniomierzem. Układ ten dostępny jest w wersji przylutowanej do niewielkiego modułu, który posiada wyprowadzony interfejs I²C układu. Pozwala to na bardzo proste podłączenie opisywanego układu do płytki Raspberry Pi przy minimalnej ilości koniecznych połączeń.

    Wykorzystany w projekcie moduł jest bardzo mały, jego PCB ma zaledwie 15 mm x 13 mm. Wyposażony jest w 5 opisanych pinów. Kolejność pinów może różnić się, zależnie od wykorzystywanego modułu, więc koniecznie trzeba sprawdzić jego wyprowadzenie, przed podłączeniem go do układu.

    Barometr na I2C do Raspberry Pi


    Układu BMP180 produkowany jest przez firmę Bosch. Karta katalogowa BMP180 zawiera w sobie wszystkie detale techniczne układu potrzebne do jego uruchomienia. Jest ona dostępna tutaj.

    Konfiguracja interfejsu I²C

    Aby wykorzystać opisywany moduł z Raspberry Pi, komputer musi mieć włączony interfejs I²C. Nie jest on domyślnie włączony. Sposób jego włączenia poprzez aplikację raspi-config opisano w tym artykule.

    Podłączanie sprzętu

    Poniższa tabelka pokazuje połączenia modułu do wyprowadzeń GPIO Raspberry Pi (P1). Lokalizację poszczególnych pinów na listwie GPIO odnaleźć można w dokumentacji RPi.






    Oznaczenie na PCB modułuOpisNumer pinu w wyprowadzeniu GPIO Raspberry Pi
    VCC 3,3 V P1-01
    GND MasaP1-06
    SCL I²C SCL P1-05
    SDA I²C SDA P1-03
    3.3V


    Poniżej znajduje się diagram połączeń układu z wykorzystaniem płytki stykowej. Można podłączyć opisywany moduł bezpośrednio, wystarczy wykorzystać odpowiednie kable, wyposażone w dwa złącza żeńskie, umożliwiające podpięcie do goldpinów obu układów.

    Barometr na I2C do Raspberry Pi


    Powyższy rysunek wykorzystuje element dodany to aplikacji Fritzing przez użytkownika. Duża ilość modułów z opisywanym układem sprawia, że łatwo pomylić kolejność wyprowadzeń - każdy moduł ma inną. Koniecznie trzeba sprawdzić kolejność pinów wykorzystywanego modułu i dostosować schemat podpięcia modułu do Raspberry Pi do konkretnego rozkładu sygnałów modułu.

    Jeśli podłączymy układ do RPi w sposób poprawny, to po uruchomieniu systemu i wpisaniu komendy i2cdetect, powinniśmy zobaczyć ciśnieniomierz pod adresem 0x77.

    Przykładowy skrypt Python

    Poniżej znajduje się przykładowy skrypt napisany w Pythonie, odczytujący z modułu ciśnienie i temperaturę.

    Kod: python
    Zaloguj się, aby zobaczyć kod


    Możemy pobrać skrypt bezpośrednio, wpisując w terminalu komendę:

    Code:
    wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bmp180.py


    Lub pobrać plik przez przeglądarkę. Dostępny jest on tutaj.

    Do uruchomienia skryptu wystarczy jedna komenda:

    Code:
    sudo python bmp180.py


    A wyjście z programu powinno wyglądać następująco:

    Barometr na I2C do Raspberry Pi


    Źródło: http://www.raspberrypi-spy.co.uk/2015/04/bmp180-i2c-digital-barometric-pressure-sensor/

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9647 postów o ocenie 7740, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • Texa PolandTexa Poland
  • #2
    ostry_18
    Poziom 24  
    Równie ciekawym układem jest MPL3115A2, dostępny jako sample. Działa z rozdzielczością 20 bitów.
  • Texa PolandTexa Poland
  • #3
    gemiel
    Poziom 22  
    Co ten post ma wspólnego z działem DIY? Podłączenie ogólnodostępnej płytki do Raspberry Pi czy Arduino pokazane jest w wielu tutorialach. I tam jest miejsce na takie publikacje.
  • #4
    zbyrek
    Poziom 23  
    Mnie tylko zastanawia, czemu autor projektu (nie mylić z autorem tematu) podłączył zasilanie 3,3V na wejście stabilizatora 3,3V (układ 662k smd).
  • #5
    Bartek.k.k
    Poziom 21  
    zbyrek napisał:
    Mnie tylko zastanawia, czemu autor projektu (nie mylić z autorem tematu) podłączył zasilanie 3,3V na wejście stabilizatora 3,3V (układ 662k smd).


    Chińscy sprzedawcy w ogłoszeniach wszędzie twierdzą, że działa on na 3v3, ja swojego po kupnie również podłączyłem po 5v i działa do dziś.
  • #6
    PiotrPitucha
    Poziom 33  
    Witam
    gemiel , a co to jest DIY ?
    Jak zrobisz zegar na procesorze, to też podpinasz znany procesor do znanych wyświetlaczy.
    Jak zrobisz przetwornicę, to podpinasz ogólnie znane tranzystory do ogólnie znanego trafa.
    Czy według Ciebie zaprogramowanie procesora w C czy też Bascomie albo Assemblerze jest czymś innym niż zaprogramowanie obsługi barometru w Pythonie?
    Zastosowanie płytki z barometrem ma wielki sens, kosztuje ona na ogólnie znanych serwisach mniej niż sam układ.
    Uważam że zrobienie barometru na Raspberry Pi ma wiele zalet, można po zmianie raptem kilku linijek podpiąć do tego wyświetlacz 2x16, 4x20, graficzny po SPI, monitor po HDMI, czy też udostępnić go w sieci i nie będzie to kosztowało więcej niż lepienie z pojedynczych elementów.
    A czym jest Arduino ? kawałek płytki z procesorem i jakoś nikt nie narzeka, co kawałek ludzie wsadzają te płytki i jest taniej niż robienie własnych, bo całe Arduino na aukcjach kosztuje czasami mniej niż procesor w tej płytce.
    Pozdrawiam, program to też twórczość z zakresy DIY.
  • #7
    krru
    Poziom 32  
    Dawno temu kupiłem na allegro podobną płytkę z czujnikami ciśnienia i wilgotności (akurat to były BMP085 i SHT21). Dodatkowo one mierzą temperaturę (m. in. w celu kalibracji). Od jakiegoś roku mam to zainstalowane na stałe, podłączone do malinki, która co kilka sekund rejestruje aktualne wartości. Zysk z użycia malinki polega głównie na sieci, inaczej jakaś prosta atmega by wystarczyła - malinka wyniki zapisuje na kartę, a co jakiś czas ściągam te dane na komputer stacjonarny. Oczywiście jest też jakaś prosta strona WWW. Samo podłączenie elektryczne takich dwóch elementów jest banalne, więc nie ma co na ten temat się rozpisywać, ciekawsze są rozwiązania jak i gdzie coś takiego zainstalować, by zbierało w miarę poprawne wyniki. Akurat pomiar ciśnienia jest najprostszy - ciśnienie jest w miarę jednakowe na zewnątrz i wewnątrz, jednak trzeba pamiętać, że ciśnienie podawane w prognozach jest to ciśnienie odniesione do poziomy morza, a więc trzeba wiedzieć dość dokładnie na jakiej wysokości npm zainstalowany jest czujnik. Ja wykonałem taki eksperyment - zasiliłem mój zestaw z akumulatorka i przejechałem się windą na parter, potem na ostatnie 10. piętro i na moje (tak w połowie wysokości). Oto wynik:

    Barometr na I2C do Raspberry Pi

    Jak widać 10 pięter to jakieś 3hPa zmiany ciśnienia.

    Z czujnikiem temperatury i wilgotności jest większy problem. Prawidłowo powinny być zamontowane w klatce meteorologicznej, ale to nie bardzo jest wykonalne w mieszkaniu w bloku. Jako w miarę sensowne miejsce wybrałem 'sufit' balkonu - w zasadzie jest to strop balkonu sąsiada z góry. W takie miejsce Słońce nigdy nie zaświeci bezpośrednio, jednak oświetlenie przez Słońce całej ściany budynku powoduje istotny, choć znacznie łagodniejszy niż bezpośrednie oświetlenie czujników, wzrost temperatury, co poprzez proces kalibracji wpływa na wyniki ciśnienia i, w znacznie większym stopniu, wilgotności względnej.

    By czujnik umieszczony tak jak opisałem podłączyć do malinki musiałem ją zainstalować pod samym sufitem wewnątrz mieszkania (połączenie I2C ma dość ograniczoną długość - i tak zmniejszyłem zegar I2C), przy oknie. W sumie zainstalowałem malinkę na kawałku blachy aluminiowej i całość przykręciłem pod karnisz, tak, że śruba mocująca karnisz trzyma też malinkę.

    Kwestie montażu i pomysły na rozwiązanie tego problemu są znacznie ciekawsze niż samo podłączenie i chętnie posłucham innych pomysłów.
  • #8
    elektryku5
    Poziom 38  
    Na routerze z OpenWRT można robić podobne rzeczy, próbowałem już OneWire (czujnik) oraz I2C (wyświetlacz) i obsługa nie jest jakoś specjalnie kłopotliwa, do tego skrypt co jakiś czas wysyła wyniki na serwer tworzący wykresy i mamy jeszcze tańsze rozwiązanie o sporych możliwościach.
  • #9
    krru
    Poziom 32  
    Może zapytam się tutaj, nieco nie na temat, ale jak już wspomniałem moja malinka rejestruje m.in. ciśnienie. I 23.07.2015 rano mój sprzęt zarejestrował dziwne wahania ciśnienia, jak na poniższym obrazku: Barometr na I2C do Raspberry Pi

    Jak widać wystąpiło dziwne zafalowanie ciśnienia o okresie ok 10min.i amplitudzie 2hPa. Czy ktoś może potwierdzić wystąpienie takiego zjawiska?