Bauplan Schaltplan Geigerzähler Web Interface mit Flyport
Das hier kurz vorgestellte Flyport Modul ist natürlich auch hervorragend dazu geeignet, automatische Messaufgaben durchzuführen und die Ergebnisse als Internetseite darzustellen. Hierzu sind zweierlei Dinge notwendig.

Zum Einen muss durch die Mikrocontroller Peripherie der Messwert eingelesen werden, zum Anderen muss dafür gesorgt werden, dass dieser an den Webserver übergeben wird und somit angezeigt werden kann.

Am Beispiel eines einfachen Geigerzählerprogramms soll dies näher erläutert werden.

Die Ansteuerung der Hardware für die Messerfassung erfolgt im Quellcode von taskFlyport.c. Dazu wird ein 16Bit Timer des PIC Controller so initialisiert, dass er externe Ereignisse am IO1 Pin des Flyports zählt.

//Timer 2 Externer Takt Eingang auf RP16:
__builtin_write_OSCCONL(OSCCON & 0xBF);

RPINR3bits.T2CKR = 16;

__builtin_write_OSCCONL(OSCCON | 0x40);

Als Zähler Hardware dient die Schaltung hier, sie wird einfach und sicher per Optokoppler an das Flyport Modul angeschlossen. Das eigentliche Zählerprogramm ist recht einfach gehalten. Über das Echtzeituhr-Modul (Libraries von der OpenPicus Webseite laden!) wird alle Sekunden ein Alarm ausgelöst, welcher dann zwei Zählwerte für Sekunden, Minuten und einen in Nanosievert/h skalierten Wert liefert.

Diese drei Werte stehen dann in den Variablen cps,cpm sowie nsh zur Verfügung. Zusätzlich werden die Zählwerte noch auf der seriellen Schnittstelle ausgegeben.

Im Webserver Task gibt es nun für jede dieser drei Variablen (sie werden einfach als globale Variablen referenziert) eine dynamische Callback Funktion, welche dann den aktuellen Wert in den Ausgabestrom schreibt. Wenn also in einer Webserver Datei die Zeichenfolge ~cpm~ auftaucht, wird die zugehörige Funktion HTTPPrint_cpm aufgerufen, und analog das gleiche für cps und nsh.

//Diese Funktion wird aufgerufen, wenn in einer Webseite die Zeichenfolge ~cpm~ gefunden wird!

void HTTPPrint_cpm(void)
{
extern int cpm;

BYTE CPMString[8];

uitoa(cpm, (BYTE*)CPMString);
// Print the output
TCPPutString(sktHTTP, CPMString);
return;
}

Der eigentliche Trick bei der Sache liegt in der Erstellung der Datei HTTPPrint.h, welche im Projektstammverzeichnis liegt. Sie wird beim Importieren der HTML Dateien durch das MPFS Utility (hierzu dient der Button zum Import der Webserver-Dateien in der OpenPicus IDE) angelegt. Allerdings geschieht dies offenbar nur einmal, wenn die Datei bzw. die zugehörige Datei HTTPPrint.idx schon vorhanden ist, wird sie nicht überschrieben. Also nach Änderungen an den Webseiten diese beiden Dateien löschen und die Webseiten neu importieren.

Wenn also in einer Webseiten-Datei eine mit ~varname~ gekennzeichnete dynamische Variable oder Funktion gefunden wird, wird in der HTTPPrint.h Datei automatisch eine zugehörige Funktion deklariert , welche dann in der Datei HTTPApp.c definiert wird.

All dieses zusammen ergibt dann die kleine Netzwerk-Geigerzähler Software, welche einfach zB mit

http://192.168.0.200/counter.cgi

aufgerufen werden kann.

Cps: 1
Cpm: 33
nS/h: 157

Dieses Beispiel zeigt das Prinzip auf, mit welchem man eine eigene Anwendung mit dem Flyport entwickeln kann, die auf der einen Seite in einem unabhängigen Task zum Beispiel Messwerte sammelt und aufbereitet (taskFlyport), und auf der anderen Seite diese Werte dann dynamisch ein ausgelieferte Webseiten einbindet. Mit diesem Prinzip lassen sich schon eine ganze Menge an Anwendungen ins Wlan bringen!
Bauteile für dieses Projekt - Anzeigen:
Aktive Bauelemente

Passive Bauelemente


Weitere Informationen,Grundlagen,Bauanleitung,Schaltplan, Links zum Thema
Anzeigen:

Neueste Artikel
Anzeigen:
Aktuelle Newsbeiträge
Sie sind Besucher Nr. 1214133