Wireless Aquarium Remote controler

I call it the Pop Aqua Computer.

Started a reef aquarium more then a year ago and it occurred to me that many things can be controlled with the help of a aquarium controller.
Soon i realized that the pricing on existing controllers out on the market where to high and that none of them where wireless.
Wanted to be able to monitor my values wherever i was spending my time in the apartment.
So the project started, it has taken some time to complete as i have not had the time to work with it non stop. Now i finally have something that i dare show you.
Notice that i have no former experience in coding software, all knowledge has been provided to me by Arduino.cc .

First picture above is the remote it self, below picture shows you the internal parts.

This is the master based on the ATMega644 as the Arduino Mega board was missing at the start date of my project and i needed the memory size.
I use a KS0108 LCD with a touch screen from the Nintendo DS and a 433Mhz RF TX/RX. It is all powered by two Sony Ericsson batteries that last at least 36 hours.

Slave 1 controlls my LED lightning by dimming the drivers as well sensing temp, ph and water level sensors. Slave 2 is as well keeping track of date and time by sending AT commands to a connnected Sony Ericsson phone. This provides me with the option of sending a warning sms when something is wrong. Phone also manages to power the arduino board for some time if power cuts down and sends me a sms that power is down.

Again communication with the Master is done by 433Mhz RF TX/RX , master is refreshed with time and measurements several times every minute.

Slave 2 is a extension cord with 10 build in relays, 433Mhz RF TX/RX and a Arduino Pro controlling it.
It simple listens to the Master and executes on/off on individual connections in it.

Why i have used RF as wireless communication is because of the pricing of Bluetooth shields and modules and it actually reaches far longer.
I can sit 2 rooms away and have a fully working communication.
Future plans are to integrate a ethernet and even make a Android app if my skills are enough...

Thanks to the creators of the libraries that have allowed me in a simple way to control parts of this build!

I like the ds screen looks like a cool controller

Thanks, touch screen was the easy part.
I used the code from a member called radiorental, post 2 in the link.
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1239612842

I purchased the touch screen from dealextreme.com for a bargain.

The interface looks really cool, very nicely done.

How do you interface the extension cord? And where do you get something like that?

Do you happen to have a link for the DX touchscreen? Their site is not that easy navigable ;).

Thanks Meinaart.

Kindly see the attached link for the touch screen from deal extreme i used: http://www.dealextreme.com/details.dx/sku.3259
But you should be able to use any touch screen that has 4 connections to it.

I am not really sure if i follow you when you ask how i interface the extension cord but let me try to explain.
It is a regular extension cord that is slightly modified as you can see in the picture :wink: .

To the right you can see the arduino Pro board and to the left the two RF RX/TX boards.
Below picture is showing the relays (blue squares) that help me to switch on and off individual extensions in the cord.

In the video i attached in my first post you will see me showing you how i turn on and off the pumps, look close at the water surface.
It is all controlled by the remote it self.

Some coding to show you how the communication is done. The coding may not be the best but it works for me.

master code

                               MillisOn = millis() + 10000;
                               while (MillisOn > millis()){
                                const char *msg = "3 ON1";
                                vw_send((uint8_t *)msg, strlen(msg));
                                vw_wait_tx();
                                if (vw_wait_rx_max(500)){
                                uint8_t buf[VW_MAX_MESSAGE_LEN];
                                uint8_t buflen = VW_MAX_MESSAGE_LEN;
                                if (vw_get_message(buf, &buflen)){
                                int i;
                                  if (buf[1] == 'N' && buf[2] == '1'){
                                    GLCD.DrawRoundRect(9, 38, 18, 18, 5, BLACK);
                                    break;
                                  }
                                 }
                                }
                               }

Slave 2 (extension code)

      if (buf[0] == '3' && buf[3] == 'N' && buf[4] == '3'){    
        MillisTime = millis() + 500;         
        while (MillisTime > millis()){        
        const char *msg = "ON3";
        vw_send((uint8_t *)msg, strlen(msg));
        vw_wait_tx();
        }
       MillisTime = 0;
       digitalWrite(Con3, HIGH);
      }

Cool! [smiley=thumbsup.gif]

Sorry for the confusion, I made the wrong assumption that the extensioncord was already a special unit that was remote controllable (with build in relays). But you did that yourself, very nice ;).

Then my explanation helped :slight_smile: .
Pictures in higher resolution are found at: http://public.fotki.com/HULK77/pop-aqua-computer/

This is incredible. Nice work especially on the GUI. Any chance you could post some code on that? ;D

Do fish happen to like blue lights, or what? :slight_smile:

What parts of the code would you like to get ?

This is a reef aquarium, to get the correct lightning you mix blue and white colors.
You can see my attempt to capture that effect in the video below.
Sadly the camera can not really mange the bright color from my Cree LED so it looks really poor but better then nothing.

I really like the look of the GUI overall, and especially the icons. I did some more youtubing and it looks like you may have derived them from previous projects you have done? Very cool.

I'm planning a very similar project to this for autonomously controlling a hydroponic garden.

You are correct dartchurro, i created the GUI for another project some time ago. Just added the touch screen to it and got a even better UI.

But this project was mainly possible due to MEM´s great KS0108 library that he has created and expanded during the years. Check the attached playground link for how to set the the lcd up.
http://www.arduino.cc/playground/Code/GLCDks0108

Icons are attached below (split in three parts), i used Font Creator 2 to create the icons and now i have a system icon font that i can use for several projects.

/*
 *
 * Icons_15
 *
 * created with FontCreator
 * written by F. Maximilian Thiele
 *
 * http://www.apetech.de/fontCreator
 * me@apetech.de
 *
 * File Name           : Icons15.h
 * Date                : 22.10.2008
 * Font size in bytes  : 21702
 * Font width          : 15
 * Font height         : 15
 * Font first char     : 32
 * Font last char      : 128
 * Font used chars     : 96
 *
 * The font data are defined as
 *
 * struct _FONT_ {
 *     uint16_t   font_Size_in_Bytes_over_all_included_Size_it_self;
 *     uint8_t    font_Width_in_Pixel_for_fixed_drawing;
 *     uint8_t    font_Height_in_Pixel_for_all_characters;
 *     unit8_t    font_First_Char;
 *     uint8_t    font_Char_Count;
 *
 *     uint8_t    font_Char_Widths[font_Last_Char - font_First_Char +1];
 *                  // for each character the separate width in pixels,
 *                  // characters < 128 have an implicit virtual right empty row
 *
 *     uint8_t    font_data[];
 *                  // bit field of all characters
 */

#include <inttypes.h>
#include <avr/pgmspace.h>

#ifndef Icons_15_H
#define Icons_15_H

#define Icons_15_WIDTH 15
#define Icons_15_HEIGHT 15

static uint8_t Icons_15[] PROGMEM = {
    0x54, 0xC6, // size
    0x0F, // width
    0x0F, // height
    0x20, // first char
    0x60, // char count
    
    // char widths
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 
    0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 

[code]

Second part

    // font data
    0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x7E, 0x3E, // 32
    0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x7E, 0x3E, // 33
    0x1E, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 34
    0x10, 0x10, 0xF0, 0x1E, 0x10, 0xF0, 0x1E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x1E, 0x02, 0x02, 0x1E, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 35
    0x18, 0x24, 0x42, 0xFF, 0x42, 0x86, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x3E, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 36
    0x3C, 0x42, 0x42, 0x3C, 0x80, 0x40, 0x30, 0x8C, 0x42, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0C, 0x02, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, // 37
    0x80, 0x5C, 0x62, 0x42, 0xA2, 0x1C, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x12, 0x0C, 0x04, 0x1A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 38
    0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 39
    0xF0, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 40
    0x02, 0x0C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 41
    0x04, 0x34, 0x0E, 0x34, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 42
    0x40, 0x40, 0x40, 0xF8, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 43
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 44
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 45
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 46
    0x00, 0xC0, 0x38, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 47
    0xFC, 0xFE, 0xFF, 0x0F, 0xF7, 0xD7, 0xB7, 0x77, 0x77, 0xF7, 0xF7, 0x0F, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xF0, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xF0, 0xFE, 0x7E, 0x3E, // 48
    0xFC, 0xFE, 0xF7, 0xE7, 0x37, 0xD7, 0x57, 0xD7, 0xD7, 0x37, 0xB7, 0xF7, 0xF7, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFC, 0xFA, 0xF6, 0xF6, 0xC6, 0xF8, 0xFA, 0xFA, 0xFE, 0x7E, 0x3E, // 49
    0xFC, 0x7E, 0x7F, 0xE7, 0x5B, 0xDB, 0x67, 0x7F, 0x43, 0xF7, 0x6F, 0xC3, 0x7F, 0x7E, 0xFC, 0x3E, 0x7E, 0xE6, 0xDA, 0xDA, 0xDA, 0xE6, 0xFE, 0xC2, 0xEA, 0xFE, 0xC2, 0xEA, 0x7E, 0x3E, // 50
    0xFC, 0xFE, 0xFF, 0x7F, 0x7F, 0x7B, 0x77, 0x2F, 0x1F, 0x8F, 0x47, 0x67, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xF0, 0xF8, 0xDC, 0xCC, 0xC0, 0xE0, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0x7A, 0x3E, // 51
    0xFC, 0xFE, 0x7F, 0x6F, 0xDF, 0xFF, 0x07, 0x0F, 0x1F, 0xFF, 0x3F, 0x3F, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xF6, 0xFA, 0xFE, 0xE0, 0xF0, 0xF8, 0xFE, 0xFC, 0xFC, 0xFE, 0x7E, 0x3E, // 52
    0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0x07, 0x0F, 0x1F, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xE0, 0xF0, 0xF8, 0xFE, 0xFC, 0xFC, 0xFE, 0xFE, 0x7E, 0x3E, // 53
    0xFC, 0xFE, 0xFF, 0x07, 0x07, 0x07, 0x07, 0x07, 0x87, 0xC7, 0x67, 0xB7, 0xDF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xE0, 0xF0, 0xD8, 0xEC, 0xF6, 0xDA, 0xEC, 0xF6, 0xDA, 0xEC, 0x7E, 0x3E, // 54
    0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xDF, 0x13, 0x13, 0x13, 0xDF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xEE, 0xE0, 0xE0, 0xE0, 0xEE, 0xFE, 0xFE, 0xFE, 0x7E, 0x3E, // 55
    0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0x0F, 0x07, 0x07, 0x07, 0x0F, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xF6, 0xF0, 0xF0, 0xE0, 0xF0, 0xF0, 0xF6, 0xFE, 0xFE, 0x7E, 0x3E, // 56
    0xFC, 0xFE, 0x0F, 0xDF, 0xBF, 0xDF, 0x0F, 0xFF, 0xFF, 0x0F, 0x6F, 0x6F, 0x9F, 0xFE, 0xFC, 0x3E, 0x7E, 0xF0, 0xFE, 0xFE, 0xFE, 0xF0, 0xFE, 0xFE, 0xF0, 0xFE, 0xFE, 0xF0, 0x7E, 0x3E, // 57
    0xFC, 0xFE, 0xFF, 0xE7, 0x67, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0x47, 0x0F, 0x1F, 0xFE, 0xFC, 0x3E, 0x7E, 0xFA, 0xF0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, 0xFC, 0x7E, 0x3E, // 58
    0xFC, 0xFE, 0x7F, 0x7F, 0xBF, 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0x7F, 0xBF, 0xDF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC, 0xFA, 0xE6, 0xF8, 0xFE, 0xFE, 0x7E, 0x3E, // 59
    0xFC, 0x0E, 0xF7, 0xFF, 0x0F, 0xF7, 0x0F, 0xFF, 0x07, 0xF7, 0x0F, 0xFF, 0x0F, 0xB6, 0xFC, 0x3E, 0x7C, 0xFA, 0xFE, 0xAC, 0xDA, 0xAC, 0xFE, 0xD8, 0xBA, 0xDC, 0xEE, 0xFC, 0x7A, 0x3E, // 60
    0xFC, 0xFE, 0x7F, 0xCF, 0x4F, 0xCF, 0x4F, 0xCF, 0x4F, 0xCF, 0x47, 0xCF, 0x5F, 0xFE, 0xFC, 0x3E, 0x7E, 0xFA, 0xF2, 0xE2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xFE, 0x7E, 0x3E, // 61
    0x08, 0x10, 0x10, 0x10, 0xA0, 0xA0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 62
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xFC, 0xAA, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 63
    0xFC, 0xFE, 0xBF, 0xFF, 0xEF, 0xCF, 0x8F, 0x8F, 0x8F, 0xCF, 0xEF, 0xFF, 0xBF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFA, 0xFC, 0xFE, 0xFE, 0xF2, 0xFE, 0xFE, 0xFC, 0xFA, 0xFE, 0x7E, 0x3E, // 64
    0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x57, 0xAF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xFE, 0xF2, 0xEC, 0xEE, 0xEC, 0xF2, 0xFE, 0xFE, 0xFE, 0x7E, 0x3E, // 65
    0xFC, 0xFE, 0x1F, 0xEF, 0xF7, 0xBB, 0xDB, 0xFB, 0xFB, 0xBB, 0xF7, 0xEF, 0x1F, 0xFE, 0xFC, 0x3E, 0x7E, 0xF8, 0xF6, 0xEE, 0xDE, 0xDE, 0xDE, 0xDA, 0xDE, 0xEE, 0xF6, 0xF8, 0x7E, 0x3E, // 66
    0xFC, 0xFE, 0x0B, 0xFF, 0xFB, 0xFB, 0x0F, 0xFB, 0x0F, 0xFB, 0xFB, 0xFF, 0x0B, 0xFE, 0xFC, 0x3E, 0x7E, 0xD8, 0xF6, 0xD6, 0xD6, 0xF8, 0xDE, 0xFC, 0xDA, 0xD6, 0xFA, 0xDC, 0x7E, 0x3E, // 67
    0xFC, 0xFE, 0xF7, 0x87, 0xF7, 0xFF, 0xCF, 0xB7, 0xCF, 0xFF, 0x87, 0xD7, 0xEF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xF2, 0xEC, 0xF2, 0xFE, 0xE0, 0xF4, 0xFE, 0xE0, 0xF4, 0xFE, 0x7E, 0x3E, // 68
    0xFC, 0xFE, 0xFF, 0xFF, 0x47, 0x97, 0x97, 0x97, 0x47, 0x7F, 0x0F, 0xDF, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xFE, 0xE0, 0xEE, 0xEE, 0xEE, 0xE0, 0xF6, 0xE0, 0xFE, 0xFE, 0x7E, 0x3E, // 69
    0xFC, 0xFE, 0xFF, 0x7F, 0xAF, 0xCF, 0x8F, 0xFF, 0xFF, 0xEF, 0xEF, 0x1F, 0xFF, 0xFE, 0xFC, 0x3E, 0x7E, 0xFE, 0xF8, 0xF6, 0xF6, 0xFE, 0xFE, 0xF0, 0xF2, 0xF4, 0xFE, 0xFE, 0x7E, 0x3E, // 70
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x76, 0x72, 0x70, 0x70, 0xF8, 0x70, 0x20, // 71
    0xFE, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 72
    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 73
    0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x10, 0x10, 0x10, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 74
    0xFE, 0x80, 0x40, 0x20, 0x50, 0x88, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 75
    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 76
    0xFE, 0x0C, 0x70, 0x80, 0x00, 0x80, 0x70, 0x0C, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x06, 0x18, 0x06, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 77
    0xFE, 0x04, 0x18, 0x60, 0x80, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x06, 0x08, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 78
    0xF0, 0x0C, 0x04, 0x02, 0x02, 0x02, 0x02, 0x04, 0x0C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0C, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0C, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, // 79
    0xFE, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 80

Third part

    0xF0, 0x0C, 0x04, 0x02, 0x02, 0x02, 0x02, 0x04, 0x0C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0C, 0x08, 0x10, 0x10, 0x14, 0x1C, 0x08, 0x0C, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, // 81
    0xFE, 0x42, 0x42, 0x42, 0x42, 0xC2, 0x42, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 82
    0x18, 0x24, 0x22, 0x22, 0x42, 0x42, 0x44, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 83
    0x02, 0x02, 0x02, 0x02, 0xFE, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 84
    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x10, 0x10, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 85
    0x06, 0x18, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 86
    0x06, 0x78, 0x80, 0x00, 0x00, 0xE0, 0x1C, 0x02, 0x1C, 0xE0, 0x00, 0x00, 0x80, 0x78, 0x06, 0x00, 0x00, 0x06, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x06, 0x00, 0x00, // 87
    0x02, 0x0C, 0x10, 0xA0, 0x40, 0xA0, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x06, 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 88
    0x02, 0x04, 0x18, 0x20, 0xC0, 0x20, 0x18, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 89
    0x00, 0x02, 0x02, 0xC2, 0x22, 0x1A, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x16, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 90
    0xFE, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 91
    0x06, 0x38, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 92
    0x02, 0x02, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 93
    0x60, 0x1C, 0x02, 0x1C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 94
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 95
    0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 96
    0x20, 0x10, 0x90, 0x90, 0x90, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x12, 0x10, 0x10, 0x08, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 97
    0xFE, 0x20, 0x10, 0x10, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x08, 0x10, 0x10, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 98
    0xE0, 0x10, 0x10, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 99
    0xE0, 0x10, 0x10, 0x10, 0x20, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x08, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 100
    0xE0, 0x90, 0x90, 0x90, 0x90, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 101
    0x10, 0xFC, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 102
    0xE0, 0x10, 0x10, 0x10, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x90, 0x90, 0x90, 0x88, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 103
    0xFE, 0x20, 0x10, 0x10, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 104
    0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 105
    0x00, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 106
    0xFE, 0x00, 0x80, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x02, 0x00, 0x02, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 107
    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 108
    0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 109
    0xF0, 0x20, 0x10, 0x10, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 110
    0xE0, 0x10, 0x10, 0x10, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 111
    0xF0, 0x20, 0x10, 0x10, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x08, 0x10, 0x10, 0x10, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 112
    0xE0, 0x10, 0x10, 0x10, 0x20, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x08, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 113
    0xF0, 0x20, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 114
    0x60, 0x90, 0x90, 0x10, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x10, 0x12, 0x12, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 115
    0x10, 0xFC, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 116
    0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x08, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 117
    0x30, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 118
    0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 119
    0x10, 0x20, 0x40, 0x80, 0x40, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 120
    0x30, 0xC0, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8E, 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 121
    0x10, 0x10, 0x10, 0xD0, 0x30, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x16, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 122
    0x00, 0x00, 0xFC, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x7C, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 123
    0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 124
    0x02, 0x02, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x7C, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 125
    0x80, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 126
    0xF8, 0x08, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 127
    
};

#endif

Awesome, thank you very much :slight_smile:

Privet!! Ty sluchaino ne russkiy?

Sorry, i am not Russian.

No Russkiy ty chitaesh?

i have an aquaium and would love to create something simliar would you be able to offer and schematics or guidance on this i have create a couple of arduino devices myself to got a good idea how to do most things

loneranger, schematics are all in my mind but i will gladley give you guidance and a helping hand.
First you need to learn how to control a graphical KS0108 LCD, MEM from the forum has created a great library. In the playground you can find details about how to connect and get started on the KS0108. Read and learn how to use it.
I recommend that you buy a KS0108 LCD that is proven to work already according to the playground.

To get a KS0108 to run you will need to connect several pins to the arduino board, therefore i suggest to get the Arduino Mega. It has a slim design and even more ports and memory then my set up based on a ATMega 644.

Check out the link previously about the touch screen and order one from deal extreme or maybe you can extract one from a old phone or other device that is scrapped. Create a on/off menu with icons to prepare for next steps.

Next step is to get your communication working, seeedstudio has a great price on RF 433Mhz :
http://www.seeedstudio.com/depot/433mhz-rf-link-kit-p-127.html?cPath=2&zenid=5af1418f8ac6f7567d9ac4232984fc83
This is the part that may get tricky but if you look at the Virtuaed Wire library documentation you will find that all there is also presented in a user friendly way : http://www.open.com.au/mikem/arduino/VirtualWire.pdf

Set up a slave arduino with a tx/rx RF and use your touch and KS0108 to switch on/off a led.

Then the rest should be a matter of time and patience or ask for help and i will support.
Did this get you started?