Not another Web Server! Why?
- Fast: 32Bit 250Mhz Processor, 64MB RAM, 8MB Flash
- Easy to make: Majority of system comes on mini PCMIA card, 1/2 the size of a credit card
- Easy to program: Embedded RTOS integrated with: TCPIP stack, HTTP, DCHP, FTP, email and File System. With just 6 lines of code, just load your web pages onto the SD card and go!
- Easy to program and Debug:. Full integrated Eclipse based IDE and debugging. No hardware needed. Debug is via Ethernet connection
The project creates a compact, good looking, fast, flexible, powerful web server, with multiple communications options which is easy to configure. Based on the Netburner platform using the Coldfire 54415 32 bit processor which comes with free IDE and development tools, this embedded development environment allows for programming in C/C++ with all the hardware specific functionality taken care-of so there is no need for any Coldfire specific knowledge. Every library provided is fully integrated with the uC/OS RTOS and this makes development very fast and relatively easy and bug free. Here is the code required to establish a fully functioning Web Server to Serve web pages located on the SD Card:
InitializeStack(); // Initialise TCP Stack
GetDHCPAddress(); // Get IP address using DHCP
OSChangePrio(MAIN_PRIO); // Set the User Task Priority
f_enterFS(); // Initialise the File System
StartHTTP(); // Start the HTTP Server
while (1) OSTimeDly(20); // Do something or not
The debugging system is powerful with no required hardware. It uses Ethernet.
The project is based on the Netburner NANO54415 miniPCMIA card (50 x 30mm) which contains the processor, the memory, 3V power, and Ethernet. Added to this are:
- mini-USB CDC Device
- USB Host supporting CDC / MS / Web Cam
- RS485/422 interface
- RS422 interface
- Serial TTL interface
- Ethernet connector
- ZigbeePRO module wither external antenna
- LCD QVGA 340x272 4.3" touch display
- uSD Card slot
- alarm indicators
The system is easy to build and fits very nicely into a 130x100mm case. The PCMIA connector and standard SO SMD devices are relatively easy to solder; the only item that poses any construction challenge is the FTDI USB interface chip. This can always be substituted with another chip that uses standard SO pin spacing.
The Ethernet interface is already embedded into the system so there is no requirements in this area. To communicate to remote measuring devices in the field then use:
- UHF interface with single hop range of 20km, mulit-hop of 100km, up to 250 devices. This includes error correction.
- RS485/422 as per standard capability
- Zigbee as per standard capability. This is a Digi ZigbeePRO module with external antenna for extended range
The software used for communications can be ElektorBus, but because this system is designed to collect information from thousands of sensors, including images, then a tight packed proprietary protocol is used. The data is captured and stored in data files on the SD card, and this is made available to the Web Sever for displaying the images, and graphing the data over time.
The majority of the display software is written in HTML and operated by the Web Client. The LCD Menu and interface is limited to mainly simple configuration and diagnostic uses, and camera positioning, but of course its capability can be expanded. The Web Server has the ability to configure the majority of the system, display the images that have been captured by remote devices, and display graphs of the measured data over time. The software used to display the charts is 'highcharts' which is a downloadable java script library that the Web Client can take advantage of. The software also uses Google maps to show where all the remotes are located, if you are using the long distance capability of the UHF radios.
This system can be used to interface to any other monitoring and control system, however, it was originally designed to communicate with another project I have created called 'Pilot', which is a wide area fully isolated monitoring and control system capable of up to many thousands of simultaneous measurements.
One of the Devices this Web Server communicates with is a Isolated DC Remote that provides fully electrical isolated measurements of DC voltage, DC current, Temperature, digital inputs/Timers/counters and digital/PWM outputs. These measurements and controls are also isolated from the DC supply and communcations channels. The Isolated DC Remote is presented as an additional project on Elektor-labs