diff --git a/src/components/Blockly/blocks/sensebox-sensors.js b/src/components/Blockly/blocks/sensebox-sensors.js
index 1d47bda..11a5719 100644
--- a/src/components/Blockly/blocks/sensebox-sensors.js
+++ b/src/components/Blockly/blocks/sensebox-sensors.js
@@ -391,4 +391,39 @@ Blockly.Blocks['sensebox_sensor_watertemperature'] = {
this.setOutput(true, Types.NUMBER.typeName);
this.setTooltip(Blockly.Msg.senseBox_watertemperature_tip);
}
+};
+
+/**
+ * Windspeed
+ * removed for now
+
+
+Blockly.Blocks['sensebox_windspeed'] = {
+ init: function () {
+ this.setColour(getColour().sensebox);
+ this.appendDummyInput()
+ .appendField(Blockly.Msg.senseBox_windspeed)
+ .appendField("Pin:")
+ .appendField(new Blockly.FieldDropdown(selectedBoard().analogPins), "PIN")
+ this.setOutput(true, Types.DECIMAL.typeName);
+ }
+};
+ */
+
+/**
+ * DF Robot Soundsensor
+ */
+
+
+Blockly.Blocks['sensebox_soundsensor_dfrobot'] = {
+ 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_soundsensor_dfrobot)
+ .appendField("Port:")
+ .appendField(new Blockly.FieldDropdown(dropdownOptions), "Port")
+ this.setOutput(true, Types.DECIMAL.typeName);
+ }
};
\ 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 7ac7730..8a94e19 100644
--- a/src/components/Blockly/generator/sensebox-sensors.js
+++ b/src/components/Blockly/generator/sensebox-sensors.js
@@ -398,4 +398,64 @@ Blockly.Arduino.sensebox_sensor_watertemperature = function () {
Blockly.Arduino.codeFunctions_['sensebox_requestTemp'] = 'float getWaterTemp(){\nsensors.requestTemperatures();\nsensors.getTempCByIndex(0);\n}';
var code = 'getWaterTemp()';
return [code, Blockly.Arduino.ORDER_ATOMIC];
+};
+
+/**
+ * Windspeed
+ * remove for now
+
+
+
+Blockly.Arduino.sensebox_windspeed = function () {
+ var dropdown_pin = this.getFieldValue('PIN');
+ Blockly.Arduino.codeFunctions_['windspeed'] = `
+float getWindspeed(){
+ float voltageWind = analogRead(`+ dropdown_pin + `) * (3.3 / 1024.0);
+ float windspeed = 0.0;
+ if (voltageWind >= 0.018){
+ float poly1 = pow(voltageWind, 3);
+ poly1 = 17.0359801998299 * poly1;
+ float poly2 = pow(voltageWind, 2);
+ poly2 = 47.9908168343362 * poly2;
+ float poly3 = 122.899677524413 * voltageWind;
+ float poly4 = 0.657504127272728;
+ windspeed = poly1 - poly2 + poly3 - poly4;
+ windspeed = windspeed * 0.2777777777777778; //conversion in m/s
+ }
+ return windspeed;
+}`
+ var code = 'getWindspeed()';
+ return [code, Blockly.Arduino.ORDER_ATOMIC];
+};
+ */
+
+/**
+ * DF Robot Soundsensor
+ */
+
+/**
+*
+*
+*/
+
+Blockly.Arduino.sensebox_soundsensor_dfrobot = 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.codeFunctions_['soundsensor'] = `
+float getSoundValue(){
+ float v = analogRead(`+ dropdown_pin + `) * (3.3 / 1024.0);
+ float decibel = v * 50;
+ return decibel;
+}`
+ var code = 'getSoundValue()';
+ return [code, Blockly.Arduino.ORDER_ATOMIC];
};
\ No newline at end of file
diff --git a/src/components/Blockly/msg/de.js b/src/components/Blockly/msg/de.js
index 11dc028..ea143ea 100644
--- a/src/components/Blockly/msg/de.js
+++ b/src/components/Blockly/msg/de.js
@@ -760,6 +760,12 @@ Blockly.Msg.senseBox_LoRa_sensor_tip = "Sende eine Sensorwert mit einer bestimmt
Blockly.Msg.senseBox_LoRa_init_abp_tip = "Initialisiere die LoRa übertragung. Kopiere die ID's im lsb Format";
Blockly.Msg.senseBox_LoRa_init_otaa_tip = "Initialisiere die LoRa übertragung. Kopiere die ID's im lsb Format";
+//Windspeed
+Blockly.Msg.senseBox_windspeed = "Windgeschwindigkeitssensor";
+//Soundsensor
+Blockly.Msg.senseBox_soundsensor_dfrobot = "Soundsensor (DF Robot)";
+
+
//BME680
Blockly.Msg.senseBox_bme680 = "Umweltsensor (BME680)";
Blockly.Msg.senseBox_bme_iaq = "Innenraumluftqualität (IAQ)";
diff --git a/src/components/Blockly/msg/en.js b/src/components/Blockly/msg/en.js
index 3c08232..0073ac5 100644
--- a/src/components/Blockly/msg/en.js
+++ b/src/components/Blockly/msg/en.js
@@ -782,6 +782,12 @@ Blockly.Msg.senseBox_mqtt_password = "Password";
Blockly.Msg.sensebox_mqtt_subscribe = "Subscribe to Feed"
Blockly.Msg.senseBox_mqtt_publish = "Publish to Feed/Topic";
+//Windspeed
+Blockly.Msg.senseBox_windspeed = "Windspeedsensor"
+
+//Soundsensor
+Blockly.Msg.senseBox_soundsensor_dfrobot = "Soundsensor (DF Robot)";
+
/**
* Add Translation for Blocks above
* ---------------------------------------------------------------
diff --git a/src/components/Blockly/toolbox/Toolbox.js b/src/components/Blockly/toolbox/Toolbox.js
index 62e8257..8fdf82c 100644
--- a/src/components/Blockly/toolbox/Toolbox.js
+++ b/src/components/Blockly/toolbox/Toolbox.js
@@ -52,6 +52,8 @@ class Toolbox extends React.Component {
+ {/* */}
+