Der Raumklima-Monitor von Decentlab (Datenblatt) misst kontinuierlich die Kohlendioxid (CO2)-Konzentration, flüchtige organische Verbindungen (VOC), Temperatur, Luftfeuchtigkeit, Luftdruck, Umgebungslicht und Bewegung/Präsenz. Diese Daten ermöglichen die Quantifizierung der Luftqualität, Temperatur und Beleuchtung (Ambiente) in Büros, Klassenräumen, Krankenhäusern, Geschäften oder Einkaufszentren. Diese Daten zeigen auch die Anwesenheit von Personen und wie sie sich in einem Raum bewegen. Dies ermöglicht eine effiziente Steuerung von Heizung, Lüftung, Klimaanlage (HVAC) und Beleuchtung entsprechend der tatsächlichen Situation in einem bestimmten Raum zu steuern.
Die Übertragung der Sensordaten erfolgt in Echtzeit über die LoRaWAN® Funktechnologie übertragen. LoRaWAN® ermöglicht verschlüsselte Funkübertragungen über große Entfernungen bei sehr geringem Stromverbrauch.
Bitte beachten Sie: Dies ist ein Industriegerät und bedarf zum Einsatz eines Lorawan Connectivity Vertrags sowie einer Platform zum Auslesen der Daten. Sie können diese Elemente bei shopofthings.ch als Bundle bestellen.
Dieses Produkt gibt’s auch als komplett Kit
Diesen Sensor kannst Du auch als Kit kaufen. Mit dem Kit erhälst Du ein fertig im Swisscom LoRaWAN provisioniertes und konfiguriertes Device mit einem Dashboard-Zugang, wo Du die Daten des Sensores jederzeit überwachen kannst.
Wenn dies gewünscht wird, übernehmen wir sogar die fachmännische Montage vor Ort für Dich. Zusammen planen wir die Montage und berücksichtigen die Empfangsqualität und die optimale Platzierung vor Ort.
Einsatzgebiete
Gebäude-Automatisierung
Aktivitäts- und Besucherfrequenzüberwachung
Energie- und HLK-Optimierung
Steigerung des Laden- und Arbeitsplatzkomforts
Sensoren
CO₂
Bereich: 0 … 10’000 ppm
Genauigkeit: ±50 ppm, ±3% vom Messwert
GESAMTE FLÜCHTIGE ORGANISCHE VERBINDUNGEN
Bereich: 0 … 60’000 ppb
Genauigkeit: typisch 15% vom Messwert
TEMPERATUR
Bereich: -40 … + 125 °C
Genauigkeit: ±0,3 °C
RELATIVE FEUCHTE
Bereich: 0 … 100% RH
Genauigkeit: ±2% RH
BAROMETRISCHER DRUCK
Bereich: 300 … 1’100 hPa
Genauigkeit: ±1 hPa absolut, ±0,12 hPa relativ
UMGEBUNGSLICHTINTENSITÄT
Helligkeitsanzeige
MOTION
PIR-Bewegungssensor zur Messung des Aktivitätsniveaus
Automatische Sensorkalibrierung
Barometrische Druck- und Temperaturdaten werden vom CO2-Sensor verwendet, um Temperatur- und Druckschwankungen sowie die Höhe über dem Meeresspiegel zu kompensieren. Darüber hinaus führt das Gerät regelmäßig eine automatische Kalibrierungsroutine für den CO2-Sensor durch. Die Kalibrierungsroutine erfordert keine Interaktion durch den Benutzer. Der Kalibrierungszeitraum ist standardmäßig auf 8 Tage eingestellt. Alle 8 Tage wertet das Gerät alle Sensordaten der letzten 8 Tage aus und führt eine Rekalibrierung durch. Die Rekalibrierung basiert auf der Annahme, dass der Sensor in diesem Zeitraum mindestens einige Minuten lang Frischluft (mit einem angenommenen CO2-Gehalt von 400 ppm) ausgesetzt war. Wenn das Gerät in Innenräumen betrieben wird, reicht es aus, den Raum hin und wieder mit Frischluft zu lüften.
Downloads
Payload Tester: https://htmlpreview.github.io/?https://github.com/decentlab/decentlab-decoders/blob/master/payload-test.html
Decoder
Diverse Formate: https://github.com/decentlab/decentlab-decoders/tree/master/DL-IAM
Downlink Encoder: https://github.com/decentlab/decentlab-decoders/blob/master/downlink-command-encoder.html
JavaScript Decoder (Achtung: einige Zeichen werden vom Browser falsch gerendert! Bitte decoder von Link oben nehmen):
var decentlab_decoder = { PROTOCOL_VERSION: 2, SENSORS: [ {length: 1, values: [{name: 'battery_voltage', displayName: 'Battery voltage', convert: function (x) { return x[0] / 1000; }, unit: 'V'}]}, {length: 2, values: [{name: 'air_temperature', displayName: 'Air temperature', convert: function (x) { return 175 * x[0] / 65535 - 45; }, unit: '°C'}, {name: 'air_humidity', displayName: 'Air humidity', convert: function (x) { return 100 * x[1] / 65535; }, unit: '%'}]}, {length: 1, values: [{name: 'barometric_pressure', displayName: 'Barometric pressure', convert: function (x) { return x[0] * 2; }, unit: 'Pa'}]}, {length: 2, values: [{name: 'ambient_light_visible_infrared', displayName: 'Ambient light (visible + infrared)', convert: function (x) { return x[0]; }}, {name: 'ambient_light_infrared', displayName: 'Ambient light (infrared)', convert: function (x) { return x[1]; }}, {name: 'illuminance', displayName: 'Illuminance', convert: function (x) { return Math.max(Math.max(1.0 * x[0] - 1.64 * x[1], 0.59 * x[0] - 0.86 * x[1]), 0) * 1.5504; }, unit: 'lx'}]}, {length: 3, values: [{name: 'co2_concentration', displayName: 'CO2 concentration', convert: function (x) { return x[0] - 32768; }, unit: 'ppm'}, {name: 'co2_sensor_status', displayName: 'CO2 sensor status', convert: function (x) { return x[1]; }}, {name: 'raw_ir_reading', displayName: 'Raw IR reading', convert: function (x) { return x[2]; }}]}, {length: 1, values: [{name: 'activity_counter', displayName: 'Activity counter', convert: function (x) { return x[0]; }}]}, {length: 1, values: [{name: 'total_voc', displayName: 'Total VOC', convert: function (x) { return x[0]; }, unit: 'ppb'}]} ], read_int: function (bytes, pos) { return (bytes[pos] << 8) + bytes[pos + 1]; }, decode: function (msg) { var bytes = msg; var i, j; if (typeof msg === 'string') { bytes = []; for (i = 0; i < msg.length; i += 2) { bytes.push(parseInt(msg.substring(i, i + 2), 16)); } } var version = bytes[0]; if (version != this.PROTOCOL_VERSION) { return {error: "protocol version " + version + " doesn't match v2"}; } var deviceId = this.read_int(bytes, 1); var flags = this.read_int(bytes, 3); var result = {'protocol_version': version, 'device_id': deviceId}; // decode payload var pos = 5; for (i = 0; i < this.SENSORS.length; i++, flags >>= 1) { if ((flags & 1) !== 1) continue; var sensor = this.SENSORS[i]; var x = []; // convert data to 16-bit integer array for (j = 0; j < sensor.length; j++) { x.push(this.read_int(bytes, pos)); pos += 2; } // decode sensor values for (j = 0; j < sensor.values.length; j++) { var value = sensor.values[j]; if ('convert' in value) { result[value.name] = {displayName: value.displayName, value: value.convert.bind(this)(x), unit: value.unit}; } } } return result; } }; function main() { console.log(decentlab_decoder.decode("020bbd007f0b926a515d48bc4e0262006981c7000093d4000b0111")); console.log(decentlab_decoder.decode("020bbd006f0b926a515d48bc4e02620069000b0111")); console.log(decentlab_decoder.decode("020bbd00010b92")); } main();
Bewertungen
Es gibt noch keine Bewertungen.