
Raspberry Pi IoT In Python Using Linux Drivers
Der Raspberry Pi ist ein ideales Gerät für das Internet der Dinge. Um ihn für das IoT zu nutzen, braucht man zwei Fachgebiete: Elektronik und Programmierung, was den Einstieg erschwert. Es gibt jedoch einen übersehenen Weg, der eine Abkürzung bieten kann. Pi OS, das Betriebssystem des Raspberry Pi, basiert auf Linux, und für viele handelsübliche IoT-Geräte gibt es Linux-Treiber. Diese bieten eine sehr einfach zu bedienende Arbeitsweise auf hohem Niveau. Das Problem, das dieses Buch löst, ist, dass es nur sehr wenig Dokumentation gibt, die Ihnen den Einstieg erleichtert.
In diesem Buch finden Sie einen praktischen Ansatz, um elektronische Schaltungen und Datenblätter zu verstehen und diese in Code zu übersetzen, insbesondere mit Python. Python ist eine hervorragende Sprache, um das IoT oder Physical Computing kennenzulernen. Sie ist vielleicht nicht so schnell wie C, aber sie ist viel einfacher für die komplexe Datenverarbeitung zu verwenden. Der Schwerpunkt dieses Buches liegt darauf, zu verstehen, wie die Dinge funktionieren, damit Sie Ihr neues Wissen auf Ihre eigenen Projekte anwenden können. Sie können jedes Python-Entwicklungssystem verwenden, das Sie kennen, aber die Programme in diesem Buch wurden mit Visual Studio Code und seinen Remote-Entwicklungsfunktionen entwickelt.
Das erste IoT-Programm, das jemand schreibt, ist "Blinky", um eine LED aufleuchten zu lassen, und dieses Buch bildet da keine Ausnahme, aber es ist vielleicht nicht ganz das, was Sie erwarten. Statt einer GPIO-Leitung verwendet es den Linux-LED-Treiber - ohne Hardware und ohne viel Aufhebens. Der GPIO wird jedoch nicht ausgelassen, denn die nächsten drei Kapitel konzentrieren sich auf seine Verwendung über den neuen GPIO-Zeichentreiber, der den alten und sehr verbreiteten sysfs-GPIO-Treiber ersetzt. Dies ist der Weg zu einer modernen GPIO.
Eine Schlüsselkomponente bei jeder Betrachtung von Linux und seiner Beziehung zu Hardware ist der relativ neue Device Tree. Während die meisten Berichte über diese Ressource auf die Autoren von Gerätetreibern abzielen, richtet sich dieser Bericht an die Benutzer von Gerätetreibern, und zu diesem Zweck sehen wir uns mehrere Geräte an, darunter den Temperatur- und Feuchtigkeitssensor DHT22. Nach einem kurzen Abstecher in die Grundlagen der Elektronik sehen wir, wie die Pulsweitenmodulation durch einen Treiber unterstützt wird. Danach befassen wir uns mit den beiden Standardbussen I2C und SPI, wobei wir zunächst die Grundlagen durchgehen und dann die beiden Versuche, eine höhere Organisation durchzusetzen, das Hardware-Überwachungssystem Hwmon und Industrial I/O, IIO, betrachten. Der dritte Standardbus, der im Allgemeinen nicht in Hardware unterstützt wird, ist der 1-Wire-Bus. Dieser wird ausführlich behandelt und umfasst sogar eine Einführung in die Verwendung von Netlink, das die Sockets-API verwendet, um Nachrichten an den Kernel zu senden und von ihm auf den Treiber zuzugreifen. Das letzte Kapitel geht noch einen Schritt weiter und befasst sich mit der Erstellung eigener Overlays durch das Schreiben von Fragmenten in den Gerätebaum.
Dies ist der zweite Titel, den Harry Fairhead und Mike James gemeinsam verfasst haben, und kann als alternativer Ansatz zu dem in Raspberry Pi IoT In Python Using GPIO Zero dargestellten angesehen werden. In beiden Büchern bringt Harry sein Fachwissen über Elektronik und IoT ein und Mike steuert den Python-Code bei.
Harry Fairhead ist der Autor weiterer IoT-bezogener Bücher, darunter Raspberry Pi IoT in C, Zweite Ausgabe; Micro: bit IoT in C, Zweite Ausgabe; Applying C For The IoT With Linux und Fundamental C: Getting Closer To The Machine.
Mike James ist der Autor von Programmer's Python: Everything is an Object und anderen Programmier- und Informatikbüchern in der I Programmer Library.