/MyDriving

Building IoT or Mobile solutions are fun and exciting. This year for Build, we wanted to show the amazing scenarios that can come together when these two are combined. So, we went and developed a sample application. MyDriving uses a wide range of Azure services to process and analyze car telemetry data for both real-time insights and long-term patterns and trends. The following features are supported in the current version of the mobile app.

Primary LanguageC#MIT LicenseMIT

services platforms author
iot-hub, applications-insights, app-service, data-factory, hdinsight, hockeyapp, key-vault, machine-learning, power-bi, sql-database, storage, stream-analytics, visual-studio-team-services
dotnet, ios, android, xamarin
harikm86

MyDriving - An Azure IOT and Mobile Sample Application

This repository contains the MyDriving sample that demonstrates the design and implementation of a comprehensive Internet of Things (IoT) solution that gathers telemetry from devices, processes that data in the cloud, and applies machine learning to provide an adaptive response. The demonstration logs data about your car trips using both your mobile phone and an On-Board Diagnostics (OBD) adaptor that collects information from your vehicle's control system. The Azure backend uses this data to provide feedback on your driving style in comparison to other users.

Quick Start and Reference Guide

In addition to the readme documentation included in this repository, please see:

Repository contents

A collection of resources to enable you to deploy and configure the Azure backend for MyDriving to your own Azure subscription. This includes Azure Resource Manager (ARM) templates for deploying all the necessary Azure services, Bash scripts, and PowerShell scripts.

It also includes scripts you can import into Visual Studio Team Services to set up build definitions for the Xamarin mobile app projects and the API endpoint project that's deployed to Azure App Service.

Refer to the scripts readme for additional details.

Open the individual solutions in their respective folders to build and deploy.

More information on deploying to your own environment is given in the Getting Started guide.

Data structure definitions used by the Data Factory service. The MyDriving system uses the Data Factory service to create an HDInsight cluster on demand. For details, refer to Chapter 8 of the MyDriving Reference Guide.

An example extension to the MyDriving system that performs a the Vehicle Identification Number (VIN) lookup in the course of processing IoT data. For details, refer to Chapter 9 of the MyDriving Reference Guide.

Copies of the resources the ARM templates use to configure the HDInsight cluster.

Visual Studio 2015 solution and project files for the Android, iOS, and UWP mobile apps for MyDriving. These are implemented with Xamarin. For details, refer to Chapter 3 of the MyDriving Reference Guide.

Visual Studio 2015 solution and project files for the API endpoints in Azure App Service. For details, refer to Chapter 4 of the MyDriving Reference Guide.

Visual Studio 2015 projects containing the OBD client libraries for communicating with OBD dongles.

PowerBI report definition. For details on how Power BI is used in MyDriving, refer to Chapters 6 and 8 of the MyDriving Reference Guide.

Copies of the SQL scripts executed by the PowerShell script to populate the SQL databases created by the ARM templates.

Copies of queries used by the ARM template to configure Stream Analytics jobs.

-- This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.