MicroPython-Beispiele für Digi XBee Teil 2: Edge Computing

Rob Faludi Rob Faludi, IoT Berater, Faludi.com
November 13, 2018
In unserem erster Beitrag in der Serie MicroPython-Programmierung für den Edgehaben wir darüber gesprochen, wie man Sensormesswerte sammelt und sie mit dem Digi XBee 3 Mobilfunk LTE-M Kitsowie die kostenlose Konfigurationssoftware von Digi, Digi XCTUund einigen einfachen MicroPython-Code. Willkommen zu Teil 2 dieser Serie.

Die Edge-Intelligenz der eingebetteten RF-Module der XBee 3-Serie von Digis macht das Senden von Daten in die Cloud zum Kinderspiel. In unserem zweiten Projekt dieser praktischen Serie zeigen wir, wie man die von einem Digi XBee 3 Mobilfunk LTE-M-Modul gemessenen Temperaturwerte in "Datenströme" auf Digi Remote Manager® (Digi RM).

Entwickler können diese Daten- und Geräteverwaltungsplattform kostenlos nutzen. Die Digi XBee 3 Mobilfunk Linie unterstützt offene Kommunikationsstandards, so dass sie auch Daten mit Amazons IoT Plattform, Microsoft Azure, Adafruit.io, Google Cloud IoT, ThingSpeak, IBM Watson und vielen anderen teilen kann. Halten Sie Ausschau nach praktischen Anleitungen oder mehreren dieser Projekte in zukünftigen Projekten. 

Leser unseres ersten Projekts werden sich erinnern, dass MicroPython eine Open-Source-Programmiersprache ist, die auf Python 3 basiert, modifiziert wurde, um auf kleine Geräte zu passen und für Mikrocontroller optimiert ist. Durch die Verwendung von MicroPython können Sie schnell Verbindungen zu Cloud-Diensten direkt an den Rändern Ihres Netzwerks erstellen.

Daten senden an Digi Remote Manager

Viele Systeme von IoT speisen Daten in Online-Cloud-Plattformen im Internet ein. In der Regel werden einige Werte, wie z. B. die Temperatur, lokal erfasst und dann an eine der zahlreichen Online-Anwendungen zur Protokollierung, Verarbeitung und Visualisierung der Daten gesendet. In diesem Projekt werden wir mit einem einfachen Sensor einige Temperaturmessungen vornehmen und diese dann als "Datenstrom" an Digi Remote Manager senden, der auf verschiedene Weise visualisiert, über eine offene API abgerufen oder zur späteren Verwendung gespeichert werden kann.

Wir beginnen mit dem exakt gleichen Hardware-Setup, das im Projekt "Sense, Transform and Send a Value" verwendet wurde, einschließlich des Temperatursensors TMP36.

Einrichten der Hardware

 

Wenn Sie unseren ersten Beitrag verpasst haben, besuchen Sie bitte Hands-on MicroPython Programmierbeispiele für Edge Computing: Teil 1 und arbeiten Sie die folgenden Punkte durch, um sich auf dieses zweite Projekt vorzubereiten:
  1. Erste Schritte: Zeigt, wie Sie die benötigte Hardware und Software einrichten.
  2. Hello World Beispiel: Zeigt, wie man Code auf Digi XBee hochlädt 3.
  3. Erfassen, Umwandeln und Senden eines Wertes: Zeigt, wie Sie einen Temperaturmesswert erfassen und als Textnachricht senden.
Nachdem Sie die Digi XBee 3-Hardware eingerichtet, den TMP36-Temperatursensor angeschlossen, ihn mit der Konfigurationssoftware verbunden und das MicroPython-Terminal in XCTU geöffnet haben, können Sie beginnen. Ihr Setup sollte ähnlich wie dieses aussehen:

XBee3 XCTU TMP36 TMP36, Digi XBee 3 Mobilfunk, XBIB verbunden mit MicroPython Terminal in XCTU

Über Digi Remote Manager

 

Digi Remote Manager ermöglicht es Ihnen, dynamische Gerätenetzwerke zu konfigurieren und zu verwalten, mit einer Reihe von Anwendungsentwicklung, Gerätemanagement-Tools und APIs. Eine der wichtigsten Funktionen von Digi Remote Manager ist die Möglichkeit, Geräte over-the-air (OTA) zu aktualisieren, überall im Feld. Dies ist besonders wichtig, wenn Sie eine Anwendung mit entfernten, weit verstreuten oder schwer zugänglichen Modulen erstellen oder wenn Sie eine große Installation aufbauen. Besuchen Sie shop.digi.de um mit Digi Remote Manager loszulegen. 

Digi Remote Manager Konto einrichten

Wenn Sie Hilfe beim Einrichten oder Verwenden Ihres Kontos benötigen, lesen Sie die Digi Remote Manager Benutzerhandbuch.

Mit dem Benutzernamen und dem Kennwort Ihres Remote Manager-Kontos können Sie mit Digi XBee 3 Mobilfunk Datenströme hochladen, in diesem Fall Temperaturmessungen. Es bietet eine Sicherheitsebene, die für dieses einfache Beispiel angemessen ist. Es gibt viele zusätzliche Sicherheits- und Authentifizierungsebenen, die einen erhöhten Schutz für Produktionsanwendungen bieten, aber wir werden uns diese jetzt nicht ansehen, sondern uns auf die Grundlagen konzentrieren.

Bibliothek Uploads

 

Um unseren Code einfacher und lesbarer zu machen, verlassen wir uns auf zwei Bibliotheken die in das Dateisystem innerhalb des Moduls Digi XBee 3 Mobilfunk hochgeladen werden. Diese Bibliotheken sind Sammlungen von bereits geschriebenem Code. Sie bieten einfache Möglichkeiten, komplexe Routinen aufzurufen, ohne dass die Routinen selbst Ihr Programm überfrachten. In diesem Beispiel werden wir die Bibliothek remotemanager und die Bibliothek urequests verwenden, die remotemanager benötigt.
  1. Suchen Sie die Bibliotheken remotemanager.py und urequests.py auf dieser GitHub-Seite: https://github.com/digidotcom/xbee-micropython/tree/master/lib.
  2. Klicken Sie mit der rechten Maustaste auf jeden Dateinamen und wählen Sie Download, um eine lokale Kopie auf Ihrem Computer zu erstellen. (GitHub-Nutzer können das gesamte Repository auch hier klonen oder herunterladen: https://github.com/digidotcom/xbee-micropython).
  3. Wenn Sie Ihr Digi XBee 3 und Ihre XBIB-Karte zu XCTU hinzugefügt haben, öffnen Sie das Menü Tools und wählen Sie File System Manager.
  4. Klicken Sie auf Öffnen, um den Dateisystem-Manager mit Ihrem Digi XBee 3s-Dateisystem zu verbinden.
  5. Navigieren Sie in den "Local Path"-Ordnern in der linken Spalte, um die Dateien remotemanager.py und urequests.py zu finden, die Sie gerade heruntergeladen haben.
  6. Öffnen Sie über die "Remote Path"-Ordner in der rechten Spalte das Verzeichnis "lib" ("/flash/lib").
  7. Ziehen Sie die Dateien remotemanager.py und urequests.py aus Ihrem lokalen Verzeichnis in das Remote-Verzeichnis "lib", um sie auf der XBee 3 zu speichern.
  8. Wenn Sie fertig sind, schließen Sie das Fenster Dateisystem-Manager.
Derzeit ist das MicroPython-Programm, das an der Strg-F-Eingabeaufforderung in der REPL eingefügt wird, die einzige Möglichkeit, ein Programm beim Starten auszuführen. Sobald dieses eingefügte Programm ausgeführt wird, kann es Module aus dem Dateisystem importieren und Dateien in das System schreiben. Das Starten aus einer Dateisystemdatei ist auf der Digis-Entwicklungs-Roadmap, also halten Sie Ausschau nach dieser Funktion in zukünftiger Firmware.

Konfigurieren Sie die XBee

 

Die Konfiguration des Moduls ist identisch mit der unseres ersten Erfassen, Umwandeln und Senden eines Wertes Projekt. Falls sich etwas geändert haben sollte, montieren Sie Digi XBee 3 Mobilfunk auf die XBIB-Platine und verbinden Sie es über USB mit Ihrem Computer und starten Sie das XCTU-Programm.
  • Fügen Sie ein Funkmodul hinzu und klicken Sie dann auf dieses Gerät in der Liste, um es zu konfigurieren.
  • BD Baud Rate sollte auf 115200 [7] und AP API Enable auf MicroPython REPL [4] eingestellt sein.
  • Schreiben Sie diese Einstellungen in das Modul, indem Sie das Stiftsymbol am oberen Rand verwenden.

Laden Sie den Code

Kopieren Sie den unten stehenden Code in einen Texteditor wie Notepad. Stellen Sie sicher, dass Sie Ihren eigenen Benutzernamen und Ihr Passwort eingeben, indem Sie "your_username_here" und "your_password_here" ersetzen, bevor Sie den Code hochladen. Standardmäßig sendet dieses Programm einmal pro Minute einen Temperaturmesswert an den Datenstrom Digi Remote Manager , über 24 Stunden (1440 Stichproben). Sie können dies anpassen, indem Sie die Variablen " wait_time" oder " cycles" wie gewünscht ändern.
 
Denken Sie daran, dass dieser Beispielcode bearbeitet werden muss, bevor Sie ihn hochladen.

 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

# Digi XBee3 Mobilfunk Digi Remote Manager  Beispiel

# verwendet einen TMP36, um die Temperatur zu messen und sie an Digi Remote Manager

# standardmäßig einmal pro Minute, insgesamt 1440 Mal wiederholend, nach einem Tag stoppend

# EINGABE IHRES Digi RM-Benutzernamens und -Passworts, ERSETZUNG "ihr_benutzername_hier" usw. BEVOR SIE DIESEN CODE HOCHLADEN!

importieren RemoteManagerConnection

ADCimportieren

Schlafimportieren

atcmdimportieren

Zyklen # Anzahl der Wiederholungen

wait_time # Sekunden zwischen den Messungen

benutzername #geben Sie Ihren Benutzernamen ein!

passwort #geben Sie Ihr Passwort ein!

Device Cloud Verbindungsinfo

stream_id Temperatur

stream_type FLOAT

stream_units Grad F

Beschreibung "Temperaturbeispiel"

# für Verbindung vorbereiten

Anmeldeinformationen Passwort: Passwort}

stream_info "description": Beschreibung,

"id": stream_id,

"Typ": stream_type,

"units": stream_units}

ai_desc = {

VERBINDET,

REGISTRIEREN_ZUM_NETZWERK,

VERBINDUNG_ZUM_INTERNET,

WIEDERHERSTELLUNG_NOTWENDIG,

NETWORK_REG_FAILURE,

AIRPLANE_MODE,

USB_DIRECT,

PSM_DORMANT,

BYPASS_MODE_ACTIVE,

MODEM_INITIALIZING,

}

watch_ai():

alt_ai -1

0x00:

neu_ai AI)

!= alt_ai:

UNBEKANNT)))

alt_ai = neu_ai

sonst:

schlafen(0.01)

# Hauptprogramm

# eine Verbindung herstellen

rm =credentials)

# Datenfeed-Info aktualisieren

"")

versuchen:

rm.update_datastream(stream_id, stream_info)

"erledigt")

wie e:

status str(e)

\

\

Ausnahme:, e)

Stimmt:

"Verbindung prüfen...")

watch_ai()

"angeschlossen")

Bereich(Zyklen):

# Temperaturwert lesen & in Debug ausgeben

temp_pin "D0")

temp_raw .read()

% temp_raw)

# Temperatur in die richtigen Einheiten umrechnen

TemperaturC 10)

% TemperaturC)

TemperaturF 32,0);

% TemperaturF)

# Datenpunkte an Digi RM senden

"")

versuchen:

status # Daten an Device Cloud senden

"erledigt")

.status_code)

wie e:

\

\

Ausnahme:, e)

# Warten zwischen den Zyklen

sleep(wait_time)

Verwenden Sie es

Wenn das Beispiel Data to Digi Remote Manager läuft, wird jede Minute eine neue Temperaturmessung in einen Digi RM-Datenstrom hochgeladen. Wenn Sie die Einstellungen auf den Standardwerten belassen, erhalten Sie 1440 Uploads im Abstand von einer Minute, also im Wert von 24 Stunden. So überwachen Sie den Datenstrom:
  1. Einloggen auf Digi Remote Manager und wählen Sie den Daten-Dienste tab.

  2. Klicken Sie auf den Stream mit der Bezeichnung "Temperatur", um ihn auszuwählen.
  3. Suchen Sie den Bereich Diagramme und Rohdaten unten. Es kann hilfreich sein, die Trennlinie nach oben zu ziehen, um diesen Bereich zu vergrößern.
  4. Klicken Sie auf Rohdaten um die hochgeladenen Datenpunkte zu sehen

  5. Klicken Sie auf Diagramme um Liniendiagramme der Temperaturdaten anzuzeigen. Es können tägliche, wöchentliche, monatliche und jährliche Zusammenfassungsdiagramme erstellt werden.


Zugehöriges Whitepaper: 5 Gründe, warum Sie Embedded Mobilfunk Connectivity in Betracht ziehen sollten.


Digi Remote Manager verfügt über eine vollständige API für die gemeinsame Nutzung Ihrer Daten mit anderen Online-Systemen. Dank seiner RESTful-Schnittstelle kann es Standardanfragen (mit HTTP GET) von einem Webbrowser akzeptieren. Verwenden Sie diesen Link, um Ihre Temperaturdaten zu sehen. Sie werden aufgefordert, Ihren Benutzernamen und Ihr Passwort einzugeben.

Die Ausgabe erfolgt im XML-Format und sieht wie folgt aus:

Digi Remote Manager XML-Antwort
Digi Remote Manager XML-Antwort

Zusammenfassung

Dieses Digi Remote Manager Beispiel demonstriert eine Möglichkeit, die Datenuploads Ihrer IoT Systeme zu zentralisieren. Sie können nun mehrere Sensoren erstellen, die alle Daten online an eine zentrale Stelle übertragen. Sie haben Ihr erstes Digi RM-Konto erstellt, Ihre Daten gefunden und visualisiert. Wir haben auch das Hochladen von Bibliotheken auf Digi XBee 3 Mobilfunk unter Verwendung des Dateisystemmanagers in XCTU behandelt. Der Dateisystem-Manager kann auch Schlüsseldateien und Sicherheitszertifikate verwalten, die von vielen Online-Plattformen IoT benötigt werden. In zukünftigen Beiträgen werden wir uns mit dem Hochladen von Daten in andere Cloud-Anwendungen, dem Auslösen von Warnmeldungen, der Verbesserung der Akkulaufzeit, der Reduzierung von Bandbreitenkosten und vielem mehr beschäftigen.
Ihr Feedback zu dieser Serie ist willkommen. Bitte posten Sie Fragen oder Anregungen in den Kommentaren unten.

>>> Erfahren Sie mehr über das Digi XBee Ecosystem von drahtlosen Modulen, oder kontaktieren Sie uns, um Ihre Anforderungen zu besprechen.
Lernen Sie die Digi Embedded Produktlinie kennen
Erfahren Sie mehr über Entwicklungslösungen für OEMs