DU LERNST HIER... |
die Sensordaten deines Roboters per WLAN zur Verfügung stellen, ähnlich wie Milliarden IoT-Geräten, die weltweit miteinander und mit übergeordneten Systemen kommunizieren. |
WAS IST IOT? |
Das IoT ist eines der aktuellsten Themen der heutigen Informatik. Durch Einbau von kleinen, billigen aber WLAN-fähigen Microcontrollern können Geräte und Systeme (kurz Dinge) über ein Netzwerk Daten und Informationen untereinander und mit übergeordneten Systemen kommunizieren. Im Zusammenhang mit IoT spricht man häufig von Web 3.0, einem Internet, in dem Systeme mit Sensoren automatisch eine grosse Menge von Daten erfassen, auf Cloud-Servern speichern und durch weit entfernte Kommandozentralen gesteuert werden. Auch dein Roboter verfügt über einen WLAN-fähiger Microcontroller und Sensoren, mit welchen du einfache IoT-Anwendungen programmieren kannst. |
MUSTERBEISPIELE |
from linkup import * html = """<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="refresh" content="3"> </head> <body> <h2>WebRobot</H2> Current distance: %s<br> </body> </html> """ print("Saving HTML") saveHTML(html) Die Webseite besteht nur aus einer Überschrift und einer zweiten Zeile, in der die Distanz angezeigt wird. %s ist ein Platzhalter für den Messwert, welchen der Ultraschallsensor zurückgibt. Der zweiter Meta-Tag im HTML-Code bewirkt, dass die Webseite alle 3 Sekunden automatisch aktualisiert wird. from mbrobot import * from linkup import * def onRequest(clientIP, state, params): d = getDistance() return [d] ipAddress = connectAP(ssid="xx", password="yy") print(ipAddress) startHTTPServer(onRequest) print("Server starting") Wenn ein Benutzer im Webbrowser die IP-Adresse des Roboters (z.B. 192.168.0.22) eingibt, wird die Webseite mit der aktuell gemessenen Distanz angezeigt. Das Smartphone/PC muss mit dem gleichen Accesspoint wir der Roboter verbunden sein. Beispiel 2: Wasserstand online überwachen
Pin1 und Pin2 werden für den Ultrasonic-Sensor verwendet. Wenn man diesen entfernt, so sind die beiden Pins für andere Anwendungen frei verwendbar. Bei niedrigem Wasserstand sind die Messwerte, die man mit dem Befehl pin1.read_analog() erhält, wesentlich kleiner als beim hohen Wasserstand, wenn die beiden Kontakte im Wasser sind. Im Browser des Smartphones oder PCs werden die Werte angezeigt. from linkup import * html = """<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="refresh" content="5"> </head> <body> <h2>Remote services</h2> Current humidity: %s<br> </body> </html> """ print("Saving HTML...") saveHTML(html) print("Done")
from linkup import * from mbrobot import * from microbit import * def onRequest(clientIP, filename, params): v = pin1.read_analog() return [v] #ipAddress = connectAP(ssid = "xx", password = "yy") #print(ipAddress) startHTTPServer(onRequest) Falls du di IP-Adresse deines Roboters nicht mehr weisst, kannst du die beiden auskommentierten Zeilen aktivieren. Die IP wird danach im Terminal-Fenster angezeigt. Verbinde deinen Smartphone mit dem gleichen Accesspoint und gib im Browser diese IP-Adresse ein, um den Wasserstand anzuzeigen.
UmweltsensorenDie Robotik-Bibliothek unterstützt mehrere Sensoren, mit welchen man die wichtigsten Umweltindikatoren: die Umgebungstemperatur, die Luftfeuchtigkeit und den Luftdruck übermitteln kann. Sensirion Temperatur- und Luftfeuchtigkeits-Sensoren, die im nächsten Beispiel verwendet werden, sind hochpräzise Geräte, mit einer Genauigkeit von ±0,3°C bei den Temperaturmessungen und ±2% bei der Luftfeuchtigkeit. Man kann sie praktisch an jeden Microcontroller anschliessen. Beispiel 3: Sensirion Temperatur- und Feuchtigkeitssensor
from linkup import * html = """<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="refresh" content="3"> </head> <body> <h2>Sensirion Sensor</H2> Current temperature, humidity: <br><br> %s, %s </body> </body> </html> """ print("Saving HTML") saveHTML(html) Im Hauptprogramm importierst du das Modul sht, welches die Funktionen für den Sensirion-Sensor enhält. Mit dem Befehl sht.getValues() werden die aktuellen Temperatur und Feuchtigkeit gemessen und in den Variablen temp und humi gespeichert. Die beide Return-Werte erscheinen danach auf der Webseite. from linkup import * from mbrobot import * import sht def onRequest(clientIP, filename, params): temp, humi = sht.getValues() return [temp, humi] #ipAddress = connectAP(ssid = "xx", password = "yy") #print(ipAddress) startHTTPServer(onRequest) Um die Werte auf deinem Smartphone anzuzeigen, musst du im Browser die IP-Adresse des Roboters eingeben. Falls du diese nicht mehr weisst, kannst du die beide auskommentierte Zeilen aktivieren, damit die IP-Adresse im Terminalfenster angezeigt wird. |
MERKE DIR... |
Als IoT («Internet of Things») bezeichnet man eine aktuelle Technologie, die es durch den Einbau von billigen, WLAN-fähigen Microcontrollern den Geräten (kurz "Dingen") ermöglicht, über das Internet Sensordaten und Informationen untereinander auszutauschen und mit übergeordneten Systemen zu kommunizieren. Auch mit deinem mbRobot kannst du IoT-Anwendungen programmieren. |
ZUM SELBST LÖSEN |
|