Giter Club home page Giter Club logo

adpl's People

Contributors

aforbis-stokes avatar calnightingale avatar danielhull avatar dependabot[bot] avatar graham-h-miller avatar jhoballah avatar mlp6 avatar oo22 avatar suyashkumar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

adpl's Issues

Analog level sensor will not read

The analog reading of the level sensor (output is variable current that I run through a resistor for voltage reading) is not being read by the Arduino, though it can be read by a multimeter.

tipping bucket counter

The assembly is a magnet attached to a moving object (the bucket that tips every time it is filled with 300 mL of treated liquid) and a fixed sensor in the middle of the tipping bucket's pathway. The wires attached to that sensor send a current each time the magnet passes. The apparatus I showed you only counts the number of times the magnet has passed the sensor. Instead of that apparatus, we will attach the sensor's wires to our circuit board, and the Electron will do the counting. I want the internal clock to tell me at what times the bucket has tipped.

functional testing

Latest code in the master branch is ready for testing. As before, I wrote all of this blindly, but did verify compilation of the code.

Once the code is in a fully-functional form, we can explore the final phase of making it truly modular, but if we don't get to that milestone, you will still have a fully-functional version of code before your trip in a few weeks.

You can create Issues for any bugs that you encounter and aren't sure how to fix; otherwise please edit away and let me know when the code is "ready".

refactor probe temperature reading code

Right now, in loop(), to following steps are performed serially:

  1. Sample data on each probe
  2. Average data on each probe
  3. Convert each average to temperature (C)

The same exact operation is being performed for each probe, so will write a new probeTempRead() function that will do all of the "action" and then just loop for each probe in loop().

Downsample data for plotting

Plotting 8000 points can cause some performance issues on the front end, and it seems we dont really need to plot at the resolution that we do. Is there some merit to simply downsampling the data we are plotting by, say, a factor of 2?
@aforbis-stokes

create GPIO pin-mapping

need to map pins to function in a way that is robust for slight variations in different deployments. would like to have the function names be universal, and the actual pins be what can change, especially since a blown pin in the field could trigger and on-the-fly redirect to a new pin

electrical connectors

new particle platform will require new connectors, and a previous issue was electrical connectivity to the Uno. need to add strain relief to all connections and hard anchor points to enclosure.

reduce cellular data usage

@aforbis-stokes estimated current data usage for 2.5 min publish events for 5 temperature probes to be ~13.2 MB/month, which will not be cheap. Some ideas to reduce this data usage are to reduce the precision of data being published, maybe report stats over larger time intervals.

request temperature data on demand

In addition to the electron publishing data, add the ability to poll the device for temperatures on demand. I'm guessing this will require Spark.variable() declarations for all variables that will be polled.

Hopefully these can be added in the data stream of things also being published, but maybe not all of the thermistors... or maybe you can choose which ones.

I'm not sure how much data the request will add on top of the data sent back.

compiled memory

As it was, compiled code took ~110% of available memory. Aaron reduced to ~99%, but we need more breathing room for variable space.

Hardware Board Design

@aforbis-stokes What is your timeline / when do you leave for your trip to have a board done? (I will be gone Fri - Wed.)

We have a few options for board design to consider:

  • Use perf board to mount all hardware, with wire / solder connections.
  • Layout a printed circuit board with DipTrace that we could either etch in-house or send out to be etched.

Perf board might be totally fine for this since you don't have any surface-mount components. PCBs would be great if you had to replicate a lot, but you only need 1 for the near future, correct?

Digital LOW -> Relay Throw

Enough current flowing through some of the digital pins to switch my relay even when the setting is LOW.

integrate bucket count hysteresis

current single-shot (HIGH) lasts <=1 s, so need to lockout the counter for that 1 second interval; should make a private variable to declare this duration in case the hardware changes down the road.

common power supply: voltage regulator

Currently 4 different voltages are needed in the circuit:

  1. 5 V - Arduino
  2. 24 V (0.5 W) - water level transducer
  3. 12 V (2 W) - valve
  4. 1.5 V (0.42-0.48 W) (280-320 mA) - ignitor
  5. 12 V (48 W) (6 A) - Pump

Ideally we can use one DC transformer that can be regulated down to each DC voltage w/ adequate power supplied to each one.

How much data to plot

With the current settings we're essentially pulling down and plotting the entire database at once. Is this what we want to be doing? Are we most interested in plotting the last N days in the dashboard? @aforbis-stokes

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.