Inhaltsverzeichnis:

Mit Raspberry Pi Höhe, Druck und Temperatur mit MPL3115A2 messen - Gunook
Mit Raspberry Pi Höhe, Druck und Temperatur mit MPL3115A2 messen - Gunook

Video: Mit Raspberry Pi Höhe, Druck und Temperatur mit MPL3115A2 messen - Gunook

Video: Mit Raspberry Pi Höhe, Druck und Temperatur mit MPL3115A2 messen - Gunook
Video: Kühlung beim 3D-Druck: Raspberry Pi Gehäuse im Vergleich 2024, November
Anonim
Image
Image
Unverzichtbare Ausrüstung, die wir brauchen
Unverzichtbare Ausrüstung, die wir brauchen

Wissen Sie, was Sie besitzen, und wissen Sie, warum Sie es besitzen

Es ist faszinierend. Wir leben im Zeitalter der Internet-Automatisierung, die in eine Vielzahl neuer Anwendungen eintaucht. Als Computer- und Elektronik-Enthusiasten haben wir viel mit dem Raspberry Pi gelernt und beschlossen, unsere Interessen zu vereinen. Dieses Projekt dauert etwa eine Stunde, wenn Sie noch nicht mit I²C-Verbindungen und Software-Setup vertraut sind, und es ist eine großartige Möglichkeit, die Fähigkeiten von MPL3115A2 mit Raspberry Pi in Java zu erweitern.

Schritt 1: Unverzichtbare Ausrüstung, die wir brauchen

Unverzichtbare Ausrüstung, die wir brauchen
Unverzichtbare Ausrüstung, die wir brauchen
Unverzichtbare Ausrüstung, die wir brauchen
Unverzichtbare Ausrüstung, die wir brauchen
Unverzichtbare Ausrüstung, die wir brauchen
Unverzichtbare Ausrüstung, die wir brauchen

1. Himbeer-Pi

Der erste Schritt war die Beschaffung einer Raspberry Pi-Platine. Dieses kleine Genie wird von Bastlern, Lehrern und bei der Schaffung innovativer Umgebungen verwendet.

2. I2C-Schild für Raspberry Pi

Der INPI2 (I2C-Adapter) bietet dem Raspberry Pi 2/3 einen I²C-Port zur Verwendung mit mehreren I2C-Geräten. Es ist im Dcube Store erhältlich.

3. Höhenmesser, Druck- und Temperatursensor, MPL3115A2

Der MPL3115A2 ist ein MEMS-Drucksensor mit einer I²C-Schnittstelle zur Bereitstellung von Druck-, Höhen- und Temperaturdaten. Dieser Sensor verwendet das I²2-Protokoll zur Kommunikation. Wir haben diesen Sensor im Dcube Store gekauft.

4. Anschlusskabel

Wir haben das im Dcube Store erhältliche I²C-Verbindungskabel verwendet.

5. Micro-USB-Kabel

Der Raspberry Pi wird über eine Micro-USB-Versorgung mit Strom versorgt.

6. Verbesserung des Internetzugangs – Ethernet-Kabel/WiFi-Modul

Eines der ersten Dinge, die Sie tun sollten, ist, Ihren Raspberry Pi mit dem Internet zu verbinden. Sie können eine Verbindung über ein Ethernet-Kabel oder einen Wireless USB Nano WiFi-Adapter herstellen.

7. HDMI-Kabel (optional, Ihre Wahl)

Sie können Raspberry Pi über ein HDMI-Kabel an einen Monitor anschließen. Außerdem können Sie mit SSH/PuTTY remote auf Ihren Raspberry Pi zugreifen.

Schritt 2: Hardwareverbindungen zum Zusammenbau der Schaltung

Hardwareverbindungen zum Zusammenbau der Schaltung
Hardwareverbindungen zum Zusammenbau der Schaltung
Hardwareverbindungen zum Zusammenbau der Schaltung
Hardwareverbindungen zum Zusammenbau der Schaltung

Stellen Sie die Schaltung gemäß dem gezeigten Schaltplan her. Im Allgemeinen sind die Verbindungen recht einfach. Befolgen Sie die Anweisungen und Bilder oben, und Sie sollten keine Probleme haben. Bei der Planung haben wir uns mit Hardware und Codierung sowie Elektronik-Grundlagen befasst. Wir wollten für dieses Projekt einen einfachen Elektronikschaltplan entwerfen. Im Diagramm können Sie die verschiedenen Teile, Leistungskomponenten und I²C-Sensoren erkennen, die den I²C-Kommunikationsprotokollen folgen. Hoffentlich veranschaulicht dies, wie einfach die Elektronik für dieses Projekt ist.

Anschluss von Raspberry Pi und I2C Shield

Dazu Raspberry Pi und darauf das I²C Shield platzieren. Drücken Sie vorsichtig auf das Schild (siehe Bild).

Anschluss von Sensor und Raspberry Pi

Nehmen Sie den Sensor und verbinden Sie das I²C-Kabel damit. Stellen Sie sicher, dass der I²C-Ausgang IMMER mit dem I²C-Eingang verbunden ist. Das gleiche soll der Raspberry Pi mit dem darüber montierten I²C-Shield folgen. Als ganz großen Vorteil haben wir das I²C-Shield und die I²C-Verbindungskabel auf unserer Seite, da uns nur noch die Plug-and-Play-Option bleibt. Kein Pin- und Verdrahtungsproblem mehr und somit ist die Verwirrung verschwunden. Was für eine Erleichterung, wenn Sie sich nur im Drahtgeflecht vorstellen und darin einsteigen. So einfach ist das!

Hinweis: Das braune Kabel sollte immer der Masseverbindung (GND) zwischen dem Ausgang eines Geräts und dem Eingang eines anderen Geräts folgen

Internet-Konnektivität ist entscheidend

Damit unser Projekt ein Erfolg wird, benötigen wir einen Internetzugang für unseren Raspberry Pi. Dabei haben Sie Optionen wie das Anschließen eines Ethernet(LAN)-Kabels. Auch als alternative, aber beeindruckende Möglichkeit, einen WLAN-Adapter zu verwenden.

Stromversorgung der Schaltung

Stecken Sie das Micro-USB-Kabel in die Strombuchse des Raspberry Pi. Einschalten und voila, wir können loslegen!

Verbindung zum Bildschirm

Wir können entweder das HDMI-Kabel an einen Monitor anschließen oder ein wenig innovativ sein, um unseren kopflosen Pi (mit -SSH / PuTTY) herzustellen, was hilft, die zusätzlichen Kosten zu senken, da wir irgendwie Bastler sind.

Wenn eine Gewohnheit Geld kostet, nennt man das Hobby

Schritt 3: Raspberry Pi-Programmierung in Java

Raspberry Pi-Programmierung in Java
Raspberry Pi-Programmierung in Java

Der Java-Code für den Raspberry Pi und den MPL3115A2-Sensor. Es ist in unserem Github-Repository verfügbar.

Bevor Sie mit dem Code fortfahren, lesen Sie die Anweisungen in der Readme-Datei und richten Sie Ihren Raspberry Pi entsprechend ein. Dies dauert nur einen Moment. Die Höhe wird aus dem Druck mit der folgenden Gleichung berechnet:

h = 44330,77 {1 - (p / p0) ^ 0,1902632} + OFF_H (Registerwert)

wobei p0 = Meeresspiegeldruck (101326 Pa) und h in Metern ist. Der MPL3115A2 verwendet diesen Wert, da das Offset-Register mit 2 Pascal pro LSB definiert ist. Der Code liegt klar vor Ihnen und ist in der einfachsten Form, die Sie sich vorstellen können, und Sie sollten keine Probleme haben.

Von hier aus können Sie auch den funktionierenden Java-Code für diesen Sensor kopieren.

// Verbreitung mit freier Lizenz.// Verwenden Sie es, wie Sie wollen, profitabel oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt. // MPL3115A2 // Dieser Code wurde entwickelt, um mit dem MPL3115A2_I2CS I2C Mini-Modul zu arbeiten, das von ControlEverything.com erhältlich ist. //

com.pi4j.io.i2c. I2CBus importieren;

com.pi4j.io.i2c. I2CDevice importieren; com.pi4j.io.i2c. I2CFactory importieren; import java.io. IOException;

öffentliche Klasse MPL3115A2

{ public static void main(String args) wirft Ausnahme {// I2C-Bus erstellen I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1); // I2C-Gerät abrufen, MPL3115A2 I2C-Adresse ist 0x60 (96) I2CDevice-Gerät = Bus.getDevice (0x60); // Steuerregister auswählen // Aktiver Modus, OSR = 128, Höhenmessermodus device.write (0x26, (byte)0xB9); // Datenkonfigurationsregister auswählen // Datenbereit-Ereignis für Höhe, Druck, Temperatur aktiviert device.write (0x13, (byte)0x07); // Steuerregister auswählen // Aktiver Modus, OSR = 128, Höhenmessermodus device.write (0x26, (byte)0xB9); Thread.sleep(1000);

// 6 Byte Daten von Adresse 0x00(00) lesen

// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb byte data = new byte[6]; device.read (0x00, Daten, 0, 6);

// Konvertieren Sie die Daten in 20-Bit

int tHeight = ((((Daten[1] & 0xFF) * 65536) + ((Daten[2] & 0xFF) * 256) + (Daten[3] & 0xF0)) / 16); int temp = ((Daten[4] * 256) + (Daten[5] & 0xF0)) / 16; doppelte Höhe = tHeight / 16,0; doppelter cTemp = (temp / 16,0); doppeltes fTemp = cTemp * 1,8 + 32;

// Steuerregister auswählen

// Aktiver Modus, OSR = 128, Barometermodus device.write (0x26, (Byte) 0x39); Thread.sleep(1000); // 4 Byte Daten von Adresse 0x00 (00) lesen // Status, pres msb1, pres msb, pres lsb device.read (0x00, data, 0, 4);

// Konvertieren Sie die Daten in 20-Bit

int pres = (((Daten[1] & 0xFF) * 65536) + ((Daten[2] & 0xFF) * 256) + (Daten[3] & 0xF0)) / 16; doppelter Druck = (pres / 4,0) / 1000,0; // Daten auf Bildschirm ausgeben System.out.printf("Druck: %.2f kPa %n", Druck); System.out.printf("Höhe: %.2f m %n", Höhe); System.out.printf("Temperatur in Celsius: %.2f C %n", cTemp); System.out.printf("Temperatur in Fahrenheit: %.2f F %n", fTemp); } }

Schritt 4: Die Praktikabilität des Codes (Arbeiten)

Die Praktikabilität des Kodex (Arbeiten)
Die Praktikabilität des Kodex (Arbeiten)

Laden Sie nun den Code herunter (oder git pull) und öffnen Sie ihn auf dem Raspberry Pi. Führen Sie die Befehle zum Kompilieren und Hochladen des Codes auf dem Terminal aus und sehen Sie sich die Ausgabe auf Monitor an. Nach einigen Sekunden werden alle Parameter angezeigt. Nachdem Sie sichergestellt haben, dass alles reibungslos funktioniert, können Sie dieses Projekt in ein größeres Projekt aufnehmen.

Schritt 5: Anwendungen und Funktionen

Der Präzisions-Höhenmesser-Sensor MPL3115A2 wird häufig in Anwendungen wie Karten (Map Assist, Navigation), Magnetkompass oder GPS (GPS-Dead Reckoning, GPS-Verbesserung für Rettungsdienste), hochgenaue Höhenmessung, Smartphones/Tablets, persönliche elektronische Höhenmessung und Satelliten (Wetterstationsausrüstung/-vorhersage).

Für z. B. Mit diesem Sensor und dem RasPi können Sie einen digitalen visuellen Höhenmesser bauen, den wichtigsten Teil der Fallschirmspringerausrüstung, der Höhe, Luftdruck und Temperatur messen kann. Sie können Windgaze und andere Sensoren hinzufügen, um einen interessanteren zu machen.

Schritt 6: Fazit

Da das Programm erstaunlich anpassbar ist, gibt es viele interessante Möglichkeiten, dieses Projekt zu erweitern und noch besser zu machen. Ein Höhenmesser/Interferometer würde beispielsweise mehrere an Masten montierte Höhenmesser umfassen, die gleichzeitig Messungen erfassen würden, wodurch eine kontinuierliche Einzel- oder Multi-Höhenmesser-Breitbereichsabdeckung bereitgestellt wird. Wir haben ein interessantes Video-Tutorial auf YouTube, das Ihnen beim besseren Verständnis dieses Projekts helfen kann.

Empfohlen: