Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Komponenten und Zubehör

IoT-Thermometer mit Python bauen: Kompletter Leitfaden
MikroE Flip & Click
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
Arduino Due
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
Particle Photon
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
NodeMCU ESP8266 Breakout Board
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
SparkFun Photon RedBoard
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
MikroE Temp&Hum Click
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
MikroE WiFi Plus Click
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
Espressif Wemos D1 Mini
× 1
IoT-Thermometer mit Python bauen: Kompletter Leitfaden
Arduino Zero
× 1

Apps und Online-Dienste

IoT-Thermometer mit Python bauen: Kompletter Leitfaden
Zerynth Studio

Über dieses Projekt

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Die Zerynth App

Die Zerynth App ist eine mobile Anwendung für Android und iOS, die schnelles Prototyping von grafischen Oberflächen für Ihre IoT-Projekte ermöglicht.

Mit der Zerynth App verwandeln Sie jedes Smartphone in Controller und Display für intelligente Objekte und IoT-Systeme! Insbesondere können Sie mit Zerynth programmierte verbundene Geräte verwalten und steuern, wodurch ein bidirektionaler Kommunikationskanal zwischen diesen und Ihrem Mobilgerät entsteht.

In diesem Tutorial zeigen wir, wie man ein einfaches, aber leistungsstarkes IoT-Thermometer entwickelt, das einen mit Zerynth betriebenen Single-Board-Mikrocontroller nutzt und die Zerynth App als Remote-Display einsetzt.

Benötigte Materialien

Zunächst benötigen Sie ein Board. Sie können eines der von Zerynth unterstützten 32-Bit-Mikrocontroller-Geräte wählen. Wir haben das Flip&Click von Mikroelektronika gewählt, das viele Attribute der beliebten Arduino-Plattformen teilt, einschließlich des 32-Bit-AT91SAM3X8E von Microchip, dem Kern des Arduino Due.

Zur Temperaturmessung haben wir den Temp&Hum Click gewählt, der einen HTS221 Temperatur- und relativen Feuchtigkeitssensor trägt.

Für die Internetverbindung des Boards haben wir den WiFi PLUS Click gewählt, der das MRF24WB0MA-Modul von Microchip (2,4 GHz, IEEE 802.11-konform) sowie den MCW1001 Begleitcontroller mit On-Board TCP/IP-Stack und 802.11-Verbindungsmanager bietet.

Zusätzlich benötigen Sie:

IoT-Thermometer zusammenbauen

Flip&Click ist Arduinos zweiseitiger Cousin. Auf der einen Seite ist es ein Arduino. Auf der anderen Seite finden Sie vier offene mikroBUS-Sockel für sogenannte „Click-Boards“. Im Wesentlichen sind das Add-on-Module, die Arduino-Shields ähneln, aber so geschrumpft sind, dass Sie mehrere gleichzeitig auf dem Flip & Click unterbringen können. Fügen Sie einfach den Temp&Hum- und den WiFi Plus-Click an den Board-Slots A und B hinzu.

IoT-Thermometer mit Python programmieren

Beispiel klonen

Nach Installation von Zerynth Studio und Erstellung eines Zerynth-Benutzerkontos können Sie das Beispiel „Zerynth App Oscilloscope“ klonen. Schauen Sie hier, um zu erfahren, wie man ein Beispiel klont.

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Sehen wir uns den Originalcode in der Datei „main.py“ an: Hier entwickeln Sie die Logik Ihres Python-Skripts. Wir starten vom Originalcode und passen das Skript für unser spezifisches Projekt an.

################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
# Dieses Beispiel basiert auf Particle Photon
# Folgende Zeile ändern, um anderen WiFi-Treiber zu nutzen
from broadcom.bcm43362 import bcm43362 as wifi_driver
import streams
import adc

# Zerynth APP Library importieren
from zerynthapp import zerynthapp

streams.serial()
sleep(1000)
print("STARTING...")

try:
  # Device UID und TOKEN können im ADM Panel erstellt werden
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", log=True)
  
  # Mit WiFi-Netzwerk verbinden (SSID und Passwort unten eintragen)
  wifi_driver.auto_init()
  for i in range(0,5):
    try:
      wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
      break
    except Exception as e:
      print("Can't link", e)
  else:
    print("Impossible to link!")
  while True:
    sleep(1000)
  
  # Zerynth App Instanz starten!
  # Denken Sie daran, ein Template mit den Dateien unter dem "template" Ordner zu erstellen,
  # das Sie gerade geklont haben, es zum ADM hochzuladen und mit dem verbundenen Gerät zu verknüpfen
  zapp.run()
  
  # ADC lesen und Werte an ADM senden
  while True:
    sleep(1000)
    x = (adc.read(A4)*100)//4096
    zapp.event({"data":x})
    if x > 95:
      # Mobile Benachrichtigung senden
      # (Limit: eine Benachrichtigung pro Minute pro Gerät in der ADM Sandbox)
      zapp.notify("ALARM!", "The value is greater than 95!")
except Exception as e:
  print(e)

In diesem einfachen Beispiel wird ein grafisches Oszilloskop in der Zerynth App mit Daten vom verbundenen Board visualisiert. Die Daten werden von einem analogen Sensor über den „analog“ Pin A4 erfasst.

Richtigen WiFi-Treiber und Sensor-Libraries importieren

Wie in den Kommentaren zu sehen, basiert dieses Beispiel auf dem Particle Photon Board und dessen WiFi-Treiber. Da wir den WiFi Plus Click nutzen wollen, müssen wir folgende Zeilen ändern:

from broadcom.bcm43362 import bcm43362 as wifi_driver

in

from microchip.mcw1001a import mcw1001a as wifi_driver

und

wifi_driver.auto_init()

in

wifi_driver.init(SERIAL2, D24) # Slot B

Dann wollen wir den Temperatursensor des Temp&Hum Click nutzen. Dazu fügen wir folgende Zeilen hinzu, um die Library zu importieren und den Sensor einzurichten (wie in der Dokumentation beschrieben):

# HTS221 Library importieren
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # Slot A

Zum Auslesen des Sensors schreiben Sie einfach folgende Zeile, wo nötig:

tmp, hum = temp_hum.get_temp_humidity() # Temp und Hum auslesen

SSID-Name und Passwort einrichten

Natürlich müssen Sie auch den SSID-Namen und das Passwort des WiFi-Netzwerks eintragen, mit dem sich das Board verbinden soll, indem Sie diese Zeile bearbeiten:

wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")

Verbundenes Gerät erstellen und einrichten

Nun müssen wir ein „verbundenes Gerät“ erstellen und die „zerynthapp“-Instanz damit verknüpfen. Unten sehen Sie Screenshots mit den nötigen Schritten. Details finden Sie in dieser Dokumentation.

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Die Geräte-Zugangsdaten (UID und TOKEN) können direkt aus Zerynth Studio (ADM Panel) kopiert und eingefügt werden. „IP“ ist die IP-Adresse des Zerynth ADM. Dieser Parameter wird verwendet, wenn der Netzwerktreiber keine Hostnamen-Auflösung unterstützt, wie in diesem Fall.

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Template erstellen, hochladen und festlegen

Mit der Zerynth App können Sie wunderschöne, responsive grafische Benutzeroberflächen mit HTML, CSS und JavaScript betreiben. Kein Android- oder iOS-Code nötig!

Die grafische Oberfläche jedes Geräts wird auf der Zerynth ADM Sandbox gehostet und besteht aus HTML5-, JavaScript-, CSS- und Bilddateien, die in der App geladen und angezeigt werden. Durch Hinzufügen der ADM JavaScript Library zum Template kann die App mit dem verbundenen Gerät interagieren – sowohl Nachrichten empfangen als auch senden.

Templates können über das jeweilige „Plus“-Icon hinzugefügt werden.

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Dann das Template aus dem dedizierten Ordner hochladen. Beachten Sie, dass die Datei, in der das Template definiert ist, „index.html“ heißt und beliebig bearbeitet werden kann. In diesem Fall können Sie es so belassen.

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Skript hochladen (Uplink)

Nach einigen Anpassungen sollte der Code wie folgt aussehen:

################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()

# Zerynth APP Library importieren
from zerynthapp import zerynthapp

# HTS221 Library importieren
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # Slot A

sleep(1000)
print("STARTING...")

try:
  # Device UID und TOKEN können im ADM Panel erstellt werden
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
  
  # Mit WiFi-Netzwerk verbinden (SSID und Passwort unten eintragen)
  wifi_driver.init(SERIAL2, D24) # Slot B
  for i in range(0,5):
    try:
      wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
      break
    except Exception as e:
      print("Can't link", e)
  else:
    print("Impossible to link!")
  while True:
    sleep(1000)
  
  # Zerynth App Instanz starten!
  # Template mit Dateien unter "template" Ordner erstellen,
  # zum ADM hochladen und mit verbundenem Gerät verknüpfen
  zapp.run()
  
  # Sensor auslesen und Werte an ADM senden
  while True:
    sleep(1000)
    tmp, hum = temp_hum.get_temp_humidity() # Temp und Hum auslesen
    print("Temp is:", tmp, "Humidity is:", hum)
    try:
      zapp.event({"data": tmp})
    except Exception as e:
      print(e)
    if tmp > 30:
      # Mobile Benachrichtigung senden
      # (Limit: eine Benachrichtigung pro Minute pro Gerät in der ADM Sandbox)
      try:
        zapp.notify("ALARM!", "High Temperature!")
      except Exception as e:
        print(e)
except Exception as e:
  print(e)

Denken Sie daran, dass „DEVICE UID“, „DEVICE TOKEN“, „SSID“ und „PASSWORD“ an Ihre eigenen Parameter angepasst werden müssen.

An diesem Punkt können Sie das Skript in Ihr Gerät hochladen (Uplink).

IoT-Thermometer-Dashboard in der Zerynth App anzeigen

Wie in diesem kurzen Tutorial beschrieben, müssen Sie lediglich die Zerynth App öffnen, sich einloggen und das spezifische Gerät auswählen, um Ihr IoT-Thermometer-Dashboard zu sehen. Schließlich kann die Zerynth App auch Push-Benachrichtigungen von verbundenen Geräten empfangen. In diesem Fall erscheint eine Benachrichtigung, wenn die Temperatur den Schwellenwert überschreitet!

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Bei Fragen zögern Sie nicht, eine Diskussion im Zerynth Community Forum zu eröffnen.

Viel Spaß!

Code

IoT Thermometer Python

################################################################################
# Zerynth App Oscilloscope
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()

# Zerynth APP Library importieren
from zerynthapp import zerynthapp

# HTS221 Library importieren
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # Slot A

sleep(1000)
print("STARTING...")

try:
  # Device UID und TOKEN können im ADM Panel erstellt werden
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
  
  # Mit WiFi-Netzwerk verbinden (SSID und Passwort unten eintragen)
  wifi_driver.init(SERIAL2, D24) # Slot B
  for i in range(0,5):
    try:
      wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
      break
    except Exception as e:
      print("Can't link", e)
  else:
    print("Impossible to link!")
  while True:
    sleep(1000)
  
  # Zerynth App Instanz starten!
  zapp.run()
  
  # Sensor auslesen und Werte an ADM senden
  while True:
    sleep(1000)
    tmp, hum = temp_hum.get_temp_humidity()
    print("Temp is:", tmp, "Humidity is:", hum)
    try:
      zapp.event({"data": tmp})
    except Exception as e:
      print(e)
    if tmp > 30:
      try:
        zapp.notify("ALARM!", "High Temperature!")
      except Exception as e:
        print(e)
except Exception as e:
  print(e)

Schaltpläne

IoT-Thermometer mit Python bauen: Kompletter Leitfaden

Herstellungsprozess

  1. Das Thermometer: Von Galileos Thermoskop zu modernen digitalen Sensoren
  2. TMP006 Infrarot-Temperatursensor mit Raspberry Pi: Python Library & Setup Guide
  3. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  4. PSoC 6 Pioneer Board mit IoT Add-On Shield meistern: Entwickler-Leitfaden
  5. Wie IoT den Alltag revolutioniert
  6. Python und PyCharm unter Windows installieren: Schritt-für-Schritt-Anleitung
  7. Dateien und Verzeichnisse in Python mit os.rename() umbenennen – Schritt-für-Schritt-Anleitung
  8. Facebook-Login mit Python und Selenium automatisieren: Schritt-für-Schritt-Anleitung
  9. Durchschnitt berechnen in Python: Praktischer Leitfaden
  10. E-Mails mit Python und SMTP versenden: Schnellstart