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