update gps code
make gps blocks to osem block compatible
This commit is contained in:
parent
9ed49f2972
commit
0e0dbed77a
@ -1,110 +1,153 @@
|
||||
import Blockly from 'blockly';
|
||||
import { getColour } from '../helpers/colour'
|
||||
import * as Types from '../helpers/types'
|
||||
import { selectedBoard } from '../helpers/board'
|
||||
import Blockly from "blockly";
|
||||
import { getColour } from "../helpers/colour";
|
||||
import * as Types from "../helpers/types";
|
||||
import { selectedBoard } from "../helpers/board";
|
||||
|
||||
/**
|
||||
* HDC1080 Temperature and Humidity Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_temp_hum'] = {
|
||||
Blockly.Blocks["sensebox_sensor_temp_hum"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_temp_hum);
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_temp_hum);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_temp, "Temperature"], [Blockly.Msg.senseBox_hum, "Humidity"]]), "NAME");
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_temp, "Temperature"],
|
||||
[Blockly.Msg.senseBox_hum, "Humidity"],
|
||||
]),
|
||||
"NAME"
|
||||
);
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_temp_hum_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_temp_hum_helpurl);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* VEML6070 and TSL4513
|
||||
*
|
||||
* VEML6070 and TSL4513
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_uv_light'] = {
|
||||
Blockly.Blocks["sensebox_sensor_uv_light"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_uv_light);
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_uv_light);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_light, "Illuminance"], [Blockly.Msg.senseBox_uv, "UvIntensity"]]), "NAME");
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_light, "Illuminance"],
|
||||
[Blockly.Msg.senseBox_uv, "UvIntensity"],
|
||||
]),
|
||||
"NAME"
|
||||
);
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_uv_light_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_uv_light_helpurl);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/*
|
||||
BMX055 Three differen Blocks for Accelerometer, Gyroscope, Compass
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_bmx055_accelerometer'] = {
|
||||
Blockly.Blocks["sensebox_sensor_bmx055_accelerometer"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_bmx055_accelerometer);
|
||||
this.appendDummyInput().appendField(
|
||||
Blockly.Msg.senseBox_bmx055_accelerometer
|
||||
);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_LEFT)
|
||||
.appendField(Blockly.Msg.senseBox_bmx055_accelerometer_direction)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_bmx055_accelerometer_direction_x, "X"], [Blockly.Msg.senseBox_bmx055_accelerometer_direction_y, "Y"], [Blockly.Msg.senseBox_bmx055_accelerometer_direction_z, "Z"], [Blockly.Msg.senseBox_bmx055_accelerometer_direction_total, "Total"]]), "VALUE");
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_direction_x, "X"],
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_direction_y, "Y"],
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_direction_z, "Z"],
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_direction_total, "Total"],
|
||||
]),
|
||||
"VALUE"
|
||||
);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_LEFT)
|
||||
.appendField(Blockly.Msg.senseBox_bmx055_accelerometer_range)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_bmx055_accelerometer_range_2g, "0x3"], [Blockly.Msg.senseBox_bmx055_accelerometer_range_4g, "0x5"], [Blockly.Msg.senseBox_bmx055_accelerometer_range_8g, "0x8"], [Blockly.Msg.senseBox_bmx055_accelerometer_range_16g, "0x0C"]]), "RANGE");
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_range_2g, "0x3"],
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_range_4g, "0x5"],
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_range_8g, "0x8"],
|
||||
[Blockly.Msg.senseBox_bmx055_accelerometer_range_16g, "0x0C"],
|
||||
]),
|
||||
"RANGE"
|
||||
);
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_bmx055_accelerometer_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_bmx055_helpurl);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* SDS011 Fine Particular Matter Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_sds011'] = {
|
||||
Blockly.Blocks["sensebox_sensor_sds011"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_sds011);
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_sds011);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_sds011_pm25, "Pm25"], [Blockly.Msg.senseBox_sds011_pm10, "Pm10"]]), "NAME")
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_sds011_pm25, "Pm25"],
|
||||
[Blockly.Msg.senseBox_sds011_pm10, "Pm10"],
|
||||
]),
|
||||
"NAME"
|
||||
)
|
||||
.appendField(Blockly.Msg.senseBox_sds011_dimension)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_sds011_serial1, "Serial1"], [Blockly.Msg.senseBox_sds011_serial2, "Serial2"]]), "SERIAL");
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_sds011_serial1, "Serial1"],
|
||||
[Blockly.Msg.senseBox_sds011_serial2, "Serial2"],
|
||||
]),
|
||||
"SERIAL"
|
||||
);
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_sds011_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_sds011_helpurl);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* BMP280 Pressure Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_pressure'] = {
|
||||
Blockly.Blocks["sensebox_sensor_pressure"] = {
|
||||
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');
|
||||
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_pressure_sensor);
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_pressure_sensor);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
@ -121,8 +164,7 @@ Blockly.Blocks['sensebox_sensor_pressure'] = {
|
||||
*/
|
||||
|
||||
domToMutation: function (xmlElement) {
|
||||
(xmlElement.getAttribute('port'));
|
||||
|
||||
xmlElement.getAttribute("port");
|
||||
},
|
||||
/**
|
||||
* Create XML to represent number of pins selection.
|
||||
@ -130,10 +172,10 @@ Blockly.Blocks['sensebox_sensor_pressure'] = {
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
mutationToDom: function () {
|
||||
var container = document.createElement('mutation');
|
||||
var input = this.getFieldValue('NAME');
|
||||
var container = document.createElement("mutation");
|
||||
var input = this.getFieldValue("NAME");
|
||||
this.updateShape_(input);
|
||||
container.setAttribute('NAME', input);
|
||||
container.setAttribute("NAME", input);
|
||||
return container;
|
||||
},
|
||||
/**
|
||||
@ -143,58 +185,70 @@ Blockly.Blocks['sensebox_sensor_pressure'] = {
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
updateShape_: function () {
|
||||
var extraFieldExist = this.getFieldValue('referencePressure');
|
||||
var input = this.getFieldValue('NAME');
|
||||
if (input === 'Altitude' && extraFieldExist === null) {
|
||||
this.appendDummyInput('extraField')
|
||||
var extraFieldExist = this.getFieldValue("referencePressure");
|
||||
var input = this.getFieldValue("NAME");
|
||||
if (input === "Altitude" && extraFieldExist === 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);
|
||||
}
|
||||
|
||||
if ((input === 'Pressure' || input === 'Temperature') && extraFieldExist !== null) {
|
||||
this.removeInput('extraField');
|
||||
if (
|
||||
(input === "Pressure" || input === "Temperature") &&
|
||||
extraFieldExist !== null
|
||||
) {
|
||||
this.removeInput("extraField");
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* BME680 Environmental Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_bme680_bsec'] = {
|
||||
Blockly.Blocks["sensebox_sensor_bme680_bsec"] = {
|
||||
init: function () {
|
||||
var dropdownOptions = [[Blockly.Msg.senseBox_temp, "temperature"], [Blockly.Msg.senseBox_hum, "humidity"], [Blockly.Msg.senseBox_pressure, "pressure"], [Blockly.Msg.senseBox_bme_iaq, "IAQ"], [Blockly.Msg.senseBox_bme_iaq_accuracy, "IAQAccuracy"], [Blockly.Msg.senseBox_bme_co2, "CO2"], [Blockly.Msg.senseBox_bme_breatheVocEquivalent, "breathVocEquivalent"]];
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_bme680);
|
||||
var dropdownOptions = [
|
||||
[Blockly.Msg.senseBox_temp, "temperature"],
|
||||
[Blockly.Msg.senseBox_hum, "humidity"],
|
||||
[Blockly.Msg.senseBox_pressure, "pressure"],
|
||||
[Blockly.Msg.senseBox_bme_iaq, "IAQ"],
|
||||
[Blockly.Msg.senseBox_bme_iaq_accuracy, "IAQAccuracy"],
|
||||
[Blockly.Msg.senseBox_bme_co2, "CO2"],
|
||||
[Blockly.Msg.senseBox_bme_breatheVocEquivalent, "breathVocEquivalent"],
|
||||
];
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_bme680);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "dropdown")
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "dropdown");
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_bme_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_bme680_helpurl)
|
||||
}
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_bme680_helpurl);
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* Ultrasonic Sensor
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = {
|
||||
Blockly.Blocks["sensebox_sensor_ultrasonic_ranger"] = {
|
||||
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']];
|
||||
var dropdown = new Blockly.FieldDropdown(dropdownOptions, function (option) {
|
||||
var input = (option === 'A') || (option === 'B') || (option === 'C');
|
||||
var dropdownOptions = [
|
||||
[Blockly.Msg.senseBox_ultrasonic_port_A, "A"],
|
||||
[Blockly.Msg.senseBox_ultrasonic_port_B, "B"],
|
||||
[Blockly.Msg.senseBox_ultrasonic_port_C, "C"],
|
||||
];
|
||||
var dropdown = new Blockly.FieldDropdown(dropdownOptions, function (
|
||||
option
|
||||
) {
|
||||
var input = option === "A" || option === "B" || option === "C";
|
||||
this.sourceBlock_.updateShape_(input);
|
||||
});
|
||||
|
||||
@ -202,14 +256,18 @@ Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = {
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_ultrasonic)
|
||||
.appendField(dropdown, "port");
|
||||
this.appendDummyInput('TrigEcho')
|
||||
this.appendDummyInput("TrigEcho")
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_ultrasonic_trigger)
|
||||
.appendField(new Blockly.FieldDropdown(
|
||||
selectedBoard().digitalPins), 'ultrasonic_trigger')
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown(selectedBoard().digitalPins),
|
||||
"ultrasonic_trigger"
|
||||
)
|
||||
.appendField(Blockly.Msg.senseBox_ultrasonic_echo)
|
||||
.appendField(new Blockly.FieldDropdown(
|
||||
selectedBoard().digitalPins), 'ultrasonic_echo');
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown(selectedBoard().digitalPins),
|
||||
"ultrasonic_echo"
|
||||
);
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
this.setTooltip(Blockly.Msg.senseBox_ultrasonic_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_ultrasonic_helpurl);
|
||||
@ -220,8 +278,7 @@ Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = {
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
domToMutation: function (xmlElement) {
|
||||
(xmlElement.getAttribute('port'));
|
||||
|
||||
xmlElement.getAttribute("port");
|
||||
},
|
||||
/**
|
||||
* Create XML to represent number of pins selection.
|
||||
@ -229,8 +286,8 @@ Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = {
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
mutationToDom: function () {
|
||||
var container = document.createElement('mutation');
|
||||
var input = this.getFieldValue('port');
|
||||
var container = document.createElement("mutation");
|
||||
var input = this.getFieldValue("port");
|
||||
this.updateShape_(input);
|
||||
container.setAttribute("port", input);
|
||||
return container;
|
||||
@ -242,159 +299,185 @@ Blockly.Blocks['sensebox_sensor_ultrasonic_ranger'] = {
|
||||
* @this Blockly.Block
|
||||
*/
|
||||
updateShape_: function () {
|
||||
var input = this.getFieldValue('port');
|
||||
var input = this.getFieldValue("port");
|
||||
switch (input) {
|
||||
case 'A':
|
||||
this.setFieldValue('1', 'ultrasonic_trigger');
|
||||
this.setFieldValue('2', 'ultrasonic_echo');
|
||||
case "A":
|
||||
this.setFieldValue("1", "ultrasonic_trigger");
|
||||
this.setFieldValue("2", "ultrasonic_echo");
|
||||
break;
|
||||
case 'B':
|
||||
this.setFieldValue('3', 'ultrasonic_trigger');
|
||||
this.setFieldValue('4', 'ultrasonic_echo');
|
||||
case "B":
|
||||
this.setFieldValue("3", "ultrasonic_trigger");
|
||||
this.setFieldValue("4", "ultrasonic_echo");
|
||||
break;
|
||||
case 'C':
|
||||
this.setFieldValue('5', 'ultrasonic_trigger');
|
||||
this.setFieldValue('6', 'ultrasonic_echo');
|
||||
case "C":
|
||||
this.setFieldValue("5", "ultrasonic_trigger");
|
||||
this.setFieldValue("6", "ultrasonic_echo");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Microphone
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_sound'] = {
|
||||
Blockly.Blocks["sensebox_sensor_sound"] = {
|
||||
init: function () {
|
||||
this.setColour(getColour().sensebox);
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_sound)
|
||||
.appendField("Pin:")
|
||||
.appendField(new Blockly.FieldDropdown(selectedBoard().analogPins), "PIN")
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown(selectedBoard().analogPins),
|
||||
"PIN"
|
||||
);
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_sound_helpurl);
|
||||
this.setTooltip(Blockly.Msg.senseBox_sound_tooltip);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Button
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_button'] = {
|
||||
Blockly.Blocks["sensebox_button"] = {
|
||||
init: function () {
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_button)
|
||||
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_button_isPressed, "isPressed"], [Blockly.Msg.senseBox_button_wasPressed, "wasPressed"], [Blockly.Msg.senseBox_button_switch, "Switch"]]), "FUNCTION")
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_button_isPressed, "isPressed"],
|
||||
[Blockly.Msg.senseBox_button_wasPressed, "wasPressed"],
|
||||
[Blockly.Msg.senseBox_button_switch, "Switch"],
|
||||
]),
|
||||
"FUNCTION"
|
||||
)
|
||||
.appendField("Pin:")
|
||||
.appendField(new Blockly.FieldDropdown(selectedBoard().digitalPinsButton), "PIN");
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown(selectedBoard().digitalPinsButton),
|
||||
"PIN"
|
||||
);
|
||||
this.setOutput(true, Types.BOOLEAN.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_button_tooltip);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* SCD30 CO2 Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Blockly.Blocks['sensebox_scd30'] = {
|
||||
Blockly.Blocks["sensebox_scd30"] = {
|
||||
init: function () {
|
||||
var dropdownOptions = [[Blockly.Msg.senseBox_scd_co2, "CO2"], [Blockly.Msg.senseBox_temp, "temperature"], [Blockly.Msg.senseBox_hum, "humidity"]];
|
||||
this.appendDummyInput()
|
||||
.appendField(Blockly.Msg.senseBox_scd30);
|
||||
var dropdownOptions = [
|
||||
[Blockly.Msg.senseBox_scd_co2, "CO2"],
|
||||
[Blockly.Msg.senseBox_temp, "temperature"],
|
||||
[Blockly.Msg.senseBox_hum, "humidity"],
|
||||
];
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_scd30);
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "dropdown")
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "dropdown");
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_scd_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_scd_helpurl);
|
||||
},
|
||||
onchange: function (e) {
|
||||
var dropdown = this.getFieldValue('dropdown');
|
||||
if (dropdown === 'temperature' || dropdown === 'humidity') {
|
||||
var dropdown = this.getFieldValue("dropdown");
|
||||
if (dropdown === "temperature" || dropdown === "humidity") {
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
} else if (dropdown === 'CO2') {
|
||||
} else if (dropdown === "CO2") {
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* GPS Module
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Blockly.Blocks['sensebox_gps'] = {
|
||||
Blockly.Blocks["sensebox_gps"] = {
|
||||
init: function () {
|
||||
var dropdownOptions = [[Blockly.Msg.senseBox_gps_lat, "latitude"], [Blockly.Msg.senseBox_gps_lng, "longitude"], [Blockly.Msg.senseBox_gps_alt, "altitude"], ["pDOP", "pDOP"], ["Fix Type", "fixType"]];
|
||||
this.appendDummyInput()
|
||||
.appendField("GPS Modul");
|
||||
var dropdownOptions = [
|
||||
[Blockly.Msg.senseBox_gps_lat, "latitude"],
|
||||
[Blockly.Msg.senseBox_gps_lng, "longitude"],
|
||||
[Blockly.Msg.senseBox_gps_alt, "altitude"],
|
||||
["pDOP", "pDOP"],
|
||||
["Timestamp", "timestamp"],
|
||||
["Fix Type", "fixType"],
|
||||
];
|
||||
this.appendDummyInput().appendField("GPS Modul");
|
||||
this.appendDummyInput()
|
||||
.setAlign(Blockly.ALIGN_RIGHT)
|
||||
.appendField(Blockly.Msg.senseBox_value)
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "dropdown")
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "dropdown");
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
this.setColour(getColour().sensebox);
|
||||
this.setTooltip(Blockly.Msg.senseBox_gps_tooltip);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* Block for Truebner STM50
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_truebner_smt50'] = {
|
||||
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']];
|
||||
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_smt50);
|
||||
this.appendDummyInput().appendField(Blockly.Msg.senseBox_smt50);
|
||||
this.appendDummyInput()
|
||||
.appendField("Port:")
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "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')
|
||||
.appendField(
|
||||
new Blockly.FieldDropdown([
|
||||
[Blockly.Msg.senseBox_temp, "temp"],
|
||||
[Blockly.Msg.senseBox_soil, "soil"],
|
||||
]),
|
||||
"value"
|
||||
);
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
this.setTooltip(Blockly.Msg.senseBox_smt50_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_smt50_helpurl);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* DS18B20 Watertemperature
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Blocks['sensebox_sensor_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']];
|
||||
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")
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "Port");
|
||||
this.setOutput(true, Types.NUMBER.typeName);
|
||||
this.setTooltip(Blockly.Msg.senseBox_watertemperature_tip);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
@ -418,18 +501,20 @@ Blockly.Blocks['sensebox_windspeed'] = {
|
||||
* DF Robot Soundsensor
|
||||
*/
|
||||
|
||||
|
||||
Blockly.Blocks['sensebox_soundsensor_dfrobot'] = {
|
||||
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']];
|
||||
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")
|
||||
.appendField(new Blockly.FieldDropdown(dropdownOptions), "Port");
|
||||
this.setOutput(true, Types.DECIMAL.typeName);
|
||||
this.setTooltip(Blockly.Msg.senseBox_soundsensor_dfrobot_tooltip);
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_soundsensor_dfrobot_helpurl)
|
||||
}
|
||||
};
|
||||
this.setHelpUrl(Blockly.Msg.senseBox_soundsensor_dfrobot_helpurl);
|
||||
},
|
||||
};
|
||||
|
@ -1,66 +1,74 @@
|
||||
import Blockly from 'blockly';
|
||||
|
||||
import Blockly from "blockly";
|
||||
|
||||
/**
|
||||
* Block send Data to the openSenseMap
|
||||
*/
|
||||
* Block send Data to the openSenseMap
|
||||
*/
|
||||
Blockly.Arduino.sensebox_send_to_osem = function (block) {
|
||||
var code = '';
|
||||
var sensor_id = this.getFieldValue('SensorID');
|
||||
var code = "";
|
||||
var sensor_id = this.getFieldValue("SensorID");
|
||||
var id = sensor_id.slice(-3).toUpperCase();
|
||||
var sensor_value = Blockly.Arduino.valueToCode(this, 'Value', Blockly.Arduino.ORDER_ATOMIC) || '"Keine Eingabe"';
|
||||
Blockly.Arduino.definitions_['SENSOR_ID' + id + ''] = 'const char SENSOR_ID' + id + '[] PROGMEM = "' + sensor_id + '";';
|
||||
code += 'addMeasurement(SENSOR_ID' + id + ',' + sensor_value + ');\n';
|
||||
var sensor_value =
|
||||
Blockly.Arduino.valueToCode(this, "Value", Blockly.Arduino.ORDER_ATOMIC) ||
|
||||
'"Keine Eingabe"';
|
||||
Blockly.Arduino.definitions_["SENSOR_ID" + id + ""] =
|
||||
"const char SENSOR_ID" + id + '[] PROGMEM = "' + sensor_id + '";';
|
||||
code += "addMeasurement(SENSOR_ID" + id + "," + sensor_value + ");\n";
|
||||
return code;
|
||||
};
|
||||
|
||||
Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
var box_id = this.getFieldValue('BoxID');
|
||||
var host = this.getFieldValue('host');
|
||||
var branch = Blockly.Arduino.statementToCode(Block, 'DO');
|
||||
var access_token = this.getFieldValue('access_token');
|
||||
var box_id = this.getFieldValue("BoxID");
|
||||
var host = this.getFieldValue("host");
|
||||
var branch = Blockly.Arduino.statementToCode(Block, "DO");
|
||||
var access_token = this.getFieldValue("access_token");
|
||||
var blocks = this.getDescendants();
|
||||
var type = this.getFieldValue('type');
|
||||
var ssl = this.getFieldValue('SSL');
|
||||
var type = this.getFieldValue("type");
|
||||
var ssl = this.getFieldValue("SSL");
|
||||
var port = 0;
|
||||
var count = 0;
|
||||
if (blocks !== undefined) {
|
||||
for (var i = 0; i < blocks.length; i++) {
|
||||
if (blocks[i].type === 'sensebox_send_to_osem') {
|
||||
if (blocks[i].type === "sensebox_send_to_osem") {
|
||||
count++;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
var num_sensors = count;
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['num_sensors'] = 'static const uint8_t NUM_SENSORS = ' + num_sensors + ';'
|
||||
Blockly.Arduino.definitions_['SenseBoxID'] = 'const char SENSEBOX_ID [] PROGMEM = "' + box_id + '";';
|
||||
Blockly.Arduino.definitions_['host'] = 'const char server [] PROGMEM =' + host + ';';
|
||||
if (ssl === 'TRUE') {
|
||||
Blockly.Arduino.definitions_['WiFiSSLClient'] = 'WiFiSSLClient client;';
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["num_sensors"] =
|
||||
"static const uint8_t NUM_SENSORS = " + num_sensors + ";";
|
||||
Blockly.Arduino.definitions_["SenseBoxID"] =
|
||||
'const char SENSEBOX_ID [] PROGMEM = "' + box_id + '";';
|
||||
Blockly.Arduino.definitions_["host"] =
|
||||
"const char server [] PROGMEM =" + host + ";";
|
||||
if (ssl === "TRUE") {
|
||||
Blockly.Arduino.definitions_["WiFiSSLClient"] = "WiFiSSLClient client;";
|
||||
port = 443;
|
||||
} else if (ssl === 'FALSE') {
|
||||
Blockly.Arduino.definitions_['WiFiClient'] = 'WiFiClient client;';
|
||||
} else if (ssl === "FALSE") {
|
||||
Blockly.Arduino.definitions_["WiFiClient"] = "WiFiClient client;";
|
||||
port = 80;
|
||||
}
|
||||
|
||||
Blockly.Arduino.definitions_['measurement'] = `typedef struct measurement {
|
||||
Blockly.Arduino.definitions_["measurement"] = `typedef struct measurement {
|
||||
const char *sensorId;
|
||||
float value;
|
||||
} measurement;`;
|
||||
Blockly.Arduino.definitions_['buffer'] = 'char buffer[750];';
|
||||
Blockly.Arduino.definitions_['num_measurement'] = `measurement measurements[NUM_SENSORS];
|
||||
Blockly.Arduino.definitions_["buffer"] = "char buffer[750];";
|
||||
Blockly.Arduino.definitions_[
|
||||
"num_measurement"
|
||||
] = `measurement measurements[NUM_SENSORS];
|
||||
uint8_t num_measurements = 0;`;
|
||||
Blockly.Arduino.definitions_['lengthMultiplikator'] = 'const int lengthMultiplikator = 35;';
|
||||
Blockly.Arduino.functionNames_['addMeasurement'] = `
|
||||
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
||||
"const int lengthMultiplikator = 35;";
|
||||
Blockly.Arduino.functionNames_["addMeasurement"] = `
|
||||
void addMeasurement(const char *sensorId, float value) {
|
||||
measurements[num_measurements].sensorId = sensorId;
|
||||
measurements[num_measurements].value = value;
|
||||
num_measurements++;
|
||||
}`;
|
||||
if (type === 'Stationary') {
|
||||
Blockly.Arduino.functionNames_['writeMeasurementsToClient'] = `
|
||||
if (type === "Stationary") {
|
||||
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
||||
void writeMeasurementsToClient() {
|
||||
// iterate throug the measurements array
|
||||
for (uint8_t i = 0; i < num_measurements; i++) {
|
||||
@ -72,7 +80,8 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
// reset num_measurements
|
||||
num_measurements = 0;
|
||||
}`;
|
||||
Blockly.Arduino.functionNames_['submitValues'] = `
|
||||
Blockly.Arduino.functionNames_["submitValues"] =
|
||||
`
|
||||
void submitValues() {
|
||||
if (client.connected()) {
|
||||
client.stop();
|
||||
@ -83,7 +92,9 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
strcpy_P(_server, server);
|
||||
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
||||
Serial.println(F("connecting..."));
|
||||
connected = client.connect(_server, `+ port + `);
|
||||
connected = client.connect(_server, ` +
|
||||
port +
|
||||
`);
|
||||
if (connected == true) {
|
||||
// construct the HTTP POST request:
|
||||
sprintf_P(buffer,
|
||||
@ -110,17 +121,33 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
}
|
||||
}
|
||||
}`;
|
||||
var code = '';
|
||||
var code = "";
|
||||
code += branch;
|
||||
code += "submitValues();\n";
|
||||
}
|
||||
else if (type === 'Mobile') {
|
||||
var lat = Blockly.Arduino.valueToCode(Block, 'lat', Blockly.Arduino.ORDER_ATOMIC);
|
||||
var lng = Blockly.Arduino.valueToCode(Block, 'lng', Blockly.Arduino.ORDER_ATOMIC);
|
||||
var timestamp = Blockly.Arduino.valueToCode(Block, 'timeStamp', Blockly.Arduino.ORDER_ATOMIC);
|
||||
var altitude = Blockly.Arduino.valueToCode(Block, 'altitude', Blockly.Arduino.ORDER_ATOMIC);
|
||||
Blockly.Arduino.definitions_['lengthMultiplikator'] = 'const int lengthMultiplikator = 77;';
|
||||
Blockly.Arduino.functionNames_['writeMeasurementsToClient'] = `
|
||||
} else if (type === "Mobile") {
|
||||
var lat = Blockly.Arduino.valueToCode(
|
||||
Block,
|
||||
"lat",
|
||||
Blockly.Arduino.ORDER_ATOMIC
|
||||
);
|
||||
var lng = Blockly.Arduino.valueToCode(
|
||||
Block,
|
||||
"lng",
|
||||
Blockly.Arduino.ORDER_ATOMIC
|
||||
);
|
||||
var timestamp = Blockly.Arduino.valueToCode(
|
||||
Block,
|
||||
"timeStamp",
|
||||
Blockly.Arduino.ORDER_ATOMIC
|
||||
);
|
||||
var altitude = Blockly.Arduino.valueToCode(
|
||||
Block,
|
||||
"altitude",
|
||||
Blockly.Arduino.ORDER_ATOMIC
|
||||
);
|
||||
Blockly.Arduino.definitions_["lengthMultiplikator"] =
|
||||
"const int lengthMultiplikator = 77;";
|
||||
Blockly.Arduino.functionNames_["writeMeasurementsToClient"] = `
|
||||
void writeMeasurementsToClient(float lat, float lng, float altitude, char* timeStamp) {
|
||||
// iterate throug the measurements array
|
||||
for (uint8_t i = 0; i < num_measurements; i++) {
|
||||
@ -132,7 +159,10 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
// reset num_measurements
|
||||
num_measurements = 0;
|
||||
}`;
|
||||
Blockly.Arduino.functionNames_['submitValues'] = `
|
||||
Blockly.Arduino.variables_["latitude"] = "float latitude;";
|
||||
Blockly.Arduino.variables_["longitude"] = "float longitude;";
|
||||
Blockly.Arduino.functionNames_["submitValues"] =
|
||||
`
|
||||
void submitValues(float lat, float lng, float altitude, char* timeStamp) {
|
||||
if (client.connected()) {
|
||||
client.stop();
|
||||
@ -143,7 +173,9 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
strcpy_P(_server, server);
|
||||
for (uint8_t timeout = 2; timeout != 0; timeout--) {
|
||||
Serial.println(F("connecting..."));
|
||||
connected = client.connect(_server, `+ port + `);
|
||||
connected = client.connect(_server, ` +
|
||||
port +
|
||||
`);
|
||||
if (connected == true) {
|
||||
// construct the HTTP POST request:
|
||||
sprintf_P(buffer,
|
||||
@ -170,10 +202,19 @@ Blockly.Arduino.sensebox_osem_connection = function (Block) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}`
|
||||
code = '';
|
||||
}`;
|
||||
code = "";
|
||||
code += branch;
|
||||
code += 'submitValues(' + lat + ',' + lng + ',' + altitude + ',' + timestamp + ');\n';
|
||||
code +=
|
||||
"submitValues((" +
|
||||
lat +
|
||||
"/float(10000000)),(" +
|
||||
lng +
|
||||
"/float(10000000),(" +
|
||||
altitude +
|
||||
"/float(100))," +
|
||||
timestamp +
|
||||
");\n";
|
||||
}
|
||||
return code;
|
||||
};
|
||||
|
@ -1,123 +1,128 @@
|
||||
import Blockly from 'blockly';
|
||||
import Blockly from "blockly";
|
||||
|
||||
/**
|
||||
* HDC1080 Temperature and Humidity Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_temp_hum = function () {
|
||||
var dropdown_name = this.getFieldValue('NAME');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['define_hdc'] = 'HDC1080 hdc;';
|
||||
Blockly.Arduino.setupCode_['sensebox_sensor_temp_hum'] = 'hdc.begin();';
|
||||
var code = 'hdc.get' + dropdown_name + '()';
|
||||
var dropdown_name = this.getFieldValue("NAME");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["define_hdc"] = "HDC1080 hdc;";
|
||||
Blockly.Arduino.setupCode_["sensebox_sensor_temp_hum"] = "hdc.begin();";
|
||||
var code = "hdc.get" + dropdown_name + "()";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
/**
|
||||
* VEML 6070 and TSL4513 UV-Light/Illuminance Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_uv_light = function () {
|
||||
var dropdown_name = this.getFieldValue('NAME');
|
||||
let code = '';
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
if (dropdown_name === 'UvIntensity') {
|
||||
Blockly.Arduino.definitions_['define_veml'] = 'VEML6070 veml;'
|
||||
Blockly.Arduino.setupCode_['sensebox_sensor_uv_light'] = 'veml.begin();'
|
||||
code = 'veml.get' + dropdown_name + '()';
|
||||
var dropdown_name = this.getFieldValue("NAME");
|
||||
let code = "";
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
if (dropdown_name === "UvIntensity") {
|
||||
Blockly.Arduino.definitions_["define_veml"] = "VEML6070 veml;";
|
||||
Blockly.Arduino.setupCode_["sensebox_sensor_uv_light"] = "veml.begin();";
|
||||
code = "veml.get" + dropdown_name + "()";
|
||||
}
|
||||
// if (dropdown_name === 'Illuminance') {
|
||||
// Blockly.Arduino.definitions_['define_tsl'] = 'TSL45315 tsl;'
|
||||
// Blockly.Arduino.setupCode_['sensebox_sensor_illuminance'] = 'tsl.begin();'
|
||||
// code = 'tsl.get' + dropdown_name + '()';
|
||||
// }
|
||||
if (dropdown_name === 'Illuminance') {
|
||||
Blockly.Arduino.definitions_['define_lightsensor'] = 'Lightsensor lightsensor;'
|
||||
Blockly.Arduino.setupCode_['sensebox_sensor_illuminance'] = 'lightsensor.begin();'
|
||||
code = 'lightsensor.get' + dropdown_name + '()';
|
||||
if (dropdown_name === "Illuminance") {
|
||||
Blockly.Arduino.definitions_["define_lightsensor"] =
|
||||
"Lightsensor lightsensor;";
|
||||
Blockly.Arduino.setupCode_["sensebox_sensor_illuminance"] =
|
||||
"lightsensor.begin();";
|
||||
code = "lightsensor.get" + dropdown_name + "()";
|
||||
}
|
||||
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* BMX055 Accelerometer
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_bmx055_accelerometer = function () {
|
||||
var dropdown_value = this.getFieldValue('VALUE');
|
||||
var range = this.getFieldValue('RANGE');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['define_bmx'] = 'BMX055 bmx;';
|
||||
Blockly.Arduino.setupCode_['sensebox_sensor_bmx055'] = 'bmx.beginAcc(' + range + ');';
|
||||
var code = 'bmx.getAcceleration' + dropdown_value + '()';
|
||||
var dropdown_value = this.getFieldValue("VALUE");
|
||||
var range = this.getFieldValue("RANGE");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["define_bmx"] = "BMX055 bmx;";
|
||||
Blockly.Arduino.setupCode_["sensebox_sensor_bmx055"] =
|
||||
"bmx.beginAcc(" + range + ");";
|
||||
var code = "bmx.getAcceleration" + dropdown_value + "()";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
/**
|
||||
* SDS011 Fine Particlar Matter
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_sds011 = function () {
|
||||
var dropdown_name = this.getFieldValue('NAME');
|
||||
var serial_name = this.getFieldValue('SERIAL');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.codeFunctions_['define_sds011'] = 'SDS011 my_sds(' + serial_name + ');';
|
||||
Blockly.Arduino.variables_['variables_sds011'] = 'float p10,p25;\n';
|
||||
Blockly.Arduino.setupCode_['sensebox_sensor_sds011'] = serial_name + '.begin(9600);';
|
||||
var code = 'my_sds.get' + dropdown_name + '()';
|
||||
var dropdown_name = this.getFieldValue("NAME");
|
||||
var serial_name = this.getFieldValue("SERIAL");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.codeFunctions_["define_sds011"] =
|
||||
"SDS011 my_sds(" + serial_name + ");";
|
||||
Blockly.Arduino.variables_["variables_sds011"] = "float p10,p25;\n";
|
||||
Blockly.Arduino.setupCode_["sensebox_sensor_sds011"] =
|
||||
serial_name + ".begin(9600);";
|
||||
var code = "my_sds.get" + dropdown_name + "()";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
/**
|
||||
* BMP280 Pressure Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_pressure = function () {
|
||||
var dropdown_name = this.getFieldValue('NAME');
|
||||
var code = '';
|
||||
var referencePressure = this.getFieldValue('referencePressure');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['define_pressure'] = 'BMP280 bmp_sensor;';
|
||||
Blockly.Arduino.setupCode_['sensebox_bmp_sensor'] = 'bmp_sensor.begin();';
|
||||
if (dropdown_name === 'Pressure' || dropdown_name === 'Temperature') {
|
||||
code = 'bmp_sensor.get' + dropdown_name + '()';
|
||||
}
|
||||
else if (dropdown_name === 'Altitude') {
|
||||
code = 'bmp_sensor.getAltitude(' + referencePressure + ')';
|
||||
var dropdown_name = this.getFieldValue("NAME");
|
||||
var code = "";
|
||||
var referencePressure = this.getFieldValue("referencePressure");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["define_pressure"] = "BMP280 bmp_sensor;";
|
||||
Blockly.Arduino.setupCode_["sensebox_bmp_sensor"] = "bmp_sensor.begin();";
|
||||
if (dropdown_name === "Pressure" || dropdown_name === "Temperature") {
|
||||
code = "bmp_sensor.get" + dropdown_name + "()";
|
||||
} else if (dropdown_name === "Altitude") {
|
||||
code = "bmp_sensor.getAltitude(" + referencePressure + ")";
|
||||
}
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* BME680 Environmental Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_bme680_bsec = function () {
|
||||
var dropdown_name = this.getFieldValue('dropdown');
|
||||
let code = '';
|
||||
Blockly.Arduino.libraries_['library_bsec'] = '#include "bsec.h"';
|
||||
Blockly.Arduino.definitions_['bsec_iaqSensor'] = 'Bsec iaqSensor;'
|
||||
Blockly.Arduino.variables_['bmeTemperatur'] = 'float bmeTemperatur;';
|
||||
Blockly.Arduino.variables_['bmeHumidity'] = 'float bmeHumidity;';
|
||||
Blockly.Arduino.variables_['bmePressure'] = 'double bmePressure;';
|
||||
Blockly.Arduino.variables_['bmeIAQ'] = 'float bmeIAQ;';
|
||||
Blockly.Arduino.variables_['bmeIAQAccuracy'] = 'float bmeIAQAccuracy;';
|
||||
Blockly.Arduino.variables_['bmeCO2'] = 'int bmeCO2;';
|
||||
Blockly.Arduino.variables_['bmeBreathVocEquivalent'] = 'float bmeBreathVocEquivalent;'
|
||||
var dropdown_name = this.getFieldValue("dropdown");
|
||||
let code = "";
|
||||
Blockly.Arduino.libraries_["library_bsec"] = '#include "bsec.h"';
|
||||
Blockly.Arduino.definitions_["bsec_iaqSensor"] = "Bsec iaqSensor;";
|
||||
Blockly.Arduino.variables_["bmeTemperatur"] = "float bmeTemperatur;";
|
||||
Blockly.Arduino.variables_["bmeHumidity"] = "float bmeHumidity;";
|
||||
Blockly.Arduino.variables_["bmePressure"] = "double bmePressure;";
|
||||
Blockly.Arduino.variables_["bmeIAQ"] = "float bmeIAQ;";
|
||||
Blockly.Arduino.variables_["bmeIAQAccuracy"] = "float bmeIAQAccuracy;";
|
||||
Blockly.Arduino.variables_["bmeCO2"] = "int bmeCO2;";
|
||||
Blockly.Arduino.variables_["bmeBreathVocEquivalent"] =
|
||||
"float bmeBreathVocEquivalent;";
|
||||
|
||||
Blockly.Arduino.functionNames_['checkIaqSensorStatus'] = `
|
||||
Blockly.Arduino.functionNames_["checkIaqSensorStatus"] = `
|
||||
void checkIaqSensorStatus(void)
|
||||
{
|
||||
if (iaqSensor.status != BSEC_OK) {
|
||||
@ -135,7 +140,7 @@ Blockly.Arduino.sensebox_sensor_bme680_bsec = function () {
|
||||
}
|
||||
}
|
||||
`;
|
||||
Blockly.Arduino.functionNames_['errLeds'] = `
|
||||
Blockly.Arduino.functionNames_["errLeds"] = `
|
||||
void errLeds(void)
|
||||
{
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
@ -145,10 +150,12 @@ Blockly.Arduino.sensebox_sensor_bme680_bsec = function () {
|
||||
delay(100);
|
||||
}`;
|
||||
//Setup Code
|
||||
Blockly.Arduino.setupCode_['Wire.begin'] = 'Wire.begin();';
|
||||
Blockly.Arduino.setupCode_['iaqSensor.begin'] = 'iaqSensor.begin(BME680_I2C_ADDR_PRIMARY, Wire);';
|
||||
Blockly.Arduino.setupCode_['checkIaqSensorStatus'] = 'checkIaqSensorStatus();';
|
||||
Blockly.Arduino.setupCode_['bsec_sensorlist'] = `
|
||||
Blockly.Arduino.setupCode_["Wire.begin"] = "Wire.begin();";
|
||||
Blockly.Arduino.setupCode_["iaqSensor.begin"] =
|
||||
"iaqSensor.begin(BME680_I2C_ADDR_PRIMARY, Wire);";
|
||||
Blockly.Arduino.setupCode_["checkIaqSensorStatus"] =
|
||||
"checkIaqSensorStatus();";
|
||||
Blockly.Arduino.setupCode_["bsec_sensorlist"] = `
|
||||
bsec_virtual_sensor_t sensorList[10] = {
|
||||
BSEC_OUTPUT_RAW_TEMPERATURE,
|
||||
BSEC_OUTPUT_RAW_PRESSURE,
|
||||
@ -162,9 +169,10 @@ Blockly.Arduino.sensebox_sensor_bme680_bsec = function () {
|
||||
BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY,
|
||||
};
|
||||
`;
|
||||
Blockly.Arduino.setupCode_['iaqSensorUpdateSubscription'] = 'iaqSensor.updateSubscription(sensorList, 10, BSEC_SAMPLE_RATE_LP);\ncheckIaqSensorStatus();';
|
||||
Blockly.Arduino.setupCode_["iaqSensorUpdateSubscription"] =
|
||||
"iaqSensor.updateSubscription(sensorList, 10, BSEC_SAMPLE_RATE_LP);\ncheckIaqSensorStatus();";
|
||||
//Loop Code
|
||||
Blockly.Arduino.loopCodeOnce_['iaqloop'] = `
|
||||
Blockly.Arduino.loopCodeOnce_["iaqloop"] = `
|
||||
if (iaqSensor.run()) {
|
||||
bmeTemperatur = iaqSensor.temperature;
|
||||
bmeHumidity = iaqSensor.humidity;
|
||||
@ -178,26 +186,26 @@ Blockly.Arduino.sensebox_sensor_bme680_bsec = function () {
|
||||
}
|
||||
`;
|
||||
switch (dropdown_name) {
|
||||
case 'temperature':
|
||||
code = 'bmeTemperatur';
|
||||
case "temperature":
|
||||
code = "bmeTemperatur";
|
||||
break;
|
||||
case 'humidity':
|
||||
code = 'bmeHumidity';
|
||||
case "humidity":
|
||||
code = "bmeHumidity";
|
||||
break;
|
||||
case 'pressure':
|
||||
code = 'bmePressure'
|
||||
case "pressure":
|
||||
code = "bmePressure";
|
||||
break;
|
||||
case 'IAQ':
|
||||
code = 'bmeIAQ';
|
||||
case "IAQ":
|
||||
code = "bmeIAQ";
|
||||
break;
|
||||
case 'IAQAccuracy':
|
||||
code = 'bmeIAQAccuracy';
|
||||
case "IAQAccuracy":
|
||||
code = "bmeIAQAccuracy";
|
||||
break;
|
||||
case 'CO2':
|
||||
code = 'bmeCO2';
|
||||
case "CO2":
|
||||
code = "bmeCO2";
|
||||
break;
|
||||
case 'breathVocEquivalent':
|
||||
code = 'bmeBreathVocEquivalent';
|
||||
case "breathVocEquivalent":
|
||||
code = "bmeBreathVocEquivalent";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -205,109 +213,119 @@ Blockly.Arduino.sensebox_sensor_bme680_bsec = function () {
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Ultrasonic Distance Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_ultrasonic_ranger = function () {
|
||||
var dropdown_pin_RX = this.getFieldValue('ultrasonic_trigger');
|
||||
var dropdown_pin_TX = this.getFieldValue('ultrasonic_echo');
|
||||
var port = this.getFieldValue('port');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['var_ultrasonic' + port] = 'Ultrasonic Ultrasonic' + port + '(' + dropdown_pin_RX + ',' + dropdown_pin_TX + ');';
|
||||
var dropdown_pin_RX = this.getFieldValue("ultrasonic_trigger");
|
||||
var dropdown_pin_TX = this.getFieldValue("ultrasonic_echo");
|
||||
var port = this.getFieldValue("port");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["var_ultrasonic" + port] =
|
||||
"Ultrasonic Ultrasonic" +
|
||||
port +
|
||||
"(" +
|
||||
dropdown_pin_RX +
|
||||
"," +
|
||||
dropdown_pin_TX +
|
||||
");";
|
||||
var code;
|
||||
code = 'Ultrasonic' + port + '.getDistance()';
|
||||
code = "Ultrasonic" + port + ".getDistance()";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
/**
|
||||
* Microphone
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_sound = function () {
|
||||
var dropdown_pin = this.getFieldValue('PIN');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['define_microphone'] = 'Microphone microphone(' + dropdown_pin + ');'
|
||||
var code = 'microphone.getValue()';
|
||||
var dropdown_pin = this.getFieldValue("PIN");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["define_microphone"] =
|
||||
"Microphone microphone(" + dropdown_pin + ");";
|
||||
var code = "microphone.getValue()";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Button
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Blockly.Arduino.sensebox_button = function () {
|
||||
var dropdown_pin = this.getFieldValue('PIN');
|
||||
var dropown_function = this.getFieldValue('FUNCTION');
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['define_button' + dropdown_pin + ''] = 'Button button_' + dropdown_pin + '(' + dropdown_pin + ');';
|
||||
Blockly.Arduino.setupCode_['setup_button' + dropdown_pin + ''] = 'button_' + dropdown_pin + '.begin();';
|
||||
var code = '';
|
||||
if (dropown_function === 'isPressed') {
|
||||
code = 'button_' + dropdown_pin + '.isPressed()';
|
||||
}
|
||||
else if (dropown_function === 'Switch') {
|
||||
code = 'button_' + dropdown_pin + '.getSwitch()';
|
||||
}
|
||||
else if (dropown_function === 'wasPressed') {
|
||||
code = 'button_' + dropdown_pin + '.wasPressed()';
|
||||
var dropdown_pin = this.getFieldValue("PIN");
|
||||
var dropown_function = this.getFieldValue("FUNCTION");
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["define_button" + dropdown_pin + ""] =
|
||||
"Button button_" + dropdown_pin + "(" + dropdown_pin + ");";
|
||||
Blockly.Arduino.setupCode_["setup_button" + dropdown_pin + ""] =
|
||||
"button_" + dropdown_pin + ".begin();";
|
||||
var code = "";
|
||||
if (dropown_function === "isPressed") {
|
||||
code = "button_" + dropdown_pin + ".isPressed()";
|
||||
} else if (dropown_function === "Switch") {
|
||||
code = "button_" + dropdown_pin + ".getSwitch()";
|
||||
} else if (dropown_function === "wasPressed") {
|
||||
code = "button_" + dropdown_pin + ".wasPressed()";
|
||||
}
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
|
||||
/**
|
||||
* SCD30 CO2 Sensor
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_scd30 = function () {
|
||||
var dropdown = this.getFieldValue('dropdown');
|
||||
Blockly.Arduino.libraries_['scd30_library'] = '#include "SparkFun_SCD30_Arduino_Library.h"'
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['SCD30'] = 'SCD30 airSensor;';
|
||||
Blockly.Arduino.setupCode_['init_scd30'] = ` Wire.begin();
|
||||
var dropdown = this.getFieldValue("dropdown");
|
||||
Blockly.Arduino.libraries_["scd30_library"] =
|
||||
'#include "SparkFun_SCD30_Arduino_Library.h"';
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["SCD30"] = "SCD30 airSensor;";
|
||||
Blockly.Arduino.setupCode_["init_scd30"] = ` Wire.begin();
|
||||
if (airSensor.begin() == false)
|
||||
{
|
||||
while (1)
|
||||
;
|
||||
}`;
|
||||
var code = '';
|
||||
var code = "";
|
||||
switch (dropdown) {
|
||||
case 'temperature':
|
||||
code = 'airSensor.getTemperature()';
|
||||
case "temperature":
|
||||
code = "airSensor.getTemperature()";
|
||||
break;
|
||||
case 'humidity':
|
||||
code = 'airSensor.getHumiditiy()';
|
||||
case "humidity":
|
||||
code = "airSensor.getHumiditiy()";
|
||||
break;
|
||||
case 'CO2':
|
||||
code = 'airSensor.getCO2()';
|
||||
case "CO2":
|
||||
code = "airSensor.getCO2()";
|
||||
break;
|
||||
default:
|
||||
code = ''
|
||||
code = "";
|
||||
}
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* GPS Module
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_gps = function () {
|
||||
var dropdown = this.getFieldValue('dropdown');
|
||||
Blockly.Arduino.libraries_['gps_library'] = '#include <SparkFun_u-blox_GNSS_Arduino_Library.h>'
|
||||
Blockly.Arduino.libraries_['library_wire'] = '#include <Wire.h>';
|
||||
Blockly.Arduino.libraries_['library_senseBoxMCU'] = '#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_['GPS'] = 'SFE_UBLOX_GNSS myGNSS;';
|
||||
Blockly.Arduino.setupCode_['init_gps'] = ` Wire.begin();
|
||||
var dropdown = this.getFieldValue("dropdown");
|
||||
Blockly.Arduino.libraries_["gps_library"] =
|
||||
"#include <SparkFun_u-blox_GNSS_Arduino_Library.h>";
|
||||
Blockly.Arduino.libraries_["library_wire"] = "#include <Wire.h>";
|
||||
Blockly.Arduino.libraries_["library_senseBoxMCU"] =
|
||||
'#include "SenseBoxMCU.h"';
|
||||
Blockly.Arduino.definitions_["GPS"] = "SFE_UBLOX_GNSS myGNSS;";
|
||||
Blockly.Arduino.setupCode_["init_gps"] = ` Wire.begin();
|
||||
|
||||
if (myGNSS.begin() == false) //Connect to the Ublox module using Wire port
|
||||
{
|
||||
@ -317,95 +335,114 @@ Blockly.Arduino.sensebox_gps = function () {
|
||||
|
||||
myGNSS.setI2COutput(COM_TYPE_UBX); //Set the I2C port to output UBX only (turn off NMEA noise)
|
||||
myGNSS.saveConfiguration(); //Save the current settings to flash and BBR`;
|
||||
var code = '';
|
||||
var code = "";
|
||||
switch (dropdown) {
|
||||
case 'latitude':
|
||||
code = 'myGNSS.getLatitude()';
|
||||
case "latitude":
|
||||
code = "myGNSS.getLatitude()";
|
||||
break;
|
||||
case 'longitude':
|
||||
code = 'myGNSS.getLongitude()';
|
||||
case "longitude":
|
||||
code = "myGNSS.getLongitude()";
|
||||
break;
|
||||
case 'altitude':
|
||||
code = 'myGNSS.getAltitudeMSL()';
|
||||
case "altitude":
|
||||
code = "myGNSS.getAltitudeMSL()";
|
||||
break;
|
||||
case 'pDOP':
|
||||
code = 'myGNSS.getPDOP()';
|
||||
case "pDOP":
|
||||
code = "myGNSS.getPDOP()";
|
||||
break;
|
||||
case 'fixType':
|
||||
code = 'myGNSS.getFixType()';
|
||||
case "fixType":
|
||||
code = "myGNSS.getFixType()";
|
||||
break;
|
||||
case "timestamp":
|
||||
Blockly.Arduino.variables_["timestampVars"] = `
|
||||
char tsBuffer[21];
|
||||
`;
|
||||
Blockly.Arduino.codeFunctions_["getTimeStamp()"] = `
|
||||
char* getTimeStamp()
|
||||
{
|
||||
if (myGNSS.getTimeValid() == true)
|
||||
{
|
||||
sprintf(tsBuffer, "%04d-%02d-%02dT%02d:%02d:%02dZ",
|
||||
myGNSS.getYear(), myGNSS.getMonth(), myGNSS.getDay(), myGNSS.getHour(), myGNSS.getMinute(), myGNSS.getSecond());
|
||||
}
|
||||
return tsBuffer;
|
||||
}
|
||||
`;
|
||||
code = "getTimeStamp()";
|
||||
break;
|
||||
default:
|
||||
code = ''
|
||||
code = "";
|
||||
}
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 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_port = this.getFieldValue("Port");
|
||||
var dropdown_value = this.getFieldValue("value");
|
||||
var dropdown_pin = 1;
|
||||
var code = '';
|
||||
if (dropdown_value === 'temp') {
|
||||
if (dropdown_port === 'A') {
|
||||
var code = "";
|
||||
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}';
|
||||
code = 'getSMT50Temperature(' + dropdown_pin + ')';
|
||||
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}";
|
||||
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}';
|
||||
code = 'getSMT50Moisture(' + dropdown_pin + ')';
|
||||
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}";
|
||||
code = "getSMT50Moisture(" + dropdown_pin + ")";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* DS18B20 Watertemperature
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_sensor_watertemperature = function () {
|
||||
|
||||
var dropdown_port = this.getFieldValue('Port');
|
||||
var dropdown_port = this.getFieldValue("Port");
|
||||
var dropdown_pin = 1;
|
||||
if (dropdown_port === 'A') {
|
||||
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.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()';
|
||||
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];
|
||||
};
|
||||
|
||||
@ -443,28 +480,31 @@ float getWindspeed(){
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
Blockly.Arduino.sensebox_soundsensor_dfrobot = function () {
|
||||
var dropdown_port = this.getFieldValue('Port');
|
||||
var dropdown_port = this.getFieldValue("Port");
|
||||
var dropdown_pin = 1;
|
||||
if (dropdown_port === 'A') {
|
||||
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_['soundsensor'] = `
|
||||
Blockly.Arduino.codeFunctions_["soundsensor"] =
|
||||
`
|
||||
float getSoundValue(){
|
||||
float v = analogRead(`+ dropdown_pin + `) * (3.3 / 1024.0);
|
||||
float v = analogRead(` +
|
||||
dropdown_pin +
|
||||
`) * (3.3 / 1024.0);
|
||||
float decibel = v * 50;
|
||||
return decibel;
|
||||
}`
|
||||
var code = 'getSoundValue()';
|
||||
}`;
|
||||
var code = "getSoundValue()";
|
||||
return [code, Blockly.Arduino.ORDER_ATOMIC];
|
||||
};
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user