// Callback function for bricklet callback private static async void BrickletCb(BrickletBarometer sender, int rawValue) { var value = CalculateValue(rawValue); _tinfluxWeatherStation.LastMeasuredAirPressure = value; await _tinfluxWeatherStation.WriteToInfluxDb(SensorTyp, SensorUnit, SensorUnitName, value); }
static void AirPressureCB(BrickletBarometer sender, int airPressure) { if(brickletLCD != null) { string text = string.Format("Air Press {0,7:####.00} mb", airPressure/1000.0); brickletLCD.WriteLine(2, 0, text); System.Console.WriteLine("Write to line 2: " + text); int temperature; try { temperature = sender.GetChipTemperature(); } catch(TinkerforgeException e) { System.Console.WriteLine("Could not get temperature: " + e.Message); return; } // 0xDF == ° on LCD 20x4 charset text = string.Format("Temperature {0,5:##.00} {1}C", temperature/100.0, (char)0xDF); brickletLCD.WriteLine(3, 0, text); System.Console.WriteLine("Write to line 3: " + text.Replace((char)0xDF, '°')); } }
static void AirPressureCB(BrickletBarometer sender, int airPressure) { if (brickletLCD != null) { string text = string.Format("Air Press {0,7:####.00} mb", airPressure / 1000.0); brickletLCD.WriteLine(2, 0, text); System.Console.WriteLine("Write to line 2: " + text); int temperature; try { temperature = sender.GetChipTemperature(); } catch (TinkerforgeException e) { System.Console.WriteLine("Could not get temperature: " + e.Message); return; } // 0xDF == ° on LCD 20x4 charset text = string.Format("Temperature {0,5:##.00} {1}C", temperature / 100.0, (char)0xDF); brickletLCD.WriteLine(3, 0, text); System.Console.WriteLine("Write to line 3: " + text.Replace((char)0xDF, '°')); } }
static void AirPressureCB(BrickletBarometer sender, int airPressure) { latestAirPressure = airPressure/1000.0; int temperature = sender.GetChipTemperature(); latestTemperature = temperature/100.0; }
static void AirPressureCB(BrickletBarometer sender, int airPressure) { latestAirPressure = airPressure / 1000.0; int temperature = sender.GetChipTemperature(); latestTemperature = temperature / 100.0; }
/// <summary> /// Initialize internal TF bricklet /// </summary> /// <param name="connection">Connection to master brick</param> /// <param name="UID">Sensor ID</param> /// <returns>true on successful init</returns> public override bool Init(IPConnection connection, string UID) { if (Bricklet == null) { Bricklet = new BrickletBarometer(UID, connection); } return(true); }
/// <summary> /// Initialize internal TF bricklet /// </summary> /// <param name="connection">Connection to master brick</param> /// <param name="UID">Sensor ID</param> public override void Init(IPConnection connection, string UID) { if (_Bricklet != null) { return; } _Bricklet = new BrickletBarometer(UID, connection); }
public BarometerSensor(IPConnection ipConnection, string uid, int sensorCallbackPeriod, Station station) { _tinfluxWeatherStation = station; var bricklet = new BrickletBarometer(uid, ipConnection); // Register callback to function BrickletCb bricklet.AirPressureCallback += BrickletCb; // Note: The callback is only called every "sensorCallbackPeriod" // if the value has changed since the last call! bricklet.SetAirPressureCallbackPeriod(sensorCallbackPeriod); }
private static string UID = "bAc"; // Change to your UID #endregion Fields #region Methods static void Main() { IPConnection ipcon = new IPConnection(); // Create IP connection BrickletBarometer b = new BrickletBarometer(UID, ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Get threshold callbacks with a debounce time of 10 seconds (10000ms) b.SetDebouncePeriod(10000); // Register threshold reached callback to function ReachedCB b.AirPressureReached += ReachedCB; // Configure threshold for "greater than 1025 mbar" (unit is mbar/1000) b.SetAirPressureCallbackThreshold('>', 1025*1000, 0); System.Console.WriteLine("Press key to exit"); System.Console.ReadKey(); }
static void Main() { IPConnection ipcon = new IPConnection(); // Create IP connection BrickletBarometer b = new BrickletBarometer(UID, ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Register air pressure callback to function AirPressureCB b.AirPressure += AirPressureCB; // Set period for air pressure callback to 1s (1000ms) // Note: The air pressure callback is only called every second // if the air pressure has changed since the last call! b.SetAirPressureCallbackPeriod(1000); Console.WriteLine("Press enter to exit"); Console.ReadLine(); ipcon.Disconnect(); }
private static string UID = "XYZ"; // Change XYZ to the UID of your Barometer Bricklet #endregion Fields #region Methods static void Main() { IPConnection ipcon = new IPConnection(); // Create IP connection BrickletBarometer b = new BrickletBarometer(UID, ipcon); // Create device object ipcon.Connect(HOST, PORT); // Connect to brickd // Don't use device before ipcon is connected // Get current air pressure (unit is mbar/1000) int airPressure = b.GetAirPressure(); Console.WriteLine("Air Pressure: " + airPressure/1000.0 + " mbar"); // Get current altitude (unit is cm) int altitude = b.GetAltitude(); Console.WriteLine("Altitude: " + altitude/100.0 + " m"); Console.WriteLine("Press enter to exit"); Console.ReadLine(); ipcon.Disconnect(); }
private static string UID = "XYZ"; // Change XYZ to the UID of your Barometer Bricklet #endregion Fields #region Methods // Callback function for air pressure reached callback (parameter has unit mbar/1000) static void AirPressureReachedCB(BrickletBarometer sender, int airPressure) { Console.WriteLine("Air Pressure: " + airPressure/1000.0 + " mbar"); Console.WriteLine("Enjoy the potentially good weather!"); }
static void EnumerateCB(IPConnection sender, string UID, string connectedUID, char position, short[] hardwareVersion, short[] firmwareVersion, int deviceIdentifier, short enumerationType) { if(enumerationType == IPConnection.ENUMERATION_TYPE_CONNECTED || enumerationType == IPConnection.ENUMERATION_TYPE_AVAILABLE) { if(deviceIdentifier == BrickletLCD20x4.DEVICE_IDENTIFIER) { try { brickletLCD = new BrickletLCD20x4(UID, ipcon); brickletLCD.ClearDisplay(); brickletLCD.BacklightOn(); System.Console.WriteLine("LCD 20x4 initialized"); } catch(TinkerforgeException e) { System.Console.WriteLine("LCD 20x4 init failed: " + e.Message); brickletLCD = null; } } else if(deviceIdentifier == BrickletAmbientLight.DEVICE_IDENTIFIER) { try { brickletAmbientLight = new BrickletAmbientLight(UID, ipcon); brickletAmbientLight.SetIlluminanceCallbackPeriod(1000); brickletAmbientLight.Illuminance += IlluminanceCB; System.Console.WriteLine("Ambient Light initialized"); } catch(TinkerforgeException e) { System.Console.WriteLine("Ambient Light init failed: " + e.Message); brickletAmbientLight = null; } } else if(deviceIdentifier == BrickletAmbientLightV2.DEVICE_IDENTIFIER) { try { brickletAmbientLightV2 = new BrickletAmbientLightV2(UID, ipcon); brickletAmbientLightV2.SetConfiguration(BrickletAmbientLightV2.ILLUMINANCE_RANGE_64000LUX, BrickletAmbientLightV2.INTEGRATION_TIME_200MS); brickletAmbientLightV2.SetIlluminanceCallbackPeriod(1000); brickletAmbientLightV2.Illuminance += IlluminanceV2CB; System.Console.WriteLine("Ambient Light 2.0 initialized"); } catch(TinkerforgeException e) { System.Console.WriteLine("Ambient Light 2.0 init failed: " + e.Message); brickletAmbientLightV2 = null; } } else if(deviceIdentifier == BrickletHumidity.DEVICE_IDENTIFIER) { try { brickletHumidity = new BrickletHumidity(UID, ipcon); brickletHumidity.SetHumidityCallbackPeriod(1000); brickletHumidity.Humidity += HumidityCB; System.Console.WriteLine("Humidity initialized"); } catch(TinkerforgeException e) { System.Console.WriteLine("Humidity init failed: " + e.Message); brickletHumidity = null; } } else if(deviceIdentifier == BrickletBarometer.DEVICE_IDENTIFIER) { try { brickletBarometer = new BrickletBarometer(UID, ipcon); brickletBarometer.SetAirPressureCallbackPeriod(1000); brickletBarometer.AirPressure += AirPressureCB; System.Console.WriteLine("Barometer initialized"); } catch(TinkerforgeException e) { System.Console.WriteLine("Barometer init failed: " + e.Message); brickletBarometer = null; } } } }
static void EnumerateCB(IPConnection sender, string UID, string connectedUID, char position, short[] hardwareVersion, short[] firmwareVersion, int deviceIdentifier, short enumerationType) { if (enumerationType == IPConnection.ENUMERATION_TYPE_CONNECTED || enumerationType == IPConnection.ENUMERATION_TYPE_AVAILABLE) { if (deviceIdentifier == BrickletLCD20x4.DEVICE_IDENTIFIER) { try { brickletLCD = new BrickletLCD20x4(UID, ipcon); brickletLCD.ClearDisplay(); brickletLCD.BacklightOn(); System.Console.WriteLine("LCD 20x4 initialized"); } catch (TinkerforgeException e) { System.Console.WriteLine("LCD 20x4 init failed: " + e.Message); brickletLCD = null; } } else if (deviceIdentifier == BrickletAmbientLight.DEVICE_IDENTIFIER) { try { brickletAmbientLight = new BrickletAmbientLight(UID, ipcon); brickletAmbientLight.SetIlluminanceCallbackPeriod(1000); brickletAmbientLight.Illuminance += IlluminanceCB; System.Console.WriteLine("Ambient Light initialized"); } catch (TinkerforgeException e) { System.Console.WriteLine("Ambient Light init failed: " + e.Message); brickletAmbientLight = null; } } else if (deviceIdentifier == BrickletAmbientLightV2.DEVICE_IDENTIFIER) { try { brickletAmbientLightV2 = new BrickletAmbientLightV2(UID, ipcon); brickletAmbientLightV2.SetConfiguration(BrickletAmbientLightV2.ILLUMINANCE_RANGE_64000LUX, BrickletAmbientLightV2.INTEGRATION_TIME_200MS); brickletAmbientLightV2.SetIlluminanceCallbackPeriod(1000); brickletAmbientLightV2.Illuminance += IlluminanceV2CB; System.Console.WriteLine("Ambient Light 2.0 initialized"); } catch (TinkerforgeException e) { System.Console.WriteLine("Ambient Light 2.0 init failed: " + e.Message); brickletAmbientLightV2 = null; } } else if (deviceIdentifier == BrickletHumidity.DEVICE_IDENTIFIER) { try { brickletHumidity = new BrickletHumidity(UID, ipcon); brickletHumidity.SetHumidityCallbackPeriod(1000); brickletHumidity.Humidity += HumidityCB; System.Console.WriteLine("Humidity initialized"); } catch (TinkerforgeException e) { System.Console.WriteLine("Humidity init failed: " + e.Message); brickletHumidity = null; } } else if (deviceIdentifier == BrickletHumidityV2.DEVICE_IDENTIFIER) { try { brickletHumidityV2 = new BrickletHumidityV2(UID, ipcon); brickletHumidityV2.SetHumidityCallbackConfiguration(1000, true, 'x', 0, 0); brickletHumidityV2.HumidityCallback += HumidityV2CB; System.Console.WriteLine("Humidity 2.0 initialized"); } catch (TinkerforgeException e) { System.Console.WriteLine("Humidity 2.0 init failed: " + e.Message); brickletHumidityV2 = null; } } else if (deviceIdentifier == BrickletBarometer.DEVICE_IDENTIFIER) { try { brickletBarometer = new BrickletBarometer(UID, ipcon); brickletBarometer.SetAirPressureCallbackPeriod(1000); brickletBarometer.AirPressure += AirPressureCB; System.Console.WriteLine("Barometer initialized"); } catch (TinkerforgeException e) { System.Console.WriteLine("Barometer init failed: " + e.Message); brickletBarometer = null; } } } }
private static string UID = "XYZ"; // Change XYZ to the UID of your Barometer Bricklet #endregion Fields #region Methods // Callback function for air pressure callback (parameter has unit mbar/1000) static void AirPressureCB(BrickletBarometer sender, int airPressure) { Console.WriteLine("Air Pressure: " + airPressure/1000.0 + " mbar"); }
public void doSmth() { //Create IP Connection IPConnection ipcon = new IPConnection(); // Connect to brickd ipcon.Connect(HOST, PORT); var BrickletLCD = new BrickletLCD20x4(SECRET_LCD, ipcon); var BrickletAmbientLight = new BrickletAmbientLight(SECRET_AMBIENTLIGHT, ipcon); var BrickletCO2 = new BrickletCO2(SECRET_CO2, ipcon); var BrickletBarometer = new BrickletBarometer(SECRET_BAROMETER, ipcon); var BrickletTemperature = new BrickletTemperature(SECRET_TEMPERATURE, ipcon); int i = 100; var data = new Bricklet_Model(); var tb = new Thingsboard(); while (true) { var co2value = BrickletCO2.GetCO2Concentration(); // unit ppm - parts per million var lightvalue = BrickletAmbientLight.GetAnalogValue(); // lcd var barometervalue = String.Format("{0:n}", BrickletBarometer.GetAirPressure()); // in mbar // var barometervalue = bV / 1000; double tempvalue = (Math.Round((double)BrickletTemperature.GetTemperature() * 100) / 10000) - 5; // in °c tb.LightValue = lightvalue; tb.Barometer = Convert.ToDouble(barometervalue) / 1000; tb.Temperature = tempvalue; tb.CO2 = co2value; //tb.LightValue = 100; //tb.Barometer = 99; //tb.Temperature = 98; //tb.CO2 = 97; c.PublishMessage(tb); /* * var temperatur = new Temperatur(); * _context.Temperatur.Add(temperatur); * _context.Entry(temperatur).CurrentValues.SetValues(new Temperatur { Datum = new DateTime(), Einheit = "Grad", Wert = CO2Value, idTemperatur = i++ }); * _context.SaveChanges(); */ BrickletLCD.SetConfig(true, true); BrickletLCD.BacklightOn(); Console.WriteLine( " LightValue: " + lightvalue + " BarometerValue " + barometervalue + "mbar " + " TempValue " + tempvalue.ToString() + "°C " + " CO2-Value: " + co2value); BrickletLCD.WriteLine(0, 0, "CO2 Value: " + co2value.ToString()); BrickletLCD.WriteLine(1, 0, "LightValue: " + lightvalue.ToString()); BrickletLCD.WriteLine(2, 0, "BarometerValue:" + barometervalue.ToString()); BrickletLCD.WriteLine(3, 0, "Temperature " + tempvalue.ToString()); Thread.Sleep(500); } ipcon.Disconnect(); }