W&T Interfaces
für TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA
Glas- und Kunststoff-LWL, http, SNMP, OPC, I/O digital, I/O analog, ISA, PCI, ...?
      Produkte
Home Kontakt   Distributoren weltweit
Sprachen:
DE

US

ES

IT

RU
Web-IO Universal
Digital
Analog
Web-IO Anwendungsfertig
Klima überwachen
Alarmmeldezentrale
Web-Count / S0-Erfassung
IP-Überwachung
Datenserver
Motherbox 2
pure.box 2
Netzwerkspeicher
TCP/IP-Ethernet Server
Com-Server (Seriell)
USB-Server
Serielle Interfaces
USB, RS232, RS485, 20mA
Isolatoren & Lichtleiter
USB, RS232, RS485, 20mA
PC-Karten
PCI Express, PCI- und
ISA-Bus
...
Drucker-Interfaces
Kundenfrequenzmessung

Zubehör
Downloads
Altes
Warenkorb    Ihr Warenkorb

 
      Fachwissen
Bücher, Aufsätze, Glossare...
Technische Hintergrundinfo
Applikationen zu Com-Server,
USB-Server
, Web-IO,
Web-Thermometer,
Motherbox und pure.box
 
Applikation zu Web-IO:

Meßwerte und Zustände von Web-IOs
in Google-Maps Karten darstellen



 Weiterführende Links: Produktübersicht Applikationsübersicht Druck-Version


Die flächendeckende Verfügbarkeit des Internets ermöglicht ganz neue Wege in der Visualisierung von Messwerten und Automatisierungsdaten. Während früher alle Objekte einer Visualisierung aus der gleichen Quelle kommen mussten, können heute bequem Inhalte von Drittanbietern in die eigene Anwendung eingeflochten werden.

.

In der Web2.0-Architektur bezeichnet man diese Technik als Mashup. Daten, Bilder, Töne und andere multimediale Inhalte können über offene API-Programmierschnittstellen in der eigenen Webseite genutzt werden.

.

Ein klassisches Beispiel für diese Technik ist der Dienst Google Maps. Über die API von Google Maps lassen sich Straßenkarten bzw. Satellitenbilder von beliebigen Standorten in die eigene Seite einbinden. Darüber hinaus können z.B. Messwerte im Bereich dieser Karten eingeblendet werden.

Das folgende Beispiel soll im Detail zeigen, wie sich die von einem Web-Thermographen gemessene Temperatur in eine Google Maps Karte einbinden lässt.

Sie haben noch keinen Web-Thermographen und möchten das vorgestellte Beispiel einfach mal ausprobieren?

Kein Problem: Wir stellen Ihnen den Web-Thermographen NTC gerne kostenlos für 30 Tage zur Verfügung. Einfach Musterbestellung ausfüllen, wir liefern den Web-Thermographen zum Test auf offene Rechnung. Wenn Sie das Gerät innerhalb von 30 Tagen zurück schicken, schreiben wir die Rechnung komplett gut.

Zur Musterbestellung   Zur Musterbestellung  

Vorbereitungen

Sie haben Ihren Web-Thermographen bereits

 

1. HTML-Grundaufbau der Webseite
  • Der Einfachheit halber soll die Webseite in diesem Beispiel als Inhalt nur den Kartenausschnitt und die Temperatureinblendung enthalten. Dazu wird im Body Bereich der Seite ein Div-Layer mit der ID map angelegt. Über diese ID kann der Inhalt des Div-Layers nach Aufruf der Webseite mit den Kartendaten von Google Maps gefüllt werden.

<html>
  <head>
    <title>Temperature in Map Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  </head>

  <body onload="load();">
    <div id="map" style="width:640px; height:400px;"></div>
  </body>
</html>


2. Nutzung der Google Maps Dienste
  • Eine Grundvoraussetzung für die Nutzung der Google Maps Dienste ist die Registrierung bei Google. Registriert werden muss die Web-Domain, über die Kartenmaterial angezeigt werden soll (in unserem Fall z.B. www.WuT.de). Die Registrierung erfolgt über folgenden Link: http://code.google.com/apis/maps/index.html.

    Im Gegenzug bekommt man einen Zugangsschlüssel, der über einen entsprechenden Script-Aufruf die Google API zugänglich macht.

.....
</head>

  <script src="http://maps.google.com/?file=api&amp;ie=iso-8859-1
  &amp;oe=iso-8859-1&amp;v=2.x&amp;key=Registrierungsschlüssel"
  type="text/javascript"></script>
<body onload="load();">
.....


3. Das PHP-Script zum Abruf der Temperatur vom Web-Thermographen

Das hier gezeigte Script muss als eigenes PHP-File auf dem selben PHP-Server abrufbar sein, von dem auch die Webseite geladen wird. Es ist sehr universell aufgebaut und kann gleichermaßen für die Kommunikation mit Web-Thermographen als auch mit Web-IO genutzt werden. Das Script wird bei Bedarf mittels eines AJAX-Requests vom Browser aus aufgerufen. Dabei werden über die URL alle benötigten Parameter übergeben:

  • IP
: IP-Adresse des Web-IO
  • PORT
: TCP-Port des Web-IO (normalerweise 80)
  • COMMAND
:

mögliche Kommandos für Web-Thermographen sind: single, wobei dem eigentlichen Kommando noch die Nummer des Sensors folgen kann

mögliche Kommandos für Web-IO Digital sind:, output, input oder counter, wobei dem eigentlichen Kommando noch die Nummer des Inputs oder Outputs folgen kann. Das Web-IO gibt den Status der Inputs oder Outputs zurück.

Als weiteres Kommando können mit outputaccess die Outputs gesetzt werden

  • PW
: Administrator oder Operator Passwort des Web-IO (nur Web-IO Digital)
  • MASK
: gibt in hexadezimaler Schreibweise an, welche Outputs gesetzt werden sollen
(nur Web-IO Digital bei outputaccess)
  • STATE
: gibt in hexadezimaler Schreibweise an, in welchen Zustand die Outputs gesetzt werden sollen (nur Web-IO Digital bei outputaccess)

Der Aufruf für die Abfrage der Temperatur würde dann so aussehen:

webiorequest.php?IP=URL des Web-Thermographen&PORT=80&COMMAND=single&

Als Antwort gibt das Script die IP-Adresse, den Device Namen und die aktuelle Temperatur durch Semikolon getrennt zurück:

10.40.23.100;WEBIO-03A481;6,8°C

Das PHP-Script hat folgenden Aufbau:

<?php
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache");
  parse_str($_SERVER['QUERY_STRING']);
  $fp=fsockopen($IP, $PORT, $errno, $error, 5);
  if (!$fp)
  { printf("ERROR"); }
  else
  { if ($COMMAND == "outputaccess")
    { IF ($MASK == "") {$MASK="0FFF";}
    fputs($fp, "GET /".$COMMAND."?PW=".$PW."&Mask=".$MASK."&State=".$STATE."&");
    }
    else
    { fputs($fp, "GET /".$COMMAND."?PW=".$PW."&");
    }
    do
    { $char=fgetc($fp);
      if($char!=chr(0))
      { echo $char;
      }
    }
    while($char!=chr(0));
    fclose($fp);
  }
?>


Dieses Script wird auf den Server unter webiorequest.php gespeichert.
4. Zusammenführen und Anzeigen von Temperatur- und Kartendaten
  • Das Abrufen der benötigten Temperatur- und Kartendaten wird über ein JavaScript mittels AJAX-Technik gesteuert.

    Mit dem Laden der Webseite wird über eine entsprechende Anweisung im Body-TAG die Funktion Load aufgerufen. Diese startet ihrerseits die Funktion DataRequest und übergibt den Kommando-String, der für den Abruf der Temperatur nötig ist.

    Die Funktion DataRequest prüft zunächst, welcher Browser zugrundeliegt, um die richtige Methode für den HTTPRequest zu benutzen (hier gibt es Unterschiede zwischen Internet Explorer oder Firefox kompatiblen Browsern).

    Über das in Punkt 3. beschriebene PHP-Script wird anschließend die aktuelle Temperatur abgefragt. Bei Empfang der Antwort wird automatisch die eingebettete Funktion DataReceived aufgerufen.

    Der Temperaturwert wird aus dem Empfangsstring ausgeschnitten und zusammen mit der Aktuellen Uhrzeit neu in einen String gespeichert.

    Erst jetzt wird die Karte generiert. Dazu wird für den gewünschten Standort das endsprechende Koordinatenpaar in der Variablen point festgelegt und die gewünschte Karte in das dafür vorgegebene Div-Layer eingefügt.

    Das Erscheinungsbild der Karte kann durch verschiedene Parameter vorgegeben werden (Karte oder Satellitenbild, Bedienelement zum Navigieren, ....).

    Zuletzt wird ein Marker an den entsprechenden Punkt gesetzt und der String mit Temperatur und Uhrzeit über die Karte gelegt.

<script type="text/javascript">
var map;
var point;
var marker;
var commandstring ='webiorequest.php?IP=klima.wut.de&PORT=80&COMMAND=single&';

function load()
{ DataRequest(commandstring);
}

function DataRequest(SendString)
{ var xmlHttp;
  try
  { // Internet Explorer
    if( window.ActiveXObject )
    { xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
    }
    // Mozilla, Opera und Safari
    else if(window.XMLHttpRequest )
    { xmlHttp = new XMLHttpRequest();
    }
  }
  // loading of xmlhttp object failed
  catch( excNotLoadable )
  { xmlHttp = false;
    alert("no knowen browser");
  }
  if (xmlHttp)
  { xmlHttp.onreadystatechange = DataReceived;
    xmlHttp.open("GET", SendString, true);
    xmlHttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    xmlHttp.setRequestHeader("Expires", "Sat, 05 Nov 2005 00:00:00 GMT");
    xmlHttp.setRequestHeader("Pragma","no-cache");
    xmlHttp.send(null);
  }
  function DataReceived()
  { var Timenow = new Date();
    if (xmlHttp.readyState == 4)
    { if (xmlHttp.status == 200)
      { var receivestring = xmlHttp.responseText;
        var receivestringpart = receivestring.split(';');
        receivestring = 'Außentemperatur um '
          + Timenow.getHours() + ':'
          + Timenow.getMinutes() + ' Uhr '
          + receivestringpart[2].substring(0,receivestringpart[2].length-2)
          + '°C';
        if( GBrowserIsCompatible() )
        { point = new GLatLng( 51.305099, 7.254627 );
          map = new GMap2( document.getElementById( 'map' ) );
          map.addControl( new GSmallMapControl() );
          map.setCenter( point, 18 );
          map.setMapType(G_SATELLITE_MAP)
          marker = new GMarker(point);
          map.addOverlay(marker);
          var content = "<h3>Prima Klima bei W&T</h3>";
          content += "<br><a href='http://klima.wut.de'>" + receivestring + "</a>";
          marker.openInfoWindowHtml(content);
        }
      }
    }
  }
}
</script>


 

Das Beispiel unterstützt bewusst nur einige Basisfunktionen der Mashup -Technik und ist für den Web-Thermographen 57609 bzw. 57610 optimiert. Für die anderen Web-IO Modelle müssen ggf. Anpassungen an der Beispiel-Webseite vorgenommen werden. Auch die Google Maps API bietet viele weitere Funktionen die hier nicht genutzt wurden.

Bitte beachten Sie, dass in das hier zum Download angebotene Beispiel, der zur Domain passende Registrierungsschlüssel eingefügt werden muss.

Zur Musterbestellung   Zur Musterbestellung Programmbeispiel herunterladen   Zum Download

 
    Weitere Applikationsbeispiele für Web-IO Digital
Webtechniken
     
     
     
     
  Eigene Webseiten
       
        PHP und AJAX - dynamische Webseiten auch für mehrere Web-IO
        Mashup Webseiten - Werteanzeige in Google Maps Landkarten
        Java-Applet - das integrierte Applet nutzen
        Java-Applet - Beispiel: Anzeige der In- und Outputs
        Java-Applet - Beispiel: Anzeige der In- und Outputs und Steuerung der Outputs
        Java-Applet - Beispiel: Anzeige der Counter
        Java-Applet - Beispiel: Türen öffnen und Lichter schalten im Browser
        Web-IO mit iPhone - visualisieren und steuern
        Web-IO mit iPhone Beispiel: Rolladensteuerung
        Web-IO mit iPhone Beispiel: Klimaüberwachung
        Web-IO mit iPhone Beispiel: Messwertanzeige
Systemintegration
     
     
     
     
     
      Box-to-Box
Datenerfassung
     
      FTP-Datenlogger - Beispiel
Zeitschaltuhr
     
      CRON Zeitschaltuhr (Linux)
      Taskplaner als Zeitschaltuhr
Individual-Programmierung
     
      Visual Basic.Net 2005/2008/2010
      Visual Basic.Net 2005/2008/2010 mit WuTdevice.dll
      Visual C++
      Visual C#
      Visual C# mit WuTdevice.dll
      Visual C++ (Linux mit QT-Designer)
      Visual Delphi
      Visual Delphi.Net (2005)
      Lazarus / FreePascal
      Java
      mit VBScript steuern
Web-IO System
     
     
      Motherbox - mehrere Web-IO ansprechen
      Motherbox - Web-IOs logisch verknüpfen
      Grenzwertüberwachung
  Web-IO - Möglichkeiten der Netzwerkanbindung
       
        DSL
        UMTS/GPRS/Mobilfunknetz
        Satelitenfunk


 
  • Mister Wong
  • Google Bookmarks
  • Twitter
  • Facebook
  • Digg
   Impressum
Wir sind gerne persönlich für Sie da! Wiesemann & Theis GmbH Tel.: 0202/2680-110 (Mo-Fr. 8-17 Uhr)
Porschestr. 12 Fax: 0202/2680-265
42279 Wuppertal individuelle E-Mail

© Wiesemann & Theis GmbH, Irrtum und Änderungen vorbehalten: Da wir Fehler machen können, darf keine unserer Aussagen ungeprüft verwendet werden. Bitte melden Sie uns alle Ihnen bekannt gewordenen Irrtümer oder Mißverständlichkeiten, damit wir diese so schnell wie möglich erkennen und beseitigen können.