Inhaltsverzeichnis:

Arduino Datenlogger - Gunook
Arduino Datenlogger - Gunook

Video: Arduino Datenlogger - Gunook

Video: Arduino Datenlogger - Gunook
Video: Amazing arduino project 2024, November
Anonim
Arduino-Datenlogger
Arduino-Datenlogger
Arduino-Datenlogger
Arduino-Datenlogger

In diesem Tutorial werden wir einen einfachen Datenlogger mit Arduino erstellen. Es geht darum, die Grundlagen der Verwendung von Arduino zum Erfassen von Informationen und Drucken auf dem Terminal zu erlernen. Wir können diese Grundeinstellung verwenden, um eine Reihe von Aufgaben zu erledigen.

Um loszulegen:

Sie benötigen ein Tinkercad-Konto (www.tinkercad.com). Gehen Sie vorbei und melden Sie sich mit Ihrem E-Mail- oder Social-Media-Konto an.

Wenn Sie sich anmelden, gelangen Sie zum Tinkercad-Dashboard. Klicken Sie links auf "Circuits" und wählen Sie "Create new Circuit". Lass uns anfangen!

Sie finden die vollständige Datei auf TInkercad Circuits - Danke fürs Auschecken!

Schritt 1: Einige Komponenten hinzufügen

Einige Komponenten hinzufügen
Einige Komponenten hinzufügen
Einige Komponenten hinzufügen
Einige Komponenten hinzufügen
Einige Komponenten hinzufügen
Einige Komponenten hinzufügen

Sie benötigen einige grundlegende Komponenten. Diese beinhalten:

  • Arduino-Board
  • Steckbrett

Fügen Sie diese hinzu, indem Sie nach ihnen suchen und sie per Mausklick in den mittleren Bereich ziehen.

Platzieren Sie das Steckbrett über dem Arduino. Es macht es einfacher, die Verbindungen später anzuzeigen.

Schritt 2: Eine Anmerkung zu Steckbrettern

Ein Hinweis zu Steckbrettern
Ein Hinweis zu Steckbrettern

Ein Steckbrett ist ein super hilfreiches Gerät für das Rapid Prototyping. Wir verwenden es, um Komponenten zu verbinden. Einige Dinge zu beachten.

  1. Die Punkte sind vertikal verbunden, aber die Linie in der Mitte trennt diese Verbindung von der oberen und unteren Spalte.
  2. Spalten sind nicht von links nach rechts verbunden, wie in der Zeile. Dies bedeutet, dass alle Komponenten über die Säulen hinweg verbunden werden sollten, anstatt sie vertikal nach unten zu führen.
  3. Wenn Sie Knöpfe oder Schalter verwenden müssen, verbinden Sie diese über die Unterbrechung in der Mitte. Wir werden dies in einem späteren Tutorial besuchen.

Schritt 3: Zwei Sensoren hinzufügen

Zwei Sensoren hinzufügen
Zwei Sensoren hinzufügen

Die beiden Sensoren, die wir verwenden, sind ein lichtempfindlicher Sensor und ein Temperatursensor.

Diese Sensoren werten Licht und Temperatur aus. Wir verwenden Arduino, um den Wert zu lesen und ihn im seriellen Monitor auf dem Arduino anzuzeigen.

Suchen Sie nach den beiden Sensoren und fügen Sie sie hinzu. Stellen Sie sicher, dass sie über den Spalten auf dem Steckbrett positioniert sind. Platzieren Sie genug Platz zwischen ihnen, damit Sie sie besser sehen können.

Schritt 4: Lichtempfindlicher Sensor

Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
Lichtempfindlicher Sensor
  1. Fügen Sie für den lichtempfindlichen Sensor einen Draht vom 5V-Pin des Arduino in die gleiche Spalte wie das rechte Bein des Teils im Steckbrett ein. Ändern Sie die Kabelfarbe in Rot.
  2. Verbinden Sie das linke Bein über den Pin in der gleichen Spalte mit dem A0 (A-Null) Pin des Arduino. Dies ist der analoge Pin, mit dem wir den Wert vom Sensor auslesen. Färben Sie diesen Draht gelb oder etwas anderes als rot oder schwarz.
  3. Platzieren Sie einen Widerstand (Suchen und Klicken-Ziehen) auf die Platine. Dies vervollständigt den Stromkreis und schützt den Sensor und den Pin.

    • Drehen Sie es um, sodass es über die Säulen geht.
    • Verbinden Sie ein Bein mit der rechten Beinsäule auf dem Steckbrett
    • Legen Sie einen Draht vom anderen Ende des Widerstands nach Masse

      Ändern Sie die Kabelfarbe in Schwarz

  4. Überprüfen Sie alle Verbindungen. Wenn etwas nicht an der richtigen Stelle ist, funktioniert dies nicht richtig.

Schritt 5: Starten Sie den Code

Code starten
Code starten
Code starten
Code starten
Code starten
Code starten

Sehen wir uns den Code für diese Komponente an.

Betrachten Sie zunächst das dritte Bild in diesem Schritt. Es enthält Code mit zwei Funktionen:

Void-Setup ()

Leere Schleife ()

In C++ liefern alle Funktionen ihren Rückgabetyp, dann den Namen, dann die beiden runden Klammern, die verwendet werden können, um Argumente, normalerweise als Variablen, zu übergeben. In diesem Fall ist der Rückgabetyp void oder nichts. Der Name ist eingerichtet und die Funktion nimmt keine Argumente an.

Die Setup-Funktion wird einmal ausgeführt, wenn Arduino bootet (wenn Sie es einstecken oder Batterien anschließen).

Die Schleifenfunktion läuft in einer konstanten Schleife ab der Millisekunde, die die Setup-Funktion abgeschlossen hat.

Alles, was Sie in die Schleifenfunktion einfügen, wird ausgeführt, wenn Arduino ausgeführt wird. Alles außerhalb, das nur läuft, wenn es aufgerufen wird. Als ob wir eine andere Funktion außerhalb der Schleife definiert und aufgerufen hätten.

Aufgabe

Öffnen Sie das Code-Panel mit der Schaltfläche in Tinkercad. Ändern Sie die Dropdown-Liste Blöcke in Text. Stimmen Sie dem angezeigten Warnfeld zu. Löschen Sie nun alles, was Sie sehen, außer dem Text im dritten Bild in diesem Schritt.

Variablen

Um zu beginnen, müssen wir einige Variablen zuweisen, damit wir unseren Code wirklich effizient machen.

Variablen sind wie Eimer, die nur ein Objekt enthalten können (C++ nennen wir objektorientiert). Ja, wir haben Arrays, aber das sind spezielle Variablen, über die wir später sprechen werden. Wenn wir eine Variable zuweisen, müssen wir ihr den Typ mitteilen und ihr dann einen Wert zuweisen. Es sieht aus wie das:

int einigeVar = A0;

Also haben wir eine Variable zugewiesen und ihr den Typ int gegeben. Ein int ist eine ganze Zahl oder eine ganze Zahl.

"Aber du hast keine ganze Zahl benutzt!", höre ich dich sagen. Das stimmt.

Arduino macht etwas Besonderes für uns, damit wir A0 als Ganzzahl verwenden können, da es in einer anderen Datei A0 als Ganzzahl definiert, sodass wir die A0-Konstante verwenden können, um auf diese Ganzzahl zu verweisen, ohne wissen zu müssen, was es ist. Wenn wir nur 0 eingeben würden, würden wir uns auf den digitalen Pin an Position 0 beziehen, was nicht funktionieren würde.

Also schreiben wir für unseren Code eine Variable für den Sensor, den wir angehängt haben. Obwohl ich empfehle, ihm einen einfachen Namen zu geben, liegt das an Ihnen.

Ihr Code sollte so aussehen:

int Lichtsensor = A0;

Void setup () { } Void Schleife () { }

Lassen Sie uns nun Arduino sagen, wie der Sensor an diesem Pin zu handhaben ist. Wir führen eine Funktion innerhalb des Setups aus, um den Pin-Modus einzustellen und Arduino mitzuteilen, wo er danach suchen soll.

int Lichtsensor = A0;

Void setup () {pinMode (lightSensor, INPUT); } Leere Schleife () { }

Die Funktion pinMode teilt Arduino mit, dass der Pin (A0) als INPUT-Pin verwendet wird. Beachten Sie das camelCaseUsed (siehe jeder erste Buchstabe ist ein Großbuchstabe, da es Höcker hat, daher … Kamel …!) für die Variablen- und Funktionsnamen. Dies ist eine Konvention und gewöhnungsbedürftig.

Schließlich verwenden wir die analogRead-Funktion, um einige Daten abzurufen.

int Lichtsensor = A0;

Void setup () { pinMode (lightSensor, INPUT); aufrechtzuerhalten. Void Schleife () { Int Reading = analogRead (lightSensor); }

Sie werden sehen, dass wir den Messwert in einer Variablen gespeichert haben. Dies ist wichtig, da wir es drucken müssen. Verwenden wir die serielle Bibliothek (eine Bibliothek ist Code, den wir unserem Code hinzufügen können, um das Schreiben für uns zu beschleunigen, indem wir sie einfach per Definition aufrufen), um dies auf dem seriellen Monitor auszugeben.

int Lichtsensor = A0;

Void setup () {// Setzen Sie die Pin-Modi pinMode (lightSensor, INPUT); // Fügen Sie die serielle Bibliothek Serial.begin (9600) hinzu; aufrechtzuerhalten. Void Schleife () {// Lesen Sie den Sensor Int Reading = analogRead (lightSensor); // Den Wert auf dem Monitor ausgeben Serial.print ("Light: "); Serial.println (Lesen); // die nächste Schleife um 3 Sekunden verzögern delay (3000); }

Ein paar neue Sachen! Zuerst sehen Sie diese:

// Dies ist ein Kommentar

Wir verwenden Kommentare, um anderen mitzuteilen, was unser Code tut. Diese sollten Sie häufig verwenden. Der Compiler liest diese nicht und konvertiert sie in Code.

Jetzt haben wir auch die Serial-Bibliothek mit der Zeile hinzugefügt

Serial.begin(9600)

Dies ist ein Beispiel für eine Funktion, die ein Argument akzeptiert. Sie haben die Bibliothek Serial aufgerufen, dann eine Funktion ausgeführt (wir wissen, dass es eine Funktion aufgrund der runden Klammern ist) und eine Ganzzahl als Argument übergeben, wodurch die Serial-Funktion auf 9600 Baud eingestellt wurde. Machen Sie sich keine Sorgen warum - wissen Sie einfach, dass es funktioniert, für den Moment.

Als nächstes drucken wir auf den seriellen Monitor. Wir haben zwei Funktionen verwendet:

// Dieser druckt ohne Zeilenumbruch in die Seriennummer (eine Eingabe am Ende)

Serial.print ("Licht: "); // Dieser fügt den Zeilenumbruch ein, so dass jedes Mal, wenn wir lesen und schreiben, eine neue Zeile beginnt Serial.println (reading);

Wichtig zu sehen ist, dass jeder einen eigenen Zweck hat. Stellen Sie sicher, dass Ihre Strings doppelte Anführungszeichen verwenden und dass Sie das Leerzeichen nach dem Doppelpunkt lassen. Das hilft der Lesbarkeit für den Benutzer.

Schließlich haben wir die Verzögerungsfunktion verwendet, um unsere Schleife zu verlangsamen und sie nur alle drei Sekunden zu lesen. Dies ist in Tausendstelsekunden geschrieben. Ändern Sie es, um nur alle 5 Sekunden zu lesen.

Groß! Auf geht's!

Schritt 6: Simulation

Simulation
Simulation
Simulation
Simulation
Simulation
Simulation

Überprüfen Sie immer, ob die Dinge funktionieren, indem Sie die Simulation ausführen. Für diese Schaltung müssen Sie auch den Simulator öffnen, um zu überprüfen, ob er funktioniert und Ihre Werte überprüfen.

Starten Sie die Simulation und überprüfen Sie den seriellen Monitor. Ändern Sie den Wert des Lichtsensors, indem Sie darauf klicken und den Wert mit dem Schieberegler ändern. Sie sollten die Wertänderung auch im seriellen Monitor sehen. Wenn dies nicht der Fall ist oder wenn Sie beim Drücken der Schaltfläche Simulation starten Fehler erhalten, gehen Sie sorgfältig zurück und überprüfen Sie Ihren gesamten Code.

  • Konzentrieren Sie sich auf die Zeilen, die im roten Debugging-Fenster angezeigt werden, das Ihnen angezeigt wird.
  • Wenn Ihr Code richtig ist und die Simulation immer noch nicht funktioniert, überprüfen Sie Ihre Verkabelung.
  • Laden Sie die Seite neu. Möglicherweise liegt ein unabhängiger System-/Serverfehler vor.
  • Schütteln Sie Ihre Faust am Computer und überprüfen Sie es erneut. Das machen alle Programmierer. Alle. Die. Zeit.

Schritt 7: Verdrahten Sie den Temperatursensor

Verdrahten Sie den Temperatursensor
Verdrahten Sie den Temperatursensor

Ich gehe davon aus, dass Sie jetzt auf dem richtigen Weg sind. Fahren Sie fort und verdrahten Sie den Temperatursensor, wie das Bild vermuten lässt. Beachten Sie die Platzierung der 5V- und GND-Drähte im gleichen Raum wie die für das Licht. Das ist in Ordnung. Es ist wie eine Parallelschaltung und verursacht keine Probleme im Simulator. In einer tatsächlichen Schaltung sollten Sie eine Breakout-Platine oder eine Abschirmung verwenden, um eine bessere Energieverwaltung und Verbindungen zu gewährleisten.

Lassen Sie uns nun den Code aktualisieren.

Der Temperatursensorcode

Dies ist etwas kniffliger, aber nur, weil wir etwas rechnen müssen, um den Messwert umzuwandeln. Es ist nicht so schlimm.

int Lichtsensor = A0;

int tempSensor = A1; Void setup () {// Setzen Sie die Pin-Modi pinMode (lightSensor, INPUT); // Fügen Sie die serielle Bibliothek Serial.begin (9600) hinzu; aufrechtzuerhalten. Void loop () { // Der Temperatursensor // Zwei Variablen in einer Zeile erstellen - oh Effizienz! // Float var zum Speichern einer dezimalen Float-Spannung, GradC; // Den Wert des Pins lesen und in einen Messwert von 0 - 5 umwandeln // Im Wesentlichen Spannung = (5/1023 = 0,004882814); Spannung = (analogRead (tempSensor) * 0,004882814); // In Grad C umwandeln GradC = (Spannung - 0,5) * 100; // Auf den seriellen Monitor drucken Serial.print ("Temp: "); Serial.print (Grad C); Serial.println("oC"); // Lesen Sie den Sensor aus Int Reading = analogRead (lightSensor); // Den Wert auf dem Monitor ausgeben Serial.print ("Light: "); Serial.println (Lesen); // die nächste Schleife um 3 Sekunden verzögern delay (3000); }

Ich habe einige Updates am Code vorgenommen. Gehen wir sie einzeln durch.

Zuerst habe ich die Zeile hinzugefügt

int tempSensor = A1;

Genau wie beim lightSensor muss ich den Wert in einer Variablen speichern, um es später einfacher zu machen. Wenn ich die Position dieses Sensors ändern müsste (wie die Platine neu zu verdrahten), muss ich nur die eine Codezeile ändern, nicht die gesamte Codebasis durchsuchen, um A0 oder A1 usw. zu ändern.

Dann haben wir eine Zeile hinzugefügt, um den Messwert und die Temperatur in einem Float zu speichern. Notieren Sie zwei Variablen in einer Zeile.

Erhaltungsspannung, GradC;

Dies ist wirklich hilfreich, da es die Anzahl der Zeilen, die ich schreiben muss, reduziert und den Code beschleunigt. Es kann jedoch schwieriger sein, Fehler zu finden.

Jetzt lesen und speichern wir es und konvertieren es dann in unseren Ausgabewert.

Spannung = (analogRead (tempSensor) * 0,004882814);

Grad C = (Spannung - 0,5) * 100;

Diese beiden Zeilen sehen schwierig aus, aber in der ersten nehmen wir den Messwert und multiplizieren ihn mit 0,004… weil er 1023 (der analoge Messwert gibt diesen Wert zurückgibt) in einen Messwert von 5 umwandelt.

Die zweite Zeile dort multipliziert diesen Messwert mit 100, um den Dezimalpunkt zu verschieben. Das gibt uns die Temperatur. Sauber!

Schritt 8: Testen und Prüfen

Testen und Prüfen
Testen und Prüfen

Alles läuft nach Plan, Sie sollten einen funktionierenden Kreislauf haben. Testen Sie, indem Sie die Simulation ausführen und den seriellen Monitor verwenden. Wenn Sie Fehler haben, überprüfen Sie, überprüfen Sie erneut und schütteln Sie Ihre Faust.

Hast du es gemacht? Teile und erzähle uns deine Geschichte!

Dies ist die endgültige Schaltung, die für Sie eingebettet ist, damit Sie die endgültige Kreation spielen / testen können. Danke, dass Sie das Tutorial abgeschlossen haben!

Empfohlen: