Giter Site home page Giter Site logo

reivaxy / aquamonitor Goto Github PK

View Code? Open in Web Editor NEW
11.0 11.0 2.0 33.6 MB

Recifal aquarium monitoring with arduino, alerts and settings by SMS and webApp, and statistics database

License: Other

C 9.43% HTML 5.38% OpenSCAD 5.50% JavaScript 17.05% C++ 52.56% PHP 5.52% CSS 4.45% Hack 0.11%
3d-printing aquarium arduino fish iot iot-device light monitoring recifal sms tank temperature water-level

aquamonitor's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aquamonitor's Issues

Manage a wifi or BT connection to share GSM module with other devices

A friend has 3 salt water tanks (and 4 soft water tanks...) and already one of these devices. It would be cool to have extra devices for the other tanks, but that could communicate with the one equipped with the GSM module: less expensive, only one SIM card/subscription...

Random ideas (To be continued)

  • each device will need to have a configurable name (and a not configurable ID) to address config messages and identify response messages and alerts. Check if arduino board comes with a usable ID or S/N ?
  • Do we want to share the LCD display too ? Optionally ? (saves only about $2, but smaller device, case easier to design...)
  • In case an internet connection is available, each device could log all measures (instead of using an sdCard module)

Time since last alert was sent is always 0

In the "subs" reply, for each registered number, time elapsed since the last alert was sent should be available, and is currently always 0.
The data seems to be fine, since no new alert is sent before the configured interval has elapsed, but it is always 0 in the sms sent.

Design a sensor to check water movement (make sure powerhead pumps work)

And of course adapt the program to check this sensor data.

Random ideas:
IR beam:

  • a flap in front of the pump moving water would move a flat piece from between an IR led and its IR Receiver
  • when flow stops, the flat piece comes between the IR elements, the receiver no longer gets anything => detection.

Possible issue with stuff blocking the flap (algae, ...). Oh, and also, plastic floats :(

Hall:

  • a Hall sensor used to detect pump motor rotation.

Possible issues: may not work for all pumps. Some mecanical failures coud have motor rotating but still not moving water.

Monitor main power source

Main power source should be monitored to send an SMS as soon as it fails, since the battery may not last long enough to wait for temperature to drop or, if it happens during lights off schedule.

Use a resistor divider bridge on main power (12V) to drive an arduino input.

Probable issue if module runs for 50 days without being reset

The anti-sms-flood interval for each number that receives an alert stores the value returned by millis() when sending an SMS alert.
Next time sending alerts is checked, it compares the elapsed time between this value and the current millis() value.
But millis() resets every 50 days approximately. The stored value, before the reset, will then be bigger than any millis() returned value for the next 50 days => no more alerts sent.

Jack socket for temperature can short circuit the 5V arduino power => destroy the regulator

When plugging in, if arduino already powered, there can be a short circuit.
Also, tightening one socket screw, one of the contacts moved and came to touch another.

And changing the onboard regulator ain't enough, I've now 1 Mega board that runs only with USB power source, and the other delivers only 3.3V... :(

I may end up using VGA sockets, grouping all sensors, and with spare space for new stuff if needed...

Improve localizable message definition to ease localization updates

For now all (except 'off' and 'on', I think) messages are in the progmemStrings.h file which makes localization not too hard.
(French version on the way, but diacritical characters not being handled will make messages ugly).
But it's not optimal, especially when adding new messages, a flat list would be much better, with the message ID and then the string.
Then a script would generate the more complex progmemStrings.h file with its current syntax.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.