Spisu treści:

Korzystanie z Raspberry Pi, pomiar wysokości, ciśnienia i temperatury za pomocą MPL3115A2: 6 kroków
Korzystanie z Raspberry Pi, pomiar wysokości, ciśnienia i temperatury za pomocą MPL3115A2: 6 kroków

Wideo: Korzystanie z Raspberry Pi, pomiar wysokości, ciśnienia i temperatury za pomocą MPL3115A2: 6 kroków

Wideo: Korzystanie z Raspberry Pi, pomiar wysokości, ciśnienia i temperatury za pomocą MPL3115A2: 6 kroków
Wideo: Multisensor na ESP8266 #1, czyli pomiar temperatury dla Domoticza (i nie tylko) 2024, Listopad
Anonim
Image
Image
Niezbędny sprzęt, którego potrzebujemy
Niezbędny sprzęt, którego potrzebujemy

Wiedz, co posiadasz, i wiedz, dlaczego to posiadasz

To intrygujące. Żyjemy w dobie automatyzacji Internetu, która pogrąża się w mnóstwie nowych aplikacji. Jako entuzjaści komputerów i elektroniki wiele się nauczyliśmy z Raspberry Pi i postanowiliśmy połączyć nasze zainteresowania. Ten projekt zajmuje około godziny, jeśli jesteś nowy w połączeniach I²C i konfiguracji oprogramowania, i jest to świetny sposób na rozszerzenie możliwości MPL3115A2 o Raspberry Pi w Javie.

Krok 1: Niezbędny sprzęt, którego potrzebujemy

Niezbędny sprzęt, którego potrzebujemy
Niezbędny sprzęt, którego potrzebujemy
Niezbędny sprzęt, którego potrzebujemy
Niezbędny sprzęt, którego potrzebujemy
Niezbędny sprzęt, którego potrzebujemy
Niezbędny sprzęt, którego potrzebujemy

1. Raspberry Pi

Pierwszym krokiem było uzyskanie płyty Raspberry Pi. Ten mały geniusz jest wykorzystywany przez hobbystów, nauczycieli oraz w tworzeniu innowacyjnych środowisk.

2. Osłona I2C dla Raspberry Pi

INPI2 (adapter I2C) zapewnia Raspberry Pi 2/3 port I²C do użytku z wieloma urządzeniami I2C. Jest dostępny w sklepie Dcube.

3. Wysokościomierz, czujnik ciśnienia i temperatury, MPL3115A2

MPL3115A2 to czujnik ciśnienia MEMS z interfejsem I²C, który podaje dane dotyczące ciśnienia, wysokości i temperatury. Ten czujnik wykorzystuje do komunikacji protokół I²2. Kupiliśmy ten czujnik w sklepie Dcube Store.

4. Kabel połączeniowy

Wykorzystaliśmy kabel połączeniowy I²C dostępny w sklepie Dcube Store.

5. Kabel Micro USB

Raspberry Pi jest zasilane przez zasilacz micro USB.

6. Ulepszenie dostępu do Internetu - kabel Ethernet/moduł WiFi

Jedną z pierwszych rzeczy, które będziesz chciał zrobić, jest podłączenie Raspberry Pi do Internetu. Możesz połączyć się za pomocą kabla Ethernet lub adaptera Wireless USB Nano WiFi.

7. Kabel HDMI (opcjonalnie, twój wybór)

Raspberry Pi można podłączyć do monitora za pomocą kabla HDMI. Możesz także zdalnie uzyskać dostęp do Raspberry Pi za pomocą SSH/PuTTY.

Krok 2: Połączenia sprzętowe w celu złożenia obwodu

Połączenia sprzętowe do złożenia obwodu
Połączenia sprzętowe do złożenia obwodu
Połączenia sprzętowe do złożenia obwodu
Połączenia sprzętowe do złożenia obwodu

Wykonaj obwód zgodnie z przedstawionym schematem. Ogólnie połączenia są dość proste. Postępuj zgodnie z instrukcjami i obrazami powyżej i nie powinieneś mieć żadnych problemów. Podczas planowania przyjrzeliśmy się sprzętowi i kodowaniu, a także podstawom elektroniki. Chcieliśmy zaprojektować prosty schemat elektroniki do tego projektu. Na schemacie można zauważyć różne części, komponenty mocy i czujnik I²C zgodnie z protokołami komunikacyjnymi I²C. Mamy nadzieję, że to pokazuje, jak prosta jest elektronika w tym projekcie.

Połączenie Raspberry Pi i I2C Shield

W tym celu Raspberry Pi i umieść na nim I²C Shield. Delikatnie naciśnij tarczę (patrz zdjęcie).

Połączenie czujnika i Raspberry Pi

Weź czujnik i podłącz do niego kabel I²C. Upewnij się, że wyjście I²C ZAWSZE łączy się z wejściem I²C. To samo dotyczy Raspberry Pi z zamontowaną na nim osłoną I²C. Po naszej stronie mamy osłonę I²C i kable połączeniowe I²C jako bardzo dużą zaletę, ponieważ pozostaje nam tylko opcja plug and play. Nigdy więcej problemów z pinami i okablowaniem, a tym samym zamieszanie zniknęło. Cóż za ulga, gdy wyobraź sobie siebie w sieci przewodów i wpadnięcie w to. Tak proste jak to!

Uwaga: Brązowy przewód powinien zawsze podążać za połączeniem uziemienia (GND) między wyjściem jednego urządzenia a wejściem innego urządzenia

Łączność z Internetem ma kluczowe znaczenie

Aby nasz projekt odniósł sukces, potrzebujemy dostępu do Internetu dla naszego Raspberry Pi. W tym przypadku masz opcje, takie jak podłączenie kabla Ethernet (LAN). Również jako alternatywny, ale imponujący sposób na użycie karty WiFi.

Zasilanie obwodu

Podłącz kabel Micro USB do gniazda zasilania Raspberry Pi. Włącz i voila, dobrze jest iść!

Połączenie z ekranem

Możemy albo podłączyć kabel HDMI do monitora, albo możemy być trochę innowacyjni, aby stworzyć nasze bezgłowe Pi (przy użyciu -SSH/PuTTY), co pomaga obniżyć dodatkowe koszty, ponieważ jesteśmy w jakiś sposób hobbystami.

Kiedy nawyk zaczyna kosztować, nazywa się to hobby

Krok 3: Programowanie Raspberry Pi w Javie

Programowanie Raspberry Pi w Javie
Programowanie Raspberry Pi w Javie

Kod Java dla Raspberry Pi i czujnika MPL3115A2. Jest dostępny w naszym repozytorium Github.

Zanim przejdziesz do kodu, zapoznaj się z instrukcjami podanymi w pliku Readme i zgodnie z nimi skonfiguruj swoje Raspberry Pi. To zajmie tylko chwilę. Wysokość jest obliczana na podstawie ciśnienia przy użyciu poniższego równania:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Wartość rejestru)

gdzie p0 = ciśnienie na poziomie morza (101326 Pa), a h jest w metrach. MPL3115A2 używa tej wartości, ponieważ rejestr przesunięcia jest zdefiniowany jako 2 Pascale na LSB. Kod jest wyraźnie przed tobą i jest w najprostszej formie, jaką możesz sobie wyobrazić, i nie powinieneś mieć problemów.

Możesz tutaj również skopiować działający kod Java dla tego czujnika.

// Rozprowadzany z wolną licencją.// Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim dzieł. // MPL3115A2 // Ten kod jest przeznaczony do pracy z minimodułem MPL3115A2_I2CS I2C dostępnym na stronie ControlEverything.com. //

importuj com.pi4j.io.i2c. I2CBus;

importuj com.pi4j.io.i2c. I2CDurządzenie; importuj com.pi4j.io.i2c. I2CFabryka; import java.io. IOException;

klasa publiczna MPL3115A2

{ public static void main(String args) throws Exception { // Utwórz magistralę I2C I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1); // Pobierz urządzenie I2C, MPL3115A2 Adres I2C to 0x60(96) Urządzenie I2CDevice = Bus.getDevice(0x60); // Wybierz rejestr kontrolny // Tryb aktywny, OSR = 128, tryb wysokościomierza device.write(0x26, (byte)0xB9); // Wybór rejestru konfiguracji danych // Zdarzenie gotowości danych włączone dla wysokości, ciśnienia, temperatury device.write(0x13, (byte)0x07); // Wybierz rejestr kontrolny // Tryb aktywny, OSR = 128, tryb wysokościomierza device.write(0x26, (byte)0xB9); Wątek.sen(1000);

// Odczytaj 6 bajtów danych z adresu 0x00(00)

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = new byte[6]; urządzenie.odczyt(0x00, dane, 0, 6);

// Konwertuj dane na 20-bitowe

int tHeight = ((((dane[1] & 0xFF) * 65536) + ((dane[2] & 0xFF) * 256) + (dane[3] & 0xF0)) / 16); int temp = ((dane[4] * 256) + (dane[5] i 0xF0)) / 16; podwójna wysokość = wysokość / 16,0; podwójne cTemp = (temp / 16,0); podwójne fTemp = cTemp * 1,8 + 32;

// Wybierz rejestr kontrolny

// Tryb aktywny, OSR = 128, tryb barometru device.write(0x26, (byte)0x39); Wątek.sen(1000); // Odczytaj 4 bajty danych z adresu 0x00(00) // status, pres msb1, pres msb, pres lsb device.read(0x00, data, 0, 4);

// Konwertuj dane na 20-bitowe

int pres = (((dane[1] i 0xFF) * 65536) + ((dane[2] i 0xFF) * 256) + (dane[3] i 0xF0)) / 16; podwójne ciśnienie = (pres / 4.0) / 1000,0; // Wyprowadzanie danych na ekran System.out.printf("Ciśnienie: %.2f kPa %n", ciśnienie); System.out.printf("Wysokość: %.2f m %n", wysokość); System.out.printf("Temperatura w stopniach Celsjusza: %.2f C %n", cTemp); System.out.printf("Temperatura w stopniach Fahrenheita: %.2f F %n", fTemp); } }

Krok 4: Praktyczność Kodeksu (działanie)

Praktyczność kodeksu (praca)
Praktyczność kodeksu (praca)

Teraz pobierz (lub git pull) kod i otwórz go w Raspberry Pi. Uruchom polecenia skompiluj i prześlij kod w terminalu i zobacz dane wyjściowe w Monitorze. Po kilku sekundach wyświetli wszystkie parametry. Po upewnieniu się, że wszystko działa sprawnie, możesz przenieść ten projekt do większego projektu.

Krok 5: Aplikacje i funkcje

Częstym zastosowaniem precyzyjnego czujnika wysokościomierza MPL3115A2 jest zastosowanie w takich aplikacjach, jak mapa (wspomaganie mapy, nawigacja), kompas magnetyczny lub GPS (GPS Dead Reckoning, ulepszanie GPS dla służb ratowniczych), wysokościomierz o wysokiej dokładności, smartfony/tablety, wysokościomierz elektroniki osobistej i Satelity (wyposażenie stacji pogodowej/prognozowanie).

Dla m.in. Korzystając z tego czujnika i Rasp Pi, możesz zbudować cyfrowy wysokościomierz wizualny, najważniejszy element sprzętu spadochronowego, który może mierzyć wysokość, ciśnienie powietrza i temperaturę. Możesz dodać siatkę wiatrową i inne czujniki, aby uczynić je bardziej interesującym.

Krok 6: Wniosek

Ponieważ program jest niesamowicie konfigurowalny, istnieje wiele interesujących sposobów na rozszerzenie tego projektu i ulepszenie go. Na przykład, wysokościomierz/interferometr obejmowałby kilka wysokościomierzy zamontowanych na masztach, które zbierałyby pomiary jednocześnie, zapewniając w ten sposób ciągłe, jedno- lub wielowymiarowe pokrycie szerokiego obszaru. Mamy ciekawy samouczek wideo na YouTube, który może pomóc w lepszym zrozumieniu tego projektu.

Zalecana: