GNUPott

Author: Guido Pannenbecker
License: GPL
The license document is also included in the downloadable package.
Download: Filename: GNUPott.tar.gz
Filesize: 150 KB
Download GNUPott
Description: GNUPott continuously observes the lighting situation in a certain room or place using a small photo diode. We actually use it to check whether light is on or off in both men´s and ladies´ room with one photo diode per room, but the technology itself can of course be used for a wide range of different purposes. The diode status information can be requested of the electronic circuit using USB technology.

In our case, a server connected with this USB device automatically checks the status every 15 seconds and provides an image depending on the result per HTTP. Consequently, anyone can easily watch the toilet status image over a specific URL, whenever this might be necessary. The image we used to display that can be seen below.

Additionally, GNUPott writes the current status in a text file to enable FirePott to read and handle it (more information about FirePott can be found on the respective project page).
Documentation: You will find three directories within the attached .tar.gz file:
/firmware
/circuit
/commandline

The firmware is running on an Atmel Atmega8 processor and uses the V-USB library. It is mainly based on the PowerSwitch software and partly custumized for our needs. While not required for our purpose, the LEDs are in use for debug reasons only. For more information regarding these soft- and hardware components please check out the respective webpages and documentation files there.

Except of the USB part, which was taken from obdev´s suggestion files, the circuit is self designed and visualized with KiCad (these CAD files are of course included in the downloadable package).

The host software finally is also adopted from PowerSwitch. An additional, self-written bash script calls this host application every 15 seconds and ensures the image and text file mentioned above are always available. The necessary webserver for the HTTP requests does not require any special configuration. In our case, we used an already running webserver for this task, which actually simplified and accelerated the setup.
Screenshots, diagrams and schemata:
GNUPott Photography #1 GNUPott Photography #2
GNUPott Photography #3
Circuit
Circuit Diagram - Click to enlarge
GNUPott status image