{"id":2851,"date":"2018-12-01T22:21:32","date_gmt":"2018-12-01T16:51:32","guid":{"rendered":"http:\/\/navveenbalani.dev\/?p=2851"},"modified":"2019-12-18T22:34:00","modified_gmt":"2019-12-18T17:04:00","slug":"connected-car-solution-using-amazon-iot","status":"publish","type":"post","link":"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/","title":{"rendered":"Connected Car Solution using Amazon IoT"},"content":{"rendered":"\n<p>This article is part of IoT Architecture Series &#8211; <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/\">https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/<\/a><\/p>\n\n\n\n<p>The strategy for building the IoT application on AWS is pretty much the same as discussed earlier for <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\">IBM<\/a> and <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-microsoft-iot-platform\/\">Microsoft IoT<\/a> offerings. You build IoT applications by composing the relevant AWS services and AWS IoT services. For instance, you could replace the Microsoft Azure services with services being offered by AWS for the connected car solution that we went through earlier. At the end of this article, we have provided a comparison chart of services offered by various IoT cloud platforms.<\/p>\n\n\n\n<p>To summarize for the connected car solution, we went through three phases of implementation \u2013 real-time flow, offline\/batch phase where we developed machine learning models and finally the third phase where we modified our real-time flow to integrate the machine learning model. We would not go over the entire steps in detail but summarize the integration below. Kindly refer to <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-microsoft-iot-platform\/\">Microsoft IoT implementation article<\/a> for details on how we arrived at the final (the third) step of the solution. <\/p>\n\n\n\n<p>Given below is the final step of the connected car solution using Amazon IoT. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"739\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4-1024x739.jpg\" alt=\"\" class=\"wp-image-2853\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4-1024x739.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4-300x217.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4-768x554.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4.jpg 1812w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h4>&nbsp;<a>Hardware and Connectivity<\/a><\/h4>\n\n\n\n<p>For connecting the hardware device to the\nAmazon IoT platform, we use AWS IoT Device SDKs. We use MQTT protocol over TLS\nfor secure communication. We went through the details earlier in Device\nSecurity, Authorization and Authentication section.&nbsp;&nbsp; We need to register the device in the registry, create certificates, assign policies\nand use the relevant SDKs. The following are the high-level steps<\/p>\n\n\n\n<ol><li>Create Thing in Device Registry<\/li><li>Create Certificates and\nPolicies for secured communication<\/li><li>Attach Certificate to Thing<\/li><li>Generate SDKs<\/li><\/ol>\n\n\n\n<p>For the above steps, you can use AWS IoT\nWeb console or AWS CLI (command line interface) commands. As part of device\nprovision step, manufacturers would typically use AWS CLI as that would provide\nan ability to automate the process and use their own private key to generate certificates using AWS command.<\/p>\n\n\n\n<p>We use the web console and list down the\nAWS CLI specific commands for reference.<\/p>\n\n\n\n<ul><li>Create a new Thing by selecting the Create Thing button from the Create panel view. Give some logical name to your thing, which closely resembles your device. You will associate an actual device to this Thing later.\u00a0 Thing represents a virtual device, and you can perform any operations on it, similar to an actual device. We really liked this feature as it helped us to create an end application without even integrating a physical device.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"614\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1024x614.jpg\" alt=\"\" class=\"wp-image-2854\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1024x614.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-300x180.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-768x461.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1400x840.jpg 1400w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5.jpg 1730w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The AWS CLI command\nfor creating a Thing is:<\/p>\n\n\n\n<p><strong>&gt;&gt;<\/strong>aws iot create-thing <strong>&#8212;<\/strong>thing-name &#8220;ccar-dev-mh2279&#8221;<\/p>\n\n\n\n<p>Please note you need to have the right policies to invoke the create thing command. By default, root user has all the rights. If you create a new user, make sure he has the right policies to execute various AWS IoT commands. Attach is a sample policy document which allows most of the administrative IoT commands and can be used to create a new policy. Once the policy is created, you can assign it to the required users through IAM console.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n\"Version\":\"2012-10-17\",\n\"Statement\":[\n{\n\"Effect\":\"Allow\",\n\"Action\":[\n\"iot:CreateKeysAndCertificate\",\n\"iot:DescribeCertificate\",\n\"iot:AttachPrincipalPolicy\",\n\"iot:CreateThing\",\n\"iot:list-things\",\n\"iot:CreatePolicy\",\n\"iot:AttachThingPrincipal\",\n\"iot:DescribeEndpoint\"\n],\n\"Resource\":\"*\"\n}\n]\n}\n<\/code><\/pre>\n\n\n\n<ul><li>On the next screen, you can click on View Thing option to view the details about the Thing as shown below.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"614\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1-1024x614.jpg\" alt=\"\" class=\"wp-image-2855\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1-1024x614.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1-300x180.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1-768x461.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1-1400x840.jpg 1400w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution5-1.jpg 1730w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"814\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution7-1024x814.jpg\" alt=\"\" class=\"wp-image-2858\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution7-1024x814.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution7-300x239.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution7-768x611.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution7.jpg 1290w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul><li>Next, we need to create certificates and policies. One option is to select the Create a Certificate and Create a Policy from create panel view.\u00a0 The other option is to quickly generate all the steps using the Connect a Device option. This would generate certificates, policies, attach the policy to certificates, attach the certificate to Thing and also provide secret key and public key. Click on \u201cConnect a Device\u201d in the Detail view of Thing.<\/li><li>Select an SDK based on the programming model supported by your device.\u00a0 We choose Node.js as we can test the integration easily from any available environment\u2019s (laptops, phones, etc.) which supports Node.js runtime. Click on Generate Certificate and Policy<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"503\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution8-1024x503.jpg\" alt=\"\" class=\"wp-image-2859\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution8-1024x503.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution8-300x147.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution8-768x377.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution8.jpg 1670w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If you are using AWS CLI command, you need to use the AWS IoT <em>create-keys-and-certificate<\/em> command for creating certificate and keys, AWS IoT <em>create-policy<\/em> command for creating policy and for attaching policy to certificate you need to use AWS IoT <em>attach-principal-policy<\/em> command. Following shows the snapshots of the commands.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"305\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution9-1024x305.png\" alt=\"\" class=\"wp-image-2860\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution9-1024x305.png 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution9-300x89.png 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution9-768x229.png 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution9.png 1686w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul><li>In the next screen, download the public key, private key and certificate. Click Confirm.<\/li><li>In the AWS IoT Node.js SDK screen, copy the generated code values as we would need this for connecting our Thing to AWS IoT platform. Click on Return to Thing detail.<\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"679\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution10-1024x679.jpg\" alt=\"\" class=\"wp-image-2861\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution10-1024x679.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution10-300x199.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution10-768x509.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution10.jpg 1650w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul><li>In the console, you would see the certificate and policy created. The policy document name would be typically &lt;thingname>-Policy. Click on it and you would see the policy document. The generated policy document grants all IoT operations to all resources, you can change this at runtime, by allowing only specific operations like publish or subscribe. This provides an ability to revoke or grant access to devices connecting the IoT platform without even touching the device.<\/li><li>Now click on the certificate (which would have the longest name) and you would see the certificate attached to the Thing and to the policy document that was created.\u00a0 This completes one configuration. We would now communicate with the IoT platform with the generated artifacts.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"744\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution13-1024x744.jpg\" alt=\"\" class=\"wp-image-2862\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution13-1024x744.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution13-300x218.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution13-768x558.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution13.jpg 1494w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>We would use\nNode.js for testing the secure connectivity with the IoT platform and\nsend\/receive messages. The following steps assume that you have Node.js runtime\ninstalled.<\/p>\n\n\n\n<ul><li>Install the Amazon IoT Device\nSDK by the following command<\/li><\/ul>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; npm\ninstall aws-iot-device-sdk<\/p>\n\n\n\n<ul><li>Once installed, create a Node.js sample which would use the installed aws-iot-device-sdk module. There are a lot of samples provided in the examples directory of AWS IoT device SDK installation. Given below is sample Node.js file for testing. Save it as CCARTest.js.\u00a0 Replace host, clientId, thingName, caPath, cerPath, keyPath, and region value below based on your environment value. You would have received the value for your environment after the certificate was generated. For caPath certificate, download the root CA certificate which acts as a trusted source from Verisign for this location &#8211; https:\/\/www.symantec.com\/content\/en\/us\/enterprise\/verisign\/roots\/VeriSign-Class%203-Public-Primary-Certification-Authority-G5.pem and save as root-CA.cert<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>var awsIot = require('aws-iot-device-sdk');\n\nvar device = awsIot.device({\n    host:\"xx.iot.us-east-1.amazonaws.com\",\n    port:8883,\n    clientId:\"car-dev-mh2279\",\n    thingName:\"car-dev-mh2279\",\n    caPath:\"root-CA.crt\",\n    certPath:\"f42cec7751-certificate.pem.crt\",\n    keyPath:\"f42cec7751-private.pem.key\",\n    region:\"us-east-1\"\n});\n\ndevice\n.on('connect',function(){\n    console.log('connect');\n\/\/subscribe..\n    device.subscribe('topic\/ccar');\n\/\/publish..\n    device.publish('topic\/ccar', JSON.stringify({ speed:80}));\n});\n\ndevice\n.on('message',function(topic, payload){\n    console.log('message received - ', topic, payload.toString());\n});\n\ndevice\n.on('error',function(error){\n    console.log('error', error);\n});\n\n<\/code><\/pre>\n\n\n\n<p>The above code\nimports the &#8216;aws-iot-device-sdk&#8217; module,\ncreates a device configuration by passing in the required parameters \u2013\ncertificates, private key and other\nparameters values as shown above. The configuration is used to create a secure\nconnection over TLS to the Amazon IoT platform. As you recollect, we had\nattached the certificate to our Thing and policy in Amazon IoT. Based on the\nthingName, the Amazon IoT retrieves the certificates and authenticates using\nprivate and public key combination and once authenticated, it authorizes\noperations based on the policy document attached to the certificate. Once the\ndevice is connected, the connect call back method in our code is invoked. For\ntesting, our code acts as a publisher as well as the subscriber. In the connect method, we first subscribe to the topic named \u2018topic\/ccar\u2019 and then publish a sample JSON request to \u2018topic\/ccar\u2019. In a real world, the JSON data would be\nan actual vehicle data from the connected car. The call back method is invoked whenever a message is received on the topic \u2013 topic\/ccar. Our code simply displays the value in the\nconsole.<\/p>\n\n\n\n<ul><li>Next, run the above CCARTest.js file using the command node CCARTest.js. You would see the following output as shown below. <\/li><\/ul>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"336\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution15-1024x336.jpg\" alt=\"\" class=\"wp-image-2863\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution15-1024x336.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution15-300x98.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution15-768x252.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution15.jpg 1414w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>We are done connecting a virtual device to\nAmazon IoT platform securely and even tested out sending and receiving a\nmessage from Amazon IoT platform.&nbsp; Once\nthe message reaches the Amazon IoT platform, we next look at how to build\napplications by composing the various AWS services.<\/p>\n\n\n\n<h4><a>Software Implementation Overview<\/a><\/h4>\n\n\n\n<p>The first step is to understand how you\nwant to process the incoming data based on your requirements and what AWS\nservices you would use to build your IoT applications. You then create rules\nusing the rules engine that would route incoming data to one or multiple AWS\nservices to process the data.<\/p>\n\n\n\n<p>For our connected car application, we\ncreate two rules; one rule routes the\nmessage to a Kinesis Stream instance and the other\nrule directly inserts the incoming data to Amazon DynamoDB tables. We\ndiscussed the rule configuration in Storage section earlier.<\/p>\n\n\n\n<p>For real-time dashboards and visualization,\nwe plan to use Amazon QuickSight. Amazon QuickSight is currently under preview\nand integration looks promising. Amazon QuickSight integrates seamlessly with\nDynamoDB and other AWS services, so it would be easier to pull the relevant\nschema and build visualizations quickly. We would update this section with\nlatest updates once we get access to QuickSight. If you are planning to build\nyour own reporting, we suggest you to\nhold on and try out the QuickSight once available. This looks similar to PowerBI from Microsoft,\nwhich we had discussed earlier.<\/p>\n\n\n\n<p>Before we talk about Kinesis stream\ninstance, we will look at how Machine Learning models are developed using Amazon\nML for the connected car use case. The approach and step required to build\npredictive models are exactly the same as mentioned in Building the\nMachine Learning Model section as part of the Microsoft IoT Stack. Instead of\nusing Azure ML we use Amazon ML, and we\nchoose to build machine learning models iteratively using offline process.\nAmazon ML as discussed earlier provides interactive visual tools to create,\nevaluate, and deploy machine learning models.&nbsp;\nAmazon ML provides an implementation\nof common data transformations, which is extremely helpful to prepare the data.\nAs part of the prepare data phase, you load the data. Our raw data from the connected car is\nstored in Amazon DynamoDB.&nbsp; Currently, AWS ML tool does not support\ndirectly importing the data from Amazon DynamoDB. It currently supports Amazon\nRedshift, Amazon S3 and Amazon RDS (MYSQL only) only. So you need to make the\ndata available in S3 via CSV format or import the data into Redshift. For the\nconnected car use case, we develop two machine learning models (as discussed\nearlier) \u2013 regression model for predictive maintenance and multi-class\nclassification for driver behavior\nanalysis. <\/p>\n\n\n\n<p>Once the Amazon ML is developed, it can be consumed through the Amazon ML API. The AWS\nML APIs is available at\nhttp:\/\/docs.aws.amazon.com\/machine-learning\/latest\/APIReference\/API_Predict.html. The integration diagram described earlier in the Implementation\nOverview section shows how predictive maintenance is included in the final step. The integration of driver behavior analysis is pretty much the same and in this case, the output goes to mobile and the\nweb instead of a maintenance request.<\/p>\n\n\n\n<p>Coming back to Kinesis stream instance, we\nuse it for processing the continuous flow of data from devices in real-time.\nMultiple applications can receive the streams of data and work in parallel. For\nthe connected car use case, we emit the data from the Amazon Kinesis stream\ninstance to 2 AWS Lambda components. One AWS Lambda component invoked the machine learning models using the APIs\nand based on the outcome (if maintenance is required), invokes the external\nmaintenance system through a secured REST call for repairing of the equipment.<\/p>\n\n\n\n<p>The second AWS Lambda component executes\nthe rule conditions (i.e. driving speed &gt; 100 km\/hour, geo-fencing\nconditions). If the conditions are met, a\nnotification is sent to the registered mobile via the push notification\nservice.&nbsp; This\ncompletes one end to end integration flow.<\/p>\n\n\n\n<p>The Kinesis stream instance acts as the data stream processing backbone, allowing new integration logic to be added to existing flow by simply integrating with Kinesis stream instance. We talked about many use cases in earlier <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-connected-car-use-case\/\">articles<\/a> for the connected car, like driver assistance, recommendations based on driving patterns, usage-based insurance, etc. and each can be realized using separate AWS Lambda components or AWS services.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is part of IoT Architecture Series &#8211; https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/ The strategy for building the IoT application on AWS is pretty much the same as discussed earlier for IBM and Microsoft IoT offerings. You build IoT applications by composing the relevant AWS services and AWS IoT services. For instance, you could replace the Microsoft Azure [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2853,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,156],"tags":[287],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Connected Car Solution using Amazon IoT - Current and Future Technology Trends by Navveen Balani<\/title>\n<meta name=\"description\" content=\"Connected Car Solution using Amazon IoT - Articles\" \/>\n<link rel=\"canonical\" href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connected Car Solution using Amazon IoT - Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"og:description\" content=\"Connected Car Solution using Amazon IoT - Articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/\" \/>\n<meta property=\"og:site_name\" content=\"Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-01T16:51:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-18T17:04:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1812\" \/>\n\t<meta property=\"og:image:height\" content=\"1308\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"10 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/navveenbalani.dev\/#website\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Current and Future Technology Trends by Navveen Balani\",\"description\":\"Current and Future Technology Trends by Navveen Balani\",\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/navveenbalani.dev\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/amazon-iot-solution4.jpg\",\"width\":1812,\"height\":1308},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#webpage\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/\",\"name\":\"Connected Car Solution using Amazon IoT - Current and Future Technology Trends by Navveen Balani\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#primaryimage\"},\"datePublished\":\"2018-12-01T16:51:32+00:00\",\"dateModified\":\"2019-12-18T17:04:00+00:00\",\"description\":\"Connected Car Solution using Amazon IoT - Articles\",\"breadcrumb\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/\",\"name\":\"Connected Car Solution using Amazon IoT\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#webpage\"},\"author\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"headline\":\"Connected Car Solution using Amazon IoT\",\"datePublished\":\"2018-12-01T16:51:32+00:00\",\"dateModified\":\"2019-12-18T17:04:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"image\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-car-solution-using-amazon-iot\/#primaryimage\"},\"keywords\":\"iot-guide\",\"articleSection\":\"Articles,IOT\",\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\",\"name\":\"Navveen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/07\/navveen_balani.jpeg\",\"width\":200,\"height\":200,\"caption\":\"Navveen\"},\"logo\":{\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\"},\"sameAs\":[\"http:\/\/naveenbalani.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2851"}],"collection":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/comments?post=2851"}],"version-history":[{"count":2,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2851\/revisions"}],"predecessor-version":[{"id":2864,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2851\/revisions\/2864"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media\/2853"}],"wp:attachment":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media?parent=2851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/categories?post=2851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/tags?post=2851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}