2.0 Schnittstellen und Module Überblick
- UART
- Serieller Monitor
- Bluetooth-Modul ansprechen
- Beispiel Df-player mini
- I2C
- LCD-Anzeige
- BMP280 Drucksensor im I2C-Modus
- Beispiel Automat im Museum Tübingen
- 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:
- DSD TECH HM-10 Bluetooth 4.0 BLE iBeacon UART Modul mit 4 PIN Base Board für Arduino UNO R3 Mega 2560 Nano
- HM-10 Bluetooth MASTER/SLAVE Modul BT 4.0 BLE (für iOS)
- iOS-Software BitBlue
- Heise: Bluetooth: Auf den blauen Zahn gefühlt
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");
}
}
}