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
meteorAnd that's it! Visit http://localhost:3000 with your browser of choice; you should now have the application running.
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.jsPaste 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.
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.
To do so:
- Make a new
CustomComponent.jsxfile in `imports/things/' - Open
imports/things/index.js. import CustomComponent from './CustomComponent'- Lastly, add
CustomComponentto the exportedcomponentsobject.
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:
- Graph-QL api and schema
- Rest API (using Express)
- Mongoose models
Our wiki also contains a growing assortment of useful info, including:
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)
This project exists thanks to all the people who contribute. [Contribute].
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
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