Spisu treści:

Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2: 6 kroków
Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2: 6 kroków

Wideo: Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2: 6 kroków

Wideo: Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2: 6 kroków
Wideo: Multisensor na ESP8266 #1, czyli pomiar temperatury dla Domoticza (i nie tylko) 2024, Lipiec
Anonim
Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2
Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2
Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2
Wysokość, ciśnienie i temperatura za pomocą Raspberry Pi z MPL3115A2

Brzmi interesująco. Jest to całkiem możliwe w czasach, gdy wszyscy wchodzimy w generację Internetu Rzeczy. Jako maniak elektroniki bawiliśmy się Raspberry Pi i dzięki tej wiedzy postanowiliśmy wykonać ciekawe projekty. W tym projekcie będziemy mierzyć wysokość, ciśnienie powietrza, temperaturę za pomocą Raspberry Pi. Oto dokumentacja (zawsze modyfikowana i rozszerzana). Zalecamy zacząć od wykonania instrukcji i skopiowania kodu. Możesz eksperymentować później. Więc zacznijmy.

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
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. Kupiliśmy nasze i Ty też możesz. Zaczęliśmy uczyć się z samouczków, zrozumieliśmy koncepcje skryptów i połączeń, a potem uczyliśmy się. Ten mały geniusz jest wspólny dla hobbystów, nauczycieli i tworzenia innowacyjnych środowisk.

2. Osłona I²C 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²C. Kupiliśmy ten czujnik w sklepie Dcube

4. Kabel połączeniowy

Mieliśmy kabel połączeniowy I2C dostępny w sklepie Dcube

5. Kabel Micro USB

Kabel micro USB Zasilacz to idealny wybór do zasilania Raspberry Pi.

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

W tej erze uzyskanie dostępu do czegokolwiek wymaga połączenia z Internetem (prawie, że istnieje również życie offline). Dlatego korzystamy z porady kabla LAN lub bezprzewodowego adaptera Nano USB (WiFi), aby zbudować połączenie internetowe, abyśmy mogli korzystać z naszego Rasp Pi z łatwością i bez żadnych problemów.

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

To trochę trudne. Możesz mieć możliwość podłączenia innego monitora, jeśli chcesz, lub jest to bardzo opłacalne dla siebie, tworząc bezgłowe połączenie Pi z komputerem PC / laptopem.

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ą bardzo proste. Postępuj zgodnie z instrukcjami i obrazami, a nie powinieneś mieć 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

Przede wszystkim weź 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 z nim 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. Tylko prosty proces, o którym wspomnieliśmy.

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 jest niezbędna

Właściwie masz wybór. Możesz podłączyć Raspberry Pi za pomocą kabla LAN lub bezprzewodowego adaptera Nano USB do łączności Wi-Fi. Tak czy inaczej, głównym celem było połączenie się z internetem.

Zasilanie obwodu

Podłącz kabel Micro USB do gniazda zasilania Raspberry Pi. Zapal to i możemy iść.

Połączenie z ekranem

Możemy podłączyć kabel HDMI do nowego monitora lub stworzyć nasze bezgłowe Pi, które jest kreatywne i opłacalne przy użyciu zdalnego dostępu, takiego jak SSH / PuTTY. (wiem, że nie jesteśmy finansowani jak tajna organizacja)

Krok 3: Programowanie Raspberry Pi w Pythonie

Programowanie Raspberry Pi w Pythonie
Programowanie Raspberry Pi w Pythonie

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

Przed przejściem do kodu upewnij się, że zapoznałeś 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 za pomocą 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 również skopiować działający kod Pythona 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 modułem Mini MPL3115A2_I2CS I2C dostępnym na stronie ControlEverything.com. #

importuj smbus

czas importu

# Uzyskaj magistralę I2C

autobus = smbus. SMBus(1)

# Adres MPL3115A2, 0x60(96)

# Wybierz rejestr kontrolny, 0x26(38) # 0xB9(185) Tryb aktywny, OSR = 128, Tryb wysokościomierza bus.write_byte_data(0x60, 0x26, 0xB9) # Adres MPL3115A2, 0x60(96) # Wybierz rejestr konfiguracji danych, 0x13(19) # 0x07(07) Zdarzenie gotowości danych włączone dla wysokości, ciśnienia, temperatury bus.write_byte_data(0x60, 0x13, 0x07) # Adres MPL3115A2, 0x60(96) # Wybierz rejestr kontrolny, 0x26(38) # 0xB9(185) Tryb aktywny, OSR = 128, Szyna trybu wysokościomierza.write_byte_data(0x60, 0x26, 0xB9)

czas.sen(1)

# Adres MPL3115A2, 0x60(96)

# Odczytaj dane z powrotem z 0x00(00), 6 bajtów # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data(0x60, 0x00, 6)

# Konwertuj dane na 20-bitów

tHeight = ((dane[1] * 65536) + (dane[2] * 256) + (dane[3] & 0xF0)) / 16 temp = ((dane[4] * 256) + (dane[5] & 0xF0)) / 16 wysokość = tWysokość / 16,0 cTemp = temp / 16,0 fTemp = cTemp * 1,8 + 32

# Adres MPL3115A2, 0x60(96)

# Wybierz rejestr kontrolny, 0x26(38) # 0x39(57) Tryb aktywny, OSR = 128, Tryb barometru bus.write_byte_data(0x60, 0x26, 0x39)

czas.sen(1)

# Adres MPL3115A2, 0x60(96)

# Odczytaj dane z powrotem z 0x00(00), 4 bajty # status, pres MSB1, pres MSB, pres LSB data = bus.read_i2c_block_data(0x60, 0x00, 4)

# Konwertuj dane na 20-bitów

pres = ((dane[1] * 65536) + (dane[2] * 256) + (dane[3] & 0xF0)) / 16 ciśnienie = (pres / 4.0) / 1000.0

# Dane wyjściowe na ekran

drukuj "Ciśnienie: %.2f kPa" %ciśnienie drukuj "Wysokość: %.2f m" %wysokość drukuj "Temperatura w stopniach Celsjusza: %.2f C" %cTemp drukuj "Temperatura w stopniach Fahrenheita: %.2f F" %fTemp

Krok 4: Praktyczność Kodeksu (testowanie)

Praktyczność Kodeksu (testowanie)
Praktyczność Kodeksu (testowanie)

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

Powszechne zastosowanie precyzyjnego czujnika wysokościomierza I²C MPL3115A2 znajduje się w aplikacjach takich jak mapa (asystent mapy, nawigacja), kompas magnetyczny lub GPS (GPS Dead Reckoning, ulepszanie GPS dla służb ratunkowych), wysokościomierz o wysokiej dokładności, smartfony/tablety, wysokościomierz elektroniki osobistej i satelity (wyposażenie stacji pogodowej/prognozowanie).

Dla m.in. projekt stworzenia wysokościomierza Personal Electronics, który mierzy wysokość, ciśnienie powietrza i temperaturę za pomocą Raspberry Pi. Wysokościomierz Personal Electronics jest w sumie dość szybkim projektem do zbudowania. Zajmie to tylko kilka chwil, jeśli masz wszystkie części i nie improwizujesz (oczywiście, że możesz!). Wysokościomierz ciśnieniowy to wysokościomierz występujący w większości samolotów, a skoczkowie spadochronowi używają wersji na nadgarstku do podobnych celów. Wędrowcy i alpiniści używają wysokościomierzy montowanych na nadgarstku lub trzymanych w ręku.

Krok 6: Wniosek

Mam nadzieję, że ten projekt zainspiruje do dalszych eksperymentów. Ten czujnik I²C jest niezwykle wszechstronny, tani i dostępny. Ponieważ jest to niezwykle mutowalny program, istnieją ciekawe sposoby na rozszerzenie tego projektu i uczynienie go jeszcze lepszym. Na przykład wysokościomierz jest instrumentem opcjonalnym w pojazdach terenowych, który pomaga w nawigacji. Niektóre luksusowe samochody o wysokich osiągach, które nigdy nie miały zjeżdżać z utwardzonych dróg, wykorzystują tę technologię. Dla Twojej wygody przygotowaliśmy ciekawy samouczek wideo na YouTube, który może pomóc w Twojej eksploracji. Mam nadzieję, że ten projekt zainspiruje do dalszych eksperymentów.

Zalecana: