Das neue und offizielle Raspberry Pi Touchscreen mit DSI Anbindung und kapazitivem Touch ist endlich auch für mich lieferbar gewesen. Nachdem ich fast einen Monat darauf gewartet habe kann ich die Schaltzentrale für meine Wohnung jetzt endlich an den Nagel hängen…
Mit einem eigenenen 3D-gedruckten Gehäuse hängt der Raspberry Pi 2 mit Display jetzt im Flur. Mit an Board ist ein BLE Dongle, zwei WLAN Sticks und ein 64GByte Massenspeicher. Auf dem System läuft ein Raspbian mit LXDE und Iceweasel Browser als Frontend und openhab, mogodb, mosquitto, HerbertScanner und HerbertNode im Backend.
Openhab mit mosquitto habe ich ja bereits in älteren Posts bereits erwähnt und mongodb als Datenbank ist auch keine Besonderheit. Die zwei interessanten Softwarekomponenten sind HerbertScanner und HerbertNode.
HerbertScanner ist eine Applikation, die mit dem BLED112 von BlueGiga kommuniziert und die Advertisement Pakete der BLE Buttons im Umkreis registriert. Ein Advertisement Paket im richtigen Format wird an mosquitto, also als MQTT Nachricht weitergeleitet. So werden Daten von BLE Endpunkten a die openhab Zentrale geleitet. Die Konfiguration der BLE Geräte muss zur Zeit manuell durchgeführt werden. Dazu muss der MQTT Kanal ‚/Herbert/#‚ abonniert werden. Dort werden alle Nachrichten abgeliefert. Neue Geräte erscheinen da dann auch und können mit der ID registriert werden.
HerbertNode ist eine Applikation, die für das Konfigurieren der WLAN Endpunkte eingesetzt wird. HerbertNode scannt die WLAN Netzwerke in der Umgebung und findet die Accesspunkte von ESP2866 Geräten. Diese starten, wenn sie keine Konfiguration besitzen, oder das konfigurierte Netzwerk nach 30 Sekunden nicht gefunden wurde in den Accesspoint Modus. Sobald HerbertNode eine ESP2866 SSID sieht, verbindet er sich mit dem AccessPoint und stellt eine HTTP Anfrage nach ‚/info‘. Das Gerät gibt dann Informationen über sich im JSON-Format an HerbertNode weiter. HerbertNode hat eine Liste der verfügbaren Geräte im Umkreis. Vom Benutzer kann in dieser Liste das Gerät ausgewählt und dem Netzwerk hinzugefügt werden, dazu wird dem Gerät die SSID und der Zugangsschlüssel für das Herbert-WLAN übertragen.
Der Code wird im Laufe der nächsten Wochen noch verfeinert und stabilisiert. Es treten teilweise noch Fehler auf, die noch behoben werden müssen, bevor Herbert zum ersten mal veröffentlicht wird.
The example projects that are shipped with TI’s BLE SDK are great. They show a huge variety of use cases for the BLE stack. The codes provided are great resources when it comes to information on how to build software for the CC26xx chip family. Doing so many examples leaves us with code that is used more often than once and so it is linked into the project. Basically every file that consists of some code is a virtual link to a file on the folder structure. That leaves us with the problem that sharing the project with an SVN or GIT server only gives us the few local files and none of the code that is important. Changing the code is possible but you have to remind yourself, that the files are not considered to have changed when submitting to a version control system.
To conquer this issue we need to have some of the files we are going to change or that are not part of the SDK in a local version on our file system. Luckily we can just copy the files to a folder in the project of the workspace. This way the files are preserved and as a next step we delete the links to the files in the project explorer.
I moved the following files to local folders:
simpleBLEPeripheral.c /.h
board_key.c /.h
simpleGATTprofile.c /.h
main.c
Board.c /.h
appBLE.cfg
You now have to add the local folders to the include paths of your project so the files can be found during build. Especially the Board.h which contains the information on how the chip is integrated in the circuit. Remember to remove all the unnecessary folders from your include paths. If your project uses available files from the example projects (like profiles and utils) you can leave the links in you project. To share the project you can use Subclipse or Git. You will have to install the same version of the SDK if you want to compile the project we created.
You can read up on this instructions on how you can create your own GATT Profile.
Conrad Elektronik ist nicht unbedingt für kleine Preise bekannt. Auch der 3D Drucker von Conrad, der RF1000, ist nicht von der günstigsten Sorte. Vor einigen Tagen ist im Hotend des Druckers der Heizwiderstand durchgebrannt. Conrad bietet zwar ein Ersatz für das Hotend an, allerdings nur im Set mit einigen Teilen des Extruders. Das Set beinhaltet neben dem Hotend auch noch die Mutter zum Befestigen, das Ritzel für den Extruder Motor und ein ‚Spezialwerkzeug‘ zum Befestigen des Extruders am Führungsschlitten. Das ganze zum ansehnlichen Preis von 80€ zzgl. Versand. Was ein Schnäppchen. Der Extruder alleine ist mit 65€ gelistet, aber nicht mehr lieferbar. Nur noch das Set mit den unnötigen Teilen, die nicht kaputt gehen sollten für 15€ mehr ist verfügbar. Sehr schade…
Gestern stand ein relativ großes unscheinbares Paket vor der Tür. Eingewickelt in gelben Klebeband und mit einer Zollerklärung kann es nur eins bedeuten: Mein DIY Lasercutter aus China ist angekommen. Im Paket befindet sich neben dem mechanischen Komponenten für die Gantry auch die Elektronik, sowie Motoren und Software. Alles gut verpackt in einzelnen Tütchen und Luftpolsterfolie. Es macht einen soliden Eindruck und der Zusammenbau gestaltet sich auch relativ einfach. Allerdings gibt es keine gedruckte Anleitung und die Dateinamen auf der beigelegten MicroSD Karte sind alle in Chinesisch. Das führt unter meinem Windows leider zu Darstellungsproblemen und so kann ich einige Dateien nicht öffnen. Einige Bilder kann ich aber Anschauen und somit lässt sich der Zusammenbau einigermaßen gut gestalten. Nach knapp 2 Stunden steht das Gerät auch schon.
Dem Set ist keine Laser Schutzbrille beigelegt. Allerdings bin ich mir nicht sicher, ob ich auf eine chinesische Laserschutzbrille vertrauen würde und habe deshalb eine ordentliche in Deutschland gekauft. Das Gerät kommt außerdem mit einem amerikanischen Stecker für das Netzteil. Doch auch das ist kein großes Hindernis.
Die Software zum Erzeugen der Daten für den Lasercutter ist die Open Source Software Inkscape mit einem Plugin für Lasercutter. Mit Inkscape können Grafiken als Pfade, also Vektorgrafiken erzeugt werden. Die aktuelle Version von Inkscape hat Probleme mit dem Plugin, aber dem Set war die Version 0.48.4 beigelegt, die macht keine Probleme.
Den Laser kann man manuell verschieben und somit auf die ungefähre Nullposition bringen. Genau referenzieren geht leider (noch) nicht. Die Laserdiode ist stark genug um das Holzbrett, auf dem der Aufbau steht zu verbrennen. in wiefern man damit Holz schneiden kann werde ich noch sehen. Ansonsten eine super nette Spielerei. Nur stinkt es in meinem Arbeitszimmer jetzt nicht nur nach Plastik, sondern auch nach verbranntem Holz… Zeit über eine Lüftung nachzudenken, anstatt immer wieder das Fenster aufzulassen. Vor allem im Winter…
Die Chinesen haben mal wieder eine geniale Sache gebaut. Ein Rückspiegel mit eingebautem Android-Tablet. Alles drin, von W-LAN über SD-Karte mit Straßenkarten für Europa ist alles drin.
Rückspiegel mit 5″ Android Tablet. Blau verspiegelter Reflektor
Frontkammera
Rückfahrkammera
Beschleunigungssensor
Navigation weltweit
Das Ganze wird über den bestehenden Rückspiegel gehängt und mit Gummibändern befestigt. Kleines Manko ist, dass die aktuellen Verkehrsbehinderungen nicht online aktualisiert werden können. Aber das kann gut daran liegen, dass die Software eine ‚offizelle‘ chinesische Version von iGo ist. Dank des Android-Betriebsystems ist allerdings die Auswahl an Navigationsapps sehr groß. Welche sich als geeignet erweisen wird, bleibt noch offen. Auch habe ich noch keine Update vom Händler erhalten. Das sollte mir dann die aktuellen Kartendaten geben. Anpassen musste ich nur die Tastatur, denn es ist keine außer eine Pinyin-Eingabe installiert.
Was mich ein wenig verwundert ist, dass das Gerät sofort ausschalten möchte, wenn man es vom Ladegerät trennt. Ich kann verstehen, dass es für den Gebrauch als Navi nicht unbedingt dauernd an sein muss, allerdings ist es bestimmt hilfreich, wenn es nicht immer komplett starten muss. Ein Tiefschlafmodus wäre also wünschenswert. Leider geht auch mit abgeschalteten Bildschirm die Batterie ganz schnell in die Knie. In dem Gehäuse ist auf jeden Fall genug Platz für eine anständige Batterie, mal schauen wie groß die ist.
Kleine Batterie, daher kurze Laufzeit ohne Ladegerät
Mit 950mAh kommen wir natürlich nicht sonderlich weit. Das erklärt auch, warum dem Teil ein 10W Ladegerät beiliegt. Mit einem Labornetzteil zeigt sich ein Strom von 700mA beim Laden. Das Display benötigt alleine bereits 100mA und daher ist der 10 Minuten Ohne-Strom-Shutdown Timer verständlich. Es folgt der Praxistest im Auto.Es zeigt sich auch, dass der Spiegel sehr groß ist. Schätzungsweise 2cm höher und locker 5cm breiter als mein serienmäßig verbauter Spiegel.
Das Video zeigt ein Ausschnitt bei strahlendem Sonnenschein. Im Dunkeln und bei schlechter Witterung sind die Aufnahmen wohl nicht ganz so schön anzuschauen. Auch die Rückfahrkamera habe ich noch nicht getestet, dazu muss ich sie erst mal sinnvoll befestigen.
Das Hausautomationsteam in meiner Wohnung hat einen neuen Teamkollegen bekommen. Ein Tempertatur und Luftfeuchte Sensor. Der Sensor basiert auf einer kleinen Schaltung mit dem DHT11 Sensormodul und einem ESP-01 Board. Daran angeschlossen befinden sich zwei AA Akkus.
ESP-01 Modul mit DHT11 Sensor und 2 AA-Akkus
Die Software im ESP2866 wurde diesesmal nicht mit LUA und NodeMCU, sondern mit dem von ESP verfügbaren SDK erstellt. Ich habe dafür die Bibliothek für den DHT Sensor und den MQTT Client verwendet. Diese beiden Bibliotheken sind frei verfügbar und könne hier heruntergeladen werden.
Das System basiert immernoch auf einem MQTT Broker als zentraler Kommunikationshub. Die Sensoren besitzen alle eine eindutige Chip Indentifikationsnummer. Diese, kombiniert mit dem Systemnamen, bilden die Topics, auf denen die Sensoren Daten für das System bereit stellen. Eine Konfiguration des Sensors bei Inbetriebnahme ist auch in Arbeit. Dazu lauscht der Hauptknoten (Webserver, MQTT broker, Festplatte, usw.) auf WLAN Accesspoints die mit dem Namen ESP beginnen. Diese werden in einer bestimmten Liste angezeigt und können vom Hauptknoten angesprochen werden. Dabei verbindet sich der Knoten mit dem Sensor und überträgt die Daten, die für das eigentliche Netzwerk verwendet werden. Diese Kommunikation muss verschlüsselt stattfinden, daher wird auf die AES-Bibliothek des ESP2866 zurück gegriffen. Mit den Daten kann der Sensor sich dann am lokalen WLAN anmelden und seine Daten dem MQTT Broker zur Verfügung stellen.
Diamond Hotend, Alu X-Ausleger und Alu Druckbetthalter
Der Ormerod stand seit meinem Umzug eigentlich nur unbrauchbar in der Ecke. Die Geometrie einiger Kunststoffteile hat die hohen Temperaturen in diesem Sommer nicht unbeschadet überstanden. Die letzten zwei Tage sind die Problemchen behoben worden und der Drucker ist wieder fit. Außerdem hat er ein kleines Upgrade spendiert bekommen. Dabei ist nicht nur die Firmware auf den aktuellen Stand gebracht worden, sondern auch die Hardware von Grund auf erneuert worden.
Bei 40° im Schatten sind PLA Teile nicht sonderlich stabil
Die Tr 10×2 Gewindespindel ist schon seit einer Weile verbaut. Dazu habe ich die Spindel erhitzt und in das Standard Zahnrad der 5mm Achse geschmolzen. Dabei habe ich darauf geachtet, dass alles noch rotationssymetrisch geblieben ist. Die Trapezgewindemutter habe ich dann anstelle der originalen Halterung am Auslegerarm befestigt und die Mutter darin festgeklebt.
Ein Anbieter in England bietet für den Ormerod den X-Ausleger und den Druckbetthalter in Aluminium Ausführung. Beides zusammen ist für 100€ zu haben und eine wertvolle Erweiterung für den Drucker.
Zwei von drei Extrudern am Werk
Das Diamond Hotend ist eine geniale Entwicklung für den Druck mit mehreren Farben. Bei einem Druck mit mehreren Extruderdüsen ist es immer schwierig die nicht aktiven Düsen davon abzuhalten zu tropfen. Weiterhin sind die Düsen meistens auf der gleichen Höhe wie die gerade aktive und kratzen somit über die aktuell gedruckte Oberfläche. Das Diamond Hotend löst dieses Problem, indem die maximal drei Filamente über eine gemeinsame Düse gedruckt werden. Alle drei Fäden werden über separate Heatbreaks in eine zentrales Hotend geführt. Das klingt erst mal nicht ganz so einfach und auf den ersten Blick ist der Druckkopf sehr groß und schwer. Auf den zweiten Blick ist das weiterhin so, doch das Potenzial mit bis zu drei verschiedenen Farben drucken zu können ist die Mühe wert, die es kostet den Drucker umzubauen.
Mit dem G-Code Befehl M570 kann der Timeout für das Hotend hochgesetzt werden. Denn das ist jetzt wesentlich größer als vorher und somit braucht es länger um heiß zu werden.
Leider sind hier nur drei verschiedene Farben aus dem gleichen Material möglich zu drucken und nur sehr schwer verschiedene Materialien, da alle Filamente mit der gleichen, oder ähnlichen Temperatur gedruckt werden müssen. Wie genau die Reinigung der gemeinsamen Düsenkammer funktioniert ist noch zu zeigen. Im Moment sieht es so aus als würden innerhalb weniger Zentimeter das alte Filament komplett mit der neuen Farbe ersetzt. Wie sich das mit deutlichen Farbunterschieden bemerkbar macht ist auch noch zu beurteilen.
Dank dc42’s RepRapFirmware Fork ist das Anlegen von mehreren Werkzeugen mit unterschiedlichen Extrudern, aber gleichem Heizer sehr einfach. In der Konfigurationsdatei kann ein Werkzeug einfach hinzugefügt werden.
M563 P0 D0 H1 ; Werkzeug T0 mit Motor 0 nach X, Y, Z, mit Heizer 1
G10 P0 S200 R100 ; 200° Aktiv, 100° Standby
M563 P1 D1 H1 ; Werkzeug T1 mit Motor 1, mit Heizer 1
G10 P1 S200 R100 ; 200° Aktiv, 100° Standby
M563 P2 D2 H1 ; Werkzeug T2 mit Motor 2, mit Heizer 1
G10 P2 S200 R100 ; 200° Aktiv, 100° Standby
M563 P3 D0:1:2 H1 ; Werkzeug T3 mit Motor 0,1,2, mit Heizer 1
G10 P3 S200 R100 ; 200° Aktiv, 100° Standby
M92 E210:210:210 ; 210 Steps pro mm für beide Extruder Motoren
Ebenso können verschiedene Extruder teilweise zur Mischung von Materialen angesteuert werden. Dafür kann in der Software ein Werkzeug mit mehreren Extruder Motoren angelegt werden. die Mischverhältnisse werden Prozentual angegeben.
M567 P3 E0.2:0.6:0.2 ; Mische 20% E0, 60% E1 und 20% E2 für Tool 3
Wie das mit dem Diamond Hotend zusammenarbeitet, wird sich zeigen.
BLE, Bluetooth Low Energy, oder Bluetooth Smart ist ein und das selbe und in aller Munde. Jedes modernere Smartphone hat zumindest Bluetooth 4.0 implementiert und könnte somit theoretisch mit einem BLE Gerät kommunizieren. Als Entwickler befinde ich mich gerade in der Situation, dass eine in die Tage gekommene Funkstrecke mit einem moderneren, energiesparenden Verfahren ersetzt wird. Also warum nicht mit BLE?
Das Protokoll, dass von der Bluetooth Special Interest Group als Bluetooth 4.0 definiert und später mit 4.1 aktualisiert wurde ist modular aufgebaut. Ein Hersteller eines BLE Peripherie Gerätes kann das Gerät so aufbauen, dass es für den Host (Mobiltelefon oder PC/Laptop) selbsterklärend ist, welche Daten es zur Verfügung stellt. Dazu werden im Protokoll Stack verschiedene Client/Server Strukturen angeboten. Somit ist es möglich ohne spezielle Software auf der Host-Seite ein BLE Peripherie Gerät zu verwenden. Dabei hat man sich auf eineige Profile geeinigt, die von der Bluetoth SIG veröffentlicht und betreut werden.
Da mein aktuelles Projekt nicht in sehr hoher Stückzahl produziert werden wird (< 10000 / a) lohnt es sich nicht die RF-Hardware selbst zu implementieren und zu zertifizieren. Für diesen Zweck eignet sich ein Modul, dass bereits alle Zertifizierungen im RF-Bereich mitbringt. Die Auswahl an marktreifen Modulen von diversen Anbietern ist groß und viele weitere sind angekündigt. Daher habe ich mich auf eine kleine Auswahl beschränkt.
Jedes dieser Module habe ich auf meinem Tisch liegen, oder mir näher anschauen können. Jedes Modul hat seine Vor- und Nachteile und spezielle Anwendungsgebiete.
Beginnen wir mit dem RFduino. Wie man an dem Namen schon erahnen kann, ist das Modul im Arduino-Universum angesiedelt. Es kommt mit einem Plugin für die Arduino-IDE und ermöglicht mit einer Bibliothek des einfachen Einstieg in die Entwicklung von BLE-Geräten. Die Einfachheit der Umgebung ist gleichzeitig auch das große Manko dieses Moduls. Wenn die Arduino IDE als Entwicklungunsumgebung verwendet wird, ist man auf die in der Bibliothek vorgegebene Funktionalität beschränkt. Vom ordentlichen Debuggen ganz zu schweigen. Mehr als ein printf() kann man dem Chip dann nicht abverlangen. Wenn jedoch der Arduino Bootloader mit einem J-Link überschrieben wird, kann man den Chip auf dem Board in vollem Umfang programmieren. Dann nicht mehr in der Arduino IDE sondern zum Beispiel in µVision und dem SDK von Nordic. Dass der RFduino allerdings in einigen Jahren noch lieferbar ist, ist zweifelhaft.
Das BL600 von Laird kommt mit einem etwas ungewöhnlichen Aufzug daher. Es wird nicht wie üblich cross-compiliert, sondern dem Modul wohnt ein BASIC Interpreter inne, der Skripte entweder zur Laufzeit, oder vorab als Bytecode interpretiert. Die Skripte werden in einem Teil des Flash-Speichers abgelegt und von dort dann auch Aufgerufen. Die Debug-Möglichkeiten halten sich hier auch begrenzt an ein printf(). Das Ausweichen auf eine richtige IDE mit SDK ist von Laird wohl nicht vorgesehen. Dafür ist der Einstieg mit der BASIC Programmiersprache wesentlich einfacher als bei den anderen Modulen. Die werden in C oder C++ programmiert und haben ein teilweise Echtzeit OS. All das bleibt dem BASIC Anwender verborgen.
Eines meiner favorisierten Lösungen ist das SaBLE-x von LSR. Das Modul bringt den Texas Instruments CC2540 mit, der der neueste BLE Chip von Texas ist und erst seit einigen Monaten auf dem Markt. Zusammen mit dem Fundus an Beispielen und Applikationen auf der Webseite von Texas Instruments, der kostenlosen IDE Code Composer Studio und dem XDS100v3 auf dem Evalboard steht einer erfolgreichen Entwicklung nichts im Weg.
Eines meiner favorisierten Lösungen ist das SaBLE-x von LSR. Das Modul bringt den Texas Instruments CC2540 mit, der der neueste BLE Chip von Texas ist und erst seit einigen Monaten auf dem Markt. Zusammen mit dem Fundus an Beispielen und Applikationen auf der Webseite von Texas Instruments, der kostenlosen IDE Code Composer Studio und dem XDS100v3 auf dem Evalboard steht einer erfolgreichen Entwicklung nichts im Weg.
SaBLE-x mit dem CC2640 auf einem kleinen Prototyp-Board
Das PAN1740 war eines der ersten Module, die ich getestet habe. Es hat im Gegensatz zu den anderen hier aufgezeigten Chipsätzen einen Dialog DA14580 an Board. Dieser besitzt kein Flash Speicher, sondern lediglich ein OTP ROM. Das bedeutet, dass jedesmal, wenn ein Update der Firmware gemacht werden soll das ROM weiter beschrieben wird, bis kein Platz mehr drauf ist und der Chip unbrauchbar. Während der Entwicklungsphase wird der Code im RAM getestet. Das Problem dabei ist, dass das Gerät nicht mit Batterie getestet werden kann, da bei einem Batteriewechsel der Code aus dem RAM verschwindet. Es fällt somit leider für meine Zwecke as.
Ein weiterer Favorit ist das PRoc von Cypress. PRoC steht für Programmel Radio on Chip und ist mit der PSoC (Programmable System on Chip) Familie von Cypress verbunden. Die Entwicklungsumgebung von Cypress, das PSoC Creator, ist eine hervorragende kleine IDE mit Code Generator, Compiler, Debugger und Online Hilfe.
BLE Grundlagen
Die obige Abbildung zeigt die Grundstruktur eines BLE Geräts. Jedes
Gerät besitzt mindestens ein Profil. Dieses beinhaltet dann mindestens
einen Service (GAP) und diese enthalten Charakteristiken, die Daten des
Geräts. Schon zu Beginn wird klar, um BLE zu verstehen und zu Verwenden,
müssen einige Begriffe geklärt werden. Es gibt bereits eineige
umfangreiche Literatur [1] und viele Webseiten [2], die einen Einblick in BLE geben, daher hier nur das nötigste.
GAP, GATT
Das Generic Access Protocol (GAP) koordiniert das Advertising und die Datenübertragung, wenn keine Verbindung (Bonding)
zwischen den Geräten besteht. Weiterhin leitet es bei Bedarf die
Verbindung ein, kümmert sich um Authentifizierung und Verschlüsselung
der Verbindung.
Das Generic Attribution Profile (GATT) ist das
Herzstück des Protokolls und kümmert sich um die einzelnen
Charakteristiken und wie deren Daten übertragen werden. Es greift,
sobald ein Bondig besteht und transferiert aus Charakteristiken und
Descriptoren Daten anhand der UUID oder des Handles.
Um den Kommunikationsfluss zwischen Device (Peripheral) und Basis (Central) zu steuern wird der CCCS eingesetzt. Der Client Configuration Characteristic Server. Dieser ist eine GATT
Characteristic, die angibt, welche Daten veränderlich sind, ob und wann
geschrieben, oder gelesen werden darf, oder ob eine Notification
stattfindet, sobald der Wert sich geändert hat.
All das sieht
auf den ersten Blick sehr komplex aus und alles Andere als
Energiesparend. Allerdings kommt hier zu Gute, dass die Kommunikation
über BLE ein verbindungsloses Verfahren ist, das bedeutet, dass der
ganze Aufwand nur einmalig getrieben wird um eine Verbindung mit
Verschlüsselung zu erzeugen und das Gerät kennen zu lernen. Wenn auf
beiden Seiten dieses Bonding eingeleitet wurde, kann die Verbindung
anhand der ausgehandelten Verbindungsparametern weitergeführt werden.
Dieser Teil ist dann erstaunlich energiesparend.
Eine
Funkstrecke funktioniert nur dann, wenn auf beiden Seiten das Radio
eingeschaltet ist. Der Empfänger kann nur dann die Daten empfangen, wenn
der Empfangsverstärker eingeschaltet ist. Ebenso kann der Sender nur
senden, wenn der Sendeversteärker eingeschaltet ist. Ein Mitteilen, dass
eine Sendung folgt muss über die Funkstrecke geschehen und so ist es
schwierig eine energiesparende Konfiguration zu wählen, wenn der
stromhungigste Teil der Schaltung immer aktiv ist. Daher hadelt das
BLE-Protokoll zu Beginn einer Verbindung eine Wiederaufnahmezeit aus,
nach der sich das Central wieder bei dem Peripheral meldet. Zu diesem
Zeitpunkt muss das Peripheral dann sein Radio eingeschaltet haben um auf
Anfragen des Centrals am GATT Server zu hören. Das ganze klingt relativ
komplex, wenn man aber einmal die grundlgende Struktur verstanden hat
stellt sich BLE als simples Protokoll heraus, das darauf ausgelegt ist,
möglichst wenig Daten in sehr kurzer Zeit über die Funkstrecke zu senden
und dann den größten Teil der Existenz im Tiefschlaf zu verbringen.
Zwei Übertragungsarten
BLE besitzt im Grund zwei Arten der Datenübertragung. Eine
unidirektionale, verbindungslose Übertragung von kleinen Datenmengen.
Diese Werden in einem so genannten Advertisement Paket
verschickt. Dieses Paket besitzt eine Länge von maximal 32 byte und
überträgt eine festlegbare Payload. Diese beinhaltet zum Beispiel den
Namen des Gerätes, die ID, oder um weche Art es sich handelt. Erzeugt
und gehandhabt wird das Paket vom GAP Server. Hier wird dem Zuhörer
mitgeteilt, welche Möglichkeitem für eine weitergehende Verbindung
bestehen. Verbindungslos bedeutet aber auch, dass die 32 Byte
ausgesendet werden, wenn gerade niemand zuhört. Somit besteht für das
Peripheral keine Möglichkeit zu erkennen, ob die Daten empfangen wurden.
Der Rückkanal ist normalerweise für eine gebondete Verbindung
vorgesehen. Dennoch wurde im GAP eine Möglichkeit geschaffen, eine
Empfangsbestätigung zu simulieren. Das Peripheral sendet ein
Advertisement Paket mit Scanable Flag aus und wartet dann für kurze Zeit auf einen Scan Request.
Sobald ein
Central ein Advertisement Paket mit diesm Flag empfängt, kann es diesen
Scan Request abschicken und dem Peripheral so einerseits mitteilen, dass
das Paket empfangen wurde, andererseits auch noch weitere Daten
gewünscht sind. Der Scan Request selsbt kann keine Payload übertragen.
Für eine echte Bidirektionale Verbindung muss dann auf eine GATT
Verbindung mit Bonding zurück gegriffen werden.
Soweit erst einmal zu BLE. Der zweite Teil folgt dann in Kürze und wird den GATT-Server sowie eineige Profile näher betrachten.
Heute mal etwas nicht so technisches. Ich habe gerade einen Artikel im Stern zum Thema Bargeld gelesen. Darin ging es um Gründe, weshalb wir weiterhin Bargeld brauchen. Ich bin mir nicht sicher, ob diese Gründe ernst gemeint sind, denn sie sind alles andere als stichhaltig.
Der erste Grund ist gleich der für mich gewichtigste. Kein Geld mehr von der Oma. Dass ohne Bargeld das Zustecken von kleinen Geldgeschenken nicht mehr möglich ist, ist schade, dennoch gibt es auch hierfür Alternativen. Zum Beispiel eine Prepaid Kreditkarte, Guthabenkarten, oder ähnliches. Der zweite Punkt ist auch wieder ein alltägliches und weit verbreitetes Anwendungsgebiet von Bargeld. Der Flohmarkt. Wobei auch hier auf alternative Bezahlmöglichkeiten ausgewichen werden kann, sollte es zu einer Abschaffung von Bargeld kommen. Ich denke hier an Systeme, die mit dem Mobiltelefon funktionieren und den Geldtransfer übernehmen. Ein Feilschen mit dem letzten 5€ Schein, ist dann natürlich nicht mehr so einfach möglich, aber es wird sich sicherlich eine andere Möglichkeit finden für innovative Bezahlmethoden.
Der dritte Punkt, das Sparschwein, ist auch ohne Probleme digitalisierbar. Wieso sollte nicht ein Sparschwein mit Digitalanzeige funktionieren? Der Betrag auf dem Sparschwein wird über die Cloud mit einem Verrechnugnskonto abgeglichen. Immerhin ist es nur eine Frage der Zeit, bis Münzen im Geldbeutel zu Last fallen und dann nur alle paar Monate aus dem Sammelbehälter zur Bank gebracht werden. Das ist lästig, denn die Filialen haben immer nur dann offen, wenn ich arbeiten bin. Dass Kinder den richtigen Umgang mit Geld lernen müssen ist klar, doch auch jetzt schon ist Geld nicht mehr das in der Hand haltbare Zahlungsmittel, sondern ein viel abstrakteres Modell. Für die Erziehung kann also auf eventuelle Ersatzmittel zurück gegriffen werden und später auf die Realität. Geld ist nur noch virtuell vorhanden und das sollten Kinder durchaus lernen.
Das nächste schwerwiegende Argument ist die Zahnfee. Wie soll die denn das nächste mal für den Zahn bezahlen? Vielleicht mit etwas Anderm als Geld. Das schafft ja auch der Osterhase und der Weihnachtsmann. Teilweise.
Argument fünf zählt nicht. Im Land des Trinkgeldes wird überwiegend mit Kreditkerte bezahlt und das funktioneirt hervorragend. Ich habe es selbst schon ausprobiert. Klar muss ein Umdenken stattfinden, aber dass muss es ständig. Anders werden wir mit unserer Gesellschaft nicht vorran kommen.
Das sechste Argument kann mit dem Fünften in Verbindung gebracht werden. Das Zahlen von Kleinstbeträgen mit der Kreditkarte ist ohne PIN möglich. Um das Argument des Sterns weiter auszubreiten wären hier noch zu nenen: Parkuhren, Kaugummiautomaten, Fahrscheinautomaten,. Zeitungskiste, das Kiosk von Nebenan usw. Für alle diese kleinen Transaktionen gibt es bereits Alternativen. So gibt es zum Beispiel Systeme wie das DipJar, dort können Trinkgelder einfach mit der Kreditkarte bezahlt werden. Karte rein und fertig. Es gibt auch schon Automaten im Parkhaus zum Beispiel. Die akzeptieren eine EC-Karte. Alternativen werden sicher auch auf dem deutschen Markt erscheinen, sobald es sich abzeichnet, dass Deutschland in eine neue Ära der Bezahlung geht.
Das letzte Argument werde ich einfach ignorieren, denn das ist wozu man Bargeld wirklich braucht. Alternativ kann man natürlich auf eine der vielen Kryptowährungen ausweichen. Die sind dann sogar noch schwerer zu verfolgen.
Ich bin generell der Meinung man sollte Bargeld nur noch als Alternative betrachten und nicht als alleiniges oder Hauptzahlungsmittel. Wir leben in einer Zeit, in der Bargeld nur noch einen virtuellen Wert wiederspiegelt und somit keinen echten Wert mehr besitzt. Das haben wir die letzten Jahre gelernt, als wir die Kursschwankungen des Euros erleben durften. Dieser Zwischenschritt zwischen dem Münzwert und dem Geldwert ist nötig, aber ich denke wir sind bereit uns langsam davon zu verabschieden. Zumindes könnten wir mit Münzen anfangen. Lästiges Kleingeld.
Cookie-Zustimmung verwalten
Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Funktional
Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.