News Arduino Cloud ab Sofort per Kommandozeile ansprechbar


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Angehängte Dateien:

Lesenswert?

Arduino bietet seit längerer Zeit einen Clouddienst an, der eine niederschwellige – also ohne MQTT auskommende – Realisierung von Geräteverbünden erlaubt. Mit einer Erweiterung der Kommandozeilenutility Arduino-CLI wird die Provisionierung und Anmeldung von Geräten automatisierbar.

Was ist die Arduino Cloud?

IoT-Broker aller Herren Hersteller arbeiten normalerweise mit MQTT. Arduino entschied sich im hauseigenen Clouddienst Arduino Cloud für eine abstraktere Vorgehensweise, die auf Variablen und Geräten basiert. Unter https://www.mikrocontroller.net/topic/521135 findet sich eine detaillierte Beschreibung des Systems.

(Bildquelle: Autor)

arduino-cloud-cli installieren

Die Konfiguration von in der Cloud befindlichen Elementen erfolgte bisher ausschließlich unter Nutzung des Browserinterfaces. Neu ist nun die Möglichkeit, diese Einrichtung über ein Kommandozeilenwerkzeug durchzuführen. Spezifischerweise handelt es sich dabei um die unter https://github.com/arduino/arduino-cloud-cli bereitstehende Arduino-Cloud-Cli.

Interessant ist dabei, dass das Herunterladen des Repositoriums nur Go-Code zur Verfügung stellt:

1
(base) tamhan@tamhan-thinkpad:~$ mkdir arduinocloudclitest
2
(base) tamhan@tamhan-thinkpad:~$ cd arduinocloudclitest/
3
(base) tamhan@tamhan-thinkpad:~/arduinocloudclitest$ git clone https://github.com/arduino/arduino-cloud-cli
4
Cloning into 'arduino-cloud-cli'...
5
(base) tamhan@tamhan-thinkpad:~/arduinocloudclitest$

Das linux-übliche Makefile zur Kompilation sucht man indes vergeblich:

1
(base) tamhan@tamhan-thinkpad:~/arduinocloudclitest$ find | grep "install"
2
(base) tamhan@tamhan-thinkpad:~/arduinocloudclitest$

Der korrekte Weg zum Ziel ist das Besuchen der URL https://github.com/arduino/arduino-cloud-cli/releases/tag/0.1.0, wo wir die Datei arduino-cloud-cli_0.1.0_Linux_64bit.tar.gz herunterladen. Extrahieren Sie das Archiv danach, und führen Sie die Datei nach folgendem Schema aus:

1
(base) tamhan@tamhan-thinkpad:~/arduinocloudclitest/arduino-cloud-cli$ ./arduino-cloud-cli 
2
Arduino Cloud Command Line Interface (arduino-cloud-cli).
3
4
Usage:
5
  arduino-cloud-cli [command]
6
  . . .

Zur Fertigstellung ist dann noch ein Besuch bei der URL https://cloud.arduino.cc/home/api-keys erforderlich, wo sie einen neuen API-Key beantragen. Die eigentliche Anmeldung erfolgt dann über credentials init:

1
(base) tamhan@tamhan-thinkpad:~/arduinocloudclitest/arduino-cloud-cli$ ./arduino-cloud-cli credentials init
2
To obtain your API credentials visit https://create.arduino.cc/iot/integrations
3
 Please enter the Client ID: 
4
. . .

Benutzer der kostenlosen Version des Cloud-Abonnements kommen an dieser Stelle übrigens an eine Grenze – nur Besitzer eines bezahlten Accounts dürfen die Konfiguration abschließen.

(Bildquelle: Screenshot)

Was kann man mit der Cloud CLI tun?

Die wichtigste Anwendung für die CLI dürfte das Provisioning von Geräten sein – je nachdem ob das Gerät einen LORA-Transmitter mitbringt oder nicht, stehen zwei unterschiedliche Befehle am Start:

1
$ arduino-cloud-cli device create --name <deviceName> --port <port> --fqbn <deviceFqbn>
2
$ arduino-cloud-cli device create-lora --name <deviceName> --frequency-plan <freqID> --port <port> --fqbn <deviceFqbn>

Sonst beschränkt sich die CLI auf die Errichtung und Abtragung von Infrastruktur. So lassen sich beispielsweise Geräte löschen oder von zugewiesenen Tags befreien:

1
$ arduino-cloud-cli device delete-tags --id <deviceID> --keys <key0>,<key1>

Auch für Things und Dashboards stehen analoge Werkzeuge zur Verfügung, die wir hier nur auszugsweise zeigen:

1
$ arduino-cloud-cli thing create --name <thingName> --template <template.(json|yaml)>
2
$ arduino-cloud-cli dashboard list --show-widgets

Wichtig ist vor Allem, dass sich die CLI aus der eigentlichen Variablenverwaltung heraushält: das Eintragen oder Auslesen von Werten in den Variablen ist mit dem Kommandozeilenwerkzeug (noch nicht) möglich.

“Mehr” Kompilationszeit für Nutzer der Online-IDE

Arduino Cloud ist seit jeher auch Teil einer im Browser lebenden Arbeitsumgebung, die in der kostenlosen Basisversion bisher pro Tag 200 Sekunden Kompilationszeit für Sketches zur Verfügung stellte.

(Bildquelle beide: Screenshot)

Auch an dieser Stelle gibt es eine Änderung:

1
Always close and sensitive to the communitys demands, Arduino has decided to improve the general users experience by changing the limit of the free plan to 25 successful compilations per day instead of the traditional 200 seconds of successful compilations per day.

Interessant ist dabei, dass wegen Syntax- und sonstigen Fehlern fehlgeschlagene Kompilationen nach wie vor nicht von der Quote abgezogen werden. Begründet wird die Änderung übrigens damit, dass “modernere” Mikrocontroller mehr Kompilationszeit benötigen:

1
Instead of using a time limit, it is more sensible to use a limit based on the number of compilations that does not penalise the more resource-hungry ones.

: Bearbeitet durch NewsPoster
Dieser Beitrag kann nur von angemeldeten Benutzern beantwortet werden. Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.