Von der Firma Seeedstudio habe ich ein Angebot erhalten das „Grove Beginner Kit for Arduino“ kostenfrei zu testen. Dieses habe ich selbstverständlich freudig angenommen und möchte dir in diesem Beitrag das Kit vorstellen.
Bezug
Das „Grove Beginner Kit for Arduino“ kannst du im offiziellen Shop von Seeedstudio für 19,90 $ beziehen (ca. 16,92 € stand 30.07.2020). Zu diesem Preis kommen noch die Versandkosten nach Deutschland hinzu und diese sind je nach verwendeten Dienst sehr teuer. Ich habe das Kit mit DHL Express bestellt und somit 27,72 $ für den Versand bezahlt.
Ansonsten schwanken die Versandkosten je nach Anbieter.
Komischerweise sind die Versandkosten für dieses Board nun auf 28,25$ gestiegen.
Dokumentation von Seeedstudio
Im Shop von Seeedstudio findet man eine englischsprachige Dokumentation „Grove Beginner Kit for Arduino“ welche sehr ausführlich ist. In diesem Adobe PDF Dokument ist, sind die im Kit enthaltenen Sensoren & Aktoren verlinkt und mit einfachen Beispielen hinterlegt.
Unboxing
Die Box ist aus bedruckter Pappe und an 3 Stellen sicher verklebt. Wenn man den Deckel öffnet so erblickt man sogleich das Board mit den Sensoren & Aktoren welche den Microcontroller umfassen. Das USB Datenkabel ist in der rechten Seite welche mit „X1 Micro-USB Cable inside“ beschriftet ist, verpackt. In der linken „Tasche“ im Karton findest du 6 Grove Kabel, um die Sensoren an den Microcontroller anzuschließen.
Die Grove Verbindungskabelabel benötigst du nur wenn die Sensoren & Aktoren von der Platine gelöst wurden.
Der Karton hat vorne eine kleine, halbrunde Aussparung und somit kann das Board während der Programmierung im Karton verbleiben.












Leider ist auch bei diesem Set das mitgelieferte USB Kabel sehr kurz geraten.
Ich würde empfehlen ein 1m langes Micro USB Kabel* zu erwerben und zu verwenden.Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Aufbau & Inhalt des „Grove Beginner Kit for Arduino“
Das Kit enthält einen Microcontroller im Format eines Arduino UNO jedoch mit zusätzlichen „Grove – Schnittstellen“. Der Microcontroller kommt mit einem ATMEL M328PU-CN Chip daher.
Der ATMEL M328PU hat folgende technische Daten:
Produktpalette | ATMega-Mikrocontroller |
MCU Familie | AVR ATmega |
MCU-Baureihe | ATmega328 |
Datenbus-Weite | 8bit |
ADC-Auflösung | 10bit |
CPU Geschwindigkeit | 20 MHz |
Versorgungsspannung | |
min | 1.8V |
max | 5.5V |
Schnittstellen | I2C, SPI, UART |
Anzahl der Timer/Zähler | 3 |
Anzahl der ADC-Kanäle | 6 |
Speicher | |
SRAM | 2kB |
EEPROM | 1kB |
Noch mehr Informationen zu dem Chip findest du im Datenblatt unter http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
Im Kit sind neben dem genannten Microcontroller folgende Sensoren & Aktoren enthalten:
- Grove – 5mm LED Shield,
- Grove – Piezo Buzzer Shield,
- Grove – 0,96″ OLED Display Shield,
- Grove – Button Shield,
- Grove – Drehpotentiometer Shield,
- Grove – Lichtintensitätssensor Shield,
- Grove – Geräuschdetektor Shield,
- Grove – DHT11, Temperatur & rel. Luftfeuchtigkeitssensor Shield,
- Grove – Luftdrucksensor Shield,
- Grove – 3 Achsen Lagesensor Shield
Auf der Wiki Seite https://wiki.seeedstudio.com/ findest du zu jedem Sensor & Aktor ein sehr ausführliches Beispiel von Seeedstudio.
Aufbau des Microcontrollers Seeeduino Lotus
Dem Kit liegt der Microcontroller Seeeduino Lotus bei, welcher wie bereits erwähnt den Chip ATMEL M328PU hat.
Der Microcontroller kommt mit 12 vormontierten Grove Schnittstellen daher wobei davon
- 6 digitale (D2, D3, D4, D5, D6, D7),
- 3 analoge (A0, A2, A6),
- 2 I2C, sowie
- 1 UART
verbunden sind.
Ansonsten hat der Microcontroller den gleichen Formfaktor wie der Arduino UNO und somit kann man auf diesen Shields wie nachfolgend dargestellt stecken und programmieren.



Den Seeeduino Lotus kannst du auch separat im Shop von Seeedstudio für 17,5$ bestellen.
Aufbau der Schaltungen
Die Sensoren & Aktoren sind auf einer Platine mit dem Microcontroller verbunden. Du kannst diese Shields jedoch auch trennen und somit einzeln mithilfe der 6 mitgelieferten Grove Kabel an den Microcontroller anstecken.
In diesem Beitrag belasse ich jedoch diese Module an dem Board denn ein großer Vorteil ist dabei das diese Module nicht „wild auf dem Schreibtisch herumfliegen“. In einigen Blogbeiträgen hatte ich zumeist das Problem das die Kabel etwas zu starr sind und somit die Platzierung der Module nur mit Hilfe einiger Tricks möglich war. Einer dieser Tricks ist zbsp. die Verwendung von UHU patafix. Diese Klebepads lassen sich Rückstandsfrei von Platinen und Schreibtischoberflächen lösen und beliebig wiederverwenden.
Erster betrieb am Computer
Wenn du das Board an den Computer (oder über eine Powerbank, USB Ladegerät) anschließt dann wird bereits ein Programm ausgeführt. Es wird die Lichtintensität gemessen und auf dem 0,96″ OLED Display als Zahl sowie in einem Kreisdiagramm angezeigt. Des Weiteren wird die rote 5mm LED blinken wenn du den Taster betätigst.
Programmieren
Das Standardprogramm zeigt schon ein paar Funktionen jedoch kann man natürlich weitaus mehr mit diesem Board machen und genau darum soll es sich in diesem Abschnitt drehen. Hier möchte ich dir nun zeigen wie du die verschiedenen Sensoren & Aktoren mit der Arduino IDE programmierst.
Die meisten der vorhandenen Sensoren & Aktoren habe ich bereits in separaten Beiträgen auf diesem Blog behandelt jedoch möchte ich dir hier nun ein paar kleine Projekte zeigen welche du ganz einfach nachbauen bzw. programmieren kannst.
Als erstes Beispiel wollte ich gerne ein Beispiel nehmen in welchem die Werte der 3 Umweltsensoren auf dem OLED Display angezeigt werden. Jedoch verfügt der Seeeduino Lotus nur über 32KB Speicher und somit ist dieses sehr eingegrenzt und schon mit der Bibliothek für das Display mehr als 84% belegt.

Man beachte die letzte Zeile in der Konsolenausgabe! Dieses ist nicht einfach nur eine Warnung, in einem kleinen Test hat sich gezeigt das der Microcontroller ausfällt bzw. neustartet.
auslesen der Umweltsensoren
Zunächst wollen wir die Umweltsensoren auslesen und die Werte auf dem 0,96″ OLED Display anzeigen lassen.
Zu diesen Sensoren zählen:
- der analoge Lichtintensitätssensor,
- der DHT11 Sensor (Temperatur, rel. Luftfeuchtigkeit)
0,96″ OLED Display
Das 0,96″ OLED Display ist per I2C an den Seeeduino Lotus angeschlossen, d.h. wir benötigen zunächst die Adresse von dem Display. Diese finden wir leider nicht in dem entsprechenden Wiki Artikel Grove – 0,96″ OLED Display jedoch können wir den I2C Scanner von Arduino Playground verwenden. In der Ausgabe des Sketches findest du dann 3 Adressen eine davon ist das Display (0x03c).
Bibliothek für den betrieb des Displays
Für den Betrieb des Displays benötigst du die Bibliothek u8g2 diese kannst du bequem über den Bibliotheksverwalter der Arduino IDE installieren.
Wie du eine Bibliothek in der Arduino IDE einbindest habe ich im Beitrag Arduino IDE, Einbinden einer Bibliothek erläutert.
„Hello World!“ auf dem Display
Hier nun ein kleines Beispiel wie man einen Text auf dem Display darstellen kann. Diesen Sketch werden wir dann weiterentwickeln und die Werte der verschiedenen Umweltsensoren anzuzeigen.
//Einbinden der benötigten Bibliotheken für das 0,96 Zoll Display #include <Arduino.h> #include <U8g2lib.h> #include <Wire.h> //definieren eines Display Objektes für die Kommunikation über I2C //Adresse des Displays ist 0x03c U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE); //eine globale Variable für das zählen eines Index int index = 0; void setup() { u8g2.begin(); //Beginn der kommunikation mit dem Display u8g2.setFlipMode(1); //drehen des Displays um 180° } void loop() { //Wenn der Index größer 999 dann soll von 0 begonnen werden if(index > 999){ index = 0; } //leeren des Displays //Wenn das Display nicht geleert wird dann wird die Position mit einem neuen Text überschrieben //ggf. bereits gesetzte Pixel werden nicht gelöscht und bleiben somit erhalten u8g2.clear(); u8g2.clearBuffer(); //setzen der Schriftart u8g2.setFont(u8g2_font_ncenB08_tr); //schreiben des Textes Hello World! in die erste Zeile an Position 0 u8g2.drawStr(0, 10, "Hello World!"); //Da der Funktion drawStr nur char Arrays übergeben werden können //müssen wir die aktuelle Zahl des Indexes in ein char umwandeln. char charValue[3]; dtostrf(++index, 6, 0, charValue); //schreiben des aktuellen Index in die zweite Zeile an Position 0 u8g2.drawStr(0, 20, charValue); //absenden der gespeicherten Texte u8g2.sendBuffer(); //eine kleine Pause von 75ms. delay(75); }
analoger Lichtintensitätssensor
Auf der Wiki Seite Grove – Light Sensor findest du die offizielle Beschreibung (in englischer Sprache) des analogen Lichtintensitätssensors.
Der analoge Lichtintensitätssensor ist am analogen Pin A6 angeschlossen und wird mit dem Befehl
int value = analogRead(A6);
ausgelesen.
Um diesen Wert nun auf dem OLED Display anzeigen zu lassen müssen wir diesen Zahlenwert zunächst in ein char Array umwandeln.
//Wert des analogen Lichtintensitätssensors lesen int value = analogRead(A6); //ein char Array mit maximal 3 Stellen reservieren char charValue[3]; //den Zahlenwert in das char Array kopieren dtostrf(++index, 6, 0, charValue); //schreiben des char Arrays in den Speicher des Displays u8g2.drawStr(0, 20, charValue);
Der minimale analoge Wert ist 0 und der maximale Wert ist 1023.
Hier nun der komplette Sketch zum anzeigen des aktuellen Wertes des analogen Lichtintensitätssensors.
//Einbinden der benötigten Bibliotheken für das 0,96 Zoll Display #include <Arduino.h> #include <U8g2lib.h> #include <Wire.h> //definieren eines Display Objektes für die Kommunikation über I2C //Adresse des Displays ist 0x03c U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE); void setup() { Serial.begin(9600); u8g2.begin(); //Beginn der kommunikation mit dem Display u8g2.setFlipMode(1); //drehen des Displays um 180° } void loop() { u8g2.clearBuffer(); //setzen der Schriftart u8g2.setFont(u8g2_font_ncenB08_tr); //schreiben des Textes Hello World! in die erste Zeile an Position 0 u8g2.drawStr(0, 10, "Lichtintensitaetssensor"); //Wert des analogen Lichtintensitätssensors lesen float value = analogRead(A6); Serial.print("Wert: "); Serial.println(value); //ein char Array mit maximal 3 Stellen reservieren char charValue[3]; //den Zahlenwert in das char Array kopieren dtostrf(value, 6, 0, charValue); //schreiben des char Arrays in den Speicher des Displays u8g2.drawStr(0, 25, charValue); //Zeichnen eines Prozentbalkens auf das Display float percentage = (value / 750)*100; //berechnen des Prozentwertes String percText = String(percentage, 1)+"%"; //schreiben des Textes char pCharArr[8]; //ein char Array mit 8 Stellen reservieren percText.toCharArray(pCharArr, 8); //kopieren des Textes in das char Array u8g2.drawBox(0,35,percentage,10); //zeichnen des Prozenbalkens u8g2.drawStr(85, 25, pCharArr); //schreiben des Textes //absenden der gespeicherten Texte u8g2.sendBuffer(); //eine kleine Pause von 500ms. delay(500); }
Video
DHT11 Sensor
Der DHT11 Sensor liefert die Temperatur sowie die relative Luftfeuchtigkeit. Diesen Sensor habe ich bereits in diversen Beiträgen vorgestellt zbsp. Arduino Lektion 6: Sensor DHT11, Temperatur und relative Luftfeuchtigkeit messen. Auf der offiziellen Wiki Seite zum Sensor DHT11 von Seeedstudio findest du eine sehr ausführliche Beschreibung sowie ein paar Beispiele.
technische Daten des DHT11 Sensors
- Messbereich der relativen Luftfeuchtigkeit 20% bis 90%
- Toleranz des Messbereiches für die relative Luftfeuchtigkeit ±5%
- Messbereich der Temperatur 0 bis 60°C
- Toleranz des Messbereiches für die Temperatur ±2°C
- Betriebsspannung 5V
Bibliothek für den DHT11 Sensor
Im Bibliotheksverwalter der Arduino IDE findest du einige Bibliotheken für den DHT11 Sensor. Ich habe bisher sehr gute Erfahrungen mit der Bibliothek von Adafruit gesammelt welche auch für den DHT21, DHT22, geeignet ist.
Auch dieser Bibliothek liegt ein Beispiel bei, bei diesem Beispiel muss man jedoch als DHTTYPE den Wert DHT11 wählen, und als DHTPIN 3. Ansonsten ist auch dieses Beispiel sofort auf diesem Board lauffähig.
Anzeigen der Werte auf dem OLED Display
Wollen wir nun die Werte auf dem OLED Display anzeigen.
Ich nutze hier als Basis das Beispiel von der Wiki Seite zum DHT11 von Seeedstudio.
#include "DHT.h" //Bibliothek für den DHT11 Sensor #include <Arduino.h> #include <U8x8lib.h> //Bibliothek für das OLED Display #define DHTPIN 3 // der DHT11 Sensor ist am digitalen Pin D3 angeschlossen #define DHTTYPE DHT11 // DHT 11 //neues DHT Objekt für den Zugriff auf den Sensor DHT dht(DHTPIN, DHTTYPE); //neues Objekt für den Zugriff auf das Display U8X8_SSD1306_128X64_ALT0_HW_I2C u8x8(U8X8_PIN_NONE); void setup(void) { //beginn der seriellen Kommunikation mit 9600 baud Serial.begin(9600); //ausgabe des Textes auf der seriellen Schnittstelle Serial.println("DHTxx test!"); //beginn der Kommunikation mit dem Sensor dht.begin(); //beginn der Kommunikation mit dem Display u8x8.begin(); //Energiesparmodus u8x8.setPowerSave(0); //Display um 180° drehen u8x8.setFlipMode(1); } void loop(void) { //Variablen für das speichern der Temperatur und der rel. Luftfeuchtigkeit float tempC, tempF, humi; //lesen der Temperatur in Celsius tempC = dht.readTemperature(); //lesen der Temperatur in Fahrenheit tempF = dht.readTemperature(true); //lesen der rel. Luftfeuchtigkeit humi = dht.readHumidity(); //setzen der Schriftart u8x8.setFont(u8x8_font_chroma48medium8_r); //Positionieren des Coursors u8x8.setCursor(0, 40); //schreiben des Textes... u8x8.print("Temp:"); //schreiben der Temperatur u8x8.print(tempC); //schreiben des Textes... u8x8.print("C"); //Positionieren des Coursors u8x8.setCursor(0, 25); //schreiben des Textes... u8x8.print("Temp:"); //schreiben der Temperatur u8x8.print(tempF); //schreiben des Textes... u8x8.print("F"); //Positionieren des Coursors u8x8.setCursor(0, 10); //schreiben des Textes... u8x8.print("Humidity:"); //schreiben des rel. Luftfeuchtigkeit u8x8.print(humi); //schreiben des Textes... u8x8.print("%"); //Display aktualisieren u8x8.refreshDisplay(); //eine kurze Pause von 200ms delay(200); }
Fazit & pers. Meinung
Das Seeedstudio – „Grove Beginner Kit for Arduino“ ist gerade für Anfänger sehr gut geeignet denn es entfällt das doch recht fehleranfällige verkabeln der Sensoren. Auf dem Board sind die entsprechenden Ports der Sensoren & Aktoren beschriftet und im online verfügbaren PDF Dokument sind einige Beispiele vorhanden so kann man quasi gleich loslegen mit der Programmierung. Die Texte sind jedoch in englischer Sprache und der Quellcode selber ist nur sehr spärlich dokumentiert.
Der Preis von 19,9 $ ist für die Anzahl der Bauteile inkl. Mikrocontroller okay, es ist jetzt nicht das günstigste Kit, welches man erhalten kann, aber dafür hat man einen Mikrocontroller mit Grove Schnittstellen und genau für diese Schnittstelle gibt es so einige interessante Sensoren & Aktoren im Shop von Seeedstudio.