The Grow-IoT project is managed as a mono-repo with a bunch of seperately published packages such as:
See our basic Raspberry pi example to get started with devices.
You need to install Meteor first (if you haven't already).
You will also need to install yarn, which we use to manage all the packages that comprise Grow-IoT!
Then clone the repo and enter the new directory:
git clone https://github.com/CommonGarden/Grow-IoT cd Grow-IoT
Finally install the needed software dependencies:
Start the Grow-IoT server with the
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 create a device. Enter "test" for both the
token. Then run the mock device driver (in a seperate terminal):
You can find the ui component for this device in
Connecting sensors and actuators
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 those packages'
examples folder. Corresponding UI components live in
See Thing.js for more info on creating and connecting devices.
Adding custom components
To do so:
- Make a new
npm install package-nameif the component is published on npm.
import CustomComponent from './CustomComponent'
- Lastly, add
CustomComponentto the exported
Example devices and grow systems:
In the repo you'll find the following directories and files:
||Meteor stuff, well documented in other places.|
||AI and Machine learning code|
||Imports things and starts the React app.|
||API, App, and thing web component examples live here|
||Grow.js, Thing.js, and other standalone packages live here.|
||Fonts and other static, public assets live here.|
||Unit and Thread conformance tests|
||Imports the server code.|
Our wiki also contains a growing assortment of useful info, including:
There's a lot to do.
- User profiles
- Image storage and retreival with IPFS
- Environments (creating groups of things)
- Administration and device management (a green house or lab involves more than one user often)
Grow-IoT is released under the 2-Clause BSD License, sometimes referred to as the "Simplified BSD License" or the "FreeBSD License".