Ein IoT – Shield ausprobiert

Zufällig habe ich ein Iot Shield Kit gesehen. Das wäre doch etwas, die Thematik kennen zu lernen. Nachdem es da vor mir auf dem Schreibtisch lag und die beschriebenen Experimente mir durchgelesen habe war das schon mal interessant. Also ans Werk und schauen wie das funktioniert. Es fängt ganz einfach an, mit einem Taster. Interessant waren die Probleme, die teils in der Hardware, teils in der Software stecken. Die Experimente selbst haben mir ganz gut gefallen. Hier zu den Problemen, die sich mir entgegengestellt haben:

– Die Entprellung des Tasters war nicht so wirkungsvoll, da gibt es aber viele Beispiele im Netz das besser zu machen.

– Das Display zeigte immer nur ein Aufblitzen der seitlichen LED’s, sonst war nichts zu sehen. Auch mit der Demosoftware von Adafruit für das Display – genau das gleiche Bild. Dann ist mir aufgefallen das oben und unten an der Leiterplatte die symmetrischen Steckerleisten gleich lang sind… Also einfach mal abziehen, umdrehen, und wieder draufstecken. Tadaa! Auf einmal funktioniert es.

– Die Ausgabe mit dem Schieberegister war am schwierigsten. Es leuchteten immer alle LED’s, obwohl immer nur eine zu sehen sein soll. Hier muss man die Programmiersprache gut kennen. In der Ausgaberoutine zum Schieberegister wird das oberste Bit mit 0x80 getestet. Der Eingabewert ist ein char, also 8 bit. Die 0x80 aber wird als integer interpretiert. Jetzt hängt es vom Compiler ab, ob er den char erweitert, um keine bits abzuschneiden. Und ob er mit little endian oder mit big endian arbeitet. Die einfachste Lösung ist ein typecast zu machen, damit wird aus dem Test ein 8bit Wert: (unsigned char)0x80.

– Beim Senden der 5 Bytes über WLAN kommen immer nur 3 Bytes beim Empfänger an. Das war sehr seltsam. Es hat eine Weile gedauert, bis ich gesehen habe, das der Name TX_PLOAD_WIDTH in der master.ino und der node.ino jeweils mit dem Wert 5 belegt ist. In der jeweiligen Headerdatei NRF24L01.h für denselben Namen aber jeweils eine 3 eingetragen ist. Kleiner Fehler, seltsame Wirkung. Da werden dann natürlich auch nur 3 Bytes übertragen. Hier muss man wissen, das erst die einzelnen C Dateien kompiliert werden und erst danach zusammen gelinkt.

Über diese Problemstellungen habe ich mich viel intensiver mit der Materie beschäftigt und eine Menge daraus gelernt: Wie wichtig es ist Programmierrichtlinien einzusetzen und einen abschließenden Test zu machen. Und natürlich funktionieren dann auch die Experimente einwandfrei.

Links

Das Iot Shield Kit – Software und Dokumentation
https://www.sunfounder.com/learn/category/iot_shield.html

typecasting
https://de.wikipedia.org/wiki/Typumwandlung

big endian / little endian
https://de.wikipedia.org/wiki/Byte-Reihenfolge

Programmierrichtlinien

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.