Inhaltsverzeichnis:
- Lieferungen:
- Werkzeuge:
- Schritt 1: Markieren und schneiden Sie Löcher und setzen Sie sie in den Fensterbildschirm ein
- Schritt 2: Oled und Sensor montieren
- Schritt 3: Arduino montieren und Komponenten anschließen
- Schritt 4: Code
Video: Handheld-Wetterstation - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
In diesem Instructable verwenden wir ein Arduino, ein Oled-Display und eine SparkFun-Umgebungssensor-Kombination mit CCS811- und BME280-Sensoren an Bord, um ein Handgerät zu bauen, das Temperatur, Luftfeuchtigkeit, TVOC-Werte, Luftdruck und Kohlendioxidwerte misst. Sie können jedes Arduino mit dem bereitgestellten Code verwenden, aber ich verwende ein SparkFun Qwiic Pro-Mikro. Wenn Sie ein Anfänger sind, empfehle ich Ihnen, die gleichen Teile zu verwenden, die ich verwende, nur um die Dinge einfach zu halten. Ich habe mich für das SparkFun Qwiic Pro Microboard wegen seiner geringen Größe und des Qwiic-Anschlusses entschieden, der es einfach macht, Ihre Komponenten anzuschließen. Wenn Sie ein anderes Board verwenden, stellen Sie sicher, dass Sie einen Qwiic-Hut, Phat oder Shield kaufen, der zu Ihrem Board passt.
Lieferungen:
- SparkFun Umweltkombi Breakout -
- SparkFun Micro OLED Breakout -
- SparkFun Qwiic Pro Micro -
- Qwiic-Kabel, 50mm -
- Projektbox, Größe zu Ihren Komponenten, ich verwende ca. 3 x 2 x 1 -
- Optional: Wenn Sie das Qwiic Pro Micro verwenden, benötigen Sie möglicherweise ein USB-C-Kabel (falls Sie noch keins haben) für die Stromversorgung und Programmierung
- Fensterbildschirm, ca. 1,5 x 1,5 Zoll
- Schrauben (siehe Bild oben)
Werkzeuge:
- Heißklebestifte und Heißklebepistole
- Schere
- Rasierklinge oder X-Acto-Messer, die Ihre Projektbox durchschneiden können
Schritt 1: Markieren und schneiden Sie Löcher und setzen Sie sie in den Fensterbildschirm ein
Wir markieren und schneiden Löcher für den Oled, den Umgebungssensor und den USB-C-Anschluss für die Programmierung und Stromversorgung.
- Richten Sie Ihre Komponenten an der gewünschten Stelle aus und markieren Sie die Schraubenlöcher.
- Markieren Sie Quadrate, für den Oled ein Quadrat in der Größe des Bildschirms und für den Umgebungssensor ein Quadrat, das etwas größer ist als die 2 Sensoren (siehe Bilder oben).
- Markieren Sie den Platz für den USB-C-Anschluss. Auf meinem Qwiic Pro Micro Board waren bereits Header gelötet, also habe ich es in ein Stück Schaumstoff gesteckt und markiert. Wenn dies nicht der Fall ist, legen Sie es flach auf den Boden des Gehäuses, um das Loch zu markieren.
- Bohren Sie die markierten Löcher und schneiden Sie den USB-C-Stecker aus. Die gebohrten Löcher sollten groß genug sein, um die Schrauben durchzulassen.
- Schneiden Sie ein Quadrat der Fensterscheibe etwas größer als das Loch für den Sensor. Schneiden Sie auf der Fensterscheibe Platz für das Schraubenloch und den Montagepfosten (siehe Bilder oben).
- Heißkleben Sie den Bildschirm an Ort und Stelle.
Schritt 2: Oled und Sensor montieren
Montieren Sie den Alt- und Umgebungssensor im Gehäuse. Die größeren Schrauben gehen in die gebohrten Löcher und die kleineren Schrauben in die Pfosten in der Ecke des Gehäusedeckels. Verwenden Sie die Unterlegscheiben für Abstandshalter. Für die größeren Schrauben siehe das Diagramm oben zur Verdeutlichung. Möglicherweise müssen Sie mehr als eine Unterlegscheibe für den Abstand verwenden.
Schritt 3: Arduino montieren und Komponenten anschließen
- Auf meinem Qwiic Pro Micro Board waren bereits Header gelötet, also habe ich ein Stück Schaumstoff hineingelegt und verklebt. Wenn deine keine Header hat, klebe sie auf den Boden des Gehäuses. Stellen Sie sicher, dass genügend Platz für den Anschluss des Qwiic-Kabels vorhanden ist.
- Verbinden Sie die Komponenten mit den Qwiic-Anschlüssen. Weder die Reihenfolge noch die Seite des Qwiic-Steckers spielt eine Rolle. Siehe die Bilder oben zur Verdeutlichung.
- Jetzt können Sie Ihre Projektbox zusammenschnappen. Stellen Sie sicher, dass die Qwiic-Kabel fest angeschlossen sind und nicht eingeklemmt werden.
Schritt 4: Code
Um Ihr Qwiic pro Microboard in Betrieb zu nehmen, folgen Sie diesem Tutorial.
Sobald dies erledigt ist, finden Sie den Code unten auf GitHub hier.
#include #include #include #include #define PIN_RESET 9#define DC_JUMPER 1#define CCS811_ADDR 0x5B //Standard-I2C-AdresseMicroOLED oled(PIN_RESET, DC_JUMPER);CCS811 myCCS811(CCS811_ADDR);(void) setup() delay; Wire.begin(); oled.begin(); // OLED initialisieren oled.clear (ALL); // Löschen Sie den internen Speicher des Displays oled.display(); // Zeigt an, was sich im Puffer befindet (splashscreen) oled.clear(PAGE); // Löschen Sie den Puffer. randomSeed (analogRead (A0) + analogRead (A1)); //Initialize BME280 //Für I2C aktivieren Sie Folgendes und deaktivieren Sie den SPI-Abschnitt myBME280.settings.commInterface = I2C_MODE; myBME280.settings. I2CAddress = 0x77; myBME280.settings.runMode = 3; //Normaler Modus myBME280.settings.tStandby = 0; myBME280.settings.filter = 4; myBME280.settings.tempOverSample = 5; myBME280.settings.pressOverSample = 5; myBME280.settings.humidOverSample = 5; CCS811Core::CCS811_Status_e returnCode = myCCS811.beginWithStatus (); //Der Aufruf von.begin() bewirkt, dass die Einstellungen geladen werden delay(10); // Stellen Sie sicher, dass der Sensor genügend Zeit zum Einschalten hatte. BME280 benötigt 2 ms zum Starten. Byte-ID = myBME280.begin(); // Gibt die ID von 0x60 zurück, wenn die Verzögerung erfolgreich war (10000); }void print_data () { oled.setFontType (0); oled.setCursor(0, 0); oled.print("TMP"); oled.setCursor(25, 0); oled.print (rund (myBME280.readTempF())); oled.setCursor(0, 10); oled.print("HUM"); oled.setCursor(25, 10); oled.print (rund (myBME280.readFloatHumidity())); oled.setCursor(0, 20); oled.print("VOC"); oled.setCursor(25, 20); oled.print (rund (myCCS811.getTVOC())); oled.setCursor(0, 30); oled.print("BAR"); oled.setCursor(25, 30); oled.print (rund (myBME280.readFloatPressure())); oled.setCursor(0, 40); oled.print("CO2"); oled.setCursor(25, 40); oled.print (rund (myCCS811.getCO2())); oled.display(); } ungültige Schleife () { Verzögerung (2000); //Prüfen, ob Daten verfügbar sind if (myCCS811.dataAvailable()) { //Der Aufruf dieser Funktion aktualisiert die globalen tVOC- und eCO2-Variablen myCCS811.readAlgorithmResults(); //printData holt die Werte von tVOC und eCO2 float BMEtempC = myBME280.readTempC(); float BMEhumid = myBME280.readFloatHumidity(); //Dies sendet die Temperaturdaten an den CCS811 myCCS811.setEnvironmentalData(BMEhumid, BMEtempC); } print_data(); Verzögerung (2000); }
Fügen Sie den Code in die Arduino-IDE ein und kompilieren Sie ihn. Der Bildschirm sollte einige Sekunden lang das SparkFun-Logo zeigen und dann beginnen, die Live-Bedingungen anzuzeigen. Die Bedingungen werden etwa alle 2 Sekunden aktualisiert. Danke fürs Lesen.
Hast du eine Frage?
Hinterlasse hier einen Kommentar oder schick mir eine E-Mail