diff --git a/.gitignore b/.gitignore index f351223..b083ed4 100755 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ # Production /build -/i18n # Generated files .docusaurus diff --git a/docs/boards/mcu/mcu-overview.mdx b/docs/boards/mcu/mcu-overview.mdx index e4f5df1..a1193fd 100644 --- a/docs/boards/mcu/mcu-overview.mdx +++ b/docs/boards/mcu/mcu-overview.mdx @@ -1,3 +1,8 @@ +--- +title: senseBoxMCU +hide_title: true +--- + import mcus2top from "@site/static/img/mcus2/mcus2top.png"; import AlertBox from "@site/src/components/AlertBox/AlertBox"; import mcuPorts from "@site/static/img/mcu/sensebox-mcu-ports.png"; @@ -21,180 +26,194 @@ import truebner from "/img/hardware-bilder/bodenfeuchte-temperatursensor/sensore import wifiBee from "@site/static/img/hardware-bilder/bees/wifi-bee/wifi.png"; import sdBee from "@site/static/img/hardware-bilder/bees/sd-bee/msd.png"; import loraBee from "@site/static/img/hardware-bilder/bees/lora-bee/LoraBee_Bottom.png"; +import Admonition from '@theme/Admonition'; -
-

senseBoxMCU

-

Der senseBox-Microcontroller ist speziell für die Bedürfnisse der senseBox entwickelt. Deshalb hat der Microcontroller insbesondere drei Eigenschaften: er ist schnell, energiesparend und hat einen großen Programmspeicher.

-

+

+

senseBoxMCU

+

+ Der senseBox-Microcontroller ist speziell für die Bedürfnisse der senseBox entwickelt. Deshalb hat der Microcontroller insbesondere drei Eigenschaften: er ist schnell, energiesparend und hat einen großen Programmspeicher. +

+

Auch ohne Vorkenntnisse kann der Microcontroller ganz einfach mit der Übertragung eines vorgefertigten Sketches in 10 Minuten “programmiert” werden. Für fortgeschrittene Programmierer kann wie gewohnt die Arduino IDE eingesetzt werden, um neue und individuelle Projekte durchzuführen. -

-
- senseBox MCU -
+

+
+ senseBox MCU +
+ ## Anschlüsse Klicke auf die unten stehenden Anschlüsse um zu sehen welcher Sensor dort angeschlossen wird. +
- - - I2C/Wire Ports - - -
-

Sensoren und Accessoire an den I2C/Wire Ports

-
-
- Your Image -

Lichtsensor

-
-
- Your Image -

Temperatur und Luftfeuchte

-
-
- Your Image -

Luftdruck

-
-
- Your Image -

Time of Flight(Tof)

-
-
- Your Image -

Umweltsensor

-
-
- Your Image -

CO2-Sensor

-
-
- Your Image -

Display

-
-
-
-
-
- - - UART/Serial Port - - -
-
- Your Image -

Feinstaub (SDS011)

-
-
- Your Image -

Feinstaub (SPS30)

-
-
-
-
- - - Digital/Analog Ports - - -
-
- Your Image -

Kondensationsmikro

-
-
- Your Image -

Ultraschall Distanzsensor

-
-
- Your Image -

Bodenfeuchte Sensor

-
-
-
-
- - - XBEE - - -
-
- Your Image -

WiFi Bee

-
-
- Your Image -

SD Bee

-
-
- Your Image -

LoRa Bee

-
-
-
-
+ + + I2C/Wire Anschlüsse + + +
+

Sensoren und Zubehör an den I2C/Wire Anschlüssen

+
+
+ Dein Bild +

Lichtsensor

+
+
+ Dein Bild +

Temperatur- und Feuchtigkeitssensor

+
+
+ Dein Bild +

Luftdrucksensor

+
+
+ Dein Bild +

Time of Flight (ToF)

+
+
+ Dein Bild +

Umweltsensor

+
+
+ Dein Bild +

CO2-Sensor

+
+
+ Dein Bild +

Display

+
+
+
+
+
+ + + UART/Serielle Anschlüsse + + +
+
+ Dein Bild +

Feinstaub (SDS011)

+
+
+ Dein Bild +

Feinstaub (SPS30)

+
+
+
+
+ + + Digitale/Analoge Anschlüsse + + +
+
+ Dein Bild +

Kondensatormikrofon

+
+
+ Dein Bild +

Ultraschall-Distanzsensor

+
+
+ Dein Bild +

Bodenfeuchtesensor

+
+
+
+
+ + + XBEE + + +
+
+ Dein Bild +

WiFi Bee

+
+
+ Dein Bild +

SD Bee

+
+
+ Dein Bild +

LoRa Bee

+
+
+
+
+
+
+ +

+ In seltenen Fällen kann es vorkommen, dass sich noch eine Schutzfolie + auf den Steckplätzen der XBees befindet. Diese lässt sich vorsichtig + mit einer Pinzette entfernen, um die Steckplätze nutzen zu können. +

+
## Technische Spezifikationen diff --git a/docs/boards/mcus2/mcu-s2-overview.mdx b/docs/boards/mcus2/mcu-s2-overview.mdx index 9e054c1..e071ad7 100644 --- a/docs/boards/mcus2/mcu-s2-overview.mdx +++ b/docs/boards/mcus2/mcu-s2-overview.mdx @@ -1,17 +1,22 @@ +--- +title: MCU S2 (ESP32) +hide_title: true +--- + import Admonition from "@theme/Admonition"; import React, { useState } from "react"; import { motion } from "framer-motion"; import image from "@site/static/img/mcus2/mcus2top.png"; import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, } from "@site/src/components/ui/tooltip"; import { - Popover, - PopoverContent, - PopoverTrigger, + Popover, + PopoverContent, + PopoverTrigger, } from "@site/src/components/ui/popover"; import { Button } from "@site/src/components/ui/button"; import mcus2ports from "@site/static/img/mcus2/mcus2-ports.png"; @@ -26,108 +31,117 @@ import ImageWithText from "@site/src/components/ImageWithText/ImageWithText"; import mcus2top from "@site/static/img/mcus2/mcus2top.png";
-

MCU S2 (ESP32)

-

- Der Mikrocontroller auf ESP-32 Basis bietet eine Vielzahl von neuen - Möglichkeiten in Hinsicht auf Datenübertragung, Datenaustausch und - Bedienung. -

-
-
- Your Image{" "} -
-
-

Anschlüsse

-
- - - I2C/Wire Ports - - -
-

Sensoren und Accessoire an den I2C/Wire Ports

-
-
- Your Image -

Lichtsensor

-
-
- Your Image -

Temperatur und Luftfeuchte

-
-
- Your Image -

Luftdruck

-
-
- Your Image -

Time of Flight(Tof)

-
-
- Your Image -

Display

-
-
-
-
-
- - - Digital/Analog Ports - - -
-

Sensoren und Accessoire an den Digital/Analog Ports

-
-
- Your Image -

LED-Matrix

-
-
-
-
-
-
-
-
-

I2C/Wire Daisy Chain

-

- Eine I2C-Daisy-Chain ermöglicht die einfache und effiziente Verbindung - mehrerer Geräte in einer seriellen Kommunikationskette unter Verwendung - des I2C-Protokolls. Durch die Daisy-Chain-Konfiguration kann jedes Gerät - in der Kette Daten senden und empfangen. Diese Methode ist besonders - nützlich in Anwendungen, bei denen Platz und Ressourcen begrenzt sind, - da sie die Anzahl der benötigten physischen Verbindungen minimiert und - gleichzeitig eine robuste und zuverlässige Datenkommunikation - ermöglicht. -

-
- -
-
-
+

MCU S2 (ESP32)

+

+ Der Mikrocontroller auf ESP-32 Basis bietet eine Vielzahl von neuen + Möglichkeiten in Hinsicht auf Datenübertragung, Datenaustausch und + Bedienung. +

+
+
+ Your Image +
+
+

Anschlüsse

+
+ + + I2C/Wire Ports + + +
+

Sensoren und Accessoire an den I2C/Wire Ports

+
+
+ Your Image +

Lichtsensor

+
+
+ Your Image +

Temperatur und Luftfeuchte

+
+
+ Your Image +

Luftdruck

+
+
+ Your Image +

Time of Flight(Tof)

+
+
+ Your Image +

Display

+
+
+
+
+
+ + + Digital/Analog Ports + + +
+

Sensoren und Accessoire an den Digital/Analog Ports

+
+
+ Your Image +

LED-Matrix

+
+
+
+
+
+
+
+
+ +

+ In seltenen Fällen kann es vorkommen, dass sich noch eine Schutzfolie + auf den Steckplätzen der XBees befindet. Diese lässt sich vorsichtig + mit einer Pinzette entfernen, um die Steckplätze nutzen zu können. +

+
+
+
+

I2C/Wire Daisy Chain

+

+ Eine I2C-Daisy-Chain ermöglicht die einfache und effiziente Verbindung + mehrerer Geräte in einer seriellen Kommunikationskette unter Verwendung + des I2C-Protokolls. Durch die Daisy-Chain-Konfiguration kann jedes Gerät + in der Kette Daten senden und empfangen. Diese Methode ist besonders + nützlich in Anwendungen, bei denen Platz und Ressourcen begrenzt sind, + da sie die Anzahl der benötigten physischen Verbindungen minimiert und + gleichzeitig eine robuste und zuverlässige Datenkommunikation + ermöglicht. +

+
+ +
+
+
diff --git a/docs/boards/mini/mini-overview.mdx b/docs/boards/mini/mini-overview.mdx index 5e467b4..9fab72c 100644 --- a/docs/boards/mini/mini-overview.mdx +++ b/docs/boards/mini/mini-overview.mdx @@ -1,5 +1,6 @@ --- title: senseBox:mini +hide_title: true --- import mini from '@site/static/img/mini/sensebox-mini.png' @@ -8,6 +9,7 @@ import umweltsensor from '@site/static/img/hardware-bilder/umweltsensor/bme.png' import miniRgbLed from '@site/static/img/mini/mini-rgb-led.png' import wifiBee from '@site/static/img/hardware-bilder/bees/wifi-bee/wifi.png' import display from '@site/static/img/hardware-bilder/oled/display.png' +import Admonition from '@theme/Admonition';

senseBox:mini

@@ -27,7 +29,10 @@ In der senseBox:mini sind folgende Komponenten enthalten:
- +
+ Neopixel RGB LED +

Neopixel RGB LED

+
@@ -38,6 +43,16 @@ Darüber hinaus ist auf dem Board ein SD-Kartenmodul verbaut und gibt folgende S - 1x UART - 1x Digital Analog Port +
+ +

+ In seltenen Fällen kann es vorkommen, dass sich noch eine Schutzfolie + auf den Steckplätzen der XBees befindet. Diese lässt sich vorsichtig + mit einer Pinzette entfernen, um die Steckplätze nutzen zu können. +

+
+
+ ## Kleiner Computer mit großem Spaß Mit der senseBox:mini wird das Coden zum Kinderspiel. Der Einstieg in die Programmierung der senseBox ist einfach, Kinder und Erwachsene können ohne Vorkenntnisse sofort starten und in kürzester Zeit Erfolgserlebnisse feiern. Vom Blinken der eingebauten RGB LED, Datenspeicherung auf SD-Karte, bis hin zur IoT-Umweltmessstation ist alles möglich. diff --git a/docs/editors/arduino/installation-bsp.mdx b/docs/editors/arduino/installation-bsp.mdx index 7556b71..b40ff55 100644 --- a/docs/editors/arduino/installation-bsp.mdx +++ b/docs/editors/arduino/installation-bsp.mdx @@ -41,6 +41,6 @@ import { useBoardStore } from '@site/src/lib/stores/store'

- Gib "ESP32" oben in die Suchleiste ein, um die Packages schneller zu finden und installiere das Board `esp32` von Espressif Systems. Achtung! Stelle sicher , dass du mindestens die Version 2.0.15-alpha3 installierst! . + Gib "senseBox" oben in die Suchleiste ein, um die Packages schneller zu finden und installiere das Board `esp32` von Espressif Systems. Achtung! Stelle sicher , dass du mindestens die Version 2.0.15-alpha3 installierst! .

diff --git a/docs/editors/blockly/blocks/logik.md b/docs/editors/blockly/blocks/logik.md index 662a50c..9f21847 100644 --- a/docs/editors/blockly/blocks/logik.md +++ b/docs/editors/blockly/blocks/logik.md @@ -55,8 +55,8 @@ ______________________________________________________________________________ | :-------------------: | :----------: | | gleich | = | | ungleich | ≠ | -| kleiner | < | -| größer | < | +| kleiner | {'<'} | +| größer | {'>'} | | kleiner oder gleich | ≤ | | größer oder gleich | ≥ | ______________________________________________________________________________ diff --git a/docs/editors/blockly/blocks/web/opensensemap.mdx b/docs/editors/blockly/blocks/web/opensensemap.mdx index ae9214b..9824524 100644 --- a/docs/editors/blockly/blocks/web/opensensemap.mdx +++ b/docs/editors/blockly/blocks/web/opensensemap.mdx @@ -14,13 +14,7 @@ Um Messwerte an die openSenseMap senden zu können, musst du deine Box zuerst mi ![](/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg) -Im ersten Dropdown-Menü des Blocks kannst du auswählen, ob deine senseBox an die herkömmliche openSenseMap oder an workshop.openSenseMap senden soll. - -> **opensensemap.org:** senseBoxen, die für langfristige Messreihen angelegt wurden. -> -> **workshop.opensensemap.org:** senseBoxen, die im Rahmen von kurzen Experimenten oder zum Testen angelegt wurden. - -Im zweiten Dropdown-Menü des Blocks wählst du aus, ob es sich bei deiner senseBox um eine stationäre oder eine mobile Station handelt und im Textfeld "senseBox ID" die nach der Registrierung angezeigte senseBox-ID eintragen. +Im Dropdown-Menü des Blocks wählst du aus, ob es sich bei deiner senseBox um eine stationäre oder eine mobile Station handelt und im Textfeld "senseBox ID" die nach der Registrierung angezeigte senseBox-ID eintragen. Im freien Blockabschnitt `Sensoren` müssen dann die angeschlossenen Sensoren mithilfe des `Sende Messwert an die openSenseMap`-Blocks angeknüpft werden. ![](/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-2.svg) diff --git a/docs/hardware/accessoires/cable_overview.mdx b/docs/hardware/accessoires/cable_overview.mdx new file mode 100644 index 0000000..13ad617 --- /dev/null +++ b/docs/hardware/accessoires/cable_overview.mdx @@ -0,0 +1,28 @@ +--- +sidebar_position: 1 +title: Kabelübersicht +hide_title: false +description: Übersicht über alle verfügbaren Anschlusskabel +--- + +import Admonition from "@theme/Admonition"; +import TutorialPorts from '@site/src/components/TutorialPorts/TutorialPorts' +import CableOverview from '@site/src/components/CableOverview/CableOverview' + +# Kabelübersicht + +Für den Anschluss von Sensoren oder Erweiterungsmodulen an die senseBox MCUs werden verschiedene Kabeltypen benötigt. Welche Kabel konkret gebraucht werden, hängt von der jeweiligen Version der MCU und den verwendeten Sensoren ab. + +Bitte informiere dich vorab, welche Anschlüsse dein Setup benötigt. Falls du dir unsicher bist, helfen wir dir gerne weiter unter [support@sensebox.de](mailto:support@sensebox.de). + + + + + +## Links + +- #### [Shop](https://sensebox.kaufen/parts/zubehor) +- #### [Support](mailto:support@sensebox.de) diff --git a/docs/hardware/accessoires/led-matrix.mdx b/docs/hardware/accessoires/led-matrix.mdx index 9e36071..1747d98 100644 --- a/docs/hardware/accessoires/led-matrix.mdx +++ b/docs/hardware/accessoires/led-matrix.mdx @@ -10,6 +10,8 @@ import TutorialPorts from '@site/src/components/TutorialPorts/TutorialPorts' # LED-Matrix +Die 12x8 LED-Matrix ermöglicht es, bunte Displays mit Neopixeln zu programmieren. So können LEDs individuell leuchten und Schriftzüge oder Motive in verschiedenen Farben dargestellt werden. Zudem lassen sich Informatik-Konzepte wie Arrays visualisieren. + {' '} ## Technische Informationen @@ -17,17 +19,76 @@ import TutorialPorts from '@site/src/components/TutorialPorts/TutorialPorts' - 12x8 Matrix - 96 LEDs +--- + ## Anschluss + + +--- + ## Programmierung (Blockly) -In Blockly muss die LED Matrix zuerst initialisiert werden. Dort musst du noch den Port angeben an dem du die LED Matrix angeschlossen hast. Danach kannst du zum Beispiel einen Text anzeigen lassen. +In Blockly muss die LED-Matrix zuerst initialisiert werden. Dort musst du noch den Port angeben, an dem du die LED-Matrix angeschlossen hast. Danach kannst du z.B. einen Text anzeigen lassen. ![Blockly](/img/hardware-bilder/led-matrix/led-matrix-block.svg) -## Projekte +--- + + +## Bitmaps auf der LED-Matrix + +Die LED-Matrix kann unter anderem Buchstaben und Zahlen anzeigen, aber auch selbst gestaltete **Pixelgrafiken**, sogenannte **Bitmaps**. + +Eine Bitmap besteht aus einem Raster von **12x8 LEDs** – jede LED kann einzeln auf verschiedene Arten angesteuert werden. + +### Was ist eine Bitmap? + +Eine Bitmap ist im Grunde eine Tabelle, bei der jede Zelle (LED) eine Farbe bekommt. In Blockly kannst du diese als **bunte Grafik** darstellen, bei der jede LED eine eigene Farbe bekommt (RGB-Wert). +Schwarze Zellen stellen ausgeschaltete LEDs dar. So kannst du viele verschiedene **Pixelgrafiken** erstellen und auf der LED-Matrix anzeigen lassen. + + +![Happy Bitmap](/img/hardware-bilder/led-matrix/happy_bitmap.svg) + + +### Text anzeigen +Buchstaben und Zahlen können auf der LED-Matrix angezeigt werden. Diese müssen nicht zwingend in der Bitmap-Form erstellt werden, sondern können in Blockly direkt mit dem entsprechenden Block definiert werden. + + +![Text Block](/img/hardware-bilder/led-matrix/text_block.svg) + + +### Emojis anzeigen + +In Blockly gibt es einige voreingestellte Emojis, die auf der LED-Matrix angezeigt werden können. Dazu gehören z.B. ein Smiley, ein Hut oder ein Ritter. +Um die Emojis anzuzeigen, musst du nur den entsprechenden Block in Blockly verwenden. + + +![Emoji Block](/img/hardware-bilder/led-matrix/emoji_block.svg) + +### Weiteres +- Zusätzlich zur Erstellung von Bitmaps mit Hilfe des visuellen Blocks, können erfahrene Nutzer auch jede einzelne LED ansteuern, indem die **RGB565 Farbwerte** für jede einzelne LED definiert werden. +Dafür müssen in dem entsprechenden Block 96 RGB565 Farbwerte angegeben werden, die die Farben der LEDs festlegen. Die LEDs werden von oben links nach unten rechts angesteuert. + +> 💡 **Tipp**: Auf der folgenden [Website](https://rgbcolorpicker.com/565) ist es möglich eine Farbe auszuwählen und sich den RGB565 Farbwert ausgeben zu lassen. + + +![RGB565 Block](/img/hardware-bilder/led-matrix/rgb565_block.svg) + + +- Mit dem "Pixel setzen" Block kannst du auch eigene Bitmaps erstellen, indem du die einzelnen Pixel der LED-Matrix ansteuerst. Dazu musst du die Koordinaten der Pixel angeben, die du ansteuern möchtest. +Die Koordinaten beginnen bei 0 und enden bei 11 für die x-Achse und bei 7 für die y-Achse. So können einzelne Pixel der LED-Matrix mit wechselnden Farben bespielt werden. +Auf diese Art ist es möglich kleinere Animationen zu erstellen. + +> 💡 **Tipp**: Wenn du mehrere Pixel färbst, kann es zum Flackern der LEDs kommen. Deaktiviere „Zeige sofort“ bei allen Blöcken und aktiviere es nur beim letzten Block in der Reihe. So wird alles auf einmal angezeigt. + +![Setze Pixel Block](/img/hardware-bilder/led-matrix/set_pixel_block.svg) + +--- + +## Beispielprojekte mit der LED-Matrix - #### [Anzeige von Emojis und Motiven](https://sensebox.de/projects/de/2024-04-02-smiley) - #### [Tiefenbilder auf der LED-Matrix anzeigen](https://sensebox.de/projects/de/2024-04-02-tof-led) diff --git a/docs/hardware/accessoires/rgb-led-esp32.mdx b/docs/hardware/accessoires/rgb-led-esp32.mdx index 0f97e24..46efdd3 100644 --- a/docs/hardware/accessoires/rgb-led-esp32.mdx +++ b/docs/hardware/accessoires/rgb-led-esp32.mdx @@ -44,6 +44,8 @@ void loop() { In Blockly kann der Sensor über folgenden Block ausgelesen werden: +![](/img/blockly-bilder/rgb-led-esp-32/esp_32.svg) + ## Projekte ### [RGB-LED Fader](https://sensebox.de/projects/de/2024-01-10-rgb-led_s2) diff --git a/docs/hardware/bee/ethernet-bee.mdx b/docs/hardware/bee/ethernet-bee.mdx index 2cf2d3c..5a6b691 100644 --- a/docs/hardware/bee/ethernet-bee.mdx +++ b/docs/hardware/bee/ethernet-bee.mdx @@ -68,4 +68,4 @@ Das LAN-Bee wird ohne LAN-Kabel geliefert. Für eine dauerhafte Outdoor-Anbringu > - [Shop](https://sensebox.kaufen/product/lan-bee) -> - [WIZnet W5500 Data Sheet](http://wizwiki.net/wiki/lib/exe/fetch.php/products:w5500:w5500_ds_v109e.pdf) \ No newline at end of file +> - [WIZnet W5500 Data Sheet](https://docs.wiznet.io/img/products/w5500/W5500_ds_v110e.pdf) \ No newline at end of file diff --git a/docs/hardware/bee/lora-bee.mdx b/docs/hardware/bee/lora-bee.mdx index 4754b6e..5b87497 100644 --- a/docs/hardware/bee/lora-bee.mdx +++ b/docs/hardware/bee/lora-bee.mdx @@ -55,4 +55,4 @@ Das Blockly Tutorial zur LoRa Verwendung findest du [hier](/docs/editors/blockly - #### [LoRaWAN IoT-Wetterstation](https://sensebox.de/projects/de/2019-05-10-lora-osem-tago) > - [Shop](https://sensebox.kaufen/product/lora-bee) -> - [HopeRF RFM9xW Datenblatt](https://www.hoperf.com/modules/lora/RFM95.html) +> - [Data Sheet](https://sensebox.de/non_img_assets/datenblaetter/pdf_output/Datenblatt-senseBox_LoRa_Bee_868_Drahtantenne.pdf) diff --git a/docs/hardware/bee/sd-bee.mdx b/docs/hardware/bee/sd-bee.mdx index ca478dc..750e59d 100644 --- a/docs/hardware/bee/sd-bee.mdx +++ b/docs/hardware/bee/sd-bee.mdx @@ -86,4 +86,4 @@ Zusätzlich holen wir aus der Kategorie `Zeit` den Block für ein Interval und a > - [Shop](https://sensebox.kaufen/product/sd-bee) -> - [WIZnet W5500 Data Sheet](http://wizwiki.net/wiki/lib/exe/fetch.php/products:w5500:w5500_ds_v109e.pdf) \ No newline at end of file +> - [Data Sheet](https://sensebox.de/non_img_assets/datenblaetter/pdf_output/Datenblatt-senseBox_SD_Bee.pdf) \ No newline at end of file diff --git a/docs/hardware/bee/wifi-bee.mdx b/docs/hardware/bee/wifi-bee.mdx index a4fe205..2649c27 100644 --- a/docs/hardware/bee/wifi-bee.mdx +++ b/docs/hardware/bee/wifi-bee.mdx @@ -35,10 +35,6 @@ Das Wifi-Bee ist das Verbindungsstück, um die senseBox mit dem Internet zu verb -:::info -Bei einigen unserer WiFi-Bees vom Typ WINC1500 kann es vorkommen, dass eine veraltete Firmware (Version 19.4.4) installiert ist. Das kann zu Übertragungsproblemen führen. Sollten diese Probleme bei dir auftreten, schaue dir !!!! an, um die Firmware zu aktualisieren. -::: - ## Technische Informationen * "Plug-in-and-Go" senseBox kompatibel @@ -92,4 +88,4 @@ Wenn bei allen Ausgaben im seriellen Monitor Werte angezeigt werden, insbesonder > - [Shop](https://sensebox.kaufen/product/wifi-bee) -> - [Atmel ATWINC1500 Data Sheet](http://ww1.microchip.com/downloads/en/DeviceDoc/ATWINC15x0-MR210xB-IEEE-802.11-b-g-n-SmartConnect-IoT-Module-Data-Sheet-DS70005304C.pdf) +> - [Data Sheet](https://sensebox.de/non_img_assets/datenblaetter/pdf_output/Datenblatt-senseBox_WiFi_Bee.pdf) diff --git a/docs/hardware/sd.mdx b/docs/hardware/sd.mdx index fa3a7fd..a3eaeb9 100644 --- a/docs/hardware/sd.mdx +++ b/docs/hardware/sd.mdx @@ -34,7 +34,7 @@ In diesem Sketch werden die Werte von einem Sensor(in diesem Fall der HDC1080) a #include #include #include "FS.h" -#include // http://librarymanager/All#Adafruit_HDC1000_Library +#include // https://github.com/adafruit/Adafruit_HDC1000_Library const long intervalInterval = 60000; long time_startInterval = 0; diff --git a/docs/hardware/sensors/lautstaerke.md b/docs/hardware/sensors/lautstaerke.md index 3c2497a..d7cd3c5 100644 --- a/docs/hardware/sensors/lautstaerke.md +++ b/docs/hardware/sensors/lautstaerke.md @@ -8,7 +8,10 @@ description: DFRobot SEN0232 Gravity Der DFRobot SEN0232 misst die Lautstärke und gibt die Messwerte in Dezibel aus. -![](/img/hardware-bilder/lautstaerke/sound.png) +
+ Lautstärkesensor +
Lautstärkesensor DFRobot SEN0232
+
## Technische Informationen @@ -19,8 +22,10 @@ Der DFRobot SEN0232 misst die Lautstärke und gibt die Messwerte in Dezibel aus. * Messspanne: zwischen 30dBA und 130 dBA akkurat * Messintervall: 125ms -![](/img/hardware-bilder/lautstaerke/sound-anschluss.png) - +
+ Lautstärkesensor Anschluss +
Anschlussschema des Lautstärkesensors
+
## Programmierung (Arduino) diff --git a/docusaurus.config.js b/docusaurus.config.js index fe3fad9..c14126b 100755 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -79,7 +79,8 @@ const config = { ({ colorMode: { defaultMode: 'light', - disableSwitch: true, + disableSwitch: false, + respectPrefersColorScheme: true, }, navbar: { title: 'senseBox Docs', diff --git a/i18n/en/docusaurus-plugin-content-docs/current/boards/mcu/mcu-overview.mdx b/i18n/en/docusaurus-plugin-content-docs/current/boards/mcu/mcu-overview.mdx index cc77243..69cff99 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/boards/mcu/mcu-overview.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/boards/mcu/mcu-overview.mdx @@ -26,6 +26,7 @@ import truebner from "/img/hardware-bilder/bodenfeuchte-temperatursensor/sensore import wifiBee from "@site/static/img/hardware-bilder/bees/wifi-bee/wifi.png"; import sdBee from "@site/static/img/hardware-bilder/bees/sd-bee/msd.png"; import loraBee from "@site/static/img/hardware-bilder/bees/lora-bee/LoraBee_Bottom.png"; +import Admonition from '@theme/Admonition';

senseBoxMCU

@@ -46,166 +47,174 @@ import loraBee from "@site/static/img/hardware-bilder/bees/lora-bee/LoraBee_Bott ## Ports Click on the ports below to see which sensor is connected there.
- - - I2C/Wire ports - - -
-

Sensoren und Accessoire an den I2C/Wire Ports

-
-
- Your Image -

Light sensor

-
-
- Your Image -

Temperature and humidity

-
-
- Your Image -

Air pressure

-
-
- Your Image -

Time of Flight(Tof)

-
-
- Your Image -

Environmental sensor

-
-
- Your Image -

CO2 sensor

-
-
- Your Image -

Display

-
-
-
-
-
- - - UART/Serial port - - -
-
- Your Image -

Fine dust (SDS011)

-
-
- Your Image -

Fine dust (SPS30)

-
-
-
-
- - - Digital/Analogue ports - - -
-
- Your Image -

Condenser mic

-
-
- Your Image -

Ultrasonic distance sensor

-
-
- Your Image -

Soil moisture sensor

-
-
-
-
- - - XBEE - - -
-
- Your Image -

WiFi Bee

-
-
- Your Image -

SD Bee

-
-
- Your Image -

LoRa Bee

-
-
-
-
+ + + I2C/Wire Ports + + +
+

Sensoren und Accessoire an den I2C/Wire Ports

+
+
+ Your Image +

Light sensor

+
+
+ Your Image +

Temperature and humidity

+
+
+ Your Image +

Air pressure

+
+
+ Your Image +

Time of Flight(Tof)

+
+
+ Your Image +

Environmental sensor

+
+
+ Your Image +

CO2 sensor

+
+
+ Your Image +

Display

+
+
+
+
+
+ + + UART/Serial port + + +
+
+ Your Image +

Fine dust (SDS011)

+
+
+ Your Image +

Fine dust (SPS30)

+
+
+
+
+ + + Digital/Analogue ports + + +
+
+ Your Image +

Condenser mic

+
+
+ Your Image +

Ultrasonic distance sensor

+
+
+ Your Image +

Soil moisture sensor

+
+
+
+
+ + + XBEE + + +
+
+ Your Image +

WiFi Bee

+
+
+ Your Image +

SD Bee

+
+
+ Your Image +

LoRa Bee

+
+
+
+
+
+
+ +

+ In rare cases, there may still be a protective film on the XBee slots. + The film can be carefully removed with tweezers in order to use the slots. +

+
## Technical specifications diff --git a/i18n/en/docusaurus-plugin-content-docs/current/boards/mcus2/mcu-s2-overview.mdx b/i18n/en/docusaurus-plugin-content-docs/current/boards/mcus2/mcu-s2-overview.mdx index 5b06383..74bfeaa 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/boards/mcus2/mcu-s2-overview.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/boards/mcus2/mcu-s2-overview.mdx @@ -1,5 +1,5 @@ --- -title: senseBox:mcu S2 +title: MCU S2 (ESP32) hide_title: true --- @@ -8,15 +8,15 @@ import React, { useState } from "react"; import { motion } from "framer-motion"; import image from "@site/static/img/mcus2/mcus2top.png"; import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger, + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, } from "@site/src/components/ui/tooltip"; import { - Popover, - PopoverContent, - PopoverTrigger, + Popover, + PopoverContent, + PopoverTrigger, } from "@site/src/components/ui/popover"; import { Button } from "@site/src/components/ui/button"; import mcus2ports from "@site/static/img/en/mcus2/mcus2-ports.png"; @@ -31,102 +31,110 @@ import ImageWithText from "@site/src/components/ImageWithText/ImageWithText"; import mcus2top from "@site/static/img/mcus2/mcus2top.png";
-

MCU S2 (ESP32)

-

- The microcontroller based on ESP-32 offers a multitude of new possibilities in terms of data transfer, data exchange and operation. -

-
-
- Your Image{" "} -
-
-

Ports

-
- - - I2C/Wire ports - - -
-

Sensors and accessories on the I2C/Wire ports

-
-
- Your Image -

Light sensor

-
-
- Your Image -

Temperature and humidity

-
-
- Your Image -

Air pressure

-
-
- Your Image -

Time of Flight(Tof)

-
-
- Your Image -

Display

-
-
-
-
-
- - - Digital/Analogue ports - - -
-

Sensors and accessories on the digital/analogue ports

-
-
- Your Image -

LED-Matrix

-
-
-
-
-
-
-
-
-

I2C/Wire daisy chain

-

- An I2C daisy chain enables the simple and efficient connection of several devices in a serial communication chain using the I2C protocol. - The daisy chain configuration allows each device in the chain to send and receive data. This method is particularly useful in applications - where space and resources are limited, as it minimises the number of physical connections required and at the same time enables robust - and reliable data communication. -

-
- -
-
-
+

MCU S2 (ESP32)

+

+ The microcontroller based on ESP-32 offers a multitude of new possibilities in terms of data transfer, data exchange and operation. +

+
+
+ Your Image{" "} +
+
+

Ports

+
+ + + I2C/Wire ports + + +
+

Sensors and accessories on the I2C/Wire ports

+
+
+ Your Image +

Light sensor

+
+
+ Your Image +

Temperature and humidity

+
+
+ Your Image +

Air pressure

+
+
+ Your Image +

Time of Flight(Tof)

+
+
+ Your Image +

Display

+
+
+
+
+
+ + + Digital/Analogue ports + + +
+

Sensors and accessories on the digital/analogue ports

+
+
+ Your Image +

LED-Matrix

+
+
+
+
+
+
+
+
+ +

+ In rare cases, there may still be a protective film on the XBee slots. + The film can be carefully removed with tweezers in order to use the slots. +

+
+
+
+

I2C/Wire daisy chain

+

+ An I2C daisy chain enables the simple and efficient connection of several devices in a serial communication chain using the I2C protocol. + The daisy chain configuration allows each device in the chain to send and receive data. This method is particularly useful in applications + where space and resources are limited, as it minimises the number of physical connections required and at the same time enables robust + and reliable data communication. +

+
+ +
+
+
diff --git a/i18n/en/docusaurus-plugin-content-docs/current/boards/mini/mini-overview.mdx b/i18n/en/docusaurus-plugin-content-docs/current/boards/mini/mini-overview.mdx index a9ec05a..19789f4 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/boards/mini/mini-overview.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/boards/mini/mini-overview.mdx @@ -9,6 +9,7 @@ import umweltsensor from '@site/static/img/hardware-bilder/umweltsensor/bme.png' import miniRgbLed from '@site/static/img/mini/mini-rgb-led.png' import wifiBee from '@site/static/img/hardware-bilder/bees/wifi-bee/wifi.png' import display from '@site/static/img/hardware-bilder/oled/display.png' +import Admonition from '@theme/Admonition';

senseBox:mini

@@ -25,8 +26,11 @@ import display from '@site/static/img/hardware-bilder/oled/display.png' The following components are included in the senseBox:mini:
- - + +
+ Neopixel RGB LED +

Neopixel RGB LED

+
@@ -37,6 +41,15 @@ In addition, the board has an SD card module and the following ports: - 1x UART - 1x Digital analogue port +
+ +

+ In rare cases, there may still be a protective film on the XBee slots. + The film can be carefully removed with tweezers in order to use the slots. +

+
+
+ ## Tiny computer but a lot of fun With the senseBox:mini, coding becomes child's play. The entry into programming the senseBox is easy, children and adults can start immediately without prior knowledge and celebrate success in no time. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/editors/arduino/installation-bsp.mdx b/i18n/en/docusaurus-plugin-content-docs/current/editors/arduino/installation-bsp.mdx index 5707ec9..6c4b09b 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/editors/arduino/installation-bsp.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/editors/arduino/installation-bsp.mdx @@ -43,7 +43,7 @@ import { useBoardStore } from '@site/src/lib/stores/store'

- Enter "ESP32" in the search bar above to find the packages faster and install the `esp32` board from Espressif Systems. + Enter "senseBox" in the search bar above to find the packages faster and install the `esp32` board from Espressif Systems. Attention! Make sure to install at least version 2.0.15-alpha3! .

diff --git a/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/logik.md b/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/logik.md index 493d5b9..0a39c01 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/logik.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/logik.md @@ -55,8 +55,8 @@ ______________________________________________________________________________ | :-------------------: | :----------: | | equal | = | | not equal | ≠ | -| less than | < | -| greater than | < | +| less than | {'<'} | +| greater than | {'>'} | | less than or equal to | ≤ | | greater than or equal to | ≥ | ______________________________________________________________________________ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/web/opensensemap.mdx b/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/web/opensensemap.mdx index 2ef79b1..1f9e8af 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/web/opensensemap.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/editors/blockly/blocks/web/opensensemap.mdx @@ -14,13 +14,7 @@ To send measurements to openSenseMap, you must first connect your box to it. Use ![](/img/en/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg) -In the first dropdown menu of the block, you can select whether your senseBox should send data to the traditional openSenseMap or to workshop.openSenseMap. - -> **opensensemap.org:** senseBoxes created for long-term measurements. -> -> **workshop.opensensemap.org:** senseBoxes created for short-term experiments or testing. - -In the second dropdown menu of the block, you select whether your senseBox is a stationary or a mobile station, and in the text field "senseBox ID," you enter the senseBox ID displayed after registration. +In the dropdown menu of the block, you select whether your senseBox is a stationary or a mobile station, and in the text field "senseBox ID," you enter the senseBox ID displayed after registration. In the free block section `Sensors`, the connected sensors must then be linked using the `Send measurement to openSenseMap` block. ![](/img/en/blockly-bilder/web-opensensemap/blockly-Web-oSeM-2.svg) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/cable_overview.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/cable_overview.mdx new file mode 100644 index 0000000..7ce3388 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/cable_overview.mdx @@ -0,0 +1,28 @@ +--- +sidebar_position: 1 +title: Cable Overview +hide_title: false +description: Overview of all available connection cables +--- + +import Admonition from "@theme/Admonition"; +import TutorialPorts_en from '@site/src/components/TutorialPorts/TutorialPorts_en' +import CableOverview from '@site/src/components/CableOverview/CableOverview_en' + +# Cable Overview + +Different types of cables are required to connect sensors or expansion modules to the senseBox MCUs. The specific cables needed depend on the version of the MCU and the sensors used. + +Please check in advance which connections your setup requires. If you're unsure, feel free to reach out to us at [support@sensebox.de](mailto:support@sensebox.de). + + + + + +## Links + +- #### [Shop](https://sensebox.kaufen/parts/zubehor) +- #### [Support](mailto:support@sensebox.de) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/led-matrix.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/led-matrix.mdx index 432ea14..04be0b4 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/led-matrix.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/led-matrix.mdx @@ -10,6 +10,8 @@ import TutorialPorts_en from '@site/src/components/TutorialPorts/TutorialPorts_e # LED-Matrix +The 12x8 LED matrix allows you to program colorful displays with neopixels. This way, LEDs can light up individually, and text or patterns can be displayed in various colors. Additionally, computer science concepts like arrays can be visualized. + {' '} ## Technical Information @@ -17,10 +19,14 @@ import TutorialPorts_en from '@site/src/components/TutorialPorts/TutorialPorts_e - 12x8 Matrix - 96 LEDs +--- + ## Connection +--- + ## Programming (Blockly) In Blockly the LED matrix must first be initialized. There you have to specify the port to which you have connected the LED matrix. @@ -28,6 +34,56 @@ After that you can display text for example. ![Blockly](/img/en/hardware-bilder/led-matrix/led-matrix-block.svg) +--- + +## Bitmaps on the LED Matrix + +The LED matrix can display letters and numbers, but also custom-made **pixel graphics**, called **bitmaps**. + +A bitmap consists of a grid of **12x8 LEDs** – each LED can be controlled in different ways. + +### What is a bitmap? + +A bitmap is essentially a table where each cell (LED) is assigned a color. In Blockly, you can create a **colorful graphic**, where each LED has its own RGB color value. +Black cells represent turned-off LEDs. This way, you can design and display various **pixel graphics** on the LED matrix. + +![Happy Bitmap](/img/hardware-bilder/led-matrix/happy_bitmap.svg) + +### Displaying Text + +Letters and numbers can also be displayed on the LED matrix. These do not need to be created using a bitmap – instead, you can use the corresponding **text block** in Blockly. + +![Text Block](/img/en/hardware-bilder/led-matrix/text_block.svg) + +### Displaying Emojis + +Blockly also includes a selection of built-in emojis that can be displayed on the LED matrix, such as a smiley face, a hat, or a knight. +To display an emoji, simply drag the appropriate block into your Blockly program. + +![Emoji Block](/img/en/hardware-bilder/led-matrix/emoji_block.svg) + +### More options + +- In addition to creating bitmaps using the visual block, advanced users can define the color of **each individual LED** using **RGB565 color values**. + This requires entering 96 RGB565 values into the appropriate block – one for each pixel on the matrix. + The LEDs are filled from top-left to bottom-right, line by line. + +> 💡 **Tip**: You can use this [website](https://rgbcolorpicker.com/565) to select a color and get its RGB565 value. + +![RGB565 Block](/img/hardware-bilder/led-matrix/rgb565_block.svg) + +- With the **“Set Pixel”** block, you can also create your own bitmaps by manually addressing individual pixels on the LED matrix. + You must provide the X and Y coordinates for each pixel you want to color. + The X-axis ranges from 0 to 11, and the Y-axis from 0 to 7. This allows you to create pixel-based graphics or even small animations. + +> 💡 **Tip**: If you color multiple pixels in quick succession, the matrix may flicker. +Deactivate “Draw immediately” in all but the last block to update all pixels at once. + +![Set Pixel Block](/img/en/hardware-bilder/led-matrix/set_pixel_block.svg) + + +--- + ## Projects - #### [Displaying Emojis and Patterns](https://sensebox.de/projects/de/2024-04-02-smiley) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/rgb-led-esp32.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/rgb-led-esp32.mdx index e6cff6d..8b735cc 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/rgb-led-esp32.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/accessoires/rgb-led-esp32.mdx @@ -44,6 +44,8 @@ void loop() { In Blockly, the sensor can be read using the following block: +![](/img/en/blockly-bilder/rgb-led-esp-32/esp_32.svg) + ## Projects ### [RGB-LED Fader](https://sensebox.de/projects/de/2024-01-10-rgb-led_s2) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/ethernet-bee.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/ethernet-bee.mdx index bafb4fa..f51b3d0 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/ethernet-bee.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/ethernet-bee.mdx @@ -71,4 +71,4 @@ The LAN-Bee is delivered without a LAN cable. For permanent outdoor installation > - [Shop](https://sensebox.kaufen/product/lan-bee) -> - [WIZnet W5500 Data Sheet](http://wizwiki.net/wiki/lib/exe/fetch.php/products:w5500:w5500_ds_v109e.pdf) \ No newline at end of file +> - [WIZnet W5500 Data Sheet](https://docs.wiznet.io/img/products/w5500/W5500_ds_v110e.pdf) \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/lora-bee.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/lora-bee.mdx index 07780c0..de23dbb 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/lora-bee.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/lora-bee.mdx @@ -56,4 +56,4 @@ The Blockly tutorial for using LoRa can be found [here](/docs/editors/blockly/bl - #### [LoRaWAN IoT Weather Station](https://sensebox.de/projects/de/2019-05-10-lora-osem-tago) > - [Shop](https://sensebox.kaufen/product/lora-bee) -> - [HopeRF RFM9xW Datasheet](https://www.hoperf.com/modules/lora/RFM95.html) +> - [Data Sheet](https://sensebox.de/non_img_assets/datenblaetter/pdf_output/Datenblatt-senseBox_LoRa_Bee_868_Drahtantenne.pdf) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/sd-bee.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/sd-bee.mdx index 9324095..2544da0 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/sd-bee.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/sd-bee.mdx @@ -89,4 +89,4 @@ Additionally, we get the block for an interval from the `Time` category and the > - [Shop](https://sensebox.kaufen/product/sd-bee) -> - [WIZnet W5500 Data Sheet](http://wizwiki.net/wiki/lib/exe/fetch.php/products:w5500:w5500_ds_v109e.pdf) \ No newline at end of file +> - [Data Sheet](https://sensebox.de/non_img_assets/datenblaetter/pdf_output/Datenblatt-senseBox_SD_Bee.pdf) \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/wifi-bee.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/wifi-bee.mdx index cdbebaa..1b6e791 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/wifi-bee.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/bee/wifi-bee.mdx @@ -37,11 +37,6 @@ The WiFi-Bee is based on the ATWINC1500 microchip from Atmel. -:::info -Some of our WINC1500 WiFi Bees may have outdated firmware (version 19.4.4) installed. -This can lead to transmission problems. If you are experiencing these problems, take a look at !!!! to update the firmware. -::: - ## Technical Information * "Plug-in-and-Go" senseBox compatible @@ -95,4 +90,4 @@ If all outputs are displayed in the serial monitor, especially if the IP address > - [Shop](https://sensebox.kaufen/product/wifi-bee) -> - [Atmel ATWINC1500 Data Sheet](http://ww1.microchip.com/downloads/en/DeviceDoc/ATWINC15x0-MR210xB-IEEE-802.11-b-g-n-SmartConnect-IoT-Module-Data-Sheet-DS70005304C.pdf) +> - [Data Sheet](https://sensebox.de/non_img_assets/datenblaetter/pdf_output/Datenblatt-senseBox_WiFi_Bee.pdf) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/sd.mdx b/i18n/en/docusaurus-plugin-content-docs/current/hardware/sd.mdx index 2c164f0..fcfd126 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/sd.mdx +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/sd.mdx @@ -34,7 +34,7 @@ In this sketch, the values from a sensor (in this case, the HDC1080) are read an #include #include #include "FS.h" -#include // http://librarymanager/All#Adafruit_HDC1000_Library +#include // https://github.com/adafruit/Adafruit_HDC1000_Library const long intervalInterval = 60000; long time_startInterval = 0; diff --git a/i18n/en/docusaurus-plugin-content-docs/current/hardware/sensors/lautstaerke.md b/i18n/en/docusaurus-plugin-content-docs/current/hardware/sensors/lautstaerke.md index 41d1ba7..79b07c9 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/hardware/sensors/lautstaerke.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/hardware/sensors/lautstaerke.md @@ -8,7 +8,10 @@ description: DFRobot SEN0232 Gravity The DFRobot SEN0232 measures the volume and outputs the measured values in decibels. -![](/img/hardware-bilder/lautstaerke/sound.png) +
+ Lautstärkesensor +
Volume sensor DFRobot SEN0232
+
## Techincal Information @@ -19,8 +22,10 @@ The DFRobot SEN0232 measures the volume and outputs the measured values in decib * Measurement range: accurate between 30 dBA and 130 dBA * Measurement interval: 125 ms -![](/img/hardware-bilder/lautstaerke/sound-anschluss.png) - +
+ Lautstärkesensor Anschluss +
Connection diagram of the volume sensor
+
## Programmierung (Arduino) diff --git a/sidebars/eduS2Sidebar.js b/sidebars/eduS2Sidebar.js index 767057b..5f62ccb 100755 --- a/sidebars/eduS2Sidebar.js +++ b/sidebars/eduS2Sidebar.js @@ -54,6 +54,7 @@ const eduS2Sidebar = { 'hardware/accessoires/display', 'hardware/accessoires/rgb-led-esp32', 'hardware/accessoires/led-matrix', + 'hardware/accessoires/cable_overview', ], }, ], diff --git a/sidebars/eduSidebar.js b/sidebars/eduSidebar.js index c7ac72e..9ced924 100644 --- a/sidebars/eduSidebar.js +++ b/sidebars/eduSidebar.js @@ -41,6 +41,7 @@ const eduSidebar = { 'hardware/sensors/luftdruck-temperatur', 'hardware/accessoires/display', 'hardware/sensors/bmx055', + 'hardware/accessoires/cable_overview', ], }, { diff --git a/sidebars/miniSidebar.js b/sidebars/miniSidebar.js index d7ec62e..6f33cd6 100644 --- a/sidebars/miniSidebar.js +++ b/sidebars/miniSidebar.js @@ -27,6 +27,7 @@ const miniSidebar = { 'hardware/sensors/umweltsensor', 'hardware/accessoires/display', 'hardware/accessoires/rgb-led', + 'hardware/accessoires/cable_overview', ], }, { diff --git a/src/components/CableOverview/CableOverview.jsx b/src/components/CableOverview/CableOverview.jsx new file mode 100644 index 0000000..a322272 --- /dev/null +++ b/src/components/CableOverview/CableOverview.jsx @@ -0,0 +1,174 @@ +import React from 'react'; +import { useBoardStore } from '@site/src/lib/stores/store'; +import ImageWithText from '@site/src/components/ImageWithText/ImageWithText'; +import usbACable from '@site/static/img/hardware-bilder/cable/usb-a-to-c.png'; +import jstPhr4Cable from '@site/static/img/hardware-bilder/cable/jst-phr4_cable.png'; +import qwiicCable from '@site/static/img/hardware-bilder/cable/qwiic_cable.png'; +import qwiicToJstPhr4 from '@site/static/img/hardware-bilder/cable/qwiic-to-jstphr4.png'; +import jstPhr4ToJumperMale from '@site/static/img/hardware-bilder/cable/jst-phr4-jumper-male.png'; +import jstPhr4ToJumperFemale from '@site/static/img/hardware-bilder/cable/jst-phr4-jumper-female.png'; +import jumperWireMM from '@site/static/img/hardware-bilder/cable/jumper_wire_mm.png'; +import jstToSds011 from '@site/static/img/hardware-bilder/cable/jst-to-sds011.png'; + +const CableOverview = () => { + const board = useBoardStore(state => state.board); + + // Filtere die Kabel basierend auf dem ausgewählten Board + const showJstCables = board === ':edu' || board === ':mini'; + const showQwiicCables = board === ':edu S2'; + + return ( + <> +

USB A zu USB C Kabel

+

+ Das USB A zu USB C Kabel ist ein Datenkabel, das verwendet wird, um die senseBox MCU mit einem Computer zu verbinden, zum Übertragen von Daten oder Versorgen mit Strom. +

+

+ Alle neueren senseBox MCU-Modelle sind mit einem USB-C-Anschluss ausgestattet. Einige ältere Versionen der senseBox nutzen noch Micro-USB. + Für die aktuellen Varianten ist dieses Kabel jedoch die Standardverbindung. +

+

+ Hinweis: Grundsätzlich können auch andere USB-C Kabel verwendet werden. Achte jedoch darauf, dass das Kabel für die Datenübertragung geeignet ist. Manche USB-C Kabel dienen ausschließlich der Stromversorgung und unterstützen keine oder nur eingeschränkte Kommunikation. +

+
    +
  • Erhältlich in folgender Länge:
  • +
  • 2 Meter
  • +
  • 3 Meter
  • +
+ + + {showJstCables && ( + <> +

JST PHR-4 zu JST PHR-4 Kabel

+

+ Das JST PHR-4 Kabel ist ein 4-poliges Anschlusskabel für senseBox Sensoren. Auf beiden Seiten befindet sich ein JST PHR-4 Steckverbinder. +

+

+ "PHR-4" ist ein Teil der JST PH-Serie mit einem Rastermaß von 2,0 mm, der für kompakte Verbindungen mit geringem Platzbedarf entwickelt wurde. Im Kontext der senseBox wird dieses Kabel meist nur "JST" genannt. +

+
    +
  • Die senseBox bietet das Kabel in folgenden Längen an:
  • +
  • 200 mm
  • +
  • 350 mm
  • +
  • 500 mm
  • +
+

+ Je nach Anwendung und Sensorposition kannst du die passende Länge wählen. +

+ + +

JST PHR-4 zu Jumper Wire (Male)

+

+ Das JST PHR-4 zu Jumper Wire (Male) Kabel eignet sich ideal, um senseBox Sensoren mit anderen Mikrocontroller-Plattformen wie z.B. einem Arduino, oder mit einem Breadboard, zu verbinden. +

+

+ Ein Breadboard (auch Steckbrett genannt) ist eine einfache Möglichkeit, elektronische Schaltungen ohne Löten aufzubauen. Einzelne Komponenten, wie Sensoren, Widerstände oder Kabel, können darin eingesteckt und flexibel verbunden werden. + Dieses Kabel hat auf der einen Seite einen JST PHR-4 Steckverbinder und auf der anderen Seite vier männliche Jumper-Stecker, die direkt in Breadboards oder Arduino-Pins passen. +

+
    +
  • Erhältlich in zwei Längen:
  • +
  • 150 mm
  • +
  • 300 mm
  • +
+

+ Je nach Aufbau und Entfernung zwischen Sensor und Mikrocontroller kann die passende Länge gewählt werden. +

+ + +

JST PHR-4 zu Jumper Wire (Female)

+

+ Das JST PHR-4 zu Jumper Wire (Female) Kabel, auch als Kabelpeitsche bekannt, hat auf der einen Seite einen JST PHR-4 Stecker und auf der anderen Seite vier einzelne Buchsen (Female Jumper). +

+

+ Es eignet sich ideal, um Sensoren der senseBox mit anderen Mikrocontroller-Plattformen, Breakout-Boards oder modularen Testaufbauten zu verbinden, z. B. auf einem Breadboard mit Pins oder auf einem Arduino. +

+
    +
  • Erhältlich in folgenden Längen:
  • +
  • 150 mm
  • +
  • 300 mm
  • +
+ + +

Jumper Wire Kabel (Male-to-Male)

+

+ Das Jumper Wire Kabel (M/M) hat auf beiden Seiten männliche Steckverbinder und wird hauptsächlich verwendet, um elektronische Komponenten auf einem Breadboard oder mit einem Mikrocontroller wie dem Arduino zu verbinden. +

+

+ Es eignet sich besonders gut für schnelle Testaufbauten und prototypische Schaltungen ohne Löten. +

+
    +
  • Erhältlich in folgender Länge:
  • +
  • 100 mm
  • +
+ + +

JST PHR-4 zu SDS011 Adapterkabel

+

+ Das JST PHR-4 zu SDS011 Adapterkabel ermöglicht den Anschluss des Feinstaubsensors SDS011 an die senseBox MCU. +

+

+ Der SDS011 hat im Vergleich zu anderen Sensoren der senseBox einen einen separaten Anschluss. Das Adapterkabel sorgt dafür, dass die richtige Verbindung und Stromversorgung hergestellt werden kann. +

+

+ Das Kabel besitzt auf der einen Seite einen JST PHR-4 Steckverbinder und auf der anderen Seite den spezifischen SDS011-Anschluss, passend zur Buchse des Sensors. +

+
    +
  • Erhältlich in folgender Länge:
  • +
  • 350 mm
  • +
+ + + )} + + {showQwiicCables && ( + <> +

QWIIC Kabel (JST SH-4)

+

+ Das QWIIC Kabel, auch bekannt als JST SH-4, ist der neue Standardanschluss für viele Sensoren und Erweiterungsmodule, die mit der senseBox MCU verbunden werden. Der kompakte 4-polige Stecker hat ein Rastermaß von 1,0 mm und benötigt deutlich weniger Platz als der ältere JST PHR-4 Anschluss. +

+

+ Nahezu alle neueren Sensoren der senseBox verfügen sowohl über einen QWIIC- als auch über einen JST PHR-4 Anschluss, um sowohl mit der MCU S1 als auch mit der MCU S2 kompatibel zu bleiben. Langfristig wird QWIIC jedoch als Hauptstandard verwendet. +

+
    +
  • Erhältlich in folgenden Längen:
  • +
  • 100 mm
  • +
  • 200 mm
  • +
  • 500 mm
  • +
+ + +

QWIIC zu JST PHR-4 Adapterkabel

+

+ Das QWIIC zu JST PHR-4 Adapterkabel dient zur Verbindung von Komponenten mit unterschiedlichen Anschlussstandards. Ideal, um z. B. Sensoren mit QWIIC-Anschluss an eine senseBox MCU S1 anzuschließen oder umgekehrt eine MCU S2 mit Sensoren ohne QWIIC-Port zu verbinden. +

+

+ Beide Enden sind 4-polig, jeweils im QWIIC (JST SH-4) und JST PHR-4 Format. +

+

+ In der Regel ist es egal, welches Ende des Kabels mit der MCU bzw. dem Sensor verbunden wird. Beide Seiten sind elektrisch kompatibel. +

+
    +
  • Erhältlich in folgender Länge:
  • +
  • 80 mm
  • +
+ + +

Jumper Wire Kabel (Male-to-Male)

+

+ Das Jumper Wire Kabel (M/M) hat auf beiden Seiten männliche Steckverbinder und wird hauptsächlich verwendet, um elektronische Komponenten auf einem Breadboard oder mit einem Mikrocontroller wie dem Arduino zu verbinden. +

+

+ Es eignet sich besonders gut für schnelle Testaufbauten und prototypische Schaltungen ohne Löten. +

+
    +
  • Erhältlich in folgender Länge:
  • +
  • 100 mm
  • +
+ + + )} + + ); +}; + +export default CableOverview; diff --git a/src/components/CableOverview/CableOverview_en.jsx b/src/components/CableOverview/CableOverview_en.jsx new file mode 100644 index 0000000..12c15ea --- /dev/null +++ b/src/components/CableOverview/CableOverview_en.jsx @@ -0,0 +1,174 @@ +import React from 'react'; +import { useBoardStore } from '@site/src/lib/stores/store'; +import ImageWithText from '@site/src/components/ImageWithText/ImageWithText'; +import usbACable from '@site/static/img/hardware-bilder/cable/usb-a-to-c.png'; +import jstPhr4Cable from '@site/static/img/hardware-bilder/cable/jst-phr4_cable.png'; +import qwiicCable from '@site/static/img/hardware-bilder/cable/qwiic_cable.png'; +import qwiicToJstPhr4 from '@site/static/img/hardware-bilder/cable/qwiic-to-jstphr4.png'; +import jstPhr4ToJumperMale from '@site/static/img/hardware-bilder/cable/jst-phr4-jumper-male.png'; +import jstPhr4ToJumperFemale from '@site/static/img/hardware-bilder/cable/jst-phr4-jumper-female.png'; +import jumperWireMM from '@site/static/img/hardware-bilder/cable/jumper_wire_mm.png'; +import jstToSds011 from '@site/static/img/hardware-bilder/cable/jst-to-sds011.png'; + +const CableOverview = () => { + const board = useBoardStore(state => state.board); + + // Filter cables based on the selected board + const showJstCables = board === ':edu' || board === ':mini'; + const showQwiicCables = board === ':edu S2'; + + return ( + <> +

USB A to USB C Cable

+

+ The USB A to USB C cable is a data cable used to connect the senseBox MCU to a computer, for transferring data or supplying power. +

+

+ All newer senseBox MCU models are equipped with a USB-C port. Some older versions of the senseBox still use Micro-USB. + For the current models, this cable is the standard connection. +

+

+ Note: Other USB-C cables can generally be used as well. However, make sure that the cable is suitable for data transfer. Some USB-C cables are power-only and do not support communication or only support it to a limited extent. +

+
    +
  • Available in the following lengths:
  • +
  • 2 meters
  • +
  • 3 meters
  • +
+ + + {showJstCables && ( + <> +

JST PHR-4 to JST PHR-4 Cable

+

+ The JST PHR-4 cable is a 4-pin connection cable for senseBox sensors, with a JST PHR-4 connector on both ends. +

+

+ "PHR-4" is part of the JST PH series with a 2.0 mm pitch, designed for compact connections with minimal space requirements. In the context of senseBox, this cable is commonly referred to simply as "JST". +

+
    +
  • The senseBox offers this cable in the following lengths:
  • +
  • 200 mm
  • +
  • 350 mm
  • +
  • 500 mm
  • +
+

+ Choose the appropriate length depending on your application and sensor placement. +

+ + +

JST PHR-4 to Jumper Wire (Male)

+

+ The JST PHR-4 to Jumper Wire (Male) cable is ideal for connecting senseBox sensors to other microcontroller platforms such as Arduino, or to a breadboard. +

+

+ A breadboard allows you to build electronic circuits without soldering. Individual components, like sensors, resistors, or wires, can be inserted and flexibly connected. + This cable has a JST PHR-4 connector on one side and four male jumper wires on the other, which fit directly into breadboards or Arduino pins. +

+
    +
  • Available in two lengths:
  • +
  • 150 mm
  • +
  • 300 mm
  • +
+

+ Choose the appropriate length depending on the setup and the distance between sensor and microcontroller. +

+ + +

JST PHR-4 to Jumper Wire (Female)

+

+ The JST PHR-4 to Jumper Wire (Female) cable, also known as a cable whip, has a JST PHR-4 connector on one side and four individual female jumper sockets on the other. +

+

+ It’s ideal for connecting senseBox sensors to other microcontroller platforms, breakout boards, or modular test setups, e.g., on a breadboard with pins or to an Arduino. +

+
    +
  • Available in the following lengths:
  • +
  • 150 mm
  • +
  • 300 mm
  • +
+ + +

Jumper Wire Cable (Male-to-Male)

+

+ The Jumper Wire Cable (M/M) has male connectors on both ends and is primarily used to connect electronic components on a breadboard or to a microcontroller like the Arduino. +

+

+ It is especially useful for quick test setups and prototypical circuits without soldering. +

+
    +
  • Available in the following length:
  • +
  • 100 mm
  • +
+ + +

JST PHR-4 to SDS011 Adapter Cable

+

+ The JST PHR-4 to SDS011 adapter cable allows the SDS011 fine dust sensor to be connected to the senseBox MCU. +

+

+ The SDS011 has a dedicated connector that differs from other senseBox sensors. This adapter cable ensures the correct connection and power supply. +

+

+ One side has a JST PHR-4 connector, and the other side has the specific SDS011 connector matching the sensor’s socket. +

+
    +
  • Available in the following length:
  • +
  • 350 mm
  • +
+ + + )} + + {showQwiicCables && ( + <> +

QWIIC Cable (JST SH-4)

+

+ The QWIIC cable, also known as JST SH-4, is the new standard connector for many sensors and expansion modules connected to the senseBox MCU. The compact 4-pin connector has a 1.0 mm pitch and requires significantly less space than the older JST PHR-4 connector. +

+

+ Almost all newer senseBox sensors feature both a QWIIC and a JST PHR-4 connector, to remain compatible with both the MCU S1 and MCU S2. However, QWIIC is expected to become the main standard in the long term. +

+
    +
  • Available in the following lengths:
  • +
  • 100 mm
  • +
  • 200 mm
  • +
  • 500 mm
  • +
+ + +

QWIIC to JST PHR-4 Adapter Cable

+

+ The QWIIC to JST PHR-4 adapter cable allows you to connect components with different connector standards. Ideal for connecting QWIIC sensors to a senseBox MCU S1, or conversely, connecting an MCU S2 to sensors without a QWIIC port. +

+

+ Both ends are 4-pin, in QWIIC (JST SH-4) and JST PHR-4 formats respectively. +

+

+ In general, it doesn't matter which end of the cable is connected to the MCU or the sensor. Both sides are electrically compatible. +

+
    +
  • Available in the following length:
  • +
  • 80 mm
  • +
+ + +

Jumper Wire Cable (Male-to-Male)

+

+ The Jumper Wire Cable (M/M) has male connectors on both ends and is primarily used to connect electronic components on a breadboard or to a microcontroller like the Arduino. +

+

+ It is especially useful for quick test setups and prototypical circuits without soldering. +

+
    +
  • Available in the following length:
  • +
  • 100 mm
  • +
+ + + )} + + ); +}; + +export default CableOverview; diff --git a/src/components/TutorialPorts/TutorialPorts.js b/src/components/TutorialPorts/TutorialPorts.js index b5ccd30..4b2085e 100644 --- a/src/components/TutorialPorts/TutorialPorts.js +++ b/src/components/TutorialPorts/TutorialPorts.js @@ -7,36 +7,68 @@ import ioPort from '@site/static/img/mcu/ports/io-port.png' import i2cPortS2 from '@site/static/img/mcus2/ports/i2c-wire-port.png' import uartPortS2 from '@site/static/img/mcus2/ports/uart-serial-port.png' import ioPortS2 from '@site/static/img/mcus2/ports/io-port.png' +// MCU Mini Ports +import i2cPortMini from '@site/static/img/mini/ports/i2c-wire-port.png' +import uartPortMini from '@site/static/img/mini/ports/uart-serial-port.png' +import ioPortMini from '@site/static/img/mini/ports/io-port.png' +// Top-down Images +import mcutop from '@site/static/img/mcu/ports/mcutop.png' +import mcus2top from '@site/static/img/mcus2/mcus2top.png' +import miniTop from '@site/static/img/mini/mini_double.png' + import { useBoardStore } from '@site/src/lib/stores/store' const portImages = { i2c: i2cPort, uart: uartPort, io: ioPort, + overview: mcutop, } const portImagesS2 = { i2c: i2cPortS2, uart: uartPortS2, io: ioPortS2, + overview: mcus2top, +} + +const portImagesMini = { + i2c: i2cPortMini, + uart: uartPortMini, + io: ioPortMini, + overview: miniTop, } -function TutorialPorts({ port }) { +function TutorialPorts({ port = 'overview', imageOverride = null, textOverride = null }) { const board = useBoardStore(state => state.board) - const imageSrc = board === ':edu S2' ? portImagesS2[port] : portImages[port] + let imageSrc = null + + if (imageOverride) { + imageSrc = imageOverride + } else { + if (board === ':edu S2') { + imageSrc = portImagesS2[port] + } else if (board === ':mini') { + imageSrc = portImagesMini[port] || portImages[port] // fallback + } else { + imageSrc = portImages[port] + } + } return (
{imageSrc ? ( -
- {`${port} +
+ {`${port

- Die Komponente wird am {port.toUpperCase()} Port angeschlossen. + {textOverride + ? textOverride + : `Die Komponente wird am ${port?.toUpperCase()} Port angeschlossen.`}

) : ( -

Bitte einen gültigen Port-Typ angeben: i2c, uart oder io.

+

Bitte einen gültigen Port-Typ angeben: i2c, uart, io oder overview.

)}
) diff --git a/src/components/TutorialPorts/TutorialPorts_en.js b/src/components/TutorialPorts/TutorialPorts_en.js index 696f899..cd3d8b4 100644 --- a/src/components/TutorialPorts/TutorialPorts_en.js +++ b/src/components/TutorialPorts/TutorialPorts_en.js @@ -6,40 +6,72 @@ import ioPort from '@site/static/img/en/mcu/ports/io-port.png' // MCU S2 Ports import i2cPortS2 from '@site/static/img/en/mcus2/ports/i2c-wire-port.png' import uartPortS2 from '@site/static/img/en/mcus2/ports/uart-serial-port.png' -import ioPortS2 from '@site/static/img/mcus2/ports/io-port.png' +import ioPortS2 from '@site/static/img/en/mcus2/ports/io-port.png' +// MCU Mini Ports +import i2cPortMini from '@site/static/img/en/mini/ports/i2c-wire-port.png' +import uartPortMini from '@site/static/img/en/mini/ports/uart-serial-port.png' +import ioPortMini from '@site/static/img/en/mini/ports/io-port.png' +// Top-down Images +import mcutop from '@site/static/img/en/mcu/ports/mcutop.png' +import mcus2top from '@site/static/img/en/mcus2/mcus2top.png' +import miniTop from '@site/static/img/en/mini/mini_double.png' + import { useBoardStore } from '@site/src/lib/stores/store' const portImages = { i2c: i2cPort, uart: uartPort, io: ioPort, + overview: mcutop, } const portImagesS2 = { i2c: i2cPortS2, uart: uartPortS2, io: ioPortS2, + overview: mcus2top, } -function TutorialPorts({ port }) { +const portImagesMini = { + i2c: i2cPortMini, + uart: uartPortMini, + io: ioPortMini, + overview: miniTop, + } + +function TutorialPorts({ port = 'overview', imageOverride = null, textOverride = null }) { const board = useBoardStore(state => state.board) - const imageSrc = board === ':edu S2' ? portImagesS2[port] : portImages[port] + let imageSrc = null + + if (imageOverride) { + imageSrc = imageOverride + } else { + if (board === ':edu S2') { + imageSrc = portImagesS2[port] + } else if (board === ':mini') { + imageSrc = portImagesMini[port] || portImages[port] // fallback + } else { + imageSrc = portImages[port] + } + } return (
{imageSrc ? ( -
- {`${port} +
+ {`${port

- The component is connected to the {port.toUpperCase()} port. + {textOverride + ? textOverride + : `The component is connected to the ${port?.toUpperCase()} port.`}

) : ( -

Please specify a valid port type: i2c, uart, or io.

+

Please specify a valid port type: i2c, uart, io, or overview.

)}
) } -export default TutorialPorts \ No newline at end of file +export default TutorialPorts diff --git a/src/css/custom.css b/src/css/custom.css index ac9a9ee..716cfda 100755 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -20,78 +20,119 @@ url("webfonts/2EF157_1_0.ttf") format("truetype"); } - html { font-family: 'BrixSlab-Regular', "Helvetica", "Arial", sans-serif; - } -/*header { - display: none; -} */ - -@layer base { - :root { - - --background: 0 0% 100%; - --foreground: 222.2 84% 4.9%; - - --card: 0 0% 100%; - --card-foreground: 222.2 84% 4.9%; - - --popover: 0 0% 100%; - --popover-foreground: 222.2 84% 4.9%; - - --primary: 222.2 47.4% 11.2%; - --primary-foreground: 210 40% 98%; - - --secondary: 210 40% 96.1%; - --secondary-foreground: 222.2 47.4% 11.2%; - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 46.9%; - - --accent: 210 40% 96.1%; - --accent-foreground: 222.2 47.4% 11.2%; +:root { + --ifm-color-primary: #43c272; + --ifm-color-primary-dark: #3bae66; + --ifm-color-primary-darker: #379a5e; + --ifm-color-primary-darkest: #2e874e; + --ifm-color-primary-light: #58c982; + --ifm-color-primary-lighter: #6ecf92; + --ifm-color-primary-lightest: #84d6a3; + + --ifm-background-color: #ffffff; + --ifm-background-surface-color: #f2f2f2; + --ifm-footer-background-color: #f7f7f7; + --ifm-code-font-size: 95%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; +} - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 210 40% 98%; +[data-theme='dark'] { + --ifm-color-primary: #3bae66; /* Dunkleres Grün */ + --ifm-color-primary-dark: #379a5e; + --ifm-color-primary-darker: #2e874e; + --ifm-color-primary-darkest: #256e3d; + --ifm-color-primary-light: #4fd680; + --ifm-color-primary-lighter: #78df9c; + --ifm-color-primary-lightest: #8de4ab; + + --ifm-background-color: #1a1e2b; /* Dunkles Blau */ + --ifm-background-surface-color: #1a1e2b; + --ifm-footer-background-color: #15192a; + + --background: 222.2 24% 15%; + --foreground: 210 20% 98%; + --card: 222.2 24% 15%; + --card-foreground: 210 20% 98%; + --popover: 222.2 24% 15%; + --popover-foreground: 210 20% 98%; + --primary: 210 20% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 20% 98%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 20% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 20% 98%; + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; +} - --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; - --ring: 222.2 84% 4.9%; +html, body, .main, .docMainContainer, .docItemContainer, .markdown, .container { + background-color: var(--ifm-background-color) !important; +} - --radius: 0.5rem; +[data-theme='dark'] img { + filter: brightness(0.8) contrast(0.95); + transition: filter 0.3s ease; + } + + [data-theme='dark'] img:hover { + filter: brightness(1) contrast(1); } - .dark { - --background: 222.2 84% 4.9%; - --foreground: 210 40% 98%; +[data-theme='dark'] .navbar { + background-color: #15192a !important; +} - --card: 222.2 84% 4.9%; - --card-foreground: 210 40% 98%; +[data-theme='dark'] .navbar__link { + color: rgba(255, 255, 255, 0.85); +} - --popover: 222.2 84% 4.9%; - --popover-foreground: 210 40% 98%; +[data-theme='dark'] .menu { + background-color: #1a1e2b; +} - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 11.2%; +[data-theme='dark'] .hero__title, +[data-theme='dark'] .hero__subtitle, +[data-theme='dark'] .button--primary { + color: #4fd680 !important; + background-color: #1a1e2b !important; + border-color: #3bae66 !important; +} - --secondary: 217.2 32.6% 17.5%; - --secondary-foreground: 210 40% 98%; +[data-theme='dark'] table { + background-color: #1a1e2b; + border-color: #3a3f52; +} - --muted: 217.2 32.6% 17.5%; - --muted-foreground: 215 20.2% 65.1%; +[data-theme='dark'] table tr { + background-color: #1a1e2b; + border-top: 1px solid #3a3f52; +} - --accent: 217.2 32.6% 17.5%; - --accent-foreground: 210 40% 98%; +[data-theme='dark'] table tr:nth-child(2n) { + background-color: #222736; +} - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 210 40% 98%; +[data-theme='dark'] .markdown { + color: rgba(255, 255, 255, 0.9); +} - --border: 217.2 32.6% 17.5%; - --input: 217.2 32.6% 17.5%; - --ring: 212.7 26.8% 83.9%; - } +.dotted-background { + background-color: var(--ifm-background-color); + background-image: + linear-gradient(90deg, rgba(128, 128, 128, 0.2) 1px, transparent 1px), + linear-gradient(180deg, rgba(128, 128, 128, 0.2) 1px, transparent 1px); + background-size: 10px 10px; } @layer base { @@ -102,17 +143,3 @@ html { @apply bg-background text-foreground; } } - - -.dotted-background { - /* Grundfarbe des Hintergrunds */ - background-color: #fff; - - /* Erzeugung eines gepunkteten Effekts */ - background-image: - linear-gradient(90deg, #000 1px, transparent 1px), - linear-gradient(180deg, #000 1px, transparent 1px); - - /* Größe der Punkte und des Abstands */ - background-size: 10px 10px; -} \ No newline at end of file diff --git a/static/img/blockly-bilder/rgb-led-esp-32/esp_32.svg b/static/img/blockly-bilder/rgb-led-esp-32/esp_32.svg new file mode 100644 index 0000000..2b4bce2 --- /dev/null +++ b/static/img/blockly-bilder/rgb-led-esp-32/esp_32.svg @@ -0,0 +1,1040 @@ +.blocklyText, +.blocklyFlyoutLabelText { +font: normal 11pt sans-serif; +} +.blocklyText { +fill: #fff; +} +.blocklyNonEditableText>rect, +.blocklyEditableText>rect { +fill: #fff; +fill-opacity: .6; +stroke: none; +} +.blocklyNonEditableText>text, +.blocklyEditableText>text { +fill: #000; +} +.blocklyFlyoutLabelText { +fill: #000; +} +.blocklyText.blocklyBubbleText { +fill: #000; +} +.blocklyEditableText:not(.editing):hover>rect { +stroke: #fff; +stroke-width: 2; +} +.blocklyHtmlInput { +font-family: sans-serif; +font-weight: normal; +} +.blocklySelected>.blocklyPath { +stroke: #fc3; +stroke-width: 3px; +} +.blocklyHighlightedConnectionPath { +stroke: #fc3; +} +.blocklyPath { +fill-opacity: .5; +} +.blocklyPathLight, +.blocklyPathDark { +display: none; +} +.blocklyInsertionMarker>.blocklyPath { +fill-opacity: 0.2; +stroke: none; +} +.blocklyInsertionMarker>.blocklyPathLight, +.blocklyInsertionMarker>.blocklyPathDark { +fill-opacity: 0.2; +stroke: none; +} +.blocklySvg { + background-color: #fff; + outline: none; + overflow: hidden; /* IE overflows by default. */ + position: absolute; + display: block; +} + +.blocklyWidgetDiv { + display: none; + position: absolute; + z-index: 99999; /* big value for bootstrap3 compatibility */ +} + +.injectionDiv { + height: 100%; + position: relative; + overflow: hidden; /* So blocks in drag surface disappear at edges */ + touch-action: none; + user-select: none; + -webkit-user-select: none; +} + +.blocklyNonSelectable { + user-select: none; + -ms-user-select: none; + -webkit-user-select: none; +} + +.blocklyBlockCanvas.blocklyCanvasTransitioning, +.blocklyBubbleCanvas.blocklyCanvasTransitioning { + transition: transform .5s; +} + +.blocklyTooltipDiv { + background-color: #ffffc7; + border: 1px solid #ddc; + box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15); + color: #000; + display: none; + font: 9pt sans-serif; + opacity: .9; + padding: 2px; + position: absolute; + z-index: 100000; /* big value for bootstrap3 compatibility */ +} + +.blocklyDropDownDiv { + position: absolute; + left: 0; + top: 0; + z-index: 1000; + display: none; + border: 1px solid; + border-color: #dadce0; + background-color: #fff; + border-radius: 2px; + padding: 4px; + box-shadow: 0 0 3px 1px rgba(0,0,0,.3); +} + +.blocklyDropDownDiv.blocklyFocused { + box-shadow: 0 0 6px 1px rgba(0,0,0,.3); +} + +.blocklyDropDownContent { + max-height: 300px; /* @todo: spec for maximum height. */ + overflow: auto; + overflow-x: hidden; + position: relative; +} + +.blocklyDropDownArrow { + position: absolute; + left: 0; + top: 0; + width: 16px; + height: 16px; + z-index: -1; + background-color: inherit; + border-color: inherit; +} + +.blocklyDropDownButton { + display: inline-block; + float: left; + padding: 0; + margin: 4px; + border-radius: 4px; + outline: none; + border: 1px solid; + transition: box-shadow .1s; + cursor: pointer; +} + +.blocklyArrowTop { + border-top: 1px solid; + border-left: 1px solid; + border-top-left-radius: 4px; + border-color: inherit; +} + +.blocklyArrowBottom { + border-bottom: 1px solid; + border-right: 1px solid; + border-bottom-right-radius: 4px; + border-color: inherit; +} + +.blocklyResizeSE { + cursor: se-resize; + fill: #aaa; +} + +.blocklyResizeSW { + cursor: sw-resize; + fill: #aaa; +} + +.blocklyResizeLine { + stroke: #515A5A; + stroke-width: 1; +} + +.blocklyHighlightedConnectionPath { + fill: none; + stroke: #fc3; + stroke-width: 4px; +} + +.blocklyPathLight { + fill: none; + stroke-linecap: round; + stroke-width: 1; +} + +.blocklySelected>.blocklyPathLight { + display: none; +} + +.blocklyDraggable { + cursor: grab; + cursor: -webkit-grab; +} + +.blocklyDragging { + cursor: grabbing; + cursor: -webkit-grabbing; + /* Drag surface disables events to not block the toolbox, so we have to + * reenable them here for the cursor values to work. */ + pointer-events: auto; +} + + /* Changes cursor on mouse down. Not effective in Firefox because of + https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */ +.blocklyDraggable:active { + cursor: grabbing; + cursor: -webkit-grabbing; +} + +.blocklyDragging.blocklyDraggingDelete { + cursor: url("/media/blockly/handdelete.cur"), auto; +} + +.blocklyDragging>.blocklyPath, +.blocklyDragging>.blocklyPathLight { + fill-opacity: .8; + stroke-opacity: .8; +} + +.blocklyDragging>.blocklyPathDark { + display: none; +} + +.blocklyDisabled>.blocklyPath { + fill-opacity: .5; + stroke-opacity: .5; +} + +.blocklyDisabled>.blocklyPathLight, +.blocklyDisabled>.blocklyPathDark { + display: none; +} + +.blocklyInsertionMarker>.blocklyPath, +.blocklyInsertionMarker>.blocklyPathLight, +.blocklyInsertionMarker>.blocklyPathDark { + fill-opacity: .2; + stroke: none; +} + +.blocklyNonEditableText>text { + pointer-events: none; +} + +.blocklyFlyout { + position: absolute; + z-index: 20; +} + +.blocklyText text { + cursor: default; +} + +.blocklyHidden { + display: none; +} + +.blocklyFieldDropdown:not(.blocklyHidden) { + display: block; +} + +.blocklyIconGroup { + cursor: default; +} + +.blocklyIconGroup:not(:hover), +.blocklyIconGroupReadonly { + opacity: .6; +} + +.blocklyIconShape { + fill: #00f; + stroke: #fff; + stroke-width: 1px; +} + +.blocklyIconSymbol { + fill: #fff; +} + +.blocklyMinimalBody { + margin: 0; + padding: 0; + height: 100%; +} + +.blocklyHtmlInput { + border: none; + border-radius: 4px; + height: 100%; + margin: 0; + outline: none; + padding: 0; + width: 100%; + text-align: center; + display: block; + box-sizing: border-box; +} + +/* Remove the increase and decrease arrows on the field number editor */ +input.blocklyHtmlInput[type=number]::-webkit-inner-spin-button, +input.blocklyHtmlInput[type=number]::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; +} + +input[type=number] { + -moz-appearance: textfield; +} + +.blocklyMainBackground { + stroke-width: 1; + stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */ +} + +.blocklyMutatorBackground { + fill: #fff; + stroke: #ddd; + stroke-width: 1; +} + +.blocklyFlyoutBackground { + fill: #ddd; + fill-opacity: .8; +} + +.blocklyMainWorkspaceScrollbar { + z-index: 20; +} + +.blocklyFlyoutScrollbar { + z-index: 30; +} + +.blocklyScrollbarHorizontal, +.blocklyScrollbarVertical { + position: absolute; + outline: none; +} + +.blocklyScrollbarBackground { + opacity: 0; +} + +.blocklyScrollbarHandle { + fill: #ccc; +} + +.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, +.blocklyScrollbarHandle:hover { + fill: #bbb; +} + +/* Darken flyout scrollbars due to being on a grey background. */ +/* By contrast, workspace scrollbars are on a white background. */ +.blocklyScrollbarHandle { + fill: #bbb; +} + +.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, +.blocklyScrollbarHandle:hover { + fill: #aaa; +} + +.blocklyInvalidInput { + background: #faa; +} + +.blocklyVerticalMarker { + stroke-width: 3px; + fill: rgba(255,255,255,.5); + pointer-events: none; +} + +.blocklyComputeCanvas { + position: absolute; + width: 0; + height: 0; +} + +.blocklyNoPointerEvents { + pointer-events: none; +} + +.blocklyContextMenu { + border-radius: 4px; + max-height: 100%; +} + +.blocklyDropdownMenu { + border-radius: 2px; + padding: 0 !important; +} + +.blocklyMenuItem { + /* 28px on the left for icon or checkbox. */ + padding-left: 28px; +} + +/* BiDi override for the resting state. */ +.blocklyMenuItemRtl { + /* Flip left/right padding for BiDi. */ + padding-left: 5px; + padding-right: 28px; +} + +.blocklyMenu { + background: #fff; + border: 1px solid transparent; + box-shadow: 0 0 3px 1px rgba(0,0,0,.3); + font: normal 13px Arial, sans-serif; + margin: 0; + outline: none; + padding: 4px 0; + position: absolute; + overflow-y: auto; + overflow-x: hidden; + max-height: 100%; + z-index: 20000; /* Arbitrary, but some apps depend on it... */ +} + +.blocklyMenu.blocklyFocused { + box-shadow: 0 0 6px 1px rgba(0,0,0,.3); +} + +.blocklyMenu { + background: inherit; /* Compatibility with gapi, reset from goog-menu */ + border: inherit; /* Compatibility with gapi, reset from goog-menu */ + font: normal 13px "Helvetica Neue", Helvetica, sans-serif; + outline: none; + position: relative; /* Compatibility with gapi, reset from goog-menu */ + z-index: 20000; /* Arbitrary, but some apps depend on it... */ +} + +/* State: resting. */ +.blocklyMenuItem { + border: none; + color: #000; + cursor: pointer; + list-style: none; + margin: 0; + /* 7em on the right for shortcut. */ + min-width: 7em; + padding: 6px 15px; + white-space: nowrap; +} + +/* State: disabled. */ +.blocklyMenuItemDisabled { + color: #ccc; + cursor: inherit; +} + +/* State: hover. */ +.blocklyMenuItemHighlight { + background-color: rgba(0,0,0,.1); +} + +/* State: selected/checked. */ +.blocklyMenuItemCheckbox { + height: 16px; + position: absolute; + width: 16px; +} + +.blocklyMenuItemCheckbox { + background: url(/media/blockly/sprites.png) no-repeat -48px -16px; + float: left; + margin-left: -24px; + position: static; /* Scroll with the menu. */ +} + +.blocklyMenuItemCheckbox { + float: right; + margin-right: -24px; +} + +.blocklyAnimationLayer { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: visible !important; + z-index: 80; + pointer-events: none; +} + + +.blocklyZoom>svg>image { + opacity: .4; +} + +.blocklyZoom>svg>image:hover { + opacity: .6; +} + +.blocklyZoom>svg>image:active { + opacity: .8; +} + + +.injectionDiv { + --commentFillColour: #FFFCC7; + --commentBorderColour: #F2E49B; +} + +.blocklyTextarea { + background-color: var(--commentFillColour); + border: 1px solid var(--commentBorderColour); + box-sizing: border-box; + display: block; + outline: 0; + padding: 5px; + resize: none; + width: 100%; + height: 100%; +} + +.blocklyTextarea { + cursor: inherit; +} + +.blocklyDeleteIcon { + width: 20px; + height: 20px; + display: none; + cursor: pointer; +} + +.blocklyFoldoutIcon { + width: 20px; + height: 20px; + transform-origin: 12px 12px; + cursor: pointer; +} +.blocklyResizeHandle { + width: 12px; + height: 12px; + cursor: se-resize; +} +.blocklyResizeHandle { + cursor: inherit; +} + +.blocklyCommentTopbarBackground { + fill: var(--commentBorderColour); + height: 24px; +} + +.blocklyCommentPreview.blocklyText { + fill: #000; + dominant-baseline: middle; + visibility: hidden; +} + +.blocklyCommentPreview { + visibility: visible; +} + +.blocklyCommentForeignObject, +.blocklyResizeHandle { + display: none; +} + +.blocklyFoldoutIcon { + transform: rotate(-90deg); +} + +.blocklyCommentTopbar { + transform: scale(-1, 1); +} + +.blocklyCommentForeignObject { + direction: rtl; +} + +.blocklyCommentPreview { + /* Revert the scale and control RTL using direction instead. */ + transform: scale(-1, 1); + direction: rtl; +} + +.blocklyResizeHandle { + transform: scale(-1, 1); + cursor: sw-resize; +} + +.blocklyCommentHighlight { + fill: none; +} + +.blocklyCommentHighlight { + stroke: #fc3; + stroke-width: 3px; +} + +.blocklyCommentHighlight { + stroke: none; +} + +.blocklyCommentTopbarBackground { + stroke: #fc3; + stroke-width: 3px; +} + + +.blocklyTextarea { + background-color: var(--commentFillColour); + border: 0; + box-sizing: border-box; + display: block; + outline: 0; + padding: 5px; + resize: none; + width: 100%; + height: 100%; +} + + +.blocklyFlyoutButton { + fill: #888; + cursor: default; +} + +.blocklyFlyoutButtonShadow { + fill: #666; +} + +.blocklyFlyoutButton:hover { + fill: #aaa; +} + +.blocklyFlyoutLabel { + cursor: default; +} + +.blocklyFlyoutLabelBackground { + opacity: 0; +} + + +.blocklyTreeRow:not(.blocklyTreeSelected):hover { + background-color: rgba(255, 255, 255, .2); +} + +.blocklyToolboxCategory { + margin: 1px 5px 1px 0; +} + +.blocklyToolboxCategory { + margin: 1px 0 1px 5px; +} + +.blocklyTreeRow { + height: 22px; + line-height: 22px; + margin-bottom: 3px; + padding-right: 8px; + white-space: nowrap; +} + +.blocklyTreeRow { + margin-left: 8px; + padding-right: 0; +} + +.blocklyTreeIcon { + background-image: url(/media/blockly/sprites.png); + height: 16px; + vertical-align: middle; + visibility: hidden; + width: 16px; +} + +.blocklyTreeIconClosed { + background-position: -32px -1px; +} + +.blocklyTreeIconClosed { + background-position: 0 -1px; +} + +.blocklyTreeSelected>.blocklyTreeIconClosed { + background-position: -32px -17px; +} + +.blocklyTreeSelected>.blocklyTreeIconClosed { + background-position: 0 -17px; +} + +.blocklyTreeIconOpen { + background-position: -16px -1px; +} + +.blocklyTreeSelected>.blocklyTreeIconOpen { + background-position: -16px -17px; +} + +.blocklyTreeLabel { + cursor: default; + font: 16px sans-serif; + padding: 0 3px; + vertical-align: middle; +} + +.blocklyTreeLabel { + cursor: url("/media/blockly/handdelete.cur"), auto; +} + +.blocklyTreeLabel { + color: #fff; +} + + +.blocklyTreeSeparator { + border-bottom: solid #e5e5e5 1px; + height: 0; + margin: 5px 0; +} + +.blocklyTreeSeparator { + border-right: solid #e5e5e5 1px; + border-bottom: none; + height: auto; + margin: 0 5px 0 5px; + padding: 5px 0; + width: 0; +} + + +.blocklyToolboxDelete { + cursor: url("/media/blockly/handdelete.cur"), auto; +} + +.blocklyToolboxGrab { + cursor: url("/media/blockly/handclosed.cur"), auto; + cursor: grabbing; + cursor: -webkit-grabbing; +} + +/* Category tree in Toolbox. */ +.blocklyToolboxDiv { + background-color: #ddd; + overflow-x: visible; + overflow-y: auto; + padding: 4px 0 4px 0; + position: absolute; + z-index: 70; /* so blocks go under toolbox when dragging */ + -webkit-tap-highlight-color: transparent; /* issue #1345 */ +} + +.blocklyToolboxContents { + display: flex; + flex-wrap: wrap; + flex-direction: column; +} + +.blocklyToolboxContents:focus { + outline: none; +} + + +.blocklyModalOverlay { + width: 100%; + height: 100%; + left: 0; + top: 0; + position: fixed; +} +.blocklyModalContainer { + background-color: #fff; + border: 1px solid gray; + font-family: Helvetica; + font-weight: 300; + padding: 1em; + width: 400px; + display: flex; + flex-direction: column; + justify-content: center; + box-shadow: 0px 10px 20px grey; + z-index: 100; + margin: 15% auto; +} +.blocklyModalHeader { + display: flex; + justify-content: space-between; + align-items: center; +} +.blocklyModalHeaderTitle { + margin-top: 0; + margin-bottom: 0; + font-size: 1.2em; + line-height: 1.25; +} +.blocklyModalBtn { + margin-left: auto; + height: fit-content; +} +.blocklyModalBtnClose:before { + content: "\2715"; +} +.blocklyModalBtn { + margin-right: 0.5em; + border: 1px solid gray; + font-weight: 500; + color: gray; + border-radius: 25px; +} +.blocklyModalBtnPrimary { + background-color: gray; + color: #fff; +} + + +.typedModalTitle { + font-weight: bold; + font-size: 1em; +} +.typedModalVariableInputContainer { + margin: 1em 0 1em 0; +} +.typedModalVariableLabel{ + margin-right: 0.5em; +} +.typedModalTypes ul{ + display: flex; + flex-wrap: wrap; + list-style-type: none; + padding: 0; +} +.typedModalTypes li { + margin-right: 1em; + display: flex; +} + + +.blockly-focus-region { + fill: #e6e6e6; +} + + +.blockly-minimap { + box-shadow: 2px 2px 10px grey; +} + + + /** Setup grid layout of DropDown */ + .fieldGridDropDownContainer.blocklyMenu { + display: grid; + grid-gap: 7px; + } + /* Change look of cells (add border, sizing, padding, and text color) */ + .blocklyMenuItem { + border: 1px solid rgba(1, 1, 1, 0.5); + border-radius: 4px; + color: white; + min-width: auto; + padding-left: 15px; /* override padding-left now that checkmark is hidden */ + } + /* Change look of selected cell */ + .blocklyMenuItemCheckbox { + display: none; /* Hide checkmark */ + } + .blocklyMenuItem.blocklyMenuItemSelected { + background-color: rgba(1, 1, 1, 0.25); + } + /* Change look of focus/highlighted cell */ + .blocklyMenuItem.blocklyMenuItemHighlight { + box-shadow: 0 0 0 4px hsla(0, 0%, 100%, .2); + } + .blocklyMenuItemHighlight { + /* Uses less selectors so as to not affect blocklyMenuItemSelected */ + background-color: inherit; + } + .fieldGridDropDownContainer { + margin: 7px; /* needed for highlight */ + } + + +.fieldSliderContainer { + align-items: center; + display: flex; + height: 32px; + justify-content: center; + width: 150px; +} +.fieldSlider { + -webkit-appearance: none; + background: transparent; /* override white in chrome */ + margin: 4px; + padding: 0; + width: 100%; +} +.fieldSlider:focus { + outline: none; +} +/* Webkit */ +.fieldSlider::-webkit-slider-runnable-track { + background: #ddd; + border-radius: 5px; + height: 10px; +} +.fieldSlider::-webkit-slider-thumb { + -webkit-appearance: none; + background: #fff; + border-radius: 50%; + box-shadow: 0 0 0 4px rgba(255,255,255,.15); + cursor: pointer; + height: 24px; + margin-top: -7px; + width: 24px; +} +/* Firefox */ +.fieldSlider::-moz-range-track { + background: #ddd; + border-radius: 5px; + height: 10px; +} +.fieldSlider::-moz-range-thumb { + background: #fff; + border: none; + border-radius: 50%; + box-shadow: 0 0 0 4px rgba(255,255,255,.15); + cursor: pointer; + height: 24px; + width: 24px; +} +.fieldSlider::-moz-focus-outer { + /* override the focus border style */ + border: 0; +} +/* IE */ +.fieldSlider::-ms-track { + /* IE wont let the thumb overflow the track, so fake it */ + background: transparent; + border-color: transparent; + border-width: 15px 0; + /* remove default tick marks */ + color: transparent; + height: 10px; + width: 100%; + margin: -4px 0; +} +.fieldSlider::-ms-fill-lower { + background: #ddd; + border-radius: 5px; +} +.fieldSlider::-ms-fill-upper { + background: #ddd; + border-radius: 5px; +} +.fieldSlider::-ms-thumb { + background: #fff; + border: none; + border-radius: 50%; + box-shadow: 0 0 0 4px rgba(255,255,255,.15); + cursor: pointer; + height: 24px; + width: 24px; +} + + +.blocklyHtmlTextAreaInput { + font-family: monospace; + resize: none; + overflow: hidden; + height: 100%; + text-align: left; +} + +.blocklyHtmlTextAreaInputOverflowedY { + overflow-y: scroll; +} + + +.blocklyColourTable { + border-collapse: collapse; + display: block; + outline: none; + padding: 1px; +} + +.blocklyColourTable>tr>td { + border: 0.5px solid #888; + box-sizing: border-box; + cursor: pointer; + display: inline-block; + height: 20px; + padding: 0; + width: 20px; +} + +.blocklyColourTable>tr>td.blocklyColourHighlighted { + border-color: #eee; + box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3); + position: relative; +} + +.blocklyColourSelected:hover { + border-color: #eee !important; + outline: 1px solid #333; + position: relative; +} + + +.zoomToFit { + opacity: 0.4; +} +.zoomToFit:hover { + opacity: 0.6; +} +.zoomToFit:active { + opacity: 0.8; +} + + +.blocklyBackpack { + opacity: 0.4; +} +.blocklyBackpackDarken { + opacity: 0.6; +} +.blocklyBackpack:active { + opacity: 0.8; +} +.blocklyPath { + fill-opacity: 1; + } + .blocklyPathDark { + display: flex; + } + .blocklyPathLight { + display: flex; + } ESP32-S2 PhododiodeMesswert:Lichtintensität \ No newline at end of file diff --git a/static/img/en/blockly-bilder/rgb-led-esp-32/esp_32.svg b/static/img/en/blockly-bilder/rgb-led-esp-32/esp_32.svg new file mode 100644 index 0000000..6e4ab27 --- /dev/null +++ b/static/img/en/blockly-bilder/rgb-led-esp-32/esp_32.svg @@ -0,0 +1 @@ +ESP32-S2 PhododiodeValue:Light intensity \ No newline at end of file diff --git a/static/img/en/hardware-bilder/led-matrix/emoji_block.svg b/static/img/en/hardware-bilder/led-matrix/emoji_block.svg new file mode 100644 index 0000000..7e8577d --- /dev/null +++ b/static/img/en/hardware-bilder/led-matrix/emoji_block.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Draw bitmap + + + Port: + + + + A + + + + Motive + + + + + + + Motive + + + + happy + + + + + + + \ No newline at end of file diff --git a/static/img/en/hardware-bilder/led-matrix/set_pixel_block.svg b/static/img/en/hardware-bilder/led-matrix/set_pixel_block.svg new file mode 100644 index 0000000..216647d --- /dev/null +++ b/static/img/en/hardware-bilder/led-matrix/set_pixel_block.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Arduino run first: + + + Arduino loop forever: + + + + + + + + + + + + + 11 + + + + + + + + + 7 + + + + + + + + + + + + + + + + + + + + + 1000 + + + + + + + + + + + + + 11 + + + + + + + + + 7 + + + + + + + + + + + + + + + + + + + + + 1000 + + + + wait + + + milliseconds + + + + Set pixels + + + Port: + + + + A + + + + Draw immediatly + + + + + + + X + + + Y + + + Color + + + + wait + + + milliseconds + + + + Set pixels + + + Port: + + + + A + + + + Draw immediatly + + + + + + + X + + + Y + + + Color + + + + + + + + + \ No newline at end of file diff --git a/static/img/en/hardware-bilder/led-matrix/text_block.svg b/static/img/en/hardware-bilder/led-matrix/text_block.svg new file mode 100644 index 0000000..001e5c0 --- /dev/null +++ b/static/img/en/hardware-bilder/led-matrix/text_block.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Show text/number + + + Port: + + + + A + + + + Auto-Scroll + + + + + + + Color + + + Input + + + + + + + + + + + + + + + + + + + Hello World! + + + + + + + + + + \ No newline at end of file diff --git a/static/img/en/mcu/ports/mcutop.png b/static/img/en/mcu/ports/mcutop.png new file mode 100644 index 0000000..713eccc Binary files /dev/null and b/static/img/en/mcu/ports/mcutop.png differ diff --git a/static/img/en/mini/mini-rgb-led.png b/static/img/en/mini/mini-rgb-led.png new file mode 100644 index 0000000..00eeacf Binary files /dev/null and b/static/img/en/mini/mini-rgb-led.png differ diff --git a/static/img/en/mini/mini-rgb-led_2.png b/static/img/en/mini/mini-rgb-led_2.png new file mode 100644 index 0000000..b7a9a94 Binary files /dev/null and b/static/img/en/mini/mini-rgb-led_2.png differ diff --git a/static/img/en/mini/mini_double.png b/static/img/en/mini/mini_double.png new file mode 100644 index 0000000..dac3c0f Binary files /dev/null and b/static/img/en/mini/mini_double.png differ diff --git a/static/img/en/mini/ports/i2c-wire-port.png b/static/img/en/mini/ports/i2c-wire-port.png new file mode 100644 index 0000000..c3013f6 Binary files /dev/null and b/static/img/en/mini/ports/i2c-wire-port.png differ diff --git a/static/img/en/mini/ports/io-port.png b/static/img/en/mini/ports/io-port.png new file mode 100644 index 0000000..d7f1a64 Binary files /dev/null and b/static/img/en/mini/ports/io-port.png differ diff --git a/static/img/en/mini/ports/uart-serial-port.png b/static/img/en/mini/ports/uart-serial-port.png new file mode 100644 index 0000000..7a8f805 Binary files /dev/null and b/static/img/en/mini/ports/uart-serial-port.png differ diff --git a/static/img/en/mini/sensebox-mini.png b/static/img/en/mini/sensebox-mini.png new file mode 100644 index 0000000..0872b90 Binary files /dev/null and b/static/img/en/mini/sensebox-mini.png differ diff --git a/static/img/hardware-bilder/cable/breadboard.png b/static/img/hardware-bilder/cable/breadboard.png new file mode 100644 index 0000000..6618455 Binary files /dev/null and b/static/img/hardware-bilder/cable/breadboard.png differ diff --git a/static/img/hardware-bilder/cable/breadboard_top.png b/static/img/hardware-bilder/cable/breadboard_top.png new file mode 100644 index 0000000..c34c301 Binary files /dev/null and b/static/img/hardware-bilder/cable/breadboard_top.png differ diff --git a/static/img/hardware-bilder/cable/jst-phr4-jumper-female.png b/static/img/hardware-bilder/cable/jst-phr4-jumper-female.png new file mode 100644 index 0000000..23d2875 Binary files /dev/null and b/static/img/hardware-bilder/cable/jst-phr4-jumper-female.png differ diff --git a/static/img/hardware-bilder/cable/jst-phr4-jumper-male.png b/static/img/hardware-bilder/cable/jst-phr4-jumper-male.png new file mode 100644 index 0000000..1ce942b Binary files /dev/null and b/static/img/hardware-bilder/cable/jst-phr4-jumper-male.png differ diff --git a/static/img/hardware-bilder/cable/jst-phr4_cable.png b/static/img/hardware-bilder/cable/jst-phr4_cable.png new file mode 100644 index 0000000..01ccf94 Binary files /dev/null and b/static/img/hardware-bilder/cable/jst-phr4_cable.png differ diff --git a/static/img/hardware-bilder/cable/jst-to-sds011.png b/static/img/hardware-bilder/cable/jst-to-sds011.png new file mode 100644 index 0000000..444a14f Binary files /dev/null and b/static/img/hardware-bilder/cable/jst-to-sds011.png differ diff --git a/static/img/hardware-bilder/cable/jst-to-sds011_2.png b/static/img/hardware-bilder/cable/jst-to-sds011_2.png new file mode 100644 index 0000000..ee4c435 Binary files /dev/null and b/static/img/hardware-bilder/cable/jst-to-sds011_2.png differ diff --git a/static/img/hardware-bilder/cable/jumper_wire_mm.png b/static/img/hardware-bilder/cable/jumper_wire_mm.png new file mode 100644 index 0000000..d44494b Binary files /dev/null and b/static/img/hardware-bilder/cable/jumper_wire_mm.png differ diff --git a/static/img/hardware-bilder/cable/qwiic-to-jstphr4.png b/static/img/hardware-bilder/cable/qwiic-to-jstphr4.png new file mode 100644 index 0000000..3667eaf Binary files /dev/null and b/static/img/hardware-bilder/cable/qwiic-to-jstphr4.png differ diff --git a/static/img/hardware-bilder/cable/qwiic_cable.png b/static/img/hardware-bilder/cable/qwiic_cable.png new file mode 100644 index 0000000..e169a28 Binary files /dev/null and b/static/img/hardware-bilder/cable/qwiic_cable.png differ diff --git a/static/img/hardware-bilder/cable/usb-a-to-c.png b/static/img/hardware-bilder/cable/usb-a-to-c.png new file mode 100644 index 0000000..50bb5e0 Binary files /dev/null and b/static/img/hardware-bilder/cable/usb-a-to-c.png differ diff --git a/static/img/hardware-bilder/led-matrix/emoji_block.svg b/static/img/hardware-bilder/led-matrix/emoji_block.svg new file mode 100644 index 0000000..fe2bc05 --- /dev/null +++ b/static/img/hardware-bilder/led-matrix/emoji_block.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Motiv + + + + happy + + + + + Zeige Bitmap + + + Port: + + + + A + + + + Motiv + + + + \ No newline at end of file diff --git a/static/img/hardware-bilder/led-matrix/happy_bitmap.svg b/static/img/hardware-bilder/led-matrix/happy_bitmap.svg new file mode 100644 index 0000000..6d4c40e --- /dev/null +++ b/static/img/hardware-bilder/led-matrix/happy_bitmap.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + Name: + + + + Happy + + + Paint a custom Bitmap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/img/hardware-bilder/led-matrix/rgb565_block.svg b/static/img/hardware-bilder/led-matrix/rgb565_block.svg new file mode 100644 index 0000000..75af10c --- /dev/null +++ b/static/img/hardware-bilder/led-matrix/rgb565_block.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Draw bitmap + + + Port: + + + + A + + + + Motive + + + + + + + { + + + + + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000... + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000... + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000... + 0xF800, 0xF800, 0xF800, 0xF800, 0xF800, 0xF800... + 0xF800, 0xF800, 0xF800, 0xF800, 0xF800, 0xF800... + 0xF800, 0xF800, 0xF800, 0xF800, 0xF800, 0xF800... + 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0... + 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0... + + + + } + + + + + + + + \ No newline at end of file diff --git a/static/img/hardware-bilder/led-matrix/set_pixel_block.svg b/static/img/hardware-bilder/led-matrix/set_pixel_block.svg new file mode 100644 index 0000000..11a53ed --- /dev/null +++ b/static/img/hardware-bilder/led-matrix/set_pixel_block.svg @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pixel setzen + + + Port: + + + + A + + + + Zeige sofort + + + + + + + X + + + Y + + + Farbe + + + + + + + + + + + + + + + + 11 + + + + + + + + + 7 + + + + + + + + + + + + + 1000 + + + + Warte + + + Millisekunden + + + + + + + Pixel setzen + + + Port: + + + + A + + + + Zeige sofort + + + + + + + X + + + Y + + + Farbe + + + + + + + + + + + + + + + + + + + + 1000 + + + + Warte + + + Millisekunden + + + + + + + + + 11 + + + + + + + + + 7 + + + + + + + + + + + \ No newline at end of file diff --git a/static/img/hardware-bilder/led-matrix/text_block.svg b/static/img/hardware-bilder/led-matrix/text_block.svg new file mode 100644 index 0000000..5857e29 --- /dev/null +++ b/static/img/hardware-bilder/led-matrix/text_block.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Zeige Text/Zahl + + + Port: + + + + A + + + + Auto-Scroll + + + + + + + Farbe + + + Input + + + + + + + + + + + + + + + + + + + Hallo Welt! + + + + + + + + + \ No newline at end of file diff --git a/static/img/mcu/ports/mcutop.png b/static/img/mcu/ports/mcutop.png new file mode 100644 index 0000000..713eccc Binary files /dev/null and b/static/img/mcu/ports/mcutop.png differ diff --git a/static/img/mini/mini-rgb-led.png b/static/img/mini/mini-rgb-led.png index b7a9a94..00eeacf 100644 Binary files a/static/img/mini/mini-rgb-led.png and b/static/img/mini/mini-rgb-led.png differ diff --git a/static/img/mini/mini-rgb-led_2.png b/static/img/mini/mini-rgb-led_2.png new file mode 100644 index 0000000..b7a9a94 Binary files /dev/null and b/static/img/mini/mini-rgb-led_2.png differ diff --git a/static/img/mini/mini_double.png b/static/img/mini/mini_double.png new file mode 100644 index 0000000..dac3c0f Binary files /dev/null and b/static/img/mini/mini_double.png differ diff --git a/static/img/mini/ports/i2c-wire-port.png b/static/img/mini/ports/i2c-wire-port.png new file mode 100644 index 0000000..4b693c2 Binary files /dev/null and b/static/img/mini/ports/i2c-wire-port.png differ diff --git a/static/img/mini/ports/io-port.png b/static/img/mini/ports/io-port.png new file mode 100644 index 0000000..c437e6f Binary files /dev/null and b/static/img/mini/ports/io-port.png differ diff --git a/static/img/mini/ports/uart-serial-port.png b/static/img/mini/ports/uart-serial-port.png new file mode 100644 index 0000000..7b4f017 Binary files /dev/null and b/static/img/mini/ports/uart-serial-port.png differ diff --git a/tailwind.config.js b/tailwind.config.js index 24f8cc6..9ede291 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,89 +1,91 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - darkMode: ["class"], - corePlugins: { - preflight: false, - }, - content: [ - './docs/**/*.{md,mdx}', - './pages/**/*.{js,jsx}', - './components/**/*.{js,jsx}', - './app/**/*.{js,jsx}', - './src/**/*.{js,jsx}', - ], - prefix: "", - theme: { - container: { - center: true, - padding: "2rem", - screens: { - "2xl": "1400px", - }, - }, - extend: { - colors: { - "green": "#669933", - "green-2": "#298e52", - "green-3": "#30954c", - "blue":"#00cccc", - "blue-2": "#00c6ff", - "blue-3": "#00a2c6", - "yellow": "#ffcc33", - "orange": "#ee5a38", - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", - }, - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", - }, - keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, - }, - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - }, - }, - }, - plugins: [require("tailwindcss-animate")], -} \ No newline at end of file + darkMode: ["class", "[data-theme='dark']"], + corePlugins: { + preflight: false, + }, + content: [ + './docs/**/*.{md,mdx}', + './pages/**/*.{js,jsx}', + './components/**/*.{js,jsx}', + './app/**/*.{js,jsx}', + './src/**/*.{js,jsx}', + './docusaurus.config.js', + ], + prefix: "", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + "green": "#669933", + "green-2": "#298e52", + "green-3": "#30954c", + "blue":"#00cccc", + "blue-2": "#00c6ff", + "blue-3": "#00a2c6", + "yellow": "#ffcc33", + "orange": "#ee5a38", + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], + } + \ No newline at end of file