diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js index f15fbe1..1d47bda 100644 --- a/src/components/Blockly/blocks/sensebox-sensors.js +++ b/src/components/Blockly/blocks/sensebox-sensors.js @@ -372,3 +372,23 @@ Blockly.Blocks['sensebox_sensor_truebner_smt50'] = { this.setOutput(true, Types.NUMBER.typeName); } }; + + +/** + * DS18B20 Watertemperature + * + */ + +Blockly.Blocks['sensebox_sensor_watertemperature'] = { + init: function () { + var dropdownOptions = [[Blockly.Msg.senseBox_ultrasonic_port_A, 'A'], + [Blockly.Msg.senseBox_ultrasonic_port_B, 'B'], [Blockly.Msg.senseBox_ultrasonic_port_C, 'C']]; + this.setColour(getColour().sensebox); + this.appendDummyInput() + .appendField(Blockly.Msg.senseBox_watertemperature) + .appendField("Port:") + .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port") + this.setOutput(true, Types.NUMBER.typeName); + this.setTooltip(Blockly.Msg.senseBox_watertemperature_tip); + } +}; \ No newline at end of file diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index 3d28d33..7ac7730 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -342,28 +342,28 @@ Blockly.Arduino.sensebox_sensor_truebner_smt50 = function () { var dropdown_port = this.getFieldValue('Port') var dropdown_value = this.getFieldValue('value'); var dropdown_pin = 1; - if (dropdown_value == 'temp') { - if (dropdown_port == 'A') { + if (dropdown_value === 'temp') { + if (dropdown_port === 'A') { dropdown_pin = 1; } - if (dropdown_port == 'B') { + if (dropdown_port === 'B') { dropdown_pin = 3; } - if (dropdown_port == 'C') { + if (dropdown_port === 'C') { dropdown_pin = 5; } Blockly.Arduino.codeFunctions_['sensebox_smt50_temp'] = 'float getSMT50Temperature(int analogPin){\n int sensorValue = analogRead(analogPin);\n float voltage = sensorValue * (3.3 / 1024.0);\n return (voltage - 0.5) * 100;\n}'; var code = 'getSMT50Temperature(' + dropdown_pin + ')'; return [code, Blockly.Arduino.ORDER_ATOMIC]; } - else if (dropdown_value == 'soil') { - if (dropdown_port == 'A') { + else if (dropdown_value === 'soil') { + if (dropdown_port === 'A') { dropdown_pin = 2; } - if (dropdown_port == 'B') { + if (dropdown_port === 'B') { dropdown_pin = 4; } - if (dropdown_port == 'C') { + if (dropdown_port === 'C') { dropdown_pin = 6; } Blockly.Arduino.codeFunctions_['sensebox_smt50_soil'] = 'float getSMT50Moisture(int analogPin){\n int sensorValue = analogRead(analogPin);\n float voltage = sensorValue * (3.3 / 1024.0);\n return (voltage * 50) / 3;\n}'; @@ -371,4 +371,31 @@ Blockly.Arduino.sensebox_sensor_truebner_smt50 = function () { return [code, Blockly.Arduino.ORDER_ATOMIC]; } +}; + +/** + * DS18B20 Watertemperature + * + */ + +Blockly.Arduino.sensebox_sensor_watertemperature = function () { + + var dropdown_port = this.getFieldValue('Port'); + var dropdown_pin = 1; + if (dropdown_port === 'A') { + dropdown_pin = 1; + } + if (dropdown_port === 'B') { + dropdown_pin = 3; + } + if (dropdown_port === 'C') { + dropdown_pin = 5; + } + Blockly.Arduino.libraries_['library_oneWire'] = '#include "OneWire.h"'; + Blockly.Arduino.libraries_['library_oneDallasTemperature'] = '#include "DallasTemperature.h"'; + Blockly.Arduino.definitions_['define_OneWire'] = '#define ONE_WIRE_BUS ' + dropdown_pin + '\nOneWire oneWire(ONE_WIRE_BUS);\nDallasTemperature sensors(&oneWire);'; + Blockly.Arduino.setupCode_['sensebox_oneWireSetup'] = 'sensors.begin();'; + Blockly.Arduino.codeFunctions_['sensebox_requestTemp'] = 'float getWaterTemp(){\nsensors.requestTemperatures();\nsensors.getTempCByIndex(0);\n}'; + var code = 'getWaterTemp()'; + return [code, Blockly.Arduino.ORDER_ATOMIC]; }; \ No newline at end of file diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js index 7fce380..62e8257 100644 --- a/src/components/Blockly/toolbox/Toolbox.js +++ b/src/components/Blockly/toolbox/Toolbox.js @@ -51,6 +51,7 @@ class Toolbox extends React.Component { +