Luftfeuchtigkeit und Lufttemperatur

From phyphox
Revision as of 10:40, 22 September 2023 by Nabla (talk | contribs)
Jump to navigation Jump to search
Luftfeuchtigkeit und Lufttemperatur
Experiment Luftfeuchtigkeit und Lufttemperatur
Category Arduino library experiments
Used sensors SHT31

Blindtext

Aufbau

Die Verkabelung des Sensors ist wieder wie üblich: 3V3 – Vin, Gnd – Gnd, SCL – 22, SDA –21. Als Stromversorgung dient hier einfach eine kleine Powerbank, auf die der ESP32 mit Doppelseitigem Klebeband befestigt wird. Der SHT31 wurde über ein vieradriges Kabel mit dem ESP32 verbunden und am Ende alles mit Schrumpfschlauch versiegelt. Tipp: Als Kabel kann man z. B. ein nicht mehr benötigtes USB-Kabel verwenden. Sowas liegt häufig in größerer Anzahl rum. Und die Kabel sind meist angenehm flexibel.

Programmierung

Der ESP32 wird über die Arduino IDE programmiert. Es müssen die Definitionen für den ESP32 und die phyphox-Bibliothek installiert sein. Siehe dazu das Video unter Category: Arduino library experiments.

Es ist darauf zu achten, dass jeder ESP32 eine eigene Kennung hat (diese wird in PhyphoxBLE::start("ThermoHygro01") festgelegt). Anschließend kann über das Plus-Symbol in phyphox ein Bluetooth-Experiment hinzugefügt werden, das Experiment wird dann automatisch geladen.

#include <phyphoxBle.h> 
#include "Wire.h"
#include "SHT31.h"
#define SHT31_ADDRESS   0x44

uint32_t start;
uint32_t stop;
SHT31 sht;

void setup()
{
   PhyphoxBLE::start("ThermoHygro_01");          //Start the BLE server
//Experiment
    PhyphoxBleExperiment experiment;
    experiment.setTitle("ThermoHygro");
    experiment.setCategory("Arduino Experiments");
    experiment.setDescription("Plot the Temperature and Humidity over time.");

//View
    PhyphoxBleExperiment::View view;
//Value
    PhyphoxBleExperiment::Value Value1;
    Value1.setLabel("Theta = ");
    Value1.setUnit("°C");
    Value1.setChannel(1);
    PhyphoxBleExperiment::Value Value2;
    Value2.setLabel("h = ");
    Value2.setUnit("%");
    Value2.setChannel(2);  
//Graph
    PhyphoxBleExperiment::Graph graph1;
    graph1.setLabel("Temperatur");
    graph1.setUnitX("s");
    graph1.setUnitY("°C");
    graph1.setLabelX("time");
    graph1.setLabelY("Theta");
    graph1.setChannel(0,1);

    PhyphoxBleExperiment::Graph graph2;
    graph2.setLabel("Luftfeuchtigkeit");
    graph2.setUnitX("s");
    graph2.setUnitY("%");
    graph2.setLabelX("time");
    graph2.setLabelY("h");
    graph2.setChannel(0,2);

    view.addElement(graph1);                 //Attach graph to view
    view.addElement(Value1);
    view.addElement(graph2);                 //Attach graph to view
    view.addElement(Value2);
    experiment.addView(view);               //Attach view to experiment
    PhyphoxBLE::addExperiment(experiment);  //Attach experiment to server

  Serial.begin(38400);
  Wire.begin();
  sht.begin(SHT31_ADDRESS);
  Wire.setClock(100000);

  uint16_t stat = sht.readStatus();
}


void loop()
{
  start = micros();
  sht.read();         // default = true/fast       slow = false
  stop = micros();
  float temp = sht.getTemperature();
  float hum = sht.getHumidity();
  Serial.print(temp, 1);
  Serial.print(" ");
  Serial.println(hum, 1);
  PhyphoxBLE::write(temp,hum);
  delay(10);
}

Arbeitsmaterialien