Konzentrieren wir uns dieses Mal auf die Generierung sinnvoller Werte. Wir können jederzeit einen anderen Sensor anschließen oder Informationen von der Karte ablesen. Es sind diese Daten, die für uns wichtig sind. In diesem Beispiel werden wir eine kurze Anwendung erstellen, die einfach nur Daten ausliest und sie in der seriellen Konsole anzeigt. Es ist nichts Beeindruckendes, aber sie kann für andere, coolere Beispiele verwendet werden und uns echte Daten liefern, wenn wir die drahtlose Kommunikation testen oder Szenarien, in denen wir einige einfache Zahlen benötigen. Das Ziel ist es, echte Zufallswerte zu erhalten, die in einem Bereich liegen und die wir interpretieren und überprüfen können, ob sie sinnvollerweise wahr sind. Versuchen wir also, den internen ESP32 CPU-Temperatursensor (T-Display-S3 ESP32) auszulesen. Weitere Informationen finden Sie hier und hier.
Aber fangen wir an, öffnen Sie die Arduino IDE und starten Sie ein neues Dokument über das Menü File -> New. Dadurch wird ein neues Blatt in der Programmierumgebung geöffnet.
Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei ein:
#include "driver/temp_sensor.h"
void initTempSensor(){
temp_sensor_config_t temp_sensor = TSENS_CONFIG_DEFAULT();
temp_sensor.dac_offset = TSENS_DAC_L2;
temp_sensor_set_config(temp_sensor);
temp_sensor_start();
}
void setup() {
Serial.begin(9600);
initTempSensor();
}
void loop() {
float result = 0;
temp_sensor_read_celsius(&result);
Serial.print("Temperature:");
Serial.println(result);
delay(5000);
}
Die Funktion initTempSensor initialisiert den Code und nimmt einige Grundeinstellungen vor. Weitere Informationen zu den einzelnen Parametern und Funktionen finden Sie auf der Seite API-Referenz. In der Hauptschleifenfunktion können wir eine Verzögerung (delay) in Millisekunden einstellen. Hier ist sie so gewählt, dass eine Verzögerung von 5 Sekunden zwischen dem Ablesen der Temperaturwerte von der Karte besteht. Dies ist ein relativ kleiner Wert, der mehrere Ergebnisse erzeugt. Wenn wir einen Wert haben, der sich viel gleichmäßiger ändert, können wir einen viel höheren Wert wählen und so weniger Speicherplatz verbrauchen, wenn wir die Werte lokal speichern, oder weniger Energie und weniger Bandbreite, wenn wir die Ergebnisse drahtlos übertragen.
Laden Sie den Code auf das Board hoch, indem Sie auf die Schaltfläche „Upload“ drücken (zweite Schaltfläche auf der Arduino-IDE, oben links, grüner Pfeil in einem Kreis). Warten Sie, bis die Upload-Anzeige in der unteren rechten Ecke beendet ist und öffnen Sie den seriellen Monitor (Tools -> Serial monitor). Auf diese Weise können wir die gemessenen Werte in Celsius sehen.
Die Werte sind:

Es besteht auch die Möglichkeit, die Werte grafisch darzustellen. Wählen Sie dazu den Plotter aus dem Menü (Tools -> Serial Plotter). Das geplottete Diagramm sieht wie folgt aus:

In diesem Artikel haben wir gesehen, wie man ein sehr einfaches Programm erstellt und mehrere Werte in der Konsole anzeigt. Natürlich gibt es noch viel bequemere Möglichkeiten, Werte zu speichern und anzuzeigen, aber sie sind auch komplizierter. Das Board bietet mehrere drahtlose Möglichkeiten wie Bluethoot und WiFi, was es ideal macht, um Werte von Sensoren auszulesen, ohne eine kabelgebundene Verbindung zum Board zu haben. Der optimierte Stromverbrauch und die Deep-Sleep-Fähigkeit machen es außerdem ideal für Aufgaben, bei denen ein niedriger Stromverbrauch erforderlich ist.
Spaß am Programmieren!