Hoffentlich hat Ihnen der Aufbau Ihres mit der Cloud verbundenen Blinky-Projekts gefallen. Mit PlatformIO konnten Sie Ihren Core2 mit der Firmware von AWS IoT Kit konfigurieren, erstellen, flashen und überwachen. Ihr Gerät ist jetzt in Ihrem AWS-Konto als AWS IoT-Objekt registriert, um sichere Cloud-Konnektivität mithilfe integrierter sicherer Hardware zu gewährleisten. Sie haben eine Verbindung zu AWS IoT Core hergestellt, Nachrichten vom Gerät über MQTT gesendet und eine MQTT-Nachricht vom MQTT-Client der AWS IoT-Konsole erhalten, mit der die Lichter auf dem Gerät gesteuert wurden.
Während das AWS IoT Kit-Programm die Programmiersprache C nicht lehrt oder benötigt, ist es für die Embedded-Entwicklung von entscheidender Bedeutung. Die Steuerung und Flexibilität durch den Code ermöglicht es Ihnen, das maximale Potenzial Ihrer Hardware zu nutzen. Wenn Sie mit der C-Programmierung nicht vertraut sind, aber neugierig darauf sind, etwas zu lernen, oder eingerostete C-Kenntnisse auffrischen wollen, stellt Jens Gustedt Modern C unter der Creative Commons license zur Verfügung und sie können es dort kostenlos herunterladen.
Die Anwendung auf dem Gerät läuft mit dem FreeRTOS-Kernel — ein Echtzeitbetriebssystem (RTOS). Es wird in der von Ihnen kompilierten Binärdatei (sowie anderen Bibliotheken und Treibern) mit Ihrem Anwendungscode gebündelt. Der FreeRTOS-Kernel plant einen Block sequenziellen Codes als Task , um ihm einen Anteil an der Prozessorlaufzeit zu geben. Es gibt Tasks, die normalerweise dauerhaft laufen werden, um an AWS zu sendende Nachrichten zu erstellen, empfangene Nachrichten zu verarbeiten, das Display zu aktualisieren, die LEDs zu blinken usw.
Der Core2 für AWS IoT Kit verfügt über einen 240-MHz-Dual-Core-Prozessor, der jedoch im Vergleich zum heute üblichen 8+-Kern bei 4+GHz-Computern verblasst. Um das Beste aus der kostbaren Prozessorzeit herauszuholen, setzt der FreeRTOS-Kernel Aufgaben in einen Status wie “Running” oder “Suspended”. Der FreeRTOS-Kernel gibt Mikrocontroller-Anwendungen die Möglichkeit, den Prozessor zu optimieren, indem sie schnell zwischen einzelnen Aufgaben wechseln. Eine Aufgabe kann ausgeführt werden, sobald sich eine andere Aufgabe in einen angehaltenen oder blockierten Zustand versetzt hat (siehe Abbildung unten). Dies ergibt den Anschein von Parallelität und verbessert die Leistung einer eingebetteten Anwendung im Vergleich zu einer einfacheren Superloop-Anwendung erheblich.
Während Superloop-Anwendungen einfacher zu programmieren sind, führen Codesegmente, die die Ausführung von anderem Code blockieren/verzögern, dazu, dass die MCU im Leerlauf steht. Ein Gerät, das mit der AWS-Cloud verbunden ist, hat eine variable Round-Trip-Latenz und Bandbreitenbeschränkungen, die den Leistungsvorteil der Verwendung eines RTOS erforderlich machen. Ein RTOS bietet erhebliche Vorteile für andere Anwendungen, bei denen es wichtig ist, keine Daten zu verlieren oder einen kritischen Vorgang ausführen zu können, ohne durch die Ausführung eines anderen Codeblocks behindert zu werden (z. B. Gesundheit und Sicherheit), oder um einfach eine simples reaktives Display zu betreiben.
Um mehr über RTOS und FreeRTOS zu erfahren, schauen Sie sich diese Videoserie an und besuchen Sie Freertos.org .
Das in diesem Beispiel verwendete
AWS IoT Device SDK für Embedded C
hat die Konnektivität und den Nachrichtenaustausch mit AWS IoT erleichtert und konnte mit der mitgelieferten Bibliothek für sichere Elemente arbeiten, um Authentifizierung des zu erstellenden Objekts zu vereinfachen. Das Device SDK für Embedded C befindet sich im Ordner Core2-for-aws-iot-edukit/blink-hello-world/Components/ESP-AWS-IOT /
.
Die Hardwarefunktionen des Geräts wie Bildschirm, Energieverwaltungschip, sicheres Element, Lautsprecher, Mikrofon, 6-Achsen
Trägheitsmesseinheit
(IMU), Touch-Treiber, LED-Leiste und mehr werden als Board Support Package (BSP) gebündelt. Die BSP sind Treiber mit APIs, die einen vereinfachten Zugriff auf die Funktionen der Hardware bieten. Das BSP befindet sich im Ordner core2-for-aws-iot-edukit/blink-hello-world/Components/core2foraws/
. In diesem Beispiel wurde der SK6812-Treiber zur Steuerung der seitlichen LED-Leisten verwendet, und die
LVGL-Bibliothek
wurde verwendet, um die Elemente auf dem Display anzuzeigen. Informationen zu den verfügbaren Anwendungsprogrammierschnittstellen (APIs) des BSP und deren Verwendung finden Sie in der Core2 for AWS IoT Kit-API-Referenz.
Weiter zum nächsten Tutorial, Intelligentes Thermostat .
AWS IoT Kit now features direct access to
AWS re:Post
, which is a community-driven, questions-and-answers service. Search re:Post using the
AWS IoT Kit
tag to see if your question has been asked and answered. If not, ask a new question using the AWS IoT Kit
tag.