parent
d4ad3ad915
commit
6f9e4bd79f
@ -514,3 +514,54 @@ Blockly.Blocks["sensebox_soundsensor_dfrobot"] = {
|
|||||||
this.setHelpUrl(Blockly.Msg.senseBox_soundsensor_dfrobot_helpurl);
|
this.setHelpUrl(Blockly.Msg.senseBox_soundsensor_dfrobot_helpurl);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Infineon DPS310 Pressure Sensor
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
Blockly.Blocks["sensebox_sensor_dps310"] = {
|
||||||
|
init: function () {
|
||||||
|
var dropdownOptions = [
|
||||||
|
[Blockly.Msg.senseBox_pressure, "Pressure"],
|
||||||
|
[Blockly.Msg.senseBox_temp, "Temperature"],
|
||||||
|
[Blockly.Msg.senseBox_gps_alt, "Altitude"],
|
||||||
|
];
|
||||||
|
var dropdown = new Blockly.FieldDropdown(dropdownOptions, function (
|
||||||
|
option
|
||||||
|
) {
|
||||||
|
var input =
|
||||||
|
option === "Pressure" ||
|
||||||
|
option === "Temperature" ||
|
||||||
|
option === "Altitude";
|
||||||
|
this.sourceBlock_.updateShape_(input);
|
||||||
|
});
|
||||||
|
this.appendDummyInput().appendField(Blockly.Msg.senseBox_sensor_dps310);
|
||||||
|
this.appendDummyInput()
|
||||||
|
.setAlign(Blockly.ALIGN_RIGHT)
|
||||||
|
.appendField(Blockly.Msg.senseBox_value)
|
||||||
|
.appendField(dropdown, "NAME");
|
||||||
|
this.setColour(getColour().sensebox);
|
||||||
|
this.setOutput(true, Types.DECIMAL.typeName);
|
||||||
|
this.setTooltip(Blockly.Msg.senseBox_sensor_dps310_tooltip);
|
||||||
|
this.setHelpUrl(Blockly.Msg.senseBox_sensor_dps310_helpurl);
|
||||||
|
this.getField("NAME").setValidator(
|
||||||
|
function (val) {
|
||||||
|
this.updateShape_(val === "Altitude");
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
updateShape_(isAltitude) {
|
||||||
|
if (isAltitude) {
|
||||||
|
if (this.getInput("extraField") == null) {
|
||||||
|
this.appendDummyInput("extraField")
|
||||||
|
.setAlign(Blockly.ALIGN_RIGHT)
|
||||||
|
.appendField(Blockly.Msg.senseBox_pressure_referencePressure)
|
||||||
|
.appendField(new Blockly.FieldTextInput("1013"), "referencePressure")
|
||||||
|
.appendField(Blockly.Msg.senseBox_pressure_referencePressure_dim);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.removeInput("extraField", true);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
@ -644,3 +644,42 @@ float getSoundValue(){
|
|||||||
var code = "getSoundValue()";
|
var code = "getSoundValue()";
|
||||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Infineon DPS310 Pressure Sensor
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
Blockly.Arduino.sensebox_sensor_dps310 = function () {
|
||||||
|
var dropdown_name = this.getFieldValue("NAME");
|
||||||
|
var code = "";
|
||||||
|
var referencePressure = this.getFieldValue("referencePressure");
|
||||||
|
Blockly.Arduino.libraries_["library_senseBoxIO"] = "#include <senseBoxIO.h>";
|
||||||
|
Blockly.Arduino.libraries_[
|
||||||
|
"adafruit_dps310"
|
||||||
|
] = `#include <Adafruit_DPS310.h>`;
|
||||||
|
Blockly.Arduino.definitions_["define_dps"] = "Adafruit_DPS310 dps;";
|
||||||
|
Blockly.Arduino.setupCode_["dps_begin"] = "dps.begin_I2C(0x76);";
|
||||||
|
Blockly.Arduino.setupCode_["dps_configuration"] = `
|
||||||
|
dps.configurePressure(DPS310_64HZ, DPS310_64SAMPLES);
|
||||||
|
dps.configureTemperature(DPS310_64HZ, DPS310_64SAMPLES);
|
||||||
|
`;
|
||||||
|
Blockly.Arduino.loopCodeOnce_["dps_events"] =
|
||||||
|
"sensors_event_t temp_event, pressure_event;";
|
||||||
|
Blockly.Arduino.loopCodeOnce_["dps_getEvents"] =
|
||||||
|
"dps.getEvents(&temp_event, &pressure_event);";
|
||||||
|
switch (dropdown_name) {
|
||||||
|
case "Temperature":
|
||||||
|
code = "temp_event.temperature";
|
||||||
|
break;
|
||||||
|
case "Pressure":
|
||||||
|
code = "pressure_event.pressure";
|
||||||
|
break;
|
||||||
|
case "Altitude":
|
||||||
|
code = "dps.readAltitude(" + referencePressure + ")";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
code = "";
|
||||||
|
}
|
||||||
|
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||||
|
};
|
||||||
|
@ -11,11 +11,20 @@ export const SENSORS = {
|
|||||||
senseBox_pressure_sensor: "Luftdruck-/Temperatursensor (BMP280)",
|
senseBox_pressure_sensor: "Luftdruck-/Temperatursensor (BMP280)",
|
||||||
senseBox_pressure: "Luftdruck in hPa",
|
senseBox_pressure: "Luftdruck in hPa",
|
||||||
senseBox_pressure_dimension: "Luftdruck in hPa",
|
senseBox_pressure_dimension: "Luftdruck in hPa",
|
||||||
senseBox_pressure_tip:
|
senseBox_pressure_tooltip:
|
||||||
"Schließe den Sensor an einen der 5 **I2C-Anschlüsse** an. Der Sensor gibt dir den Messwert für den Luftdruck in hPa. Um die korrekte Höhe über NN zu berechnen benötigt der Sensor einen aktuellen Referenzwert.",
|
"Schließe den Sensor an einen der 5 **I2C-Anschlüsse** an. Der Sensor gibt dir den Messwert für den Luftdruck in hPa. Um die korrekte Höhe über NN zu berechnen benötigt der Sensor einen aktuellen Referenzwert.",
|
||||||
senseBox_pressure_referencePressure: "Luftdruck auf NN",
|
senseBox_pressure_referencePressure: "Luftdruck auf NN",
|
||||||
senseBox_pressure_referencePressure_dim: "hPa",
|
senseBox_pressure_referencePressure_dim: "hPa",
|
||||||
senseBox_pressure_helpurl: "",
|
senseBox_pressure_helpurl:
|
||||||
|
"https://docs.sensebox.de/hardware/sensoren-luftdruck-temperatur/",
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DPS310
|
||||||
|
*/
|
||||||
|
senseBox_sensor_dps310: "Luftdruck-/Temperatursensor (DPS310)",
|
||||||
|
senseBox_sensor_dps310_tooltip:
|
||||||
|
"Schließe den Sensor an einen der 5 **I2C-Anschlüsse** an. Der Sensor gibt dir den Messwert für den Luftdruck in hPa. Um die korrekte Höhe über NN zu berechnen benötigt der Sensor einen aktuellen Referenzwert.",
|
||||||
|
senseBox_sensor_dps310_helpurl: "",
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mikro
|
* Mikro
|
||||||
|
@ -11,12 +11,19 @@ export const SENSORS = {
|
|||||||
senseBox_pressure_sensor: "Airpressure/Temperature Sensor (BMP280)",
|
senseBox_pressure_sensor: "Airpressure/Temperature Sensor (BMP280)",
|
||||||
senseBox_pressure: "Airpressure in hPa",
|
senseBox_pressure: "Airpressure in hPa",
|
||||||
senseBox_pressure_dimension: "Airpressure in hPa",
|
senseBox_pressure_dimension: "Airpressure in hPa",
|
||||||
senseBox_pressure_tip:
|
senseBox_pressure_tooltip:
|
||||||
"Connect the sensor to one of the 5 **I2C ports**. The sensor gives you the measured value for the air pressure in hPa. To calculate the correct altitude above sea level the sensor needs a current reference value.",
|
"Connect the sensor to one of the 5 **I2C ports**. The sensor gives you the measured value for the air pressure in hPa. To calculate the correct altitude above sea level the sensor needs a current reference value.",
|
||||||
senseBox_pressure_referencePressure: "Pressure at Sea Level",
|
senseBox_pressure_referencePressure: "Pressure at Sea Level",
|
||||||
senseBox_pressure_referencePressure_dim: "hPa",
|
senseBox_pressure_referencePressure_dim: "hPa",
|
||||||
senseBox_pressure_helpurl: "",
|
senseBox_pressure_helpurl: "",
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DPS310
|
||||||
|
*/
|
||||||
|
senseBox_sensor_dps310: "Airpressure/Temperature Sensor (DPS310)",
|
||||||
|
senseBox_sensor_dps310_tooltip:
|
||||||
|
"Connect the sensor to one of the 5 **I2C ports**. The sensor gives you the measured value for the air pressure in hPa. To calculate the correct altitude above sea level the sensor needs a current reference value.",
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mikro
|
* Mikro
|
||||||
*/
|
*/
|
||||||
|
@ -65,6 +65,7 @@ class Toolbox extends React.Component {
|
|||||||
<Block type="sensebox_sensor_bmx055_accelerometer" />
|
<Block type="sensebox_sensor_bmx055_accelerometer" />
|
||||||
<Block type="sensebox_sensor_sds011" />
|
<Block type="sensebox_sensor_sds011" />
|
||||||
<Block type="sensebox_sensor_pressure" />
|
<Block type="sensebox_sensor_pressure" />
|
||||||
|
<Block type="sensebox_sensor_dps310" />
|
||||||
<Block type="sensebox_sensor_bme680_bsec" />
|
<Block type="sensebox_sensor_bme680_bsec" />
|
||||||
<Block type="sensebox_scd30" />
|
<Block type="sensebox_scd30" />
|
||||||
<Block type="sensebox_gps" />
|
<Block type="sensebox_gps" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user