Natural gas leak detection without detectors!
Currently, in third world countries, on-site revisions are made to the natural gas systems of people's houses every few years to ensure that everything is safe. But what happens between revisions, what happens if something breaks but you still have 3 years until your next revision, what happens if you are traveling and you let your stove valve open?. By leveraging IoT technologies and Azure products, this tool attempts to provide an affordable, escalable and practical way to solve this problem. It doesn't aim to be a full packing measuring solution with and accuracy of 100%, but it wont cost a fraction of that either. It leverages existing installations to provide some quick, simple, additional insights which can repercute on huge savings.
What it does
By using an IoT edge device, and continuosly reading the data from the accumulated total consumption of the house (reading directly from the same instrument that is used for billing purposes), you could establish consumption patterns and identify anomalies. So for example: On weekdays, gas is used only to cook. If the consumption becomes constant throughout the day, that means there are a valve open or a leak in the system. Any of those would trigger a notification to the people living in the house. If this pattern repeats itself, and on-site revision is scheduled.
How I built it
Full product (not available at this time :( ): Edge: Optional: OCR device accesory Comms hardware/software for reading data Modbus Pulse outputs 4-20 Azure IoT for messaging Cloud-Backend: IoT Hub Azure Function: Write data to Time-series database Stream Analytics / Machine Learning Model Data Visualization: Grafana End-User(s) Experience (includes service providers, end costumers, etc): Liferay 7.0
MVP (available): Edge: Azure IoT for messaging Backfill data generator (Had to generate non-leak data and also some data simulating gas leaks) Cloud-Backend: IoT Hub Azure Function: Writes data to -> Time-series database (influx) Data Visualization / Alerting: Grafana
Challenges I ran into
1st) time (More than full time leader of an Industrial IoT Platform) 2nd) Generating the specific sample data for testing the algorithm 3rd) Simplyfing the algorithm as much as possible for an MVP
Accomplishments that I'm proud of
This may actually improve people's lives
What I learned
Lean/agile is the best!
What's next for LeakSentry
Hope the get some funds to expand it to its full product.
Please create this file in the same folder as the .py's are: secrets.txt
[SECRETS] CONN_STRING: HostName=cemghackathon-iothub.azure-devices.net;DeviceId=MyPythonDevice;SharedAccessKey=nd7rQTajw2aFgL12ApliH0Q/Rv9z6iMDOaubVMkwL4c= DB_USERNAME: cemg DB_PASSWORD: 18744042
DeviceSim is python3 LeakDetector is python2 (i know, its weird, i'm sorry) Dependencies: azure-iothub-device-client==1.4.1 certifi==2018.4.16 chardet==3.0.4 configparser==3.5.0 idna==2.7 influxdb==5.2.0 pycrypto==2.6.1 Pyste==0.9.10 python-dateutil==2.7.3 pytz==2018.5 requests==2.19.1 six==1.11.0 urllib3==1.23