My Neptune Apex web interface compatible DIY reef controller

teslo -

Having the controller at your work makes sense though, since the IP addressing is most likely different than at home.

If you want I'd be willing to look over your code if you want to send it to me.
 
I have not seen the reset webserver log message since I updated my arduino with the new code, even if I disconnect it (it waits for an hour before showing reset message).

here is a neat trick with curl, add "> text.txt" to the end of the command and it will show you a nice progress statistics while the file is uploading. text.txt can be any filename.

if you add the -v option (either before of after -0), it will tell you exactly if you even connected to the webserver or not.
 
sorscode, did you get the files with multiple atlas stamp support I emailed you?
did you get a chance to test it?

I'll try to complete the code this weekend (just need to add calibration and alert setting page), then will proceed with LED control feature.

I have already started evaluating the LED feature. What I'll probably do is use 6 PWM lines whose resolution is configurable, between 12 and 16 bits (or just choose between 12 and 16 bits). I'm not even sure if 16 bits is really needed, but the arduino supports it. There are 2 more PWM lines available, but these are limited to 8bit pwm, can be used to control pwm fan or any other pwm device.

I'll do a simple 6 segment ramp up/down (similar to jebao pump setup), and one that is based on sun elevation angle, so it ramps up from sunrise to solar noon then ramps down to sunset. The daylight length will also be based on the location. say great barrier reef, will have longer days in december and shorter in june.
 
Having the controller at your work makes sense though, since the IP addressing is most likely different than at home.

No.. at my home I set-up local network same as I have in company so IP is the same and also ISP is the same.. So basically no difference.
 
Well I hope I did :)



I also took controller to my office connect it to local network and that message

"Ethernet and Webserver reset."



still appears in Contreoller log each 20minutes.



Strange really :(


If you are seeing webserver reset log every 20 minutes, I can guarantee you your arduino still has the old code. As even if the router is really unreachable, it will take an hour before the webserver is reset.

ok slight correction. If the controller still shows the reset webserver log every 20 minutes, then it truly cannot connect to the router.
 
d0ughb0y -

Yes I got your e-mail. I replied just now.

teslo -

Interesting. Again I'd be more than happy to look over your code to see what is going on.
 
teslo,

since you are able to access the main page from a browser, I assume that connection is ok.

you need to try the curl command to retrieve the index.htm to see if it works, and try the curl command with -v option, and the redirect stdout to file option. Between that, you should be able to tell exactly where the problem is.
 
If you are seeing webserver reset log every 20 minutes, I can guarantee you your arduino still has the old code.

As at my home I have same local network and ISP as at work I don't need to change any settings in Config.h
I just check Controller log and also in company NTP gets right clock and all other features aslo works normally except that error each 20 minutes.
I could ping controller, I could open webpage and choose/select ecerything..

But I am not 100% if I have really last version of code. As I first have problem with index pages which I fugure out files were really old I might have same problem also with code files. Still strange as I download files from github yesterday?


ok slight correction. If the controller still shows the reset webserver log every 20 minutes, then it truly cannot connect to the router.

Why controller need to connect router? NTP and other data comes from internet thru router so? What data or info controller needs from router?

Yes I will try curl command with those switches later when I arrive back home!
 
Last edited:
teslo -

The Arduino uses port 80 on your router to make sure the network is still online. If it is unable to connect to port 80, it will do a reset.

As my router doesn't do HTTP (port 80), I changed it to SSH (port 22).
 
Why controller need to connect router? NTP and other data comes from internet thru router so? What data or info controller needs from router?

Yes I will try curl command with those switches later when I arrive back home!

the netcheck is to make sure the network connection is working. ntp is done at bootup and once a day and will not reset the network if it fails.

I know at least two times in the past, I am not able to access my controller form the internet, and just waited till 20 past the hour and tried again and I was able to connect, and checking the log shows the webserver was reset, so I think that code was helpful.

you never know if someone on the internet tries to overload your controller with packets to cause it to hang. the netcheck will reset the webserver if that happens.

Did you changed your router port? If so you need to change #define ROUTER_PORT to the port that the controoller can connect to
.

the netcheck does a simple socket connect to the router. it either succeeds or fails. if it fails, you won't be able to connect to your controller, hence webserver is reset.

I initially used icmp ping, but that takes way too long to complete. a simple socket connect completes instantly.</port>
 
Last edited:
Teslo, I was having the same probs as you, I have an apple Airport, this has no www port 80 to connect to. So instead of pointing to the router, I pointed to the address of my printer which does respond on port 80.

Perhaps this will help you
 
I bought two. :)

Well as I check for us "out of USA" only transport costs would be 2.5x of this.
So after additional custom costs and VAT end price for 1pcs would be around 75-80$ :(

Still I agree this Ph module is a good and proven solution!

BTW: I find solution for Etherent and webserver reset.
My Tp-link router needs a new firmware and after uploading new one now no more problem with that!
 
some screenshots of the Sensors Setup page. I moved the temp and ph alerts and calibration into its own sensor setup page. Here you can set the high and low alert for each sensor, and for atlas sensors, calibrate it as well. I only used mock data so the page will render. Orp seems to work exactly the same as ph sensor, so I think that should work fine. Conductivity is all different commands so I don't think it will work until I get some test results.

New Sensors entry in main setup page
LrfZoGE.png


Temp Sensor
8xb6Guo.png


pH Sensor (Sensor reading value for calibration updates every second)
whJD10k.png


Orp Sensor
AAg8MQJ.png


Conductivity Sensor
c0SMVkQ.png
 
Last edited:
For ph and orp, I initialize the stamp by sending e\rr\r to end continuous mode and to get one reading.

for cond, I initialized by sending
response,0\rc,0\ro,ec,0\ro,tds,0\ro,sg,0\rk,1.0\rr\r

I'm not sure if it will work or not.
response,0 will tell the stamp to not return a string reply to commands
c,0 tells the stamp to stop continuous mode
o,ec,0 o,tds,0 o,sg,0 disables output for electric conductifiy, tds and specific gravity
so the only output is salinity.
k,1.0 tells the stamp the probe is k=1 type
then r\r will get one reading.

If someone already has the conductivity stamp, can they please try using the atlas test sketch and send the string in the above sequence (replace \r with a carriage return) and send me the serial monitor output.


Thanks.
 
I see in atlas website the new ph stamp is out. The command syntax is the same as the conductivity stamp, and the stamp now works in either serial or i2c.

I added a new #define _PH_EZO, that should be un commented when using the new atlas EZO ph stamp. If defined, it will use the new command syntax.
 
Last edited:
Back
Top