Lektion 4: Es geht in die Praxis

Inhaltsverzeichnis

Erstellen der *.h-Datei

Wie in der letzten Lektion bereits erwähnt, können wir uns aus der XML-Datei direkt die benötigte Header-Datei erstellen lassen. Im Verzeichnis der Suite befindet sich dazu der KONNEKTING-CodeCreator (KONNEKTING-CodeCreator-UI.bat). Es öffnet sich ein kleines UserInterface. Hier kann die *.xml-Datei und das Zielverzeichnis für die *.h-Datei ausgewählt werden.

Sollte sich ein Fehler eingeschlichen haben, wird das entsprechend angezeigt. Steht im Fenster „Writing to folder“, so ist alles in Butter.

ACHTUNG Käfer!
Die letzte Zeile in der Header-Datei sollte so aussehen:
const int KonnektingDevice::_numberOfParams = sizeof (_paramSizeList); // do not change this code

Wenn sie so aussieht:
const byte KonnektingDevice::_numberOfParams = sizeof (_paramSizeList); // do not change this code
dann ignoriere bitte die Bemerkung am Ende der Zeile und ändere „byte“ in „int“.

Schau dann einmal in der Datei „KONNEKTING_deviceconfiguration.h.template“ nach und ändere das dort entsprechend.

Das Testprojekt

Nun kommt die Hardware an die Reihe. Wir wollen ja einen kleinen Temperatursensor bauen. In dem Beispiel nutze ich einen Seeeduino XIAO. Der XIAO ist ein kleines Board mit einem SAMD21G18. Hier das Anschlußbild:

Tx ist dort Pin D6, Rx ist Pin D7. Es kann natürlich jeder andere Arduino mit SAMD genutzt werden.

Denkt an die Pegel.
Der SAMD arbeitet mit 3,3V, genau wie die MicroBCU. Beim Verwenden der Siemens-BCU darf ein Pegelwandler nicht fehlen.

Als Temperatursensor nutze ich in dem Beispiel einen LM75. Es kann natürlich jeder Andere genutzt werden, der gerade in der Bastelkiste greifbar ist. Der Sketch gibt alle 5 Sekunden die aktuelle Temperatur auf dem Monitor aus. Hier der Beispielsketch:

/**********************************************************************
 * Einfacher Temperatursensor als Beispiel für Konnekting
 * 
 * schickt alle 5 Sekunden die aktuelle Temperatur
 * 
 * Temperatursensor: LM 75
 * Benutzt die LM75-Library von Jeremy Cole aus der Bibliothekverwaltung
 * 
 * Prozessor ist ein SAMD21G18 (Seeeduino XIAO, Arduino Zero)
 * 
 **********************************************************************/
 
#define DEBUGSERIAL Serial   // USB port
 
#include <Temperature_LM75_Derived.h>

// The Generic_LM75 class will provide 9-bit (±0.5°C) temperature for any
// LM75-derived sensor. More specific classes may provide better resolution.
Generic_LM75 temperature;
 
unsigned long lastmillis = millis();
uint32_t sendDelay = 5000;
 
void setup()
{
  DEBUGSERIAL.begin(9600);
  Wire.begin();
  lastmillis = millis();
}
 
void loop()
{
   float aktTemp;
   unsigned long currentmillis = millis();

  if (currentmillis - lastmillis >= sendDelay)
  {
    aktTemp = temperature.readTemperatureC(); //aktuelle Temperatur einlesen
    DEBUGSERIAL.print("Aktuelle Temperatur ");
    DEBUGSERIAL.print(aktTemp);                  //und zum Monitor
    DEBUGSERIAL.println(" ºC");
    lastmillis = currentmillis;
  }
}

Wie geht es weiter?

Wenn der Temperatursensor einwandfrei arbeitet, können wir ihn in der nächsten Lektion in einen KONNEKTING-Temperatursensor verwandeln. Dazu benötigen wir als Hardware zusätzlich eine LED mit Vorwiderstand (OnBoard_LED, falls vorhanden), einen Taster, einen 10µF Kondensator und einen 10k Widerstand. Daraus bauen wir uns dann den Programmiertaster und die Programmier-LED (siehe Lektion 1).

<– Lektion 3: Aufbau von KONNEKTINGLektion 5: Nun mit Konnekting –>