diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js
index a445910..f15fbe1 100644
--- a/src/components/Blockly/blocks/sensebox-sensors.js
+++ b/src/components/Blockly/blocks/sensebox-sensors.js
@@ -351,3 +351,24 @@ Blockly.Blocks['sensebox_gps'] = {
this.setTooltip(Blockly.Msg.senseBox_bme_tip);
}
};
+
+/**
+ * Block for Truebner STM50
+ */
+
+Blockly.Blocks['sensebox_sensor_truebner_smt50'] = {
+ 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_soil_smt50);
+ this.appendDummyInput()
+ .appendField("Port:")
+ .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port")
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.senseBox_value)
+ .appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_temp, "temp"], [Blockly.Msg.senseBox_soil, "soil"]]), 'value')
+ this.setOutput(true, Types.NUMBER.typeName);
+ }
+};
diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js
index 598e6ae..3d28d33 100644
--- a/src/components/Blockly/generator/sensebox-sensors.js
+++ b/src/components/Blockly/generator/sensebox-sensors.js
@@ -331,4 +331,44 @@ Blockly.Arduino.sensebox_gps = function () {
}
return [code, Blockly.Arduino.ORDER_ATOMIC];
-}
\ No newline at end of file
+}
+
+/**
+ * Block for Truebner STM50
+ */
+
+
+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') {
+ dropdown_pin = 1;
+ }
+ if (dropdown_port == 'B') {
+ dropdown_pin = 3;
+ }
+ 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') {
+ dropdown_pin = 2;
+ }
+ if (dropdown_port == 'B') {
+ dropdown_pin = 4;
+ }
+ 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}';
+ var code = 'getSMT50Moisture(' + dropdown_pin + ')';
+ 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 cce1097..7fce380 100644
--- a/src/components/Blockly/toolbox/Toolbox.js
+++ b/src/components/Blockly/toolbox/Toolbox.js
@@ -50,6 +50,7 @@ class Toolbox extends React.Component {
+