2.0 Schnittstellen und Module Überblick

  1. UART
    • Serieller Monitor
    • Bluetooth-Modul ansprechen
    • Beispiel Df-player mini
  2. I2C
    • LCD-Anzeige
    • BMP280 Drucksensor im I2C-Modus
    • Beispiel Automat im Museum Tübingen
  3. SPI
    • BMP280 Drucksensor im SPI-Modus

Bluetooth-Probleme

HC-05 Modul

Ich habe das AZ-Delivery HC-05 6-Pin Modul unter iOS und macOS ausprobiert: Da es sich um klassisches Bluetooth handelt ist eine Paarung mit Passwort notwendig. Das Modul wurde unter iOS nicht angezeigt, daher keine Paarung möglich. Unter macOS konnte ich paaren, allerdings war die Verbindung nicht stabil. Mit dem Taster auf dem Modul kann in den AT-Modus bei Spannung an oder mit dem Enable-Eingang=1 geschaltet werden.
Fazit: Besser nicht für den Unterricht verwenden.
Links:

HM-10 BLE 4.0 Modul

Ich habe das DSD TECH HM-10 Modul unter iOS ausprobiert mit : Funktioniert gut. Beim Sturm-Board gibt es nur Problem mit der Nähe zum LCD-Display.
Links:

Noch unausgegorene Software:

// Anschluss an Sturm-Board
#include <SoftwareSerial.h> // Wir verwenden Software Serial

#define BTRX PB11
#define BTTX PB10
#define LED D13

  SoftwareSerial SerialBT(BTRX, BTTX);

// Die BLE Nachricht:
String message; 

void setup() {
  
  Serial.begin(115200); // über Pins D0, D1
  SerialBT.begin(9600);  // über Pins D2, D3
  Serial.println("Bluetooth-Verbindung...");
  delay(100);
  pinMode(LED, OUTPUT);
  //pinMode(PB12,OUTPUT);   // HC-05 Test Enable einschalten
  //digitalWrite(PB12,LOW); // HC-05 Test Enable einschalten
  // Name ändern mit AT-Kommandos:
  //BLE_AT_Name();
  Serial.println("Ende Setup");
}

void loop() {
  if (SerialBT.available()){      // Daten liegen an
     message = SerialBT.readString(); // Nachricht lesen
     Serial.println(message);
     if (message == "6") {  //BitBlue = Start
         digitalWrite(LED, HIGH);
         SerialBT.print("LED an Pin ");
         SerialBT.print(LED);
         SerialBT.println(" ist eingeschaltet!");
         Serial.println("ein");
      } 
      else
      if (message == "5") {  //BitBlue = Select
         digitalWrite(LED, LOW);
         SerialBT.print("LED an Pin ");
         SerialBT.print(LED);
         SerialBT.println(" ist ausgeschaltet!");
        Serial.println("aus");
      }
      else {
         SerialBT.print("Kommando <");
         SerialBT.print(message);
         SerialBT.println("> nicht bekannt");
      }
    }
}