I’ve recently been working on a couple programming projects that utilize the RaspberryPi computer.
It’s a tiny cheap computer with a network port, usb ports, HDMI output, and an SD card. With the right peripherals (mouse, keyboard, monitor), it can function like a normal computer. But, it also works well as a programable “brain” for projects that utilize those interconnects.
- A series of buttons that triggered network commands on another device.
- Displaying images on an HD TV as a result of a program running on another computer. (project link forthcoming)
For both of these projects, the “computer” works behind the scenes. If the project is designed and implemented well, the user won’t even know there’s a computer involved. These projects have been more like designing an appliance than an application. The user doesn’t really know there’s a computer doing any work.
The problem with a Computer Appliance is you occasionally need a more typical user interface to make adjustments to settings. I decided to explore providing a web interface to make these adjustments.
Here’s some of the options I found for creating a WUI — web user interface — for an embedded project:
- Qt Framework version 4.x – The projects this interface was needed for both were built on the Qt framework. Version 4.8, though old, is the current default for the Raspbian linux install on the Raspberry Pi.
- Needs to provide a web server, not a client.
- Serves webpages and dynamic content.
Here’s what I found:
- HTTP Server Demo
- Would need to extend this to provide dynamic content.
- QtWebApp – Best option for truly highly dynamic content.
- Adding unrelated features
- QHttpServer – Best option for simple embedded web service
- A C++/Qt port of the Java servlet API
- Been dormant since 2007.
- QXT Web Module
- Very large framework that would likely provide more than is necessary.
- Tufao 0.x Branch
QWebSockets / QtWebSockets QtWebKit-Bridge
- QtWebKit is designed for web clients, not web serving.
- Client only.
- Transitioned to Qt5