Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Ripples — An IoT Water Conservation Example

DZone's Guide to

Ripples — An IoT Water Conservation Example

Conserving water with NATS.io, Samsung Artik, Golang, RethinkDB and Particle Photon.

· IoT Zone
Free Resource

Last week while I was at OpenIoT Summit in San Diego with the NATS team, I was made aware of an interesting project by Jason Rotella. He and his team submitted an entry into Samsung's MAD Challenge (Makers Against Drought), an exciting initiative from their Artik team.

You can read Jason's original post here, and I have also shared it below:

Inspiration

The team wanted to build a partly physical and partly emulated implementation of a water conservation ecosystem concept. The resources available on the ARTIK10 (cores, memory, speed, networking interfaces) make it capable of doing more than just physical device monitoring and control.

The concept of Ripples is that it can, of course, control a physical system, but also host a server that is highly performant when written in Go.

What It Does

Ripples controls a physical representation of an actual water system in a home or business. Ripples also hosts an emulation of physical devices that, due to practicality, cannot be part of the physical model described in the "Part2 — PhysicalWalkthrough" video.

Ripples achieves this emulation capability by interaction of the emulation server (emulationSvr in the video), which directly controls solenoid operated valves in the physical system shown operating in Part1-Introduction. emulationSvr also emulates devices that are not physically built or devices present in another organization zone (e.g., another home or business).

Ripples achieves water conservation by the use of water quota policies and social feedback, such as: striving for rewards that are relevant to each user of the water system, and participation in activities that conserve water across a social group (i.e., saving water is not constrained to working in concert with only those in your own home or business, enabling groups of people to combine forces). Some ways that people can combine forces include multiple homes/businesses signing up for Civic overrides. Civic overrides interrupt discretionary water consumption when demand is high for high priority water uses and supply of water is low (similar conceptually to electrical energy conservation concepts that reduce demand).

How I Built It

We used 2 ARTIK10 development boards and a Particle Photon, as well as a relay board operating valves. The video has details about what each one's role is in the solution. Between them, they provide mobile phone application hosting and physical system control and instrumentation, emulationSvr hosting, database hosting and messaging to tie it all together. The solution also uses a Particle Photon running a NATS messaging client that will talk to Apcera's NATS messaging server running on one of the ARTIK10 boards. The Particle Photons could also have easily been replaced with ARTIK1 or ARTIK5 chips. The overall concept, if implemented would result in additional smart devices in society.

Challenges I Ran Into

  • Construction and operation of the physical system
  • Integration of the various components developed by the team members

Accomplishments That I'm Proud Of

  • Team effort
  • Complex, impactful design with multiple technologies and disciplines
  • Construction and operation of the physical system

What I Learned

  • Artik's capabilities

  • Go programming language

  • NATS messaging system

  • Web and app development

  • Video editing

  • Collaborating and effectively communicating ideas amongst team members.

What's Next for Ripples

  • Improve on the user interface portion to attract and retain more users.

  • A possibility would be to further expand on the social aspect of the project. Ripples' next steps could be to collaborate with popular services that would provide a worthwhile reward to the clients when using this technology.

  • Improve on the implementation of various aspects of the software and fully implement the policy and quota/reward options.

Due to time constraints we didn't combine the multiple videos into one. Please watch them from the following link: https://drive.google.com/open?id=0B1cKJp1NNdpecUxIOFFvNlBnbnM

Built With

Topics:
iot examples ,golang ,angular js ,rethinkdb ,nats ,messaging ,cloud native applications ,iot development

Published at DZone with permission of Brian Flannery. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}