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:
link entfernt

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

Hallo!
Der Link springt ins neue Blockly und funktioniert nicht.
Bitte ändern

Der Link war nur zum testen gedacht, aber es gab leider keine Rückmeldung ob es so funktionierte.

Da es nun das kleine One-Wire Adapterboard zum Anschluss von mehreren Wassertemperatursensoren gibt wird sich die Programmierung noch minimal ändern.

Ich habe den Link zum alten Preview entfernt.

Ich habe es so benutzt. Sorry, dass ich nicht hier geantwortet habe.

Wie kann der senseBox One-Wire Adapter mit Blockly genutzt werden?
Wo gibt es eine Beschreibung dafür?