XXX: Load Hivetool on the Pi

From HiveTool
Revision as of 09:32, 29 December 2013 by Paul (talk | contribs) (Misc)
Jump to: navigation, search

Get the latest operating system image

Raspbian Wheezy is currently used, although others should work.

The latest image available from http://www.raspberrypi.org/downloads is: 2013-12-20-wheezy-raspbian.zip

  1. Download the zipped image (approximately 500 MB)
  2. Calculate the SHA-1 checksum. On Unix/Linux, the command line is:
    sha1sum 2012-12-16-wheezy-raspbian.zip
    This will print out a long hex number which should match the "SHA-1 Checksum" line for the SD image you have downloaded
  3. Extract the image, with
    unzip 2012-12-20-wheezy-raspbian.zip

Copy the image to the SD card

Make SD card on Unix/Linux system

Detailed instructions: http://elinux.org/RPi_Easy_SD_Card_Setup#Flashing_the_SD_Card_using_Linux_.28including_on_a_Pi.21.29

  1. Determine the device for the card reader (/dev/mmcblk0 on my laptop).
  2. Copy the image to the SD card:
    dd bs=4M if=2013-05-25-wheezy-raspbian.img of=/dev/mmcblk0

Make SD card on Windows system

raspberrypi.org recommends using: http://sourceforge.net/projects/win32diskimager/ But be careful. REMOVE any other USB memory devices from your computer. Detailed instructions: http://elinux.org/RPi_Easy_SD_Card_Setup#Flashing_the_SD_Card_using_Windows

Boot Pi, expand file system, set timezone and hostname

  1. Boot Pi and login
  2. Expand file system, set timezone and hostname
    sudo raspi-config
    (need details of menu options)

Install required packages

  1. Update before trying to add packages
    sudo apt-get update
  2. Get gawk, bc for shell scripts, apache for webserver, and libusb to read TEMPerHUMs.
    sudo apt-get install gawk bc apache2
    sudo apt-get libusb-dev
  3. Get the graphics library
    sudo apt-get -y install libgd2-xpm-dev build-essential
  4. Now get Graphics for perl. Force the install.
    sudo cpan -f GD
    sudo cpan GD::Text GD::Graph Date::Format
  5. Make hivetool and htdocs directories.
    sudo mkdir /home/hivetool
    sudo mkdir /var/www/htdocs
  6. Copy the patched pm
    NOTE: These last two steps need to be changed to get the code from GitHub
    sudo scp -P8022 paul@192.168.254.31:/usr/local/share/perl/5.14.2/GD/Graph/axestype.pm /usr/local/share/perl/5.14.2/GD/Graph/axestype.pm
  7. Copy the hivetool files"
    scp -P8022 pi@192.168.254.31:/home/hivetool/* /home/hivetool
    sudo scp -P8022 pi@192.168.254.31:/var/www/htdocs/* /var/www/htdocs

Done installing hivetool files

Set the ethernet parameters and DNS servers

Note: A static IP is only needed for port forwarding through the firewall. If you do not intend to open a hole in the firewall to allow public access to the web server, skip this step and let the Pi obtain an IP from the DHCP server in the router.

  1. set static ip for port forwarding
    sudo vi /etc/network/interfaces:
    iface eth0 inet dhcp
    iface eth0 inet static
    address 192.168.254.31
    netmask 255.255.255.0
    gateway 192.168.254.254
  2. Set the dns Servers
    /etc/network/interfaces
    /etc/dhcp/dhclient.conf

Configure apache

  1. set up apache
    sudo vi /etc/apache2/ports.conf
  2. Listen 8080
  3. add .pl to AddHandler cgi-script
  4. sudo vi /etc/apache2/mods-enabled/mime.conf
  5. AddHandler cgi-script .cgi .pl
  6. add Includes to Options:
  7. sudo vi /etc/apache2/sites-enabled/000-default
  8. Add index.shtml:
  9. sudo vi /etc/apache2/mods-enabled/dir.conf
  10. sudo cp /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/

Misc

If the hostname was not set above using raspi-config, set the hostname:

  1. Set the local host name
    sudo vi /etc/hostname
  2. and edit the local host name here, too:
    sudo vi /etc/hosts

Install the TEMPerHUM software

Install the binaries: http://hivetool.net/node/64
or
Install from source: http://hivetool.net/node/59

Edit the cron table

The scripts that read the sensors, log the data, and send it off site (if enabled) are run periodically by the scheduler, cron. Cron setup is done with crontab. For cron setup and examples, see Sample contab entries

Cron