Skip to content
 
 

Repository files navigation

Grow-IoT

Backers on Open Collective Sponsors on Open Collective Gitter BSD license Build Status

Installing Grow-IoT

You need to install Meteor first (if you haven't already). You will also need to install a version of yarn >= 1.x.

Then:

git clone https://github.com/CommonGarden/Grow-IoT
cd Grow-IoT
yarn
meteor

And that's it! Visit http://localhost:3000 with your browser of choice; you should now have the application running.

Connecting devices (or virtual things)

Create a new device (click the '+' button) and take note of the device uuid and token. Then run (in a seperate terminal):

node tests/test-grow-hub.js

Paste in the uuid and token and presto! You've connected your first thing to Grow-IoT.

You can find then component for this device in imports/examples/GrowHub.jsx.

Connecting sensors and actuators

In the packages directory, we've started 2 libraries to help you connect sensors and actuators and create grow systems out of them.

  • Thing.js: A general purpose internet of things library... basically a fancy event emitter
  • Grow.js: extends the Thing class with a bunch of useful things for growers like scheduling, registering listeners and alerts, etc.

Hardware examples live in the .examples folder (the folder is hidden, because Meteor is dumb and tries to build everything). The corresponding UI components live inimports/things/.

See Thing.js for more info on creating and connecting devices.

Adding custom devices components

To do so:

  1. Make a new CustomComponent.jsx file in `imports/things/'
  2. Open imports/things/index.js.
  3. import CustomComponent from './CustomComponent'
  4. Lastly, add CustomComponent to the exported components object.

What's included

In the repo you'll find the following directories and files:

File/Folder Provides
.examples Hardware examples (arduino, Raspberry Pi, etc.)
.meteor Meteor stuff, well documented in other places.
.sandstorm Sandstorm.io stuff
client Imports things and starts the React app.
imports API, UI, and thing examples live here
packages Grow.js and Thing.js live here.
public Fonts and other static, public assets live here.
tests Unit and Thread conformance tests
server Imports the server code.
tests Hmmm....

We have a few different repos for alternative (perhaps non-Meteor) stacks:

Our wiki also contains a growing assortment of useful info, including:

Roadmap

There's a lot to do.

  • CoAP (it's been started but not tested very well)
  • Graph-QL
  • User profiles
  • Better data visualizations (timeseries without having to use grafana anyone?)
  • Administration (a green house or lab involves more than one user often)
  • Logic ui (a.k.a. advanced interoperablity) a.k.a. "Swarms"
  • Environments (creating groups of things)

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

License

Grow-IoT is released under the 2-Clause BSD License, sometimes referred to as the "Simplified BSD License" or the "FreeBSD License".

development close-413

About

Open source software for growing things.

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages