Introduction: Hottub / Pool Controller Web Interface
The ulimate webbased hottub / pool controller.
Temp. download link:
Code Only:
https://www.dropbox.com/scl/fi/ezzbt6mmu8m43g3o79mi8/controller_image_v1.1.rar?rlkey=4i1x02oqy5x8yoj29spfmhqw3&dl=0
Image OS:
https://www.dropbox.com/scl/fi/9dejxrqdpnrvac4xa43bp/controller_v1.1.rar?rlkey=her8mctom2brqftt3kmpej3tu&dl=0
Step 1: Step 1: Intro
About 2 years ago i bought myself a raspberry pi and just playing around with it.. After a while i decided to make something useful instead of playing around with it.. So i decided to make a hottub controller with it. I'am running the controller over a year now and decided to share it with you :)
For all the functions see:
So in this tutorial we will see how to make a hottob / pool controller.
The controller is written in PHP with GPIO control
The following packages should be installed.
- Apache 2
- PHP5
- MySQL Database
- PhpMyAdmin
- GPIO Control
In case you don't want to install everything. You can download and install my Image / OS.
You can download my raspbian image HERE
--> Automatic Control does not work in the ready to use image. Please download files in the link below. Working on a new ready to use image.
Version 1.1 is available -> installed on raspbian jessie lite and updated a few bugs.
Download the image 1.1 HERE
Needed Hardware:
- Raspberry PI
- SD card ( 8 GB )
- 5V 4 Channel Relay Module ( or 8 channel is you wish )
- DS18B20 Temperature Sensors - Waterproof.
- Jumper Wires.
Step 2: STEP 2: Hardware Setup
Connect the DS18B20 sensors
Red Wire --> To 3.3v
Black Wire--> GND
Grew Wire (Data) --> GPIO pin 4
Also see Attachment
Contact the relai block as follow:
5v to 5v
GND to GND
See Attachment PDF for the right pin no. (or board overview, blue circles)
Pin 1 (relay) to WiringPi Pin 8
Pin 2 (relay) to WiringPi Pin 9
Pin 3 (relay) to WiringPi Pin 2
Pin 4 (relay) to WiringPi Pin 3
Be Aware ! The relay can switch a maximum of 10A
Attachments
Step 3: Steps 3: Installing OS
First we will install a new fresh image of raspian.
I installed RASPBIAN JESSIE LITE, because we don't need all other stuff like desktop environment. But all other Raspian versions should be fine as well.
Flash your selected image with Win32DiskManager to the SD Card
Step 4: STEP 4: Install Packages
Download the program "putty" and "advanced port scanner" (both free software).
Scan with "advanced port scanner" and find your raspberry pi IP adress.
Go to Putty insert the IP of the raspberry and login with user "Pi" and password "raspberry".
First we need to expend filesysteem
Type:
sudo raspi-config
Select expend file system en finish installation. The raspberry will restart now.
Wait a minute and connect again with putty to the raspberry and login.
Second we will update the PI
Type:
sudo apt-get update
Then:
sudo apt-get upgrade
Type "Y" to update (and upgrade the pi as necessary)
Install Apache2 with the following command:
sudo apt-get install apache2
Install PHP5
sudo apt-get install php5 libapache2-mod-php5 -y
Install MySQL
sudo apt-get install mysql-server
During installing mysql-server will ask for a password. This is to connect to the mysql server.. choose a password anything you like.. But don't forget this password. Write it down somewhere!! ( i choose "raspberry" )
Install PhpMyAdmin
sudo apt-get install phpmyadmin
Configure Apache to work with PhpMyAdmin
sudo nano /etc/apache2/apache2.conf
Add the following line at the end of apache2.conf:
Include /etc/phpmyadmin/apache.conf
Control + X to save, type "Y" to overwrite.
Also See: http://raspipress.com/2012/09/tutorial-install-ph...
Install GPIO
sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build
To get the DS18B20 sensors working use the follow commands:
Type:
sudo nano /boot/config.txt
Add the following line
dtoverlay=w1-gpio
Control + X to save, type "Y" to overwrite.
sudo nano /etc/modules
Add these 2 lines at the and:
w1-gpio
w1-therm
Control + X to save, type "Y" to overwrite.
run the gpio command to check the installation:
gpio -v
gpio readall
----------
Yeah finally all packages installed :)
Step 5: Step 5: Setting Up Scripts...
Before we can upload the files to the raspberry we need to change a few settings
Add the pi user to the group
type: sudo gpasswd -a pi www-data
Change the group for the directory and allow the pi user to update the directory
type: sudo chown www-data:www-data /var/www
type: sudo chmod 775 /var/www
I've you have downloaded debian jessie you need to change the root directory of apache.
type: sudo nano /etc/apache2/sites-available/000-default.conf
Change /var/www/html to /var/www CTRL + X to save "Y" to overwrite.
To have access to control GPIO pins with a webpage.
Type: sudo visudo
Add this line to the end of the file:
www-data ALL=(ALL) NOPASSWD: ALL
Press CTRL + X to save and exit.
Download all the files from here
Download the program Filezilla Client (or other FTP program )
Connect to you're raspberry pi with following details:
SFTP://IpOfYourPi ( port 22 )
User: pi
Password: raspberry
Upload the files to /var/www ( - Just type /var/www in the right screen. )
In case you have another mysql password then "raspberry" you need to change to php configuration of the controller:
Edit the config.php file.
Change mysql_pass to the right password you have set during mysql-server installation.
Next step is to import the SQL file in the database.
Go to http://IP-Raspberry/phpmyadmin
Login with root and you're password (raspberry default)
Add a database with the name "controller"
Click on controller in the left area of the page and then click Import.
Select controller.sql from all controller files and upload by pressing start.
Setting up Cronjobs
type: crontab -e
Add this text to the end of the file.
* * * * * wget -q -O - "http://127.0.0.1/cron_jobs/cron_min.php?auth=Gdw34zXrFHYDe" 1,11,21,31,41,51 * * * * wget -q -O - "http://127.0.0.1/cron_jobs/cron_10minutes.php?auth=Gdw34zXrFHYDe"
CTRL + X to save. Done !
Step 6: Step 6: Controller Page
Go to: http://raspberryIP
Welcome to the login screen :)..
Login with username: admin password: 123456
There is also a tablet page. special writtin for my tablet :).
See http://raspberryIP/tablet