# IoT Platform Overview This includes the NAIADES IoT Platform source code, shipping code (Dockerfiles and docker-compose), and scripts examples demonstrating how clients can use IoT Platform services (a.k.a NAIADES SDK). SDK shows how to use NAIADES IoT Platform services, among these services we have: - message broker (`Orion`) - access control (`Wilma`) - identity management (`Keyrock`) - time-series storage and API (`QuantumLeap`) - how to build your own services (e.g. `weather-data-collection-carouge`) This is inspired from [FIWARE tutorial](https://github.com/Fiware/tutorials.PEP-Proxy/blob/master/README.md) # More You can find more info about how to use the platform at the [wiki home page](https://gitlab.distantaccess.com/naiades/naiades-platform-poc/-/wikis/home) # Deploying the platform on your own Please see [wiki article](https://gitlab.distantaccess.com/naiades/naiades-platform-poc/-/wikis/NAIADES-IoT-Platform-installation) # Using the platform APIs You use the platform services through its API, either if you have deployed it by yourself, or using the `development platform` Please see [wiki article](https://gitlab.distantaccess.com/naiades/naiades-platform-poc/-/wikis/API-client-examples-(curl-and-python-scripts)) # Use Case Example Using the `Carouge Watering` use case for exemplifying the interactions. We have `IoT sensor for humidity`, and `WMS for watering scheduling`, then we could think of the following interactions: ## Interfaces: ``` +----------------------+ +-------------------+ | | | | | IoT Platform +----------------+ WMS - Watering | | | | weekly scheduler | +----------+-----------+ | | | +-------------------+ | | | +----------+-----------+ | | | Soil Moisture IoT | | sensor | | | +----------------------+ ``` ## WMS subscribes: ``` +----------------------+ +-------------------+ | | | | | IoT Platform +<---------------+ WMS - Watering | | | SUBSCRIBE | weekly scheduler | +----------------------+ /FlowerBed/soilMoisture | +-------------------+ +----------------------+ | | | Soil Moisture IoT | | sensor | | | +----------------------+ ``` # IoT data update, forwarding data to subscribers ``` +----------------------+ +-------------------+ | | | | | IoT Platform +--------------->+ WMS - Watering | | | POST | weekly scheduler | +-----+----------------+ /FlowerBed/soilMoisture | ^ +-------------------+ UPDATE| /FlowerBed/soilMoisture | +-----+----------------+ | | | Soil Moisture IoT | | sensor | | | +----------------------+ ``` ## WMS gets time-series data (last 100 records on humidity): ``` +----------------------+ +-------------------+ | | | | | IoT Platform +<-----------------------------------+ WMS - Watering | | | GET | weekly scheduler | +----------------------+ /FlowerBed/soilMoisture?limit=100 | | +-------------------+ +----------------------+ | | | Soil Moisture IoT | | sensor | | | +----------------------+ ``` ## Useful mysql queries for DB querying ```mysql-sql SELECT time_index, entity_id, soilMoisture FROM mtcarouge.etflowerbed ORDER BY time_index DESC limit 100; ```