Software: Overview

From HiveTool
Revision as of 20:13, 28 December 2013 by Paul (talk | contribs)
Jump to: navigation, search

This project uses free open source software (FOSS). The operating system is Linux although everything should run under Windows. The Perl module GD::Graph is used to plot the data. The graphs and data are displayed with a web server, usually Apache. More detailed installation instructions are on the Forums. The code will be available at GitHub.

Linux Distributions

Linux distros that have been tested are:

  1. Debian Wheezy (Pi)
 How to load linux on the Pi
  1. Lubuntu (lightweight Ubuntu)
  2. Slackware 13.0

Reading the Sensors

Every 5 minutes cron kicks off the bash script hive.sh that reads the sensors.

Scale

For tips on serial communication with the scale see Tips:Scale Talking to the scale is straight forward. Usually send a short character string to the scale and listen for a reply. For the Adam Equipment:

echo "N\r\n" > /dev/ttyS0
read -t 1 SCALE < /dev/ttyS0 

To use the Cisco Linksys WRT160NL wireless router to talk to the My Weigh HD300 scale, first detach a process that sleeps for a second and sends a carriage return. Then read the data. The detached bit sleeps for a second, allowing the read to get latched onto the serial port, and then sends the command, which promptly returns data.

'sleep 1;echo -e "\r" > /dev/ttyUSB0' &  
read -t 3 SCALE /dev/ttyUSB0.

Temperature Sensors

TEMPered reads the RDing TEMPerHUM USB thermometer/hygrometer. Source code is at github.com/edorfaus/TEMPered Detailed instructions for installing TEMPered on the Pi.

Logging the Data

After hive.sh reads the sensors, the data is appended to a flat text log file hive.log and written in xml format to the temporary file hive.xml. cURL is used to send the xml file to a hosted web server where a perl script extracts the xml encoded data and inserts a row into the database.

Graphing the Data

GD::Graph

The Perl module GD::Graph is used to plot the data.

Displaying the Data

Apache Web Server

Audio

IceCast

ffserver