Inhaltsverzeichnis:

RGB-Temperaturanzeige (mit XinaBox) - Gunook
RGB-Temperaturanzeige (mit XinaBox) - Gunook

Video: RGB-Temperaturanzeige (mit XinaBox) - Gunook

Video: RGB-Temperaturanzeige (mit XinaBox) - Gunook
Video: SKTC G01 & Bykski Water Cooling System with 5v RGB 2024, November
Anonim
RGB-Temperaturanzeige (mit XinaBox)
RGB-Temperaturanzeige (mit XinaBox)

Dies ist offiziell mein erster Instructables-Artikel, also werde ich zugeben, dass ich diese Gelegenheit gerade nutze, um es auszuprobieren. Verschaffen Sie sich ein Gefühl dafür, wie die Plattform funktioniert, die gesamte Benutzererfahrung. Aber während ich das tue, habe ich mir gedacht, dass ich auch die Gelegenheit nutzen kann, über ein einfaches Projekt zu berichten, an dem ich heute arbeite (mit den Produkten von XinaBox, die übrigens als "X-in-a- Kasten").

In diesem einfachen 5-Schritte-Anleitung werde ich die folgenden Themen behandeln:

  • Benötigte Komponenten
  • Verbinden der verschiedenen xChips miteinander.
  • Einrichten der Arduino IDE-Umgebung.
  • Code schreiben
  • Und zum Schluss die Idee testen

Was ich in diesem anweisbaren nicht teilen werde:

  • So sehr ich es liebe, zu erklären, was jeder dieser xChips tun kann und wie Sie sie manipulieren können, um bestimmte Funktionen auszuführen, das wäre nicht das Ziel dieser Anleitung. Ich plane, in naher Zukunft andere Instructables zu veröffentlichen, die in jeden der verschiedenen xChips eintauchen werden, die über den Produktkatalog von XinaBox erhältlich sind.
  • Ich werde nicht auf die Grundlagen des Arduino-Codes eingehen, da ich davon ausgehe, dass Sie bereits Erfahrung mit der Verwendung der Arduino-IDE sowie ein grundlegendes Verständnis der C/C++-Programmierung haben.

Schritt 1: Was Sie brauchen…

Was du brauchst…
Was du brauchst…
Was du brauchst…
Was du brauchst…
Was du brauchst…
Was du brauchst…

Technisch gesehen beginnen die meisten grundlegenden Produkt-Tutorials normalerweise mit einem "Hello World!" oder sogar ein "Blink"-Beispiel, das Sie vielleicht schon sehr gut kennen, da Sie schon einmal mit Arduino oder Raspberry Pi gearbeitet haben. Aber damit möchte ich nicht anfangen, weil alle schon das Gleiche machen, was es wirklich ein bisschen langweilig macht.

Stattdessen wollte ich mit einer praktischen Projektidee beginnen. Etwas, das sowohl einfach genug ist als auch zu einer komplexeren Projektidee skalierbar ist, wenn Sie möchten.

Hier sind die Artikel, die wir benötigen (siehe die Fotos für diesen Abschnitt des Instructable):

  1. IP02 - Erweiterte USB-Programmierschnittstelle
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - VOC- und Wettersensor (der den BME680-Sensor von BOSCH verwendet)
  4. xBUS-Anschlüsse - um die I2C-Kommunikation zwischen den verschiedenen xChips (x2) zu ermöglichen
  5. xPDI-Anschluss - um Programmierung und Debugging zu ermöglichen (x1)

Schritt 2: Verbinden der Teile

Verbinden der Teile
Verbinden der Teile
Verbinden der Teile
Verbinden der Teile
Verbinden der Teile
Verbinden der Teile

Um alle Teile miteinander zu verbinden, beginnen wir zuerst mit 1 Stück des xBUS-Steckers und des xPDI-Steckers.

Befolgen Sie die von mir bereitgestellten Bilder, und beachten Sie die Ausrichtung der xChips und die Position der Anschlüsse.

Zwischen den IP02- und CC03-xChips ist es recht einfach, die Verbindungspunkte zu identifizieren.

Für CC03 wird es die Südseite sein. Für IP02 ist es die Nordseite des xChips.

Sobald dies erledigt ist, fügen wir der Westseite des CC03 xChip einen weiteren xBUS-Anschluss hinzu.

Fertig?

Verbinden Sie nun einfach den SW02 xChip mit der Westseite von CC03.

Bevor wir IP02 in unseren Laptop einfügen, stellen Sie sicher, dass die folgenden Optionen für die beiden Schalter ausgewählt sind:

  • B ist ausgewählt (linker Schalter)
  • DCE ist ausgewählt (rechter Schalter)

Schließlich sind wir nun bereit, das IP02 in unseren Laptop einzufügen und mit der Einrichtung der Arduino IDE zu beginnen.

Schritt 3: Arduino-IDE einrichten

Einrichten der Arduino-IDE
Einrichten der Arduino-IDE
Einrichten der Arduino-IDE
Einrichten der Arduino-IDE

Auch in diesem anweisbaren habe ich davon ausgegangen, dass Sie bereits mit der Arduino IDE-Umgebung vertraut sind und wie man Bibliotheken innerhalb der Entwicklungsumgebung verwaltet.

Für dieses Projekt benötigen wir zwei Hauptbibliotheken:

  • arduino-CORE -
  • SW02-Bibliothek -

Laden Sie beide Bibliotheken an einen Speicherort auf Ihrem Desktop herunter.

Starten Sie als Nächstes Ihre Arduino-IDE.

Wählen Sie im Hauptmenü „Skizze“> „Bibliothek einschließen“> „ZIP-Bibliothek hinzufügen…“

Wiederholen Sie den gleichen Vorgang für beide Bibliotheksdateien.

Als nächstes müssen wir das entsprechende "Board" sowie "Port" auswählen. (Beachten Sie, dass ich die erforderlichen Auswahlen auch mit einem orangefarbenen Feld hervorgehoben habe.

  • Platine: "Arduino/Genuino Zero (Nativer USB-Port)"
  • Port: "COMXX" (dies sollte dem COM-Port entsprechen, der auf Ihrem Computer angezeigt wird. Meiner verwendet COM31)

In Ordung! Ich weiß, dass Sie begierig darauf waren, in die Codierung einzusteigen, also werden wir uns im nächsten Schritt darauf konzentrieren.

Schritt 4: Zeit zum Codieren

In diesem Abschnitt beginne ich mit der Freigabe von Code-Snippets aus dem abgeschlossenen Projektcode. Und am Ende werde ich den vollständigen Quellcode veröffentlichen, sodass Sie den Code einfach kopieren und in Ihre Arduino IDE-Quelldatei einfügen können.

Header-Dateien:

#include /* Dies ist die Bibliothek für die wichtigsten XinaBox-Kernfunktionen. */

#include /* Dies ist die Bibliothek für den VOC & Weather Sensor xChip. */

Definieren einiger Konstanten zur Steuerung der RGB-LED-Signale:

#define redLedPin A4

#define greenLedPin 8 #define blueLedPin 9

Als nächstes müssen wir einen Funktionsprototyp zum Übergeben der RGB-Werte deklarieren

void setRGBColor(int redValue, int greenValue, int blueValue);

Deklarieren des SW02-Objekts:

xSW02 SW02;

Die setup()-Methode:

Leere Einrichtung () {

// Starten Sie die I2C-Kommunikation Wire.begin(); // Starten Sie den SW02-Sensor SW02.begin (); // Verzögerung für den Sensor, um die Verzögerung (5000) zu normalisieren; }

Nun zur Hauptschleife ():

Leere Schleife () {

SchwimmertempC; }

Als nächstes müssen wir mit dem SW02-Objekt, das wir zuvor im Programm erstellt haben, eine Abfrage durchführen, um unsere Kommunikation mit dem Sensorchip zu starten:

// Daten von SW02 lesen und berechnen sensorSW02.poll ();

Jetzt lesen wir, um den Temperaturmesswert des Sensors zu erhalten

tempC = SW02.getTempC();

Sobald wir das Lesen haben, verwenden wir als letztes eine Reihe von if…else…-Steueranweisungen, um den Temperaturbereich zu bestimmen, und rufen dann die Funktion setRGBColor() auf

// Sie können den Temperaturbereich an Ihr Klima anpassen. Für mich lebe ich in Singapur, // die das ganze Jahr über tropisch ist und die Temperaturspanne hier recht eng sein kann. wenn (tempC >= 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) { setRGBColor (255, 0, 0); }

Hinweis: Wenn Sie wissen möchten, welche RGB-Werte für eine bestimmte Farbe relevant sind, empfehle ich Ihnen, eine Google-Suche nach "RGB-Farbwerten" durchzuführen. Es gibt viele Websites, auf denen Sie eine Farbauswahl verwenden können, um die gewünschte Farbe auszuwählen

// Wenn Sie möchten und optional sind, können Sie auch eine Verzögerung zwischen den Abfragen der Messwerte des Sensors hinzufügen.

Verzögerung(DELAY_TIME);

Sie können die Konstante DELAY_TIME natürlich auch zu Beginn des Programms deklarieren, so dass Sie ihren Wert nur einmal ändern müssen und nicht an mehreren Stellen im gesamten Programm. Schließlich brauchen wir noch die Funktion, um unsere RGB-LED zu steuern:

void setRGBColor(int redValue, int greenValue, int blueValue) {

analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Abschlussprogramm

#enthalten

#include #define redLedPin A4 #define greenLedPin 8 #define blueLedPin 9 void setRGBColor(int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; Void setup () {// Starten Sie die I2C-Kommunikation Wire.begin (); // Starten Sie den SW02-Sensor SW02.begin (); // Verzögerung für den Sensor, um die Verzögerung (5000) zu normalisieren; aufrechtzuerhalten. Void Schleife () { // Erstellen Sie eine Variable zum Speichern der von SW02 gelesenen Daten float tempC; tempC = 0; // Daten vom SW02-Sensor lesen und berechnen SW02.poll (); // SW02 anfordern, um die Temperaturmessung zu erhalten und in der // Temperaturvariable zu speichern tempC = SW02.getTempC(); wenn (tempC >= 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) { setRGBColor (255, 0, 0); } // Kleine Verzögerung zwischen Sensorleseverzögerung (DELAY_TIME); aufrechtzuerhalten. Void setRGBColor (int redValue, int greenValue, int blueValue) { analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Jetzt, da unser Programm fertig ist, programmieren wir den xChip! Der Upload-Prozess ist genau derselbe, wie Sie ein Programm auf Ihre Arduino-Boards hochladen würden.

Wenn Sie fertig sind, ziehen Sie den Stecker heraus und bringen Sie ihn für einen Testlauf heraus.

Empfohlen: