Home > Technologie > SD-Karten Datenlogger mit LinkitOne

SD-Karten Datenlogger mit LinkitOne

0
Advertisement

SD-Karten Datenlogger mit LinkitOne

In diesem Tutorial, werden wir sehen, wie die integrierte SD-Karte Funktionalität in der super awesome MediaTek LinkitOne verwenden!

Die LinkitOne bietet 10 MB an Bord Flash-Speicher und bis zu 32 GB erweiterbare Speicherung über den microSD-Kartenslot an Bord.
Hier werden wir den SD-Kartensteckplatz verwenden, um mit dem Grove-Temperatursensor gesammelte Daten zu speichern.

IoT ist alles über angeschlossene Anwendungen. Aber Offline-Datenspeicherung kann verwendet werden, wenn Konnektivität nicht verfügbar ist. Große Mengen an gesammelten Daten können mit R oder einer anderen Analytics-Software Ihrer Wahl analysiert werden.

Schritt 1: Was brauchen Sie?

SD-Karten Datenlogger mit LinkitOne

SD-Karten Datenlogger mit LinkitOne

SD-Karten Datenlogger mit LinkitOne

Dies ist eher ein Intro zu SD-Protokollierung. Also, obwohl ich mit dem Temperatursensor in Grove hier, können Sie Gebrauch von jedem analogen Sensor Ihrer Wahl. Ich habe Code für eine generische SD-Karte Datenlogger später enthalten.

Bestandteile:
1. MediaTek LinkitOne Vorstand
2. DHT 22 Temperaturfühler
3. MicroSD-Karte

Schritt 2: Setup

SD-Karten Datenlogger mit LinkitOne

Das Setup hier ist ziemlich einfach. Schließen Sie den Temperatursensor nur an die Onboard-Grove-Steckplätze oder den Grove-Schirm an. Wie Sie hier sehen können, habe ich es mit D2 auf dem Grove-Schild verbunden.

Zweitens stellen Sie sicher, dass Sie die SD-Karte in den SD-Kartensteckplatz des LinkIt One einsetzen.

Und du bist gut zu gehen!

Schritt 3: Programmierung

Die Programmierung ist ziemlich einfach. Für die SD-Kartenfunktionalität nutzen wir die LStorage-Bibliothek.
Auch die DHT-Bibliothek für den Sensor.

  #include "DHT.h" #include "LTask.h" #include "LFlash.h" #include "LSD.h" #include "LStorage.h" #define Drv LSD // Verwenden der SD-Karte #define DHTPIN 2 // welchen Pin wir angeschlossen sind # define DHTTYPE DHT22 // DHT 22 (AM2302) DHT dht (DHTPIN, DHTTYPE); void setup () {// Serielle Kommunikation öffnen und warten, bis der Port geöffnet wird: Serial.begin (9600 );  Während (! Serial.available ());  // Eingabe irgendetwas, um Serial.print zu starten ( "SD-Karte initialisieren ...");  // Stellen Sie sicher, dass der Standard-Chip-Select-Pin auf // gesetzt ist, auch wenn Sie ihn nicht verwenden: pinMode (10, OUTPUT) // sehen, ob die Karte vorhanden ist und initialisiert werden kann: LTask.begin ( );  Drv.begin ();  Serial.println ( "Karte initialisiert");  Dht.begin ();  // Initialisieren der Sensorbibliothek} void loop () {// einen String für die Zusammenstellung der Daten zu log: String dataString = "";  Schwimmer t = 0,0;  Float h = 0,0; int temp;  If (dht.readHT (& t, & h)) {temp = (int) t; dataString + = String (temp);  } Öffnen Sie die Datei.  Beachten Sie, dass nur eine Datei zu einem Zeitpunkt geöffnet sein kann, // also müssen Sie diese schließen, bevor Sie eine andere öffnen.  LFile dataFile = Drv.open ( "datalog.txt", FILE_WRITE);  // Wenn die Datei verfügbar ist, schreiben Sie an: if (dataFile) {dataFile.println (dataString);  DataFile.close ();  // Auf serielle Schnittstelle drucken: Serial.println (dataString);  } // Wenn die Datei nicht geöffnet ist, erscheint ein Fehler: else {Serial.println ( "error opening datalog.txt");  Verzögerung (1000);  aufrechtzuerhalten.

Schritt 4: Generische Protokollierung

Hier ist der Code für eine generische analoge Sensordatenerfassung wie versprochen

/ * SD-Karte Datenlogger
Dieses Beispiel zeigt, wie Daten von drei analogen Sensoren auf eine SD-Karte mit der LSD-Bibliothek protokolliert werden. * /
#include "LSD.h"
Void setup ()
{
// Serielle Kommunikation öffnen und warten, bis der Port geöffnet ist:
Serial.begin (9600);
Während (! Serial);
// auf seriellen Port warten, um eine Verbindung herzustellen.
Serial.print ( "Initialisierung der SD-Karte ...");
LSD.begin ();
Serial.println ( "Karte initialisiert");
aufrechtzuerhalten.
Void Schleife ()
{
// Erstellen Sie einen String für die Protokollierung der Daten:
String dataString = "";
// drei Sensoren lesen und an den String anhängen:
Für (int analogPin = 14; analogPin <17; analogPin ++)
{
Int sensor = analogRead (analogPin);
DataString + = String (Sensor);
Wenn (analogPin <16)
{
DataString + = ",";
aufrechtzuerhalten.
aufrechtzuerhalten.

// Öffnen Sie die Datei. Beachten Sie, dass nur eine Datei zu einem Zeitpunkt geöffnet sein kann,
// also musst du diese schließen bevor du eine andere öffnest.
LFile dataFile = LSD.open ( "datalog.txt", FILE_WRITE);
// Wenn die Datei verfügbar ist, schreiben Sie an:
If (dataFile)
{
DataFile.println (dataString);
DataFile.close ();
// auch auf serielle Schnittstelle drucken:
Serial.println (dataString);
aufrechtzuerhalten.
// Wenn die Datei nicht geöffnet ist, erscheint ein Fehler:
Else {Serial.println ( "error opening datalog.txt");
aufrechtzuerhalten.
aufrechtzuerhalten.

Related Reading