diff --git a/public/media/hardware/bmp280.png b/public/media/hardware/bmp280.png index d786325..b65b3c2 100644 Binary files a/public/media/hardware/bmp280.png and b/public/media/hardware/bmp280.png differ diff --git a/public/media/hardware/breadboard.png b/public/media/hardware/breadboard.png index 4cceb33..5591394 100644 Binary files a/public/media/hardware/breadboard.png and b/public/media/hardware/breadboard.png differ diff --git a/public/media/hardware/button.png b/public/media/hardware/button.png index 044860d..3beeeaa 100644 Binary files a/public/media/hardware/button.png and b/public/media/hardware/button.png differ diff --git a/public/media/hardware/feinstaub.png b/public/media/hardware/feinstaub.png new file mode 100644 index 0000000..a7c11dd Binary files /dev/null and b/public/media/hardware/feinstaub.png differ diff --git a/public/media/hardware/hc04.png b/public/media/hardware/hc04.png index 792e30e..be82631 100644 Binary files a/public/media/hardware/hc04.png and b/public/media/hardware/hc04.png differ diff --git a/public/media/hardware/hdc1080.png b/public/media/hardware/hdc1080.png index baed217..8bd79ff 100644 Binary files a/public/media/hardware/hdc1080.png and b/public/media/hardware/hdc1080.png differ diff --git a/public/media/hardware/jst-adapter.png b/public/media/hardware/jst-adapter.png index 2735d04..947dbb2 100644 Binary files a/public/media/hardware/jst-adapter.png and b/public/media/hardware/jst-adapter.png differ diff --git a/public/media/hardware/jst-jst.png b/public/media/hardware/jst-jst.png index 6077544..ef381f1 100644 Binary files a/public/media/hardware/jst-jst.png and b/public/media/hardware/jst-jst.png differ diff --git a/public/media/hardware/jumperwire.png b/public/media/hardware/jumperwire.png index e9fd7bf..5f54989 100644 Binary files a/public/media/hardware/jumperwire.png and b/public/media/hardware/jumperwire.png differ diff --git a/public/media/hardware/ldr.png b/public/media/hardware/ldr.png index 9b562df..02073de 100644 Binary files a/public/media/hardware/ldr.png and b/public/media/hardware/ldr.png differ diff --git a/public/media/hardware/led.png b/public/media/hardware/led.png index a489917..91c2cca 100644 Binary files a/public/media/hardware/led.png and b/public/media/hardware/led.png differ diff --git a/public/media/hardware/lora-bee.png b/public/media/hardware/lora-bee.png new file mode 100644 index 0000000..7a0ee9f Binary files /dev/null and b/public/media/hardware/lora-bee.png differ diff --git a/public/media/hardware/microphone.png b/public/media/hardware/microphone.png index d25b1b5..ba485e1 100644 Binary files a/public/media/hardware/microphone.png and b/public/media/hardware/microphone.png differ diff --git a/public/media/hardware/oled.png b/public/media/hardware/oled.png index 55ed1d9..c2e82ec 100644 Binary files a/public/media/hardware/oled.png and b/public/media/hardware/oled.png differ diff --git a/public/media/hardware/piezo.png b/public/media/hardware/piezo.png index a8fd41a..5931fc3 100644 Binary files a/public/media/hardware/piezo.png and b/public/media/hardware/piezo.png differ diff --git a/public/media/hardware/resistor-10kohm.png b/public/media/hardware/resistor-10kohm.png index e1d113e..a76c24b 100644 Binary files a/public/media/hardware/resistor-10kohm.png and b/public/media/hardware/resistor-10kohm.png differ diff --git a/public/media/hardware/resistor-470ohm.png b/public/media/hardware/resistor-470ohm.png index e840520..0628f49 100644 Binary files a/public/media/hardware/resistor-470ohm.png and b/public/media/hardware/resistor-470ohm.png differ diff --git a/public/media/hardware/rgb-led.png b/public/media/hardware/rgb-led.png index a05c35c..34c3fd6 100644 Binary files a/public/media/hardware/rgb-led.png and b/public/media/hardware/rgb-led.png differ diff --git a/public/media/hardware/scd30.png b/public/media/hardware/scd30.png new file mode 100644 index 0000000..ebec4d7 Binary files /dev/null and b/public/media/hardware/scd30.png differ diff --git a/public/media/hardware/sd-bee.png b/public/media/hardware/sd-bee.png index 25e09f0..dff197d 100644 Binary files a/public/media/hardware/sd-bee.png and b/public/media/hardware/sd-bee.png differ diff --git a/public/media/hardware/senseboxmcu.png b/public/media/hardware/senseboxmcu.png index f0e2795..6c9af63 100644 Binary files a/public/media/hardware/senseboxmcu.png and b/public/media/hardware/senseboxmcu.png differ diff --git a/public/media/hardware/sensors-bme.png b/public/media/hardware/sensors-bme.png new file mode 100644 index 0000000..54b1075 Binary files /dev/null and b/public/media/hardware/sensors-bme.png differ diff --git a/public/media/hardware/sensors-gps.png b/public/media/hardware/sensors-gps.png new file mode 100644 index 0000000..aefae8e Binary files /dev/null and b/public/media/hardware/sensors-gps.png differ diff --git a/public/media/hardware/usb-cable.png b/public/media/hardware/usb-cable.png index c765bc9..55e38f1 100644 Binary files a/public/media/hardware/usb-cable.png and b/public/media/hardware/usb-cable.png differ diff --git a/public/media/hardware/veml6070.png b/public/media/hardware/veml6070.png index 3b9d0e0..34621d6 100644 Binary files a/public/media/hardware/veml6070.png and b/public/media/hardware/veml6070.png differ diff --git a/public/media/hardware/wifi-bee.png b/public/media/hardware/wifi-bee.png index 8a8c72d..0907e78 100644 Binary files a/public/media/hardware/wifi-bee.png and b/public/media/hardware/wifi-bee.png differ diff --git a/src/components/Blockly/blocks/logic.js b/src/components/Blockly/blocks/logic.js index 9ed3a26..5f6770d 100644 --- a/src/components/Blockly/blocks/logic.js +++ b/src/components/Blockly/blocks/logic.js @@ -115,7 +115,7 @@ Blockly.Blocks['controls_if'] = { elseStatementConnection = clauseBlock.statementConnection_; break; default: - throw 'Unknown block type.'; + throw new Error('Unknown block type.'); } clauseBlock = clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock(); @@ -153,7 +153,7 @@ Blockly.Blocks['controls_if'] = { inputDo && inputDo.connection.targetConnection; break; default: - throw 'Unknown block type.'; + throw new Error('Unknown block type.'); } clauseBlock = clauseBlock.nextConnection && clauseBlock.nextConnection.targetBlock(); diff --git a/src/components/Blockly/generator/logic.js b/src/components/Blockly/generator/logic.js index b896802..5fed20a 100644 --- a/src/components/Blockly/generator/logic.js +++ b/src/components/Blockly/generator/logic.js @@ -74,14 +74,14 @@ Blockly.Arduino['controls_if'] = function (Block) { conditionCode + ') {\n' + branchCode + - '}'; + '}\n'; ++n; } while (Block.getInput('IF' + n)); if (Block.getInput('ELSE')) { branchCode = Blockly.Arduino.statementToCode(Block, 'ELSE'); - code += ' else {\n' + branchCode + '}'; + code += ' else {\n' + branchCode + '}\n'; } return code + '\n'; }; @@ -106,14 +106,14 @@ Blockly.Arduino['controls_ifelse'] = function (Block) { conditionCode + ') {\n' + branchCode + - '}'; + '}\n'; ++n; } while (Block.getInput('IF' + n)); if (Block.getInput('ELSE')) { branchCode = Blockly.Arduino.statementToCode(Block, 'ELSE'); - code += ' else {\n' + branchCode + '}'; + code += ' else {\n' + branchCode + '}\n'; } return code + '\n'; } diff --git a/src/components/Blockly/generator/sensebox-display.js b/src/components/Blockly/generator/sensebox-display.js index 5fbc114..d293fe5 100644 --- a/src/components/Blockly/generator/sensebox-display.js +++ b/src/components/Blockly/generator/sensebox-display.js @@ -19,10 +19,10 @@ Blockly.Arduino.sensebox_display_clearDisplay = function () { }; Blockly.Arduino.sensebox_display_printDisplay = function () { - var x = Blockly.Arduino.valueToCode(this, 'X', Blockly.Arduino.ORDER_ATOMIC) || '0' - var y = Blockly.Arduino.valueToCode(this, 'Y', Blockly.Arduino.ORDER_ATOMIC) || '0' + var x = this.getFieldValue('X'); + var y = this.getFieldValue('Y'); var printDisplay = Blockly.Arduino.valueToCode(this, 'printDisplay', Blockly.Arduino.ORDER_ATOMIC) || '"Keine Eingabe"'; - var size = Blockly.Arduino.valueToCode(this, 'SIZE', Blockly.Arduino.ORDER_ATOMIC) || '1' + var size = this.getFieldValue('SIZE'); var color = this.getFieldValue('COLOR'); var code = 'display.setCursor(' + x + ',' + y + ');\n'; code += 'display.setTextSize(' + size + ');\n'; diff --git a/src/components/Blockly/generator/sensebox-sensors.js b/src/components/Blockly/generator/sensebox-sensors.js index 5a6ab1f..598e6ae 100644 --- a/src/components/Blockly/generator/sensebox-sensors.js +++ b/src/components/Blockly/generator/sensebox-sensors.js @@ -272,13 +272,13 @@ Blockly.Arduino.sensebox_scd30 = function () { var code = ''; switch (dropdown) { case 'temperature': - code = 'aireSensor.getTemperature()'; + code = 'airSensor.getTemperature()'; break; case 'humidity': code = 'airSensor.getHumiditiy()'; break; case 'CO2': - code = 'aireSensor.getCO2()'; + code = 'airSensor.getCO2()'; break; default: code = '' diff --git a/src/data/hardware.json b/src/data/hardware.json index 3313f63..4fcb2ec 100644 --- a/src/data/hardware.json +++ b/src/data/hardware.json @@ -1,128 +1,158 @@ [ { - "id": "bmp280", - "name": "Luftdruck und Temperatursensor", - "src": "bmp280.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/sensoren/luftdruck-temperatur.html" + "id": "senseboxmcu", + "name": "senseBox MCU", + "src": "senseboxmcu.png", + "url": "https://docs.sensebox.de/hardware/allgemein-sensebox-mcu/" }, { "id": "breadboard", "name": "Breadboard", "src": "breadboard.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "button", - "name": "Knopf", - "src": "button.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "hc04", - "name": "Ultraschall-Distanzsensor", - "src": "hc04.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "hdc1080", - "name": "Temperatur und Luftfeuchtigkeitssensor", - "src": "hdc1080.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/sensoren/hdc1080.html" - }, - { - "id": "jst-adapter", - "name": "JST-Adapterkabel", - "src": "jst-adapter.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "jst-jst", - "name": "JST-JST Kabel", - "src": "jst-jst.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "jumperwire", - "name": "Steckkabel", - "src": "jumperwire.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "ldr", - "name": "LDR", - "src": "ldr.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "led", - "name": "LEDs", - "src": "led.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "microphone", - "name": "Mikrofon", - "src": "microphone.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "oled", - "name": "OLED-Display", - "src": "oled.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/zubehoer/led-display.html" - }, - { - "id": "piezo", - "name": "Piezo", - "src": "piezo.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "resistor-10kohm", - "name": "10 kOhm Widerstand", - "src": "resistor-10kohm.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "resistor-470ohm", - "name": "470 Ohm Widerstand", - "src": "resistor-470ohm.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "rgb-led", - "name": "RGB-LED", - "src": "rgb-led.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" - }, - { - "id": "sd-bee", - "name": "mSD-Bee", - "src": "sd-bee.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/bees/sd.html" - }, - { - "id": "senseboxmcu", - "name": "senseBox MCU", - "src": "senseboxmcu.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/sensebox-mcu.html" + "url": "" }, { "id": "usb-cable", "name": "USB-Kabel", "src": "usb-cable.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/zubehoer/netzteil-und-usb-kabel.html" + "url": "" + }, + { + "id": "oled", + "name": "OLED-Display", + "src": "oled.png", + "url": "https://docs.sensebox.de/hardware/zubehoer-display/" + }, + { + "id": "hdc1080", + "name": "Temperatur und Luftfeuchtigkeitssensor", + "src": "hdc1080.png", + "url": "https://docs.sensebox.de/hardware/sensoren-temperatur-luftfeuchte/" + }, + { + "id": "bmp280", + "name": "Luftdruck und Temperatursensor", + "src": "bmp280.png", + "url": "https://docs.sensebox.de/hardware/sensoren-luftdruck-temperatur/" }, { "id": "veml6070", "name": "Helligkeit und UV-Sensor", "src": "veml6070.png", - "url": "https://sensebox.github.io/books-v2/blockly/de/uebersicht/sensebox_components.html" + "url": "https://docs.sensebox.de/hardware/sensoren-helligkeit-uv/" + }, + { + "id": "co2", + "name": "CO2-Sensor(SCD30)", + "src": "scd30.png", + "url": "https://docs.sensebox.de/hardware/sensoren-co2/" + }, + { + "id": "bme680", + "name": "Umweltsensor (BME680)", + "src": "sensors-bme.png", + "url": "https://docs.sensebox.de/hardware/sensoren-umweltsensor/" + }, + { + "id": "feinstaub", + "name": "Feinstaubsensor", + "src": "feinstaub.png", + "url": "https://docs.sensebox.de/hardware/sensoren-feinstaub/" + }, + { + "id": "gps", + "name": "GPS-Modul", + "src": "sensors-gps.png", + "url": "https://docs.sensebox.de/hardware/sensoren-gps/" + }, + { + "id": "sd-bee", + "name": "mSD-Bee", + "src": "sd-bee.png", + "url": "https://docs.sensebox.de/hardware/bee-sd/" }, { "id": "wifi-bee", "name": "WiFi-Bee", "src": "wifi-bee.png", - "url": "https://sensebox.github.io/books-v2/edu/de/komponenten/bees/wifi.html" + "url": "https://docs.sensebox.de/hardware/bee-wifi/" + }, + { + "id": "lora-bee", + "name": "LoRa-Bee", + "src": "lora-bee.png", + "url": "https://docs.sensebox.de/hardware/bee-lora/" + }, + { + "id": "button", + "name": "Knopf", + "src": "button.png", + "url": "https://docs.sensebox.de/hardware/sensoren-distanz/" + }, + { + "id": "hc04", + "name": "Ultraschall-Distanzsensor", + "src": "hc04.png", + "url": "https://docs.sensebox.de/hardware/sensoren-distanz/" + }, + { + "id": "ldr", + "name": "LDR", + "src": "ldr.png", + "url": "" + }, + { + "id": "led", + "name": "LEDs", + "src": "led.png", + "url": "" + }, + { + "id": "microphone", + "name": "Mikrofon", + "src": "microphone.png", + "url": "https://docs.sensebox.de/hardware/sensoren-mikro/" + }, + { + "id": "piezo", + "name": "Piezo", + "src": "piezo.png", + "url": "" + }, + { + "id": "rgb-led", + "name": "RGB-LED", + "src": "rgb-led.png", + "url": "" + }, + { + "id": "jst-adapter", + "name": "JST-Adapterkabel", + "src": "jst-adapter.png", + "url": "" + }, + { + "id": "jst-jst", + "name": "JST-JST Kabel", + "src": "jst-jst.png", + "url": "" + }, + { + "id": "jumperwire", + "name": "Steckkabel", + "src": "jumperwire.png", + "url": "" + }, + { + "id": "resistor-10kohm", + "name": "10 kOhm Widerstand", + "src": "resistor-10kohm.png", + "url": "" + }, + { + "id": "resistor-470ohm", + "name": "470 Ohm Widerstand", + "src": "resistor-470ohm.png", + "url": "" } -] +] \ No newline at end of file diff --git a/src/data/tutorial/SendenVonMesswertenueberLoRa.json b/src/data/tutorial/SendenVonMesswertenueberLoRa.json new file mode 100644 index 0000000..0a36a60 --- /dev/null +++ b/src/data/tutorial/SendenVonMesswertenueberLoRa.json @@ -0,0 +1,61 @@ +{ + "id": "1605532123025", + "title": "Senden von Messwerten ueber LoRa", + "steps": [ + { + "id": 1, + "type": "instruction", + "headline": "Übertragen von Messwerten über LoRa", + "text": "In diesem Tutorial lernst du ein Umweltphänomen deiner Umgebung mithilfe der senseBox zu messen, die Daten per LoRa zu übertragen und im The Things Network abzurufen (sowie an die openSenseMap weiterzuleiten). In diesem Beispiel wird der Temperatur- und Luftfeuchtigkeitssensor verwendet. Du kannst allerdings jeden anderen senseBox Sensor verwenden.", + "hardware": [ + "senseboxmcu", + "usb-cable", + "oled", + "hdc1080", + "lora-bee" + ], + "requirements": [ + 1602160534286 + ] + }, + { + "id": 2, + "type": "instruction", + "headline": "Aufbau", + "text": "Schließe den Temperatur- und Luftfeuchtigkeitssensor mithilfe des JST-Kabels an einem der I2C/Wire-Anschlüsse an deine senseBox MCU an. Stecke das LoRa-Bee auf den XBEE-Steckplatz 1. " + }, + { + "id": 3, + "type": "instruction", + "headline": "The Things Network", + "text": "Um die Vorteile von TTN nutzen zu können, registriere dich auf der Seite thethingsnetwork.org. Wähle anschließend im Dropdown-Menü „Console“ aus und füge eine neue Anwendung hinzu, indem du zuerst „Application“ und anschließend „Add Application“ auswählst. Hier gibst du ausschließlich eine individuelle Application ID an und bestätigst dann deine Eingabe. Hast du die Application hinzugefügt, wird dir darauf folgend eine Übersicht über die von dir gewählte Application ID und die Application EUIS geliefert.\n\n![](/images/projects/LoRaWAN-Cayenne/0.png - Logo)\nFüge nun zu deiner neuen Application noch einen Device hinzu. Gehe dafür unter der Rubrik „Devices“ auf „register device“. Gib deinem Device eine Device ID. Durch einen Klick auf die geschwungenen Pfeile (“generate”) bei der DeviceEUI erfolgt die Generierung der DeviceEUI automatisch.\n\n/images/projects/LoRaWAN-Cayenne/1.png - Logo\nDurch einen Klick auf „Register“ speicherst du deine Eingabe und The Things Network liefert dir eine Übersicht mit der Application ID und der Device ID.\n\n/images/projects/LoRaWAN-Cayenne/2.png - Logo\nNun hast du bereits erfolgreich eine Application und einen Device hinzugefügt. Möchtest du die Daten nicht nur bei The Things Network, sondern auf einer anderen Plattform abrufen können, so kannst du über dieses Projekt hinaus eine Integration anlegen. Diese Möglichkeit wird dir in der Menüleiste unter ‘Integration’ geboten." + }, + { + "id": 4, + "type": "instruction", + "headline": "Programmierung", + "text": "## Schritt 1: LoRa initialisieren\nZuletzt muss noch deine bereits aufgebaute senseBox in das bisherige System eingebunden werden. Dazu bietet sich am besten Blockly an, womit du die senseBox in wenigen Schritten programmieren kannst. Rufe die Seite blockly.sensebox.de auf und wähle die senseBox MCU aus. Damit du die TTN Infrastruktur nutzen kannst, muss diese zuerst im ‘Setup’ initialisiert werden. Nutze dazu den Block ‘Initialize Lora (OTAA)’, den du unter der Kategorie ‘Web/ Lora’ findest. Das Übertragungsintervall kannst du anpassen, aber denke daran, dass die übertragbare Datenmenge begrenzt ist.\n\nFüge deine TTN EUIs ein und achte dabei auf das richtige Format. Device EUI und Application EUI müssen im lsb-Format genutzt werden. Der AppKey im msb-Format. In der Übersicht bei The Things Network kannst du durch einen Klick auf die Pfeile die Veränderung zum richtigen Format vornehmen und anschließend die passenden Werte kopieren und in Blockly einfügen.", + "xml": "\n \n \n \n DEVICE ID\n APP ID\n APP KEY\n 5\n \n \n \n \n \n \n 1\n \n \n Temperature\n \n \n \n \n \n \n \n" + }, + { + "id": 5, + "type": "instruction", + "headline": "Schritt 2: Cayenne Nachricht", + "text": "Füge anschließend in der ‘Endlosschleife’ den Block ‘Sende als Cayenne Nachricht’ ein und wähle das Umweltphänomen und den passenden Sensor aus der Kategorie ‘Sensoren’ aus. Die Werte werden so automatisch decodiert. Möchtest du mehrere Umweltphänomene gleichzeitig erfassen, so solltest du darauf achten, dass für jedes Phänomen ein neuer Kanal verwendet wird.\n\n", + "xml": "\n \n \n \n DEVICE ID\n APP ID\n APP KEY\n 5\n \n \n \n \n \n \n 1\n \n \n Temperature\n \n \n \n \n \n \n \n" + }, + { + "id": 6, + "type": "task", + "headline": "Übertrage die Messwerte über LoRa", + "text": "Übertrage die Messwerte des Temperatur- und Luftfeuchtigkeitssensor über LoRa an das TheThingsNetwork. Verwende dazu das Cayenne Payload und OTAA als Aktivierungsmethode.", + "xml": "\n \n \n \n DEVICE ID\n APP ID\n APP KEY\n 5\n \n \n \n \n \n \n 1\n \n \n Temperature\n \n \n \n \n \n \n \n" + }, + { + "id": 7, + "type": "instruction", + "headline": "Weiterleitung an die openSenseMap", + "text": "Die Weiterleitung der Daten mit dem Cayenne-Payload ist auch an die openSenseMap möglich. Wie du die passenden Einstellungen dafür triffst, wird nun erläutert. Allerdings handelt es sich hierbei um eine BETA-Version, weshalb es zu kleinen Problemen kommen kann. Wählst du also eine andere oder keine Integration, so kannst du dieses Kapitel zur openSenseMap überspringen und mit dem nachfolgenden Kapitel ‚Cayenne LPP‘ weitermachen.\n\nDie Möglichkeit des Hinzufügens der openSenseMap als Integration wird dir in der Menüleiste unter „Integration“ geboten. Klicke auf „Add Integration“ und wähle anschließend den Button „HTTP Integration“ aus. Bestimme auch hier wieder eine individuelle ID und wähle anschließend „default key“ als Access Key aus, „POST“ als Method und füge https://ttn.opensensemap.org/v1.1 als URL ein, sodass die Daten an die openSenseMap weitergeleitet werden.\n\n/images/projects/LoRaWAN-Cayenne/3.png - Logo\nDa die erhobenen Daten auf der openSenseMap als Endpunkt angezeigt werden sollen, muss hier zunächst einmal eine neue senseBox registriert werden. Melde dich dazu auf opensensemap.org an und füge eine neue senseBox hinzu. Wähle dabei das Modell senseBox:edu aus und klicke auf den passenden Sensor und das Umweltphänomen, dass du messen möchtest. Klicke anschließend auf „The Things Network“ und fülle die Felder aus. Verwende als Dekodierungs-Profil ‚Cayenne LPP (beta)‘ sowie die Application ID und die Device ID, die du zuvor benannt hast, denn nur so kann eine genaue Zuordnung zwischen der senseBox, der openSenseMap und The Things Network stattfinden. Bestätige anschließend deine Eingaben und schon hast du die Registrierung der neuen senseBox auf der openSenseMap abgeschlossen.\n\n/images/projects/LoRaWAN-Cayenne/4.png - Logo\nCayenne LPP\nJetzt musst du nur noch vorgeben, wie die Daten decodiert werden sollen. Da wir uns in diesem Projekt für den Cayenne LPP entschieden haben, wähle dieses Format unter dem Menüpunkt „Payload Formats’“ aus. Damit hast du alle nötigen Einstellungen bei The Things Network getroffen.\n\n/images/projects/LoRaWAN-Cayenne/5.png - Logo" + } + ] +} \ No newline at end of file diff --git a/src/data/tutorials.js b/src/data/tutorials.js index e3ab05e..0f9d1ec 100644 --- a/src/data/tutorials.js +++ b/src/data/tutorials.js @@ -4,6 +4,7 @@ let tutorials = [ require('./tutorial/Wenn-DannBedingungen.json'), require('./tutorial/VerwendungVonVariablen.json'), require('./tutorial/AnzeigeVonMesswertenAufDemDisplay.json'), + require('./tutorial/SendenVonMesswertenueberLoRa.json') require('./tutorial/MesswerteAnDieOpenSenseMapSenden.json') ]