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?