making petrol stations talk
play

Making petrol stations talk Challenges when implementing an end to - PowerPoint PPT Presentation

Making petrol stations talk Challenges when implementing an end to end IoT solution About DiUS Technology services company End to end solutions (including hardware) AWS Innovation Partner of the Year dius.com.au


  1. Making petrol stations “talk” Challenges when implementing an end to end IoT solution

  2. About DiUS Technology services company ▪ End to end solutions (including hardware) ▪ AWS Innovation Partner of the Year ▪ dius.com.au ▪

  3. Petrol stations

  4. Petrol station

  5. Tank connections Image from http://www.interspecllc.net/Content/Images/UST_Diagram.jpg

  6. Petrol station current loop FCC POS PCM Pump Pump Pump Pump Pump

  7. ATG - Automatic Tank Gauge Connects to tanks ▪ Collects relevant tank information ▪ Limited storage ▪

  8. ATG - Automatic Tank Gauge Connects to tanks ▪ Collects relevant tank information ▪ Limited storage ▪ Introvert ▪

  9. Data retrieval Image from http://www.interspecllc.net/Content/Images/UST_Diagram.jpg

  10. The problem Old hardware and protocols ▪ Reactive system ▪ Slow response times ▪

  11. The problem What if we can predict problems before they occur?

  12. The problem How can I monitor the pumps on the forecourt as well?

  13. DiUS embedded team Joo Bernie Johny

  14. Power sensor

  15. PCM - Pump Communication Module

  16. Petrol station current loop FCC POS PCM Pump Pump Pump Pump Pump

  17. PCM - Pump Communication Module 1. Fuel dispensed events 2. Pump online / offline 3. Fuel not dispensed events 4. “Current loop” status

  18. SDA - Station Data Aggregator

  19. SDA - Station Data Aggregator 1. System information events 2. System configuration management 3. Priceboard configuration 4. Data aggregation and transformation

  20. Fuelscan

  21. AWS IoT

  22. Fuelsuite

  23. Fuelscan + Fuelsuite Proactive system ▪ Predictive analytics ▪ Identify unknown unknowns ▪

  24. Challenges Monitor and manage remote devices at a large scale nationally? ▪ Visualise the data captured? ▪ Manage all this data coming down? ▪

  25. Device configuration

  26. Device shadow What is it? ▪ A JSON document that is used to store and retrieve current state information for a device. - AWS IoT Developer Guide - http://docs.aws.amazon.com/iot/latest/developerguide/iot-thing-shadows.html

  27. Device shadow { "state": { "desired": { "online": true }, "reported": { "online": false } } }

  28. Device shadow { "state": { "desired": { "online": true }, "reported": { Fuelsuite Fuelscan "online": false } } }

  29. Priceboard shadow JSON { "state": { "reported": { "priceboard": { "display": { "1": "Unleaded", "3": "Diesel" } } } } }

  30. Priceboard shadow JSON { "state": { "desired": { "priceboard": { "display": { "1": "Diesel" } } }, "reported": { "priceboard": { "display": { "1": "Unleaded", "3": "Diesel" } } } } }

  31. Priceboard shadow JSON { "state": { "desired": { "priceboard": { "display": { "1": "Diesel" } } { }, "state": { "reported": { "reported": { "priceboard": { "priceboard": { "display": { "display": { "1": "Unleaded", "1": "Diesel", "3": "Diesel" "3": "Diesel" } } } } } } } } } }

  32. Priceboard shadow JSON { "state": { "desired": { "priceboard": { "display": { "1": "Diesel", "3": null } { } "state": { }, "reported": { "reported": { "priceboard": { "priceboard": { "display": { "display": { "1": "Diesel", "1": "Unleaded", "3": "Diesel" "3": "Diesel" } } } } } } } } } }

  33. Device shadow Caveat ▪ a request for deletion of a property in the desired section does not get ▪ passed through to the device for deletion ▪ AWS Docs To delete a key, send a null value ▪ ▪ { … “key”: null, … }

  34. Priceboard shadow JSON { "state": { "desired": { "priceboard": { "display": { "1": "Diesel", "3": [] } } }, "reported": { "priceboard": { "display": { "1": "Unleaded", "3": "Diesel" } } } } }

  35. Priceboard shadow JSON { "state": { "desired": { "priceboard": { "display": { "1": "Diesel", "3": [] } } { }, "state": { "reported": { "reported": { "priceboard": { "priceboard": { "display": { "display": { "1": "Unleaded", "1": "Diesel" "3": "Diesel" } } } } } } } } } }

  36. Device shadow Be explicit.

  37. Message consumption

  38. Message consumption Many types of messages Alarms Deliveries ▪ ▪ Inventory Tank configuration ▪ ▪ Leak tests Sensor configuration ▪ ▪ Tank tests Pricing ▪ ▪

  39. Message consumption What is the problem? ▪ We need to configure a petrol station by consuming messages ensuring historical data was captured

  40. Tank configuration message { ... "LabelList": [ { "Tank": 1, "Label": "DIESEL " }, { "Tank": 2, "Label": " " } ], ... }

  41. Tank activation message { ... "ConfigList": [ { "Tank": 1, "Flag": 1 }, { "Tank": 2, "Flag": 0 } ], ... }

  42. Alarm event message { ... "AlarmEvent": { "Tank": 1, "Category": 2, "Type": 5, "SensorCategory": 2, "State": 2, "EventTime": "1706020638" }, ... }

  43. Message consumption AWS IoT AWS Kinesis Fuelsuite API

  44. Message consumption AWS IoT AWS Kinesis Fuelsuite API

  45. Message consumption Classes of messages Configuration ▪ Configuration flags ▪ Live ▪ Monitor ▪ History ▪

  46. Message consumption

  47. Scalability Horizontal scaling ▪ Add more boxes ▪ Vertical scaling ▪ Add more resources to a box ▪

  48. Scalability

  49. Data management

  50. Classes of messages Configuration ▪ Configuration flags ▪ Live ▪ Monitor ▪ History ▪

  51. Alarm event message { Frequency ... "AlarmEvent": { every time there’s a change "Tank": 1, ▪ "Category": 2, "Type": 5, checked every 30 seconds ▪ "SensorCategory": 2, "State": 2, "EventTime": "1706020638" }, ... }

  52. Inventory levels message { ... "InventoryList": [ Frequency { "Tank": 1, "Type": "2", ▪ every 30 seconds "Status": 0, "Volume": 34943.12, "TCVolume": 34856.07, "Ullage": 17306.9, "Height": 1495.77, "Water": 0, "Temperature": 16.95, "WaterVolume": 0 }, ... ], ... }

  53. Windows of interest Immediate Monitor Report 1 ~ 5 min 1 ~ 90 days 90+ days

  54. Windows of interest Immediate Monitor Report Identify time/date range ▪ Identify frequency of access of data ▪ Storage requirements for each window ▪

  55. Closing thoughts

  56. Lesson learned Real time does not mean “streaming” ▪ Ensure UX understands the domain ▪ Keep it lean ▪

  57. Thank you! @tarciosaraiva @dius_au

Recommend


More recommend