Has anyone created a full Raspberry Pi Aquarium monitoring/control system?

MartinH

New Member
View Badges
Joined
Mar 14, 2017
Messages
4
Reaction score
2
@Rob Lion
Thanks, this thing with virtual here is running since about 2 weeks.
But the Problem is, the data are only available on the PC...
OK, Wine... I think I have to do some trials...
what do you mean with extragear?

greetings, Martin
 
OP
Rob Lion

Rob Lion

Active Member
View Badges
Joined
Apr 8, 2016
Messages
305
Reaction score
507
Location
UK
@Rob Lion
Thanks, this thing with virtual here is running since about 2 weeks.
But the Problem is, the data are only available on the PC...
OK, Wine... I think I have to do some trials...
what do you mean with extragear?

greetings, Martin
Martin, here is a link to it.... it is a paid for app, but i think you can find freebie similar app too.

https://eltechs.com/run-wine-on-raspberry-pi/

i've never tried windows IOT 10 , but they may be another route, not sure on windows app incompatibilities with it, i will probably look at it some time in the future.
 

MartinH

New Member
View Badges
Joined
Mar 14, 2017
Messages
4
Reaction score
2
Hi @Rob Lion
ahm, the thing is, I don't understand, if or how I could read out the data direcf from the USB stick.
What I understand is, from the Seneye website is, that via API you can collect the data from the cloud, or from the seneye Webserver, but not direct from the USB stick.
is this corrrect?

At the moment I got an old windows Tablet where I can install and connect the seney, and use them for "visualization".
So, half of the problem is solved.
the other half is, how can I receive the pH data on my Pi...... The Data in the cloud are not actuall.....

Thanks
 
OP
Rob Lion

Rob Lion

Active Member
View Badges
Joined
Apr 8, 2016
Messages
305
Reaction score
507
Location
UK
ok, so there are a few parts to all this, depending what you want.

by far the easiest is to make calls to read your seneye data from the seneye api site https://api.seneye.com/
but this will read the last updated info to the cloud, so it's potentially 20 mins old, but ofcourse your seneye will need to be plugged into a PC with internet connection.

This is easy to do, here is the python code>

def read_Sensors(self):
# Read seneye sensors
#download the data:
file = urlopen('https://api.seneye.com/v1/devices/<<<YOUR SENEYE ID>>>?IncludeState=1&user=<<<YOUR LOGIN NAME>>>&pwd=<<<YOUR LOGIN PASSWORD>>>')
#read file:
data = file.read()
#close file because we dont need it anymore:
file.close()
#convert binary data to text string
response = data.decode()
#split the text into an array split on comma
text = response.split(',')
#select the CURRENT values needed and set as variables
slide_id = text[0]
description = text[1]
device_type = text[2]
time_diff = text[3]
disconnected = text[4]
slide_serial = text[5]
slide_expires = text[6]
out_of_water = text[7]
wrong_slide = text[8]
last_experiment = text[9]
temperature_c = text[14]
ph = text[20]
nh3 = text[26]
nh4 = text[32]
o2 = text[38]
lux = text[41]
par = text[43]
kelvin = text[45]

#slide_id - strip off extra characters not needed
slide_id = slide_id.replace('"','')
slide_id = slide_id.replace('{id:','')
if self.debug_app_cbox.isChecked(): print ("slide_id =",slide_id)

#description - strip off extra characters not needed
description = description.replace('"','')
description = description.replace('description:','')
if self.debug_app_cbox.isChecked(): print ("description =",description)

#device_type - strip off extra characters not needed
device_type = device_type.replace('"','')
device_type = device_type.replace('type:','')
if self.debug_app_cbox.isChecked(): print ("device_type =",device_type)

#time_diff - strip off extra characters not needed
time_diff = time_diff.replace('"','')
time_diff = time_diff.replace('time_diff:','')
if self.debug_app_cbox.isChecked(): print ("time_diff =",time_diff)

#disconnected - strip off extra characters not needed
disconnected = disconnected.replace('"','')
disconnected = disconnected.replace('status:{disconnected:','')
if self.debug_app_cbox.isChecked(): print ("disconnected =",disconnected)

#slide_serial - strip off extra characters not needed
slide_serial = slide_serial.replace('"','')
slide_serial = slide_serial.replace('slide_serial:','')
if self.debug_app_cbox.isChecked(): print ("slide_serial =",slide_serial)

#nh3 - strip off extra characters not needed
slide_expires = slide_expires.replace('"','')
slide_expires = slide_expires.replace('slide_expires:','')
slide_expires = (dt.datetime.fromtimestamp(float(slide_expires)))
slide_expires = str(slide_expires)
if self.debug_app_cbox.isChecked(): print ("slide_expires =",slide_expires)

#out_of_water - strip off extra characters not needed
out_of_water = out_of_water.replace('"','')
out_of_water = out_of_water.replace('out_of_water:','')
if out_of_water == '0':
out_of_water = 'In Water'
else:
out_of_water = 'Out of Water'
if self.debug_app_cbox.isChecked(): print ("out_of_water =",out_of_water)

#wrong_slide - strip off extra characters not needed
wrong_slide = wrong_slide.replace('"','')
wrong_slide = wrong_slide.replace('wrong_slide:','')
if self.debug_app_cbox.isChecked(): print ("wrong_slide =",wrong_slide)

#last_experiment - strip off extra characters not needed
last_experiment = last_experiment.replace('"','')
last_experiment = last_experiment.replace('last_experiment:','')
last_experiment = last_experiment.replace('}','')
last_experiment = (dt.datetime.fromtimestamp(float(last_experiment)))
last_experiment = str(last_experiment)
if self.debug_app_cbox.isChecked(): print ("last_experiment =",last_experiment)

#temperature - strip off extra characters not needed
temperature_c = temperature_c.replace('"','')
temperature_c = temperature_c.replace('curr:','')
temperature_f = (float(temperature_c) * (9/5) + 32)
temperature_f = round(temperature_f,1)
temperature_f = str(temperature_f)
if self.debug_app_cbox.isChecked(): print ("temp C =",temperature_c)
if self.debug_app_cbox.isChecked(): print ("temp F =",temperature_f)

#ph - strip off extra characters not needed
ph = ph.replace('"','')
ph = ph.replace('curr:','')
if self.debug_app_cbox.isChecked(): print ("pH =",ph)

#nh3 - strip off extra characters not needed
nh3 = nh3.replace('"','')
nh3 = nh3.replace('curr:','')
if self.debug_app_cbox.isChecked(): print ("Ammonia =",nh3)

#nh4 - strip off extra characters not needed
nh4 = nh4.replace('"','')
nh4 = nh4.replace('curr:','')
if self.debug_app_cbox.isChecked(): print ("Ammonium =",nh4)

#o2 - strip off extra characters not needed
o2 = o2.replace('"','')
o2 = o2.replace('curr:','')
if self.debug_app_cbox.isChecked(): print ("Oxygen =",o2)

#lux - strip off extra characters not needed
lux = lux.replace('"','')
lux = lux.replace('curr:','')
if self.debug_app_cbox.isChecked(): print ("Lux =",lux)

#par - strip off extra characters not needed
par = par.replace('"','')
par = par.replace('par:{curr:','')
if self.debug_app_cbox.isChecked(): print ("Par =",par)

#kelvin - strip off extra characters not needed
kelvin = kelvin.replace('"','')
kelvin = kelvin.replace('kelvin:{curr:','')
if self.debug_app_cbox.isChecked(): print ("Kelvin =",kelvin)

The next option is to read the seneye device directly, and to do that you need to run the seneye SWS software on the seneye web server, but this costs about £160 to have. Then you don't need a PC.

I think what you want is to have the seneye server app running on the Pi itself, and not on a PC, and for that you have 3 options;
1. use something like Wine and extra gear to run the seneye SCA app on the pi, this was quite easy to do.
2. or run the seneye SWS web server software on the pi, but you would probably need to pay for the SWS software.
3. buy something like a belkin wireless or wired router (about £35) and connect the seneye device to it and have that send its data to the cloud. this is the easy way to not need a PC but you will then have to read data from the cloud to see it.


since using v2 of the SCA, seneye have stopped temp and ph readings being updated once the slide has expired, they used to still work without a slide on V1, only NH3 was actually needed from the slide. So since then I have moved away from the seneye device on the main display, and just run it in my QT as and when needed.
 
OP
Rob Lion

Rob Lion

Active Member
View Badges
Joined
Apr 8, 2016
Messages
305
Reaction score
507
Location
UK
Don't forget, if you want to do it all yourself, you can learn a bit of C+ and use the following ;)

SUD Driver

https://github.com/seneye/SUDDriver provides details and source-code for how to speak directly to the seneye device. This allows you to write a program that can be used on a variety of platforms that can take the readings for pH, NH3, temperature etc. directly from the seneye device. For example, some people have used this as a basis to write a program that allows a Raspberry Pi to read the data from the seneye device and write it to a database.
 
Best reef aquarium LED lighting

1987

Member
View Badges
Joined
Aug 5, 2015
Messages
31
Reaction score
17
not sure what you are trying to say with typing just that, but sadly the reef pi developers split up before completing the project over 2 years ago and little if any development has been done since then...

here is their web site for others to see http://www.reefpi.net/smf/
Sorry I was on my phone, and it's hard to type out a full response sometimes.
 

Ranjib

Valuable Member
View Badges
Joined
Apr 16, 2016
Messages
7,719
Reaction score
13,866
Location
Palo Alto, Bay Area
Super excited to see this one.
I am also building a Pi based controller. Please keep us posted on the seneye integration
 
Corals.com

Joseph Martine

Member
View Badges
Joined
Dec 26, 2017
Messages
8
Reaction score
20
If you havent looked at NodeRed on RPI, then you are really missing the boat. Been working on a system in my occasional off hrs and am fully on-line now. LED lights tracked across a parabola during day, dosing, temp, Automatic Topoff, Auto water change, ph, ec, plus others
 

Ranjib

Valuable Member
View Badges
Joined
Apr 16, 2016
Messages
7,719
Reaction score
13,866
Location
Palo Alto, Bay Area
If you havent looked at NodeRed on RPI, then you are really missing the boat. Been working on a system in my occasional off hrs and am fully on-line now. LED lights tracked across a parabola during day, dosing, temp, Automatic Topoff, Auto water change, ph, ec, plus others
Do you have the code available, we can take a look.
 

Ranjib

Valuable Member
View Badges
Joined
Apr 16, 2016
Messages
7,719
Reaction score
13,866
Location
Palo Alto, Bay Area
Interesting time ahead :). I just finished reef-pi 1.0 all in one build, can't wait to see what other vendors offer in 2018

Dashboard
Screen Shot 2017-12-26 at 6.51.37 PM.png


Main unit
BFDED057-C480-471B-8E3F-A92B425FC88F.jpeg


Wall mounted
83318C49-7A81-4B80-9428-53AF2F43A3EB.jpeg
 

njtiger aquariums

Active Member
View Badges
Joined
Oct 9, 2015
Messages
497
Reaction score
500
Location
NJ
I been following along with @Ranjib and his has come along very nicely. This it my build, which still needs a lot of work. Yes I know the touch screen is broken, that was done when something fell on it when I had it in it's old setup lol

IMG_20171126_175245.jpg
IMG_20171126_175252.jpg
IMG_20171127_122528.jpg
Screen Shot 2017-12-27 at 8.49.18 AM.png
 

Ranjib

Valuable Member
View Badges
Joined
Apr 16, 2016
Messages
7,719
Reaction score
13,866
Location
Palo Alto, Bay Area
I’ve been wanting to do a build like this with my kids.
You should totally do it :) . Its easy, very rewarding and good for STEM education. Forget the whole controller, I was so stoked to see the first time I was able to blink an LED :) . And fact is controlling an equipment/relay is exactly same as blinking an LED. Adafruit has lots of useful tutorials for beginners and you can learn piece by piece.
Let us know if we can be of any help
 

Ranjib

Valuable Member
View Badges
Joined
Apr 16, 2016
Messages
7,719
Reaction score
13,866
Location
Palo Alto, Bay Area
20170804_143432.jpg



I'm finishing the software up on my version now.
Wow :) .
You have designed that PCB by yourself? or is it something off the shelf ?
I am planning to get reef-pi's circuit converted into a PCB from oshpark, once some of the slated features of 2.0 is finished.
 
Corals.com

Are you someone who cares what the cords and cables look like around your reef tank?

  • Yes and very OCD about it

    Votes: 68 24.2%
  • Yes but not OCD about it

    Votes: 155 55.2%
  • Meh I don't care too much

    Votes: 43 15.3%
  • I do not care at all

    Votes: 8 2.8%
  • Other (please explain)

    Votes: 7 2.5%

Online statistics

Members online
2,597
Guests online
6,392
Total visitors
8,989
The Random Flow Generator™ Nozzle by VCA
Top