The Crownstones can be integrated in many solutions and on many different levels. Towards this the Crownstone SDK exists of three parts (in an increasing order of integration):
The cloud is required to setup the Crownstones: keys and IDs will be generated, and locations can be set. After that, it can be used to add users, so they can also make use of your Crownstones. The cloud is also used to synchronize data between users, and serves as data storage. You can read how to use it in the REST API documentation.
To make things easy, we provide native libraries for smartphones. The following libraries are available and can be found on github:
The libraries abstract the communication with the Crownstones. They simplify scanning/search for crownstones, wrap the messages into easy-to-use objects, and provide simple functions to access the functionalities provided on the Crownstones. This means that you do not need to write the code to connect to the devices over Bluetooth. You can just use our simplified interface.
The following features will be available (some are still in development):
This data streams in regularly via a callback.
Configurations that can be set and read.
Note: The enable/disable states can only be set using the corresponding command but they can be read through the config.
Commands that can be issued to other Crownstones via the mesh. In case a command asks for a return value, the value will be notified via a callback.
This library abstracts and implements the localization, it uses the bluetooth library and REST API. The localization is based on rooms, though it is more a certain area. This means you can define multiple rooms in a single real world room.
Features (in development):
The Crownstone app (Android and iOS) makes use of these libraries and connects to the REST API as well. The Crownstone app can be used as starting point to develop your own stand-alone app. It is written in React Native.
The Bluenet firmware can be downloaded from github.
For the documentation, see the following links: