Info |
---|
Diese Beschreibung funktioniert nur mit iOS-Geräten. Für Android ist noch keine zuverlässige & sichere Lösung bekannt. |
...
View file | ||||
---|---|---|---|---|
|
HM10 oder CC41-A als iBeacon verwenden:
Wem das Geo-Locate zu ungenau ist, und die ueblicwie z.B. mir, kann auch einen HM10 oder CC41-A von Texas Instruments als iBeacon verwenden. Dafuer muss man allerdings diese Geraete erst in den iBeacon-Modus versetzen.
Das kann man wie folgt realisieren.
1) Verbindung zum HM10 oder CC41-A aufbauen:
- Eine Verbindung zu dem Modul kann man entweder ueber ein FTDI-Kabel und/oder FTDI-USB-Platine oder ueber einen Arduino herstellen. Ich habe es mit einem Arduino Nano (Clone) gemacht. Bitte bei Verwendung eines anderen Arduino darauf achten, evtl. einen Level-Shifter zwischen Arduino und Modul zu haengen, da das Modul mit TTL 3,3V laufen soll.
- Beim Arduino Nano kann man das Modul ohne Level-shifter betreiben. Bei mir ging es sowohl am 5V-Pin, wie auch am 3,3V-Pin.
2) Bei Verwendung eines Arduinos muss erst noch ein Sketch auf selbigen geladen werden, um Befehle an das Modul senden zu koennen:
- Hierfuer die Arduino-IDE starten und eine Verbindung zum Arduino herstellen.
- folgenden Sketch in die IDE kopieren und auf den Arduino laden:
// In diesem Beispiel verwenden wir die
// Pins 10, 11 als seriellen Software-Port
#include <SoftwareSerial.h>
#define softRX 10 // hier kann auch anderer Pin verwendet werden
#define softTX 11 // hier kann auch anderer Pin verwendet werden
SoftwareSerial softSerial(softRX, softTX);
char c;
void setup() {
Serial.begin(9600); // Serieller Monitor
softSerial.begin(9600); // Verbindung zu HM-10 oder CC41-A
Serial.println("AT-Kommando-Modus => ");
}
void loop() {
// Meldungen vom HM-10 oder CC41-A lesen und
// am seriellen Monitor ausgeben
while (softSerial.available()) {
c = softSerial.read();
Serial.print(c);
}
// AT-Kommandos vom seriellen Monitor
// lesen und zum HM-10 oder CC41-A übermitteln
while (Serial.available()) {
c = Serial.read();
Serial.print(c);
softSerial.print(c);
}
}
3) Befehle an das Modul senden:
- Hierzu einen seriellen Monitor oeffnen (ich habe den von der Arduino-IDE genommen) und die Baudrate (9600) und das Linehandling (bei HM10 'kein Zeilenende', beim CC41-A auf 'sowohl NL als auch CR') anpassen
- Anschliessend kann man den Befehl AT+HELP an den Arduino oder den FTDI-Adapter schicken, und erhaelt eine Uebersicht ueber (mehr oder weniger) saemtliche Befehle, die man an das Modul schicken kann. Mit einigen Befehlen kann man bestimmte Parameter aendern.
- Mit den folgenden 8 Befehlen macht man das Modul zu einem iBeacon (Kommentare nicht mitschreiben!).
- AT+RENEW #setzt das Modul auf Werkseinstellungen zurueck
- AT+RESET #startet das Modul neu
- AT+MARJ0x1234 #vergibt eine Hex-codierte Major-Nummer - in diesem Fall 4660 (dezimal)
- AT+MINO0xFA01 #vergibt eine Hex-codierte Minor-Nummer - in diesem Fall 64001 (dezimal)
- AT+ADVI5 #stellt das Beacon-Interval 5ms (dies ist ein hidden command beim CC41-A)
- AT+NAMEYOURNAME #aendert den Namen des Moduls auf YOURNAME
- AT+IBEA1 #aktiviert den iBeacon-Mode
- AT+RESET #startet das Modul neu
4)