Difference between revisions of "Create SD Image Version 0.71"

From HiveTool
Jump to: navigation, search
(Set sudo user privileges for Apache)
Line 95: Line 95:
  
 
===Set sudo user privileges for Apache===
 
===Set sudo user privileges for Apache===
This is necessary to allow config.pl to read the sensors.
+
This is necessary to allow config.pl to read the sensors. Run visudo to edit the sudo config file:
  
 
  sudo visudo
 
  sudo visudo
Line 102: Line 102:
  
 
  www-data ALL=NOPASSWD: /usr/local/bin/2591, /usr/bin/nice, /home/hivetool/temperhum.sh, /usr/local/bin/hx711, /usr/local/bin/Seeed_DHT22
 
  www-data ALL=NOPASSWD: /usr/local/bin/2591, /usr/bin/nice, /home/hivetool/temperhum.sh, /usr/local/bin/hx711, /usr/local/bin/Seeed_DHT22
 
  
 
===Create SQLite database===
 
===Create SQLite database===

Revision as of 04:01, 29 May 2015

Feature Request

  1. Most recent raspbian distro
  2. Removal of bloatware from Raspbian (games, educational, etc.)
  3. Hivetool Support Pi & Pi2 (auto detect preferred)
  4. Automatic removal of erroneous data from sensors
  5. Basic navigation from webserver index.html, especially config.pl and Hivestats with download.
  6. Menu driven selection & configuration of sensors (gpio 2,3 for DHT22s preassigned by menu default)
  7. Menu driven setup of essential parameters with choices that don't crash app when saving, grey out unused.
  8. Sensor calibration provisions (gain, offset)
  9. Display instantaneous sensor readings from config screen with read button
  10. Preload & configure Apache Webserver and database, Hivetool, sensor drivers for proven sensors.
  11. Update local & online hivestats graphs to display lux trend pen, (use latest hivestats with enhanced autoscaling for local)
  12. Network / wifi support out of the box seems to work well now, handle configuration on router side with DHCP reservation as may be needed.
  13. Add configuration menu item for naming pi, same as hivestats name?
  14. Minimize need to enter Raspiconfig, can timezone and time all be handled in hivetool config?
  15. Enable i2c & serial.

Bug Fixes

  1. Add timeout to crontab so hive.sh can't hang.
  2. Fix HX711 code addressing and timing to work on Pi2.
  3. Fix tempered code to work with new TEMPerHUMs.
  4. Improve Wi-Fi auto reconnect.

Create new image

Get latest Wheezy image

  1. Download, unzip, burn image.
  2. Boot
  3. DO NOT EXPAND file syatem!

Set up Wi-Fi

Add to /etc/wpa_supplicant/wpa_supplicant.conf:

network={                                                                                                                                                                           
       ssid="dlink"                                                                                                                                                                
       key_mgmt=NONE                                                                                                                                                               
       auth_alg=OPEN                                                                                                                                                               
}                                                                                                                                                                                   


Wi-Fi auto reconnect to AP

  1. Go to /etc/ifplugd/action.d/ and rename the ifupdown file to ifupdown.original
  2. Then do:
cp /etc/wpa_supplicant/ifupdown.sh ./ifupdown

http://raspberrypi.stackexchange.com/questions/4120/how-to-automatically-reconnect-wifi

Remove packages we don't need

This will make room for software without expanding the image.

sudo apt-get remove --purge wolfram-engine penguinspuzzle scratch dillo squeak-vm squeak-plugins-scratch sonic-pi idle idle3 netsurf-gtk netsurf-common
sudo apt-get autoremove
sudo apt-get clean
rm -rf /home/pi/python_games
sudo rm -rf /opt/vc

https://project.altservice.com/issues/418

Install packages we need

sudo apt-get -y update
sudo apt-get -y install gawk bc apache2 libusb-dev libgd-graph-perl libexpat1-dev sqlite3
sudo cpan GD::Text GD::Graph Date::Format XML::Simple DBI DBD::SQLite

Configure apache

  1. Set up apache to listen on port 8080 if using port forwarding:
    sudo vi /etc/apache2/ports.conf
    add Listen 8080
  2. Add .pl to AddHandler cgi-script
    sudo vi /etc/apache2/mods-enabled/mime.conf
    uncomment #AddHandler cgi-script .cgi (around line 219) and add .pl so it looks like:
    AddHandler cgi-script .cgi .pl
  3. add Includes and +ExecCGI to Options:
    sudo vi /etc/apache2/sites-enabled/000-default
    In stanza <Directory /var/www/>
    change
    Options Indexes FollowSymLinks MultiViews
    to
    Options Indexes FollowSymLinks MultiViews Includes +ExecCGI
  4. Add index.shtml to DirectoryIndex:
    sudo vi /etc/apache2/mods-enabled/dir.conf
    Change
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
    to
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm index.shtml
  5. Copy the include.load module to enable it
    sudo cp /etc/apache2/mods-available/include.load /etc/apache2/mods-enabled/
  6. Restart Apache
sudo apachectl restart   or      sudo/etc/rc4.d/S02apache2 restart

Set sudo user privileges for Apache

This is necessary to allow config.pl to read the sensors. Run visudo to edit the sudo config file:

sudo visudo

and insert this line in the "User privilege specification" section:

www-data ALL=NOPASSWD: /usr/local/bin/2591, /usr/bin/nice, /home/hivetool/temperhum.sh, /usr/local/bin/hx711, /usr/local/bin/Seeed_DHT22

Create SQLite database

cd /home/hivetool
sqlite3 hivetool_raw.db
sqlite> .read create_hivetool_sqlite.sql
sqlite> .quit

Install TEMPerHUM software

sudo apt-get update
sudo apt-get install dh-autoreconf
sudo apt-get install libudev-dev
sudo git clone git://github.com/signal11/hidapi
cd hidapi
sudo ./bootstrap
sudo ./configure
sudo make
sudo make install
sudo apt-get install cmake-curses-gui
cd ..
sudo git clone git://github.com/edorfaus/TEMPered
cd TEMPered
sudo ccmake .

Then the sub commands: "c" to configure then "g" to save and go

sudo make

Install Broadcom 2835 Library

Install bcm2835 library http://www.airspayce.com/mikem/bcm2835/

Install wiringPi library

  1. add i2c-dev to /etc/modules (?)
  2. Install i2c tools
    apt-get install i2c-tools</nowiki>
  3. run raspi-config and turn on i2c or in /etc/modprobe.d/raspi-blacklist.conf comment out:
    blacklist i2c-bcm2708 (?)
  4. reboot or run:
    modprobe -a i2c-bcm2708
  5. Install git
    sudo apt-get install git-core
  6. get wiringPi code from github and compile it
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

http://wiringpi.com/download-and-install/wiringPi

DHT22 Temperature/Humidity Sensor

Groove Seeed - DHT22 with modified code

HX711 weight ADC

hx711wp

TLS2591 Lux Sensor

2591 Adafruit with modified code.

Add crontab entries

Edit crontab:

sudo crontab -e

Add to crontab:

# Check hive instruments every 5 minutes. Kill process after 3 1/2 minutes.
0,5,10,15,20,25,30,35,40,45,50,55 * * * * timeout -s KILL 3.5m /home/hivetool/hive.sh
#
# Check the server status. Kill process after 1 minute.
0,5,10,15,20,25,30,35,40,45,50,55 * * * * timeout -s KILL 1m /home/hivetool/server_status.sh > /var/www/server_status.txt