From 94b37c51e52a9c41b023890b34bacb848074f0df Mon Sep 17 00:00:00 2001 From: Parikshit Date: Tue, 8 Jan 2019 11:39:18 -0800 Subject: [PATCH] Added IoT sample app and demo (#29) * Create IoT demo with Azure PostgreSQL/Readme.md * Create Images * Delete Images * Create Images/ * Delete Images * Create Images/readme.md * Add files via upload * Update Readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Create simulated-device/ * Delete simulated-device * Create simulated-device/readme.md * Add files via upload * Delete readme.md * Add files via upload * Delete readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Add files via upload * Update Readme.md * Update Readme.md * Create azure function/index.js * Update Readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Update Readme.md * Create IoT demo with Azure PostgreSQL/Readme.md * Moved IoT demo folder --- .../Images/IotTelemetry.png | Bin 0 -> 35808 bytes .../Images/azurefunction.png | Bin 0 -> 45593 bytes .../Images/simulateddevice.png | Bin 0 -> 252075 bytes .../IoT demo with Azure PostgreSQL/Readme.md | 147 ++++++++++++++++++ .../azure function/index.js | 38 +++++ .../simulated-device/SimulatedDevice.js | 93 +++++++++++ .../simulated-device/package.json | 24 +++ 7 files changed, 302 insertions(+) create mode 100644 samples/IoT demo with Azure PostgreSQL/Images/IotTelemetry.png create mode 100644 samples/IoT demo with Azure PostgreSQL/Images/azurefunction.png create mode 100644 samples/IoT demo with Azure PostgreSQL/Images/simulateddevice.png create mode 100644 samples/IoT demo with Azure PostgreSQL/Readme.md create mode 100644 samples/IoT demo with Azure PostgreSQL/azure function/index.js create mode 100644 samples/IoT demo with Azure PostgreSQL/simulated-device/SimulatedDevice.js create mode 100644 samples/IoT demo with Azure PostgreSQL/simulated-device/package.json diff --git a/samples/IoT demo with Azure PostgreSQL/Images/IotTelemetry.png b/samples/IoT demo with Azure PostgreSQL/Images/IotTelemetry.png new file mode 100644 index 0000000000000000000000000000000000000000..d5e6d8b39d386499f001500ab4faa3ec02d65da1 GIT binary patch literal 35808 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 OU<(V02yP6F&;1)7562|{ literal 0 HcmV?d00001 diff --git a/samples/IoT demo with Azure PostgreSQL/Images/azurefunction.png b/samples/IoT demo with Azure PostgreSQL/Images/azurefunction.png new file mode 100644 index 0000000000000000000000000000000000000000..a40b32ae83fdaa32a1e604046cf897f16bd2d1c7 GIT binary patch literal 45593 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