Software: Overview
This project uses free open source software (FOSS). The operating system is Linux, which usually includes Apache Web Server and Perl. The graphs are generated with the Perl module GD::Graph. It should run under Windows. More detailed installation instructions are on the Forums. The code will be available at GitHub.
Contents
Linux Distributions
Linux distros that have been tested are:
- Debian Wheezy
- Lubuntu (lightweight Ubuntu)
- Slackware 13.0
Reading the Sensors
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 "G\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
Logging the Data
Every 5 minutes cron kicks off a bash script that reads the sensors. The data is appended to a flat text log file (/home/hivetool/hive.log) and written to a temporary file in xml format (/tmp/hive.xml). cURL is used to send the xml file to a hosted web server where a row is inserted into a database.