Zwei Wassertemperatursensoren DS18B20

Hallo,
ich versuche zwei DS18B20 an die Sensebox anzuschließen. Die Programmierung über Blockly funktioniert allerdings nicht. Woran liegt das? Wird zeitnah bei Blockly nachgebessert? Wie könnte ich es abändern, womöglich innerhalb von Blockly?
Für den zweiten Sensor bei Blockly wird keine zweite Zeile „#define …“ erstellt
Viele Grüße
Hannes

Hi Hannes,

danke für die Info. Habe ein Issues angelegt und werde es einbauen, dass mehrere DS18B20 verwendet werden können.

Viele Grüße

Mario

An der Stelle vielleicht noch wichtig ob mehrere an einen Pin angesteckt werden oder mehrere an mehrere Pins. Zur Eindeutigen Zuordnung sinnvoll sie auch an mehrere Pins anzustecken, obwohl ein großer Vorteil der OneWire Sensoren eben das auslesen über ein Kabel ist…

Kannst du schon etwas zum Zeitfenster sagen bis das umgesetzt wird?

Viele Grüße
Hannes

Hab´s gelöst. Hier vielleicht als Ansatz, es geht sicherlich sauberer.

Blockly.Arduino.sensebox_sensor_watertemperature = function () {
  var dropdown_port = this.getFieldValue("Port");
  var dropdown_pin = 1;
  if (dropdown_port === "A") {
    dropdown_pin = 1;
  } else if (dropdown_port === "B") {
    dropdown_pin = 3;
  } else if (dropdown_port === "C") {
    dropdown_pin = 5;
  }
  var dropdown_pin = this.getFieldValue("PIN");
  Blockly.Arduino.libraries_["library_oneWire"] = '#include "OneWire.h"';
  Blockly.Arduino.libraries_["library_oneDallasTemperature"] =
    '#include "DallasTemperature.h"';
  Blockly.Arduino.definitions_["define_OneWire_" + dropdown_pin] =
    "#define ONE_WIRE_BUS_" + dropdown_pin + " " +
    dropdown_pin +
    "\nOneWire oneWire" + dropdown_pin + "(ONE_WIRE_BUS_" + dropdown_pin + ");\nDallasTemperature sensors" + dropdown_pin + "(&oneWire" + dropdown_pin + ");";
  Blockly.Arduino.setupCode_["sensebox_oneWireSetup"] = "sensors" + dropdown_pin + ".begin();";
  Blockly.Arduino.codeFunctions_["sensebox_requestTemp_" + dropdown_pin] =
    "float getWaterTemp" + dropdown_pin + "(){\nsensors" + dropdown_pin + ".requestTemperatures();\nsensors" + dropdown_pin + ".getTempCByIndex(0);\n}";
  var code = "getWaterTemp" + dropdown_pin + "()";
  return [code, Blockly.Arduino.ORDER_ATOMIC];
};

Hi @hannes,

ich habe es hier mal eingebaut:
https://deploy-preview-141--blockly-react.netlify.app/

Ich habe gerade keinen Sensor hier, um es zu testen. Kannst du das überprüfen und Rückmeldung geben ob es funktioniert?

Der Ansatz ist sehr ähnlich zu deine nur übergebe ich den Sensor der Funktion, damit wir diese nicht doppelt deklarieren müssen.

Beste Grüße

Mario