add watertemperature sensor

This commit is contained in:
Mario 2020-12-21 10:59:05 +01:00
parent 5658aa603c
commit c52e9db4c8
3 changed files with 56 additions and 8 deletions

View File

@ -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);
}
};

View File

@ -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];
};

View File

@ -51,6 +51,7 @@ class Toolbox extends React.Component {
<Block type="sensebox_sensor_sound" />
<Block type="sensebox_button" />
<Block type="sensebox_sensor_truebner_smt50" />
<Block type="sensebox_sensor_watertemperature" />
</Category >
<Category name="WIFI" colour={getColour().sensebox}>
<Block type="sensebox_wifi" />