Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Citizen Sensing with the SenosrThings API

771 views

Published on

This presentation introduce developing Citizen Sensing applications with the OGC SensorThings API. Topics include:
- What is Citizen Sensing?
- Explore this practical use case, and see how it maps elegantly to SensorThings entities
- Case study: Arctic Citizen Sensors

This presentation is presented by Joseph Chang, Senior Developer at SensorUp.

YouTube link will be available soon.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Citizen Sensing with the SenosrThings API

  1. 1. CITIZEN SENSING WITH THE SENSORTHINGS API Joseph Chang Senior Software Developer, SensorUp Inc. March 17, 2016
  2. 2. WHAT IS SENSORTHINGS?
  3. 3. WHAT IS SENSORTHINGS?
  4. 4. WHAT IS SENSORTHINGS? Connect IoT devices and data OGC Standard Open Uses HTTP, JSON, MQTT and other good stuff
  5. 5. WHAT IS CITIZEN SENSING? Ordinary people have sensors Participation, empowerment, connection Kinda cool
  6. 6. SENSORTHINGS + CITIZEN SENSING Can we build a simple citizen sensing platform with SensorThings?
  7. 7. SENSORTHINGS + CITIZEN SENSING Can we build a simple citizen sensing platform with SensorThings? Of course.
  8. 8. SENSORTHINGS + CITIZEN SENSING Can we build a simple citizen sensing platform with SensorThings? Of course. Citizen Sensing?
  9. 9. SENSORTHINGS + CITIZEN SENSING Can we build a simple citizen sensing platform with SensorThings? Of course. Citizen Sensing?
  10. 10. SENSORTHINGS + CITIZEN SENSING Can we build a simple citizen sensing platform with SensorThings? Of course. Citizen Sensing? Citizen SensorThings
  11. 11. SENSORTHINGS + CITIZEN SENSING Can we build a simple citizen sensing platform with SensorThings? Of course. Citizen Sensing? Citizen SensorThings-ing
  12. 12. ARCTIC CITIZEN SENSORS (IN ASSOCIATION WITH GEOCONNECTIONS)
  13. 13. TODAY'S SPECIAL BUILDING A SIMPLIFIED VERSION OF ARCTIC CITIZEN SENSORS Create and link SensorThings entities
  14. 14. TODAY'S SPECIAL BUILDING A SIMPLIFIED VERSION OF ARCTIC CITIZEN SENSORS Create and link SensorThings entities
  15. 15. ENTITIES AND RELATIONSHIPS Observation +phenomenonTime: TM_Object +resultTime: TM_Instant +result: Any +resultQuality: DQ_Element[0..*] +validTime: TM_Period[0..1] +parameters: NamedValue[0..*] Thing +description: CharacterString +properties: JSON_Object[0..1] Datastream +description: CharacterString +observationType: ValueCode +unitOfMeasurement: JSON_Object +observedArea: GM_Envelope[0..1] +phenomenonTime: TM_Period[0..1] +resultTime: TM_Period[0..1]+datastreams 0..* +thing 1 ObservedProperty +name: CharacterString +definition: URI +description: CharacterString +observedProperty1 +datastreams0..* Sensor +description: CharacterString +encodingType: ValueCode +metadata: Any +sensor 1 +datastreams 0..* +datastream 1 +observations 0..* FeatureOfInterest +description: CharacterString +encodingType: ValueCode +feature: Any +observations 0..* +featureOfInterest1 HistoricalLocation +time: TM_Instant Location +description: CharacterString +encodingType: ValueCode +location: Any +things 1 +historicalLocations0..* +location 1..* +historicalLocations0..* +things0..* +locations0..* «CodeList» ValueCode
  16. 16. CREATING A THING
  17. 17. LINKIT ONE
  18. 18. REQUEST POST /v1.0/Things HTTP/1.1 Host: example.sensorup.com Content-Type: application/json { "description": "LinkIt ONE" }
  19. 19. RESPONSE { "@iot.id": 1, "description": "LinkIt ONE", "properties": {} ... }
  20. 20. CREATING A LOCATION
  21. 21. ALERT, NUNAVUT, CANADA Photo: National Oceanic & Atmospheric Administration, retrieved from https://commons.wikimedia.org/wiki/File:NOAA_-_Alert_observatory.jpg
  22. 22. REQUEST POST /v1.0/Locations HTTP/1.1 Host: example.sensorup.com Content-Type: application/json { "description": "Alert", "encodingType": "application/vnd.geo+json", "location": { "type": "Point", "coordinates": [ -62.358, 82.521 ] }, "Things": [{ "@iot.id": 1 }] }
  23. 23. RESPONSE { "@iot.id": 2, "encodingType": "application/vnd.geo+json", "description": "Alert", "location": { "coordinates": [ -62.358, 82.521 ], "type": "Point" }, ... }
  24. 24. Feature of Interest automatically created by SensorThings later TWO FOR THE PRICE OF ONE
  25. 25. CREATING AN OBSERVED PROPERTY
  26. 26. REQUEST POST /v1.0/ObservedProperties HTTP/1.1 Host: example.sensorup.com Content-Type: application/json { "name": "dust", "definition": "http://dbpedia.org/page/Dust", "description": "Dust is composed of particles in the..." }
  27. 27. RESPONSE { "@iot.id": 3, "name": "dust", "description": "Dust is composed of particles in the...", "definition": "http://dbpedia.org/page/Dust", ... }
  28. 28. CREATING A SENSOR
  29. 29. DUST SENSOR
  30. 30. REQUEST POST /v1.0/Sensors HTTP/1.1 Host: example.sensorup.com Content-Type: application/json { "description": "dust", "encodingType": "text/html", "metadata": "http://www.seeedstudio.com/wiki/Grove_-_Dust_Sensor" }
  31. 31. RESPONSE { "@iot.id": 4, "description": "dust" "encodingType": "text/html", "metadata": "http://www.seeedstudio.com/wiki/Grove_-_Dust_Sensor", ... }
  32. 32. SENSOR NOT SHOWN IN UI Still have to create it Provides context Future querying options
  33. 33. SENSOR NOT SHOWN IN UI Still have to create it Provides context Future querying options It's good practice, like eating your vegetables
  34. 34. CREATING A DATASTREAM
  35. 35. REQUEST POST /v1.0/Datastreams HTTP/1.1 Host: example.sensorup.com Content-Type: application/json { "description": "LinkIt ONE Datastream", "observationType": "http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement", "unitOfMeasurement": { "name": "pieces per 0.01 cubic feet", "symbol": "pcs/0.01cf", "definition": "N/A" }, "Thing": { "@iot.id": 1 }, "ObservedProperty": { "@iot.id": 3 }, "Sensor": { "@iot.id": 4 } }
  36. 36. RESPONSE { "@iot.id": 5, "description": "LinkIt ONE Datastream", "observationType": "http://www.opengis.net/def/observationType/OGC-OM/2.0/OM_Measurement", "unitOfMeasurement": { "symbol": "pcs/0.01cf", "name": "pieces per 0.01 cubic feet", "definition": "N/A" }, ... }
  37. 37. CREATING AN OBSERVATION
  38. 38. REQUEST POST /v1.0/Datastreams(5)/Observations HTTP/1.1 Host: example.sensorup.com Content-Type: application/json { "result": "334.6" }
  39. 39. RESPONSE { "@iot.id": 6, "result": "334.6", "phenomenonTime": "2016-03-02T20:37:00.598Z", ... }
  40. 40. THE FINISHED PICTURE

×