HTML Grundgerüst mit jQuery für mobile Web Anwendung
Das für eine mobile WebApp notwendige HTML Grundgerüst und die Einbindung des jQuery Frameworks möchte ich dir anhand dieses Beitrags zeigen. Dieser baut auf den Beitrag “Mobile WebApp für die Temperaturmessung am Raspberry Pi” auf. Bei dieser Web Anwendung handelt es sich nicht um eine Website in spezieller mobiler Ansicht, sondern um eine mobile Webanwendung.
Für die Beitragsreihe, deren Einleitung du im Beitrag “Mobile WebApp für die Temperaturmessung am Raspberry Pi” findest, habe ich folgendes Video mit ca. 57 Minuten erstellt. In diesem erkläre ich das Zusammenspiel und die Funktionen der beiden Programme.
Das HTML Grundgerüst
Die Grundlage der WebApp bildet ein einfaches und gewöhnliches HTML-Dokument. Diese wird in den gewünschten Pfad deines Webservers auf dem Raspberry Pi abgelegt. In meinem Beispiel habe ich diese messung.html genannt um im Hauptverzeichnis /var/www abgelegt.
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 |
<!doctype html> <html lang="de-DE"> <head> <meta charset="utf-8"> <title>Temperaturmessung</title> </head> <body> <div data-role="page" id="page1"> <div data-role="header" data-position="fixed"> </div> <div data-role="main" class="ui-content"> </div> <div data-role="footer" data-position="fixed" class="footer"> </div> </div> <div data-role="page" id="page2"> <div data-role="header" data-position="fixed"> </div> <div data-role="main" class="ui-content"> </div> <div data-role="footer" data-position="fixed" class="footer"> </div> </div> <div data-role="page" id="page3"> <div data-role="header" data-position="fixed"> </div> <div data-role="main" class="ui-content"> </div> <div data-role="footer" data-position="fixed" class="footer"> </div> </div> </body> </html> |
Seit HTML5 hat sich die Deklaration des Dokumenttyps vereinfacht und es reicht nun ein <!doctype html> aus. Mit <html lang=”de-DE”> teilen wir dem Browser den Anfang einer HTML-Codierten-Seite mit. Das lang Attribute teilt mit, dass es sich dabei um eine deutschsprachige Webseite handelt. Danach folgt der Dokumentenkopf <head></head> und der Dokumentenkörper <body></body>. Das Seitenende wird mit </html> beschrieben.
Der Dokumentenkopf
In den Dokumentenkopf, also in den Head-Bereich gehören die <meta> Angaben für die Webseite. In diesem Fall findest du dort im Moment nur die Angabe der Zeichencodierung. Des Weiteren gehören neben dem Webseiten Titel noch die im späteren Verlauf der Beitragsreihe und diesem Beitrag erklärten CSS- und JS-Scripte. Der Webseiten Titel hat nichts mit dem Dateinamen oder der in anderen Fällen vorkommenden Domain zu tun. Der Titel bzw. das <title> Tag ist die Bezeichnung oder evtl. inhaltliche Überschrift der Seite. Diese wird im Browser-Reiter angezeigt. In diesem Fall Temperaturmessung.
Der Dokumentenkörper
In den Dokumentenkörper, also in den Body-Bereich gehört die Beschreibung des Seiteninhaltes. Und nun kommen wir zu einer Besonderheit. Normalerweise soll der Seiteninhalt im HTML5 Standard in thematische Bereiche <section></section> gruppiert werden. Neben der Navigation findet man dort dann den Kopf, den Inhalt und den Fussbereich. Da wir allerdings nicht eine Webseite anzeigen lassen wollen, sondern eine mobile Web-Anwendung erstellen, greifen wir auf das jQuery Framework zurück. Dieses ermöglicht die Erstellung mehrerer Webseiten in einer Datei. Im Programmcode findest du daher die einzelnen DIV-Container mit der Bezeichnung (ID) page1, page2 und page3.
Die einzelnen Seiten
Die einzelnen Seiten, im DIV-Container mit der entsprechenden ID, sind mit drei weiteren DIV-Containern unterteilt. Diese werden mit dem Attribute data-role gekennzeichnet und bestimmen die Rolle des Bereiches für das Framework. Das Attribute data-position=”fixed” gibt an, dass die Bereiche auf dem Display fest fixiert sind und nicht gescrollt werden. Solltest du zum Beispiel den footer-Bereich am Ende des main-Bereiches angezeigt haben wollen, kannst du die data-position entfernen.
jQuery Einbindung
Damit deine Anwendung mit dem Framework ausgestattet ist, musst du diese zuerst einmal einbinden. Hierzu fügst du folgende Zeilen in deinen head-Bereich ein.
1 2 3 |
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> |
Wenn du deinen Raspberry Pi nicht im Netz hängen hast, bzw. keinen Zugriff auf das Internet willst, kannst du dir die Daten auch herunterladen und in deinem Verzeichnis speichern und mit folgenden Zeilen im head-Bereich einbinden.
1 2 3 |
<link rel="stylesheet" href="jquery.mobile.min.css"> <script src="jquery.min.js"></script> <script src="jquery.mobile.min.js"></script> |
mobile Web Anwendung
Damit du die Funktionsweise der Web Anwendung in diesem Stadium überprüfen kannst, ergänze doch einfach den main-Bereich der page1 und page2 mit einem beliebigen Text. Im footer-Bereich von page1 fügst du folgende Verlinkung ein.
1 |
<a href="#page2" data-role="button">Seite2</a> |
In den footer-Bereich von page2 fügst du folgende Verlinkung ein.
1 |
<a href="#page1" data-role="button">Seite1</a> |
Nun kannst du die Datei über deinen Browser aufrufen und zwischen den Seiten wechseln.
Wichtige Anmerkung! Diese Seite funktioniert nur über einen Webserver!
Es wird dir gleich auffallen, die Seite ist noch nicht an dein Browserfenster bzw. an dein Smartphone angepasst. Diese Anpassung beschreibe ich in dem folgenden Beitrag “Die Viewport Angabe, unerlässlich für die mobile WebApp”.
Hallo Wolfgang
ich Hab mal den Quellcode abgeändert auf Time 60 secunden messintervall
Und den Interfall nicht als Zahl sonder dahinter Open eingesetzt jetzt misst er mir kontinuierlich ohne Unterbrechung jede Minute die Messwerte aus.
Das mit Datum und Uhrzeit müsste theoretisch auch machbar sein. Bloß die Frage wie der Quellcode heißen muß Time Date und woher er diese variabel bekommt aus dem Web oder system Zeit Uhr. Gerne möchte ich einen dht22 bzw. den AM2302 und den DS18B20 Auf eine Platine löten diese über eine Zuleitung 3,3V Mit dem PI versorgen. Und 2 Wire Ine Bus Leitungen Legen gpio x1 gpio x2 und 2x 4,7k Ohm wiederstände auf die Platine zwischen Pin 1u d3 des DS18B20 u d beim AM2302 zwischen Pin 1 und 2 löten Somit könnte ich über ein 4 oder 8 adriges Vernmelde atelefonkabel das ganze anschließen Gruß Michael.
Hallo Michael,
es freut mich, dass dein Projekt fortschritte macht. 🙂
Der Befehl zur Auslesung der Systemzeit findest du im messprogramm.py in folgender Funktion:
def aktuelleSystemZeit():
zeitpunktMessung = time.localtime()
jahr, monat, tag = zeitpunktMessung[0:3]
stunde, minute, sekunde = zeitpunktMessung[3:6]
systemUhrzeit = str(stunde) + “:” + str(minute) + “:” + str(sekunde)
systemDatum = str(tag) + “.” + str(monat) + “.” + str(jahr)
return(systemDatum, systemUhrzeit, zeitpunktMessung)
Die Zeit kommt vom System, welche Linux mit dem Web abgleicht.
Das Telefonkabel ist eine gute Lösung zur Verbindung bzw. Auslesung deiner Sensoren gut geeignet.
Viele Grüße
Wolfgang
Guten Abend Folgende Frage zur Aufzeichnung mit dem Temperatur Sensor.
Wie Lauter der befehlt für ein endlos Messung?
Gruß Michael
PS ich finde deine Website klasse deine Erklärungen sehr detailliert und sehr verständlich.
Hallo Michael,
der Raspberry Pi misst den Sensor ununterbrochen aus. Du kannst den Wert somit ständig auslesen. Einen direkten Befehl gibt es hierfür nicht. Du kannst die Wertabfrage allerdings in eine Schleife packen, siehe hierzu meine Antwort zu deinem Kommentar in dem Beitrag “Temperatur-Sensor DS1820 am Raspberry Pi mit Python”. Eine andere Möglichkeit vom Aufbau findest du in dem Messprogramm (messprogramm.py) zur WebApp, welche zum Download im Beitrag “Mobile WebApp für die Temperaturmessung am Raspberry Pi” zur Verfügung steht.
Viele Grüße
Wolfgang
Guten Tag,
Ich bin sehr interessiert an ihrem Projekt, es wäre sehr nett, wenn sie mir die dazugehörige style.css Datei zukommen lassen könnten.
Mfg,
Adi
Hallo,
eine eigene CSS-Datei habe ich für dieses Projekt nicht angelegt. Es wird die CSS-Bibliothek von jQuery verwendet.
Diese wird im Quellcode eingebunden über . Um diese offline zu erhalten, öffnest du die Adresse http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css im Browser und kopierst den Inhalt in ein deinen Texteditor und speicherst die Datei entsprechend ab.
Viele Grüße
Wolfgang
Kleiner Hinweis, alle Kommentare werden moderiert.
Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.
Neuste Beiträge
Kleinen Spickzettel für Raspbian OS Befehle
Entdecke die Welt von Webnist.de
Erfahre mehr über die Hintergründe meines Blogs und wie ich dich bei deinen digitalen Projekten unterstützen kann.Kategorien
KATEGORIEN
Aktuelles Video auf YouTube
Beschreibung der Verwendung eines TTP223B Touch Sensors am GPIO Port des Raspberry Pi mit Python.
Die aktuell 6 derzeit meistbesuchten Beiträge
Beiträge mit den meisten Kommentaren
Funktional Immer aktiv
Vorlieben
Statistiken
Marketing