IoT-Thermometer mit Python
Komponenten und Verbrauchsmaterialien
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Apps und Onlinedienste
|
Über dieses Projekt
Die Zerynth-App
Zerynth App ist eine mobile Anwendung für Android und iOS das ermöglicht schnelles Prototyping von grafischen Schnittstellen für Ihre IoT-Projekte .
Mit der Zerynth App kannst du jedes Handy in den Controller und das Display für intelligente Objekte verwandeln und IoT-Systeme ! Insbesondere können Sie die mit Zerynth programmierten angeschlossenen Geräte verwalten und steuern, wodurch ein bidirektionaler Kommunikationskanal zwischen ihnen und Ihrem Mobiltelefon ermöglicht wird.
In dieser Anleitung erfahren Sie, wie Sie ein einfaches, aber leistungsstarkes IoT-Thermometer . entwickeln , mit einem von Zerynth betriebenen Single-Board-Mikrocontroller und der Zerynth-App als Remote-Display.
Benötigte Materialien
Als erstes brauchst du ein Brett. Sie können eines der von Zerynth unterstützten 32-Bit-Mikrocontroller-Geräte auswählen. Wir haben uns für Flip&Click von Mikroelektronika entschieden, das viele der gleichen Eigenschaften wie die beliebten Arduino-Plattformen aufweist, einschließlich des 32-Bit AT91SAM3X8E von Microchip der Kern von Arduino Due.
Um die Temperatur zu messen, haben wir den Temp&Hum Click ausgewählt, der einen HTS221-Sensor für Temperatur und relative Luftfeuchtigkeit trägt.
Um das Board mit dem Internet zu verbinden, haben wir das WiFi PLUS Click gewählt, das MRF24WB0MA – 2,4 GHz, IEEE std. 802.11 – konformes Modul von Microchip , sowie MCW1001 Companion-Controller mit integriertem TCP/IP-Stack und 802.11-Verbindungsmanager.
Zu guter Letzt brauchst du:
- Zerynth Studio , unsere leistungsstarke IDE für die eingebettete Programmierung in Python, die das IoT ermöglicht. Sie können es hier herunterladen.
- Zerynth-App . Sie können es hier herunterladen.
Zusammenbau Ihres IoT-Thermometers
Flip&Click ist Arduinos zweiseitiger Cousin. Auf der einen Seite ist es ein Arduino. Aber auf der anderen Seite finden Sie vier offene mikroBUS-Buchsen für das, was das Unternehmen "Click-Boards" nennt. Im Wesentlichen handelt es sich dabei um Zusatzmodule, die Arduino-Shields ähneln, aber verkleinert sind, sodass Sie problemlos mehrere gleichzeitig auf dem Flip &Click unterbringen können. Fügen Sie einfach die Temp&Hum- und die Wifi Plus-Klicks auf der Platine jeweils an Steckplatz A und B hinzu.
So programmieren Sie das IoT-Thermometer mit Python
Klonen Sie das Beispiel
Nachdem Sie Zerynth Studio installiert und einen Zerynth-Benutzer erstellt haben, können Sie das Beispiel „Zerynth App Oszilloskop . klonen “. Schauen Sie hier, um zu erfahren, wie Sie ein Beispiel klonen.
Schauen wir uns den Originalcode in der Datei "main.py . an ”-Datei:Hier entwickeln Sie die Logik Ihres Python Skript. Wir beginnen mit dem Originalcode und bearbeiten dann das Skript, um unser spezifisches Projekt zu entwickeln.
############################################ ##################################### IoT-Thermometer########## ################################################ ################### von wireless import wifi# Dieses Beispiel basiert auf Particle Photon# ändern Sie die folgende Zeile, um einen anderen WLAN-Treiber zu verwenden aus broadcom.bcm43362 import bcm43362 as wifi_driverimport streamsimport adc # Import the Zerynth APP libraryfrom zerynthapp import zerynthapp streams.serial() sleep(1000)print("STARTING...") try: # Geräte-UID und TOKEN können im ADM-Panel erstellt werden zapp =zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", log=True) # Verbindung zum WLAN-Netzwerk herstellen (SSID und Passwort unten festlegen) wifi_driver.auto_init() für i in Reichweite(0,5): versuchen: wifi.link("SSID" , wifi.WIFI_WPA2, "password") break außer Ausnahme als e:print ( "Can not Link", e) else:print ( "Unmöglich zu Link!"), während True:Schlaf (1000) # Starten Sie die Zerynth-App-Instanz! # Denken Sie daran, eine Vorlage mit den Dateien im Ordner "template", den Sie gerade geklont haben, zu erstellen. # laden Sie sie in den ADM hoch und verknüpfen Sie sie mit dem verbundenen Gerät zapp.run() # ADC lesen und Werte an den ADM senden während True: sleep( 1000) x =(adc.read(A4)*100)//4096 zapp.event({"data":x}) if x>95: # Mobile Benachrichtigung senden # eine Benachrichtigung pro Minute Gerät in der ADM-Sandbox) zapp.notify("ALARM!","Der Wert ist größer als 95!") außer Ausnahme wie e: print(e)
In diesem einfachen Beispiel wird ein grafisches Oszilloskop von der Zerynth App mit Daten visualisiert, die von der angeschlossenen Platine kommen. Die Daten werden von einem analogen Sensor über den „analogen“ Pin A4 erfasst.
Importieren Sie die richtigen WLAN-Treiber und Sensorbibliotheken
Wie Sie in den Kommentaren sehen können, basiert dieses Beispiel auf dem Particle Photon Board und seinem WLAN-Treiber. Da wir das WiFi Plus Click nutzen wollen, müssen wir folgende Zeilen ändern:
von broadcom.bcm43362 importieren bcm43362 als wifi_driver
in
von microchip.mcw1001a importieren mcw1001a als wifi_driver
und
wifi_driver.auto_init()
in
wifi_driver.init(SERIAL2,D24) # Steckplatz B
Dann wollen wir den Temperatursensor des Temp&Hum Click verwenden. Wir müssen also die folgenden Zeilen hinzufügen, um die Bibliothek zu importieren und den Sensor einzurichten, wie Sie in der Dokumentation lesen können:
# Importieren Sie die HTS221-Bibliothek aus stm.hts221 import hts221 temp_hum =hts221.HTS221(I2C0, D21) # Steckplatz A
Um den Sensor auszulesen, schreiben Sie einfach die folgende Zeile, wo es notwendig ist:
tmp, hum =temp_hum.get_temp_humidity() # tmp lesen und summen
Richten Sie den SSID-Namen und das PASSWORT ein
Natürlich müssen Sie auch den SSID-Namen und das PASSWORT des WLAN-Netzwerks bearbeiten, mit dem Sie das Board verbinden möchten, indem Sie diese Zeile bearbeiten:
wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD")
Ein verbundenes Gerät erstellen und einrichten
Jetzt müssen wir ein „verbundenes Gerät“ erstellen und die Instanz „zerynthapp“ damit verknüpfen. Unten sehen Sie einige Screenshots mit den notwendigen Schritten. Weitere technische Details finden Sie in diesem Dokument.
Die Geräteanmeldeinformationen (UID und TOKEN ) kann direkt aus Zerynth Studio (ADM-Panel) kopiert und eingefügt werden. „IP“ ist die IP-Adresse des Zerynth ADM. Dieses Argument wird verwendet, wenn der Netzwerktreiber die Auflösung von Hostnamen nicht unterstützt, wie in diesem Fall.
Vorlage erstellen, hochladen und einstellen
Über die Zerynth-App können Sie ansprechende grafische Benutzeroberflächen mit HTML . ausführen , CSS und JavaScript . Kein Android- oder iOS-Code erforderlich!
Die grafische Oberfläche jedes Geräts wird auf der Zerynth ADM-Sandbox gehostet und besteht aus einer Reihe von HTML5-, Javascript-, CSS- und Bilddateien, die in der App geladen und angezeigt werden. Durch Hinzufügen der ADM-JavaScript-Bibliothek zur Vorlage kann die App mit dem verbundenen Gerät interagieren, sowohl das Empfangen als auch das Senden von Nachrichten.
Vorlagen können durch Anklicken des entsprechenden „Plus“-Symbols hinzugefügt werden.
Laden Sie dann die Vorlage aus dem dafür vorgesehenen Ordner hoch. Beachten Sie, dass die Datei, in der die Vorlage definiert ist, „index.html . heißt “ und Sie können es nach Belieben bearbeiten. In diesem Fall können Sie es so lassen, wie es ist.
Uplink das Skript
Nach ein paar Änderungen sollte der Code so aussehen:
############################################ ##################################### IoT-Thermometer########## ################################################ #5 libraryfrom stm.hts221 import hts221 temp_hum =hts221.HTS221(I2C0, D21) # Slot A sleep(1000)print("STARTING...") try: # Geräte-UID und TOKEN können im ADM-Panel erstellt werden zapp =zerynthapp. ZerynthApp("DEVICE UID", "DEVICE TOKEN",ip ="178.22.65.123", log=True) # Verbindung zum WLAN-Netzwerk herstellen (SSID und Passwort unten einstellen) wifi_driver.init(SERIAL2,D24) # Steckplatz B für i in range(0,5): try: wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD") break außer Ausnahme wie z verlinken!") while True: sleep(1000) # Starten Sie die Zerynth-App-Instanz! # Denken Sie daran, eine Vorlage mit den Dateien im Ordner "template", den Sie gerade geklont haben, zu erstellen. # laden Sie sie in den ADM hoch und verknüpfen Sie sie mit dem verbundenen Gerät zapp.run() # Lesen Sie den Sensor und senden Sie Werte an den ADM während True: Schlafen (1000) tmp, hum =temp_hum.get_temp_humidity() # tmp lesen und summen print("Temp is:", tmp, "humidity is:", hum) try: zapp.e mp zapp Ausnahme als e:print (e) wenn tmp>
30:# mobile Benachrichtigung # senden (es gibt eine Grenze von einer Benachrichtigung pro Minute pro Gerät auf der ADM-Sandbox) versuchen:zapp.notify ( "! ALARM", "High Temperature! ") außer Ausnahme wie e: print(e) außer Ausnahme wie e: print(e)
Denken Sie daran, dass „DEVICE UID“, „DEVICE TOKEN“, „SSID“ und „PASSWORD“ bearbeitet werden müssen, damit sie mit Ihren eigenen Parametern übereinstimmen.
An dieser Stelle können Sie das Skript auf Ihr Gerät hochladen.
So sehen Sie das IoT-Thermometer-Dashboard in der Zerynth-App
Wie Sie in dieser sehr kurzen Anleitung lesen können, müssen Sie nur die Zerynth-App öffnen, sich anmelden und das jeweilige Gerät auswählen, um Ihr IoT-Thermometer-Dashboard anzuzeigen. Schließlich kann die Zerynth App auch Push-Benachrichtigungen empfangen von den angeschlossenen Geräten. In diesem Fall wird eine Benachrichtigung angezeigt, wenn die Temperatur über dem Schwellenwert liegt!
Wenn Sie Fragen haben, zögern Sie nicht, eine Diskussion im Zerynth-Community-Forum zu eröffnen.
Viel Spaß!
Code
- IoT-Thermometer
IoT-ThermometerPython
Schaltpläne
Herstellungsprozess
- Thermometer
- TMP006-Temperatursensor-Python-Bibliothek mit Raspberry Pi,
- Python- und Raspberry Pi-Temperatursensor
- Verwenden des PSoC 6 Pioneer Boards mit dem Pioneer IoT Add-on Shield
- Wie das IoT die Welt um uns herum verändert
- So installieren Sie Python unter Windows [Pycharm IDE]
- Python-Datei und -Verzeichnis mit os.rename() umbenennen
- Facebook-Login mit Python:FB-Login-Beispiel
- Python-Durchschnitt:So finden Sie den DURCHSCHNITT einer Liste in Python
- Python - Senden von E-Mails mit SMTP