{"componentChunkName":"component---src-templates-blog-post-js","path":"/final-project/","webpackCompilationHash":"f2e780667fa7b13e6baf","result":{"data":{"github_icon":{"childImageSharp":{"fixed":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAACt0lEQVQ4y21UPWtUQRR9b010lURSv5fMZO/EiJ2kiwj+CSOKIRGRWKmNhYKF9lpkU8RCgqKFRT5BsLe201RB4i6oKRUhcb+i587c+94sZuHydmbuOffcj5kkt5Twj7+ZcRX+n1lXxf/Z3LjV3LpGZqmTsxnXhK3B5mCnBJfC13NkJnD5zUR+uaHLcNgZHZ/4ywbCPtN9+HyB71XFYZ0WygoyS08DCQCW/kBFGyRdAL0B1OU9f+bJzzDxYh8pZFaUbKzmHRh8yM6FMg4SqdUz+HYChuqhVFSonIlS2QThFJyWYL9Qzz2sP0PZJ/z/DvuN9Qusp0D6qsTRdZVZBeFOmQI9jFIYx/5IsbZ0GoS1skRuIVL7FWdDaIKb9XUz7mA0pLwkqgdLIsdkSUQ8KD6PGQPCA1F5k2u4KoRdOPSwviQjUOEiw5k7z2o9KchTrTvW52H7wB5KuTY4SkPHAQcfJJVypo74hfMwswi2peOFYLuccgdRuiL5TTys+RGkXqXxSnU66r72lkfLtTgS34JAaN07iZpmkmoutyDsB+XhVum4uddBoZ/TFkds6nzBqQGrCqmmlERdV5Wp3i7gtvkieA5DuxxtLdSPer5jhu5G17CiREqMgL5Rsj+fB2xbSrbJhHN+XKz7AWuKwz3YcUkzvuepjNEA9hew3hdlbWnMLXY6CeYmov3E9wLsrXFnuSZ72HvJgx/VcACgOgeOOtuRL0pHwyr9iqFJ7tRHBBgGcD3UlWTIMY/l7K2M1Sb5rAVcjwnlkZjve7oAeCbKHomakegV4jSPCeF9UdeC+ccBvsta374u4mBRXo9t2HtfE7k1uRIa90DTDfPnnkf4NPmv8NZdA+ibnThXPEtMpgoh4IkhzgSPgaEbEU7JqBxaW4zJCRDcxtlF6WqalaWZBvgOvkP6qGr3meMfi0sXgbOlbzsAAAAASUVORK5CYII=","width":50,"height":50,"src":"/static/b71bc541b323dcd8f0a887920f9670f9/352e5/github-icon.png","srcSet":"/static/b71bc541b323dcd8f0a887920f9670f9/352e5/github-icon.png 1x,\n/static/b71bc541b323dcd8f0a887920f9670f9/aae31/github-icon.png 1.5x,\n/static/b71bc541b323dcd8f0a887920f9670f9/47c2b/github-icon.png 2x"}}},"site":{"siteMetadata":{"title":"Da Post","author":"Matthew Robertson"}},"markdownRemark":{"id":"31f705e7-afae-5c07-86ff-45563667313a","excerpt":"Objectives The purposes of this lab are to: Automate my morning using Alexa to have her do the following Start playing music Tell me my calendar for the day…","html":"<h3>Objectives</h3>\n<p>The purposes of this lab are to:</p>\n<ul>\n<li>\n<p>Automate my morning using Alexa to have her do the following</p>\n<ul>\n<li>Start playing music</li>\n<li>Tell me my calendar for the day</li>\n<li>Turn on my living room light to help my house wake me up</li>\n</ul>\n</li>\n<li>Build a novel way to see what the weather is going to be like and have it also suggest what I should wear</li>\n</ul>\n<h3>Materials</h3>\n<p>The materials used for this lab were</p>\n<ul>\n<li>Personal computer (For programming the Arduino)</li>\n<li>Personal smart phone (For configuring Alexa)</li>\n<li>Smart bulb of your choosing (As long as it integrates with Amazon Alexa)</li>\n<li>Apple Music account</li>\n<li>Kasa Account (or whatever account is required for your smart bulb)</li>\n<li>1 x Echo Dot (or other Amazon Alexa capable device)</li>\n<li>1 x ESP8266 Wemos D1 Mini (Microcontroller)</li>\n<li>1 x Breadboard</li>\n<li>1 x USB -> MicroUSB cable for power and flashing the microcontroller</li>\n<li>3 x LED lights</li>\n<li>10 x Female to male jumpers</li>\n<li>4 x Male to mail jumpers</li>\n<li>1 x OLED Arduino screen</li>\n<li>1 x Cardboard box to store it all in</li>\n</ul>\n<h3>References</h3>\n<ol>\n<li><a href=\"https://www.arduino.cc/en/Tutorial/BuiltInExamples\">Arduino IDE Examples</a></li>\n<li><a href=\"https://github.com/knolleary/pubsubclient\">PubSubClient Docs</a></li>\n<li><a href=\"https://www.arduino.cc/en/main/software\">Arduino IDE</a></li>\n<li><a href=\"https://www.home-assistant.io/getting-started/\">Install Home Assistant</a></li>\n<li><a href=\"https://unix.stackexchange.com/questions/420640/unable-to-connect-to-any-wifi-with-networkmanager-due-to-error-secrets-were-req\">Connecting Home Assistant to WiFi</a></li>\n<li><a href=\"https://www.home-assistant.io/integrations/ifttt/\">Connecting Home Assistant to IFTTT</a></li>\n</ol>\n<h3>Procedures</h3>\n<h4>Setting Up Alexa</h4>\n<ol>\n<li>Plug in your new Echo Dot (or other device)</li>\n<li>Download the Alexa App (<a href=\"https://itunes.apple.com/us/app/amazon-alexa/id944011620?mt=8&#x26;at=1001lnRX&#x26;ct=tomsguide-1456038539298567853\">iOS</a> or <a href=\"https://play.google.com/store/apps/details?id=com.amazon.dee.app&#x26;hl=en_US\">Android</a>)</li>\n<li>Select <code class=\"language-text\">Devices</code> on the lower right hand corner</li>\n<li>Press the ➕ in the top right of the screen and select <code class=\"language-text\">Add Device</code></li>\n<li>Select <code class=\"language-text\">Amazon Echo</code> from the list</li>\n<li>\n<p>Select your model (in my case it is an Echo Dot)</p>\n<ul>\n<li>I then select 3rd generation because that’s the one I have. Feel free to select whichever version you purchased</li>\n</ul>\n</li>\n<li>Now follow the directions on the screen to pair your new device!</li>\n</ol>\n<h4>Setting Up a Routine</h4>\n<p>Here we are going to set up two different routines: one that starts the morning off and one that ends the morning. The one to start it needs to read you what is going on that day (according to the calendar that we will add), turn on the living room smart light, and start playing some music. The ending routine should stop the music and turn the living room light off in preparation of us leaving the house.</p>\n<ol>\n<li>\n<p>Before we can start adding routines, we need to make sure that we have all of the devices and skills we need added to the app</p>\n<ul>\n<li><em>Note: A skill is simply an integration with another app or service that Alexa can then use</em></li>\n</ul>\n</li>\n<li>\n<p>First, we’ll set up our Apple Music </p>\n<ul>\n<li>Click on the hamburger menu in the top left of the screen and select <code class=\"language-text\">Skills &amp; Games</code></li>\n<li>Click the 🔍 icon in the top right hand corner and search for <code class=\"language-text\">Apple Music</code></li>\n<li>Click on the Apple music skill and click on the <code class=\"language-text\">Enable to use</code> button</li>\n<li>Now it will prompt you to login with your AppleID. Do this and the skill is activated and ready to use!</li>\n<li>You can test this by saying <em>“Alexa, play music form Apple Music”</em></li>\n<li>At this point, you can also make it so that whenever Alexa is asked to play music, she plays it from Apple music by default. You can do this by going to the left hand menu and selecting <code class=\"language-text\">Settings</code> and go to <code class=\"language-text\">Music &amp; Podcasts &gt; Default Services</code>. Here you can set what you would like your defaults to be.</li>\n</ul>\n</li>\n<li>\n<p>Second, we’ll set up Google Calendar</p>\n<ul>\n<li>We are going to add this skill a little bit differently. This time, we want to go to <code class=\"language-text\">Settings &gt; Calendar &amp; Email</code> and select <code class=\"language-text\">Add Account</code></li>\n<li>Select your account type</li>\n<li>Follow the on screen instructions to sign into your account and like your calendar to Alexa. You can also add your email at the same time</li>\n</ul>\n</li>\n<li>\n<p>Lastly, we’ll add in our smart light</p>\n<ul>\n<li>Go to <code class=\"language-text\">Devices</code> in the bottom right hand corner</li>\n<li>Press the ➕ in the top right of the screen and select <code class=\"language-text\">Add Device</code></li>\n<li>Select <code class=\"language-text\">Light &gt; [Your brand name]</code>. I am adding a TP-LINK Kasa light</li>\n<li>You will then most likely be prompted to set up your device in the lights proprietary app. Do this and then come back to the Alexa app and click discover devices</li>\n<li>Your device should be found and you can click add. It will then give you some options on naming the light and such</li>\n</ul>\n</li>\n</ol>\n<p>Now, we’re ready to set up our routines! We’ll start with our morning start route</p>\n<ol start=\"5\">\n<li>From the Alexa app, click on the hamburger menu on the top left of the screen and select <code class=\"language-text\">Routines</code></li>\n<li>Click the ➕ in the top right hand corner to add a new routine</li>\n<li>Add a routine name (I just selected Morning Start)</li>\n<li>\n<p>Add a <code class=\"language-text\">When this happens</code></p>\n<ul>\n<li>I chose <code class=\"language-text\">Voice</code> and said when Alexa hears: <em>“Alexa, good morning”</em></li>\n</ul>\n</li>\n<li>\n<p>Now it is time for the meat of the routine: the actions. First we will add an action to set the volume Alexa should speak at in the mornings</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Device Settings &gt; Volume</code> and set the volume you want Alexa to be at in the morning</li>\n</ul>\n</li>\n<li>\n<p>Next, we want Alexa respond to our good morning</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Alexa Says &gt; Customised</code>. Here you can tell Alexa to say whatever you want her to in response to your <em>“good morning”</em></li>\n</ul>\n</li>\n<li>\n<p>Next, we want Alexa to turn on our smart light</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Smart Home &gt; [The name of your light]</code> and click next</li>\n<li>Choose Power and make sure the switch is On and click next</li>\n<li>Done!</li>\n</ul>\n</li>\n<li>\n<p>Next, we want Alexa to read us the calendar</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Calendar &gt; Today&#39;s Calendar</code></li>\n<li>Click next and you’re all set up!</li>\n</ul>\n</li>\n<li>\n<p>Finally, we need to set up Alexa to play Apple Muxic</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Music</code></li>\n<li>Fill out form and select what you want Alexa to play</li>\n</ul>\n</li>\n</ol>\n<p>Now, we will set up the Morning end routine that will run when we leave the house in the morning</p>\n<ol start=\"14\">\n<li>From the Alexa app, click on the hamburger menu on the top left of the screen and select <code class=\"language-text\">Routines</code></li>\n<li>Click the ➕ in the top right hand corner to add a new routine</li>\n<li>Add a routine name (I just selected Morning End)</li>\n<li>\n<p>Add <code class=\"language-text\">When this happens</code></p>\n<ul>\n<li>I chose `Voice and said when Alexa hears: <em>“Alexa, goodbye”</em></li>\n</ul>\n</li>\n<li>\n<p>Now time for the actions! First we will add and action to have Alexa respond</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Alexa Says &gt; Customised</code>. Here you can tell Alexa to say whatever you want her to in response to your <em>“goodbye”</em></li>\n</ul>\n</li>\n<li>\n<p>Next, we want Alexa to turn the music off</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Device Settings &gt; Stop Audio</code></li>\n<li>Select the device to stop</li>\n<li>Click next to confirm</li>\n</ul>\n</li>\n<li>\n<p>Finally, we want Alexa to turn off the light</p>\n<ul>\n<li>Select <code class=\"language-text\">Add Action &gt; Smart Home &gt; [The name of your light]</code> and click next</li>\n<li>Choose Power and make sure the switch is Off and click next</li>\n</ul>\n</li>\n<li>Your Alexa and routines are all set up! Give it a test by saying <em>“Alexa, Good Morning”</em> and then, <em>“Alexa, goodbye”</em></li>\n</ol>\n<h4>Setting up The Weather Caja™</h4>\n<p>The Weather Caja™ is a box that will help me know what I need to do in the mornings. It will read out the forecast for the day and let me know what the current temperature, low temperatures, and high temperatures for the day are. It will do this using and OLED screen and 3 LEDs all run by an ESP8266 microcontroller. </p>\n<ol>\n<li>\n<p>Wire up your OLED screen to your ESP8266 using the following diagram\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/031f31a345a3238a48f231002be35b0c/8bef1/oled-to-wemos.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 60.45627376425855%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAACmFAAAphQGPVf7hAAADIklEQVQoz42Sf0zUZRzHvzaj6ZboVGw5oAUNcmAz1GURlnfSDwHT2ZUKeEKxcLVZocfmGVKaI3LNGSD+dhybOyHRVArh8hRn/XM2ryD6XufBOMS1nYbncXdfnnv13B1t/tln++z97PM8z+v5fJ7PR0Faz00PSfrNZD+bzLykmaSlJjF33mwy1lfz54gveoQJIWI6Nh7C5w8SCmuMh8IxD4Y1ocm90X8CqhI9tPtoOwnPF/JUyhPMmT2LpDmzyMxexIy8Ek79cD0OnBDRi3T3e1lb20Tqu1vJNFaTUbKNdKNZLN57lgbbzTiwsfkw6cuL2PVFLW2n22g5eYIq8y4ydKux205HcTEXEfjG1kdGmRll6RqU5RtRcg1SjeJxUzt7LvXFgQ2HjpHy0ps0NjVw+bKdnu4uTOYastcZaO/Zj3vEzm/uc7hvu8itbUHJ/4CpuhIe0W9CkT791Q0icWUZ0/TlceC3B4+QkltA3ddfceFiJ729vez4fDfp+QZOdFxh6B44h8boH71N1aFPSSyqQHmlmCm6Ugk0MvPFArEsawHPZWVPZnj4OE/nFbKv/ks62qx0d55nb30daStWY2k5yuCgm2vXrmD77gybNm98CFgyCVwlgZnkLFyoKg8cDhprzCTnF5P1VgUvbPiIxW9X8kzB+8zXGWg+fgTnmbP0WyyMdl2i8JN6lDcq4yWvNDIlWrKuWMxYtYWE1ypVxdtqwXHjV9IM20ks3E6CfguP6j9k/js1PLnGREfPL/jln0ZtXHal5YaXBeU7UXKKUF5ej7JsndRS8ViVlT1dv6vKXbudwft+kg0msirreX1HEytMB1iydT+p5XVYe534r9qRDUaTY9PuuEXRzgMsKv2Ype9Vs6RsGzkVn4m8fRc5dlV2WW0+iF91YbOew3H+R/7++Toe2090W9roPGll4PsLeFpbYxkSiRAIadwPamgy27B0Tb6kCWJTfy8QUhVfXx93nU7CbhfBv1yMqSqBW24iw0MwMkxAxh7cuTPJi/CwCTFBKBiMqpgMxbv8f+w/WFSFiK99Ph8ej0dOwZAY9nr5Y2DA9S8eQawekF0IiQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"OLED to ESP8266\"\n        title=\"OLED to ESP8266\"\n        src=\"/static/031f31a345a3238a48f231002be35b0c/b9e4f/oled-to-wemos.png\"\n        srcset=\"/static/031f31a345a3238a48f231002be35b0c/cf440/oled-to-wemos.png 148w,\n/static/031f31a345a3238a48f231002be35b0c/d2d38/oled-to-wemos.png 295w,\n/static/031f31a345a3238a48f231002be35b0c/b9e4f/oled-to-wemos.png 590w,\n/static/031f31a345a3238a48f231002be35b0c/8bef1/oled-to-wemos.png 789w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<ul>\n<li>D1 is the I²C Clock Pin</li>\n<li>D2 is the I²C Data Pin</li>\n</ul>\n</li>\n<li>Wire up your 3 LEDs to D5, D6, D7 pins</li>\n<li>Use the code from previous labs to connect the ESP8266 to the internet, specifically WiFi</li>\n<li>\n<p>Initialize the display using the following code</p>\n<div class=\"gatsby-highlight\" data-language=\"c#\"><pre class=\"language-c#\"><code class=\"language-c#\">#include &lt;SPI.h&gt;\n#include &lt;Wire.h&gt;\n#include &lt;Adafruit_GFX.h&gt;\n#include &lt;Adafruit_SSD1306.h&gt;\n#define SCREEN_WIDTH 128\n#define SCREEN_HEIGHT 64\n#define OLED_RESET     -1\nAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, OLED_RESET);</code></pre></div>\n</li>\n<li>\n<p>After you have initialized the display begin communication in the setup() function with the following code</p>\n<div class=\"gatsby-highlight\" data-language=\"c#\"><pre class=\"language-c#\"><code class=\"language-c#\">if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {\n  Serial.println(&quot;[OLED]\\tSSD1306 allocation failed&quot;);\n  for(;;);\n}</code></pre></div>\n</li>\n<li>\n<p>Now you can write to the display using the following code</p>\n<div class=\"gatsby-highlight\" data-language=\"c#\"><pre class=\"language-c#\"><code class=\"language-c#\">display.clearDisplay();\ndisplay.setTextSize(1);\ndisplay.setTextColor(WHITE);\ndisplay.setCursor(0,0);\n// Display static text\ndisplay.println(&quot;[Your Text]&quot;);\ndisplay.display();</code></pre></div>\n</li>\n<li>Now you can write to the screen. </li>\n<li>Next, you should use the http client from ESP8266 to get the weather from any API you would like</li>\n<li>Use the <code class=\"language-text\">ArduinoJson</code> library to parse the JSON payload. </li>\n<li>Based on these values from the API, you are able to turn on and off certain lights if the clothes you need to wear need to be lit up</li>\n<li>Now, you have everything set up for your very own Weather Caja™. You just need to put it all in a box and make it look nice!!</li>\n</ol>\n<h3>Certification of Work</h3>\n<p>I certify that the solution presented in this lab represents my own work. In the case where I have borrowed code or ideas from another person, I have provided a link to the author’s work in the references, and included a citation in the comments of my code. </p>\n<p>— Matthew Robertson</p>\n<h3>Appendix</h3>\n<h4>Appendix 1: DIAGRAMS</h4>\n<p>Alexa Logical Layout 1\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/6191ea95ac49bc32d1d8ad7a6544372a/566ce/alexa-logical-1.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 72.72727272727273%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAABcSAAAXEgFnn9JSAAACSklEQVQ4y5WTy27TQBSGveMdeAyWiAeAFRLvwJZVN9yFugpFStOINPfIduLcPL7OJA2JI0pF5CYQCRRQqVCyQF1nAfufmXHdhkBFuxjNeI7nO/+5KZ7n4arLdd2zs2VZCMMQi8UClFIoVwXFMLH7vi+Bs9kMy+Xy8sB1UHx2HAe1Wg3T6RTz+Ry9Xg/KRT+vhrV+J5QIWLPZRKvVgm3bME1TqlXWQX8CxLcLh+82X67ny4e6rqNYLIIQIuFGvYFCscxtJFIYexWexLc4y/tTR3vUxZDa6NFIlVhCYfTWRfCG4W3QQa/rR0CR3EKhgGw2i0wmI/MSQT10qYeH2Q7upt7hQZrC4qoYY/wNBfU9mBbD5m6IR6kJUuUAinioaZqEqaoqw0mn0zIc2+HOSAs3Xx7g2osvuLE1hqpVUalUUCqV0W41oBo27j37hjuPf2BjOzwH5nI5GYpQl0wmT4E8LA68venj+pP3uPXU43ZD5rHdbsO2CKoNgo3CHPdfn+CVPo6Ao9EIiUQCOzs7MmTDMM7yyBhFtqTj+dYutjMl1KpVXtm2hAq7xaGaWoKulblNg9Lv9zGeTKRH0QIin2KtFoXxXHk2QYf5XLklo8nn87JNaIehy3hBuIBOtwslCAKEh4cYDAZ/9VtcRdlWvGWcldYSHWHU67yye/h5dIRfBxN8nXyGIgyEyxf7Rc0d360uEYVJTDDi4+Tjko/fEqNPx1FjC+P6dPxv/OLRGw4D7A+PYYffsf9hej56/xq5y8BFGoy6hnpVBeF1+A1t+JGRjvv1NwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Logical Layout\"\n        title=\"Logical Layout\"\n        src=\"/static/6191ea95ac49bc32d1d8ad7a6544372a/b9e4f/alexa-logical-1.png\"\n        srcset=\"/static/6191ea95ac49bc32d1d8ad7a6544372a/cf440/alexa-logical-1.png 148w,\n/static/6191ea95ac49bc32d1d8ad7a6544372a/d2d38/alexa-logical-1.png 295w,\n/static/6191ea95ac49bc32d1d8ad7a6544372a/b9e4f/alexa-logical-1.png 590w,\n/static/6191ea95ac49bc32d1d8ad7a6544372a/f9b6a/alexa-logical-1.png 885w,\n/static/6191ea95ac49bc32d1d8ad7a6544372a/566ce/alexa-logical-1.png 1100w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Alexa Logical Layout 2\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/7da6c38c9f50c332c1e39ff9e04bf910/4239f/alexa-logical-2.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.13432835820896%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAABcSAAAXEgFnn9JSAAACIUlEQVQ4y51Ty27TUBD1mg1/woK/YMFP8AusECsIlbIDKY+GKC/lYSck4d5rO25Tt4HGSkkTpIIiobCMhLKphBArhMM9zL2JIwdahLo4mtF47pk5M2PDtu0fhF+E1U3AOV9Np9PVbDZbCSFWBgVDAm4Cx3FAhFgsFlgulzqmCH9uEuS/QNW3VoHIJGNMdrtdOZ/PNTzPk/EO5XWdEMGOdV1Xd2ZZFlqtFohIQ8W2hJvKiLAmW/tc2GBC5djodDowTRPlchnUoZZdqVSQz+dB3cKgB+GmqpKhqyu7JSfSvitw7DIckDVNi9DQxFFhlR9Bd6gcqiCz2SwUVCWHiCPJj/MeHuTe4NlLBsHW39SbaAxxGL1eLywWiyiVSlJJUchkMnhNcoTgqJtt3EmOcevJDPdeBPBdvpEvdmYb+Zowl8uh2WzKarWqLNLpNDrU5ZqwhbtPB7j96B3uJw9xRITcdmJz3oXR7/fDI99HIpGQhUIBqVRKd+nGJCdTZTzc28fz/Qo67Vd6GX/J5RvJJ4NBODo7Q61Wk41GQwfjS1EPPYfDYW0ceq4+E1WY8rcLsXs00wNvvZRhEITnkwl835fxQcdvUJ2LIJk8ttXofEbDAN8/XOBbMMX78RQGHWOoDpIgrxv0Vb7ruLBaFk7EMS4/fsXn2SVOxxfY+VOuG/RVpMoyzhC8HSEYfkH/0xKn55P/J/yTeDsKuoRqvYp6vU6LYfgNgM2VrS5ruRUAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Logical Layout\"\n        title=\"Logical Layout\"\n        src=\"/static/7da6c38c9f50c332c1e39ff9e04bf910/b9e4f/alexa-logical-2.png\"\n        srcset=\"/static/7da6c38c9f50c332c1e39ff9e04bf910/cf440/alexa-logical-2.png 148w,\n/static/7da6c38c9f50c332c1e39ff9e04bf910/d2d38/alexa-logical-2.png 295w,\n/static/7da6c38c9f50c332c1e39ff9e04bf910/b9e4f/alexa-logical-2.png 590w,\n/static/7da6c38c9f50c332c1e39ff9e04bf910/f9b6a/alexa-logical-2.png 885w,\n/static/7da6c38c9f50c332c1e39ff9e04bf910/4239f/alexa-logical-2.png 1139w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h4>Appendix 2: Configs</h4>\n<p>Morning Start Routine\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0c91c60e40fc2bae2c366f6c58381937/7e0ae/morning_start.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 216.42512077294685%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAArCAYAAAB4pah1AAAACXBIWXMAAAsSAAALEgHS3X78AAAE9ElEQVRIx5VWWVMbRxDeP4AD2hVCXDLYBgPm0oU4DZjDOkBIAgySAAkkQBxFuQKxk3JSlTyl4lT+cqe/3p1lV4CQH1qtmdnp6ePrQ/PGctQ594nerB1Rz/t9Mqay1D69TdgHf4pw7p/dpYH1ktBw4oR8vK9BQO9inhYKn+ltvEyeSMa+pEez5IlmbGqLbJFuPQjet1ykpcNbmt2/odTZN9nXfDPbFFgquD5WGuDCq5UDer16KDTImgSW8rYV4D+F0kJ4sGthzxQ4+LEsh9jUoxlbu2DmnCK5S5rauaLY7jXN5z/T6EbVZYVvZoe8fDfAwvqWC6R1ze/RAPsPGrxlwdBI+Q8XoXlb2KRWSxNlgRdCwTkGxmKRvCxcBI6wQ+HUkeSJmCUfPxIUWOMMmC1wnoO5eiyCNRzCd7plsjGVEzMaRdret7Vkn0JzXmtd7/M0tn1Nw1s1GkhUaGjznIbS59TN+/UCH6wdQhVp0Ah+aoWfhKfFdwIVi8N/+K4ZfGqIzPb1n7R+8lWimb74g1ZKd7R2/EUoXvmVNmu/C4QUAhoK7Fw6oMHMpUQY0R5NVW3cIQPerB5JsLoZFoYDp08KNPinLbYt5sI8mG5nR8SkHzLZhEjz+ftgry4wWufCPke1Rq85wgNs7kCyaqL/GeEPhOGO5DL/dDJg/cz94AzOZrR14RA0mRQsakC5Z+uG9PgZ6ckaGU1q5xQK8px/J2O9ygK5pnlXyuRdOiTv8iG1I0ti9wFoSI5v9NJfIscMSiRN7QwJL6vsvCD52ywFLZN9szvUu3xAHawp6hmKhaJmgwOLfJbvtb7VEsVvv0uRRa2bSJ/R+OapABxCnS3hMVKFNvDBVEpr58h28sWnXkfJepSm77k7U1h6W2iTVBnDGtVa9RMnN8ms6uo72wLEAOWrl5N+rvJNGpUqsqDhxLGYDf4uVZE2gUKM/zhH7oOjwkNo92JBfK7hT7h4K620/0PRbkwgtNZ+9g0KhLlnFg3wl+xznEERaIa6KgIhvTW4IZvOlqmKg65cMOUmQxEi7DQZkQnwix0MH5SoHs5tBR+sVR95jlTbYNgcUfznf0R1tM1w9oJ5TaATYt7hwGJD2IhSgM20CRscKjNMk3JNFdT6nHb50PZV1AmfTMMUVGe2QCB8vso9gyMcztZocss0G/AIyfpM/PiU2WqvezGvYJOnSPFOJin4ERPYS25cCIhaP1a56wW6YPNiImnDRldwcWSI4YBJuwUTF83cP6J1zO1S/3qZA/NJCgS0AmgDzLGGhuDYg+ZIgMcGAETYhM1aiRJ3/8oFQGUofiywGWUfSspxK4VPx60qpFLNNeMwIuxq44JL1EHOaDsibsTc7bQ+WIJDmK2Q3gw1mnl4WNrnQemCBjdOH4xx3hh4zg3eZx7Qnkon51DpovpzO/0skzEzI4cn2elj3AJCVkAwRNmXeUwRstYKWkow/iOofnad4DCYvaRw7koqDgD+LnVKw8mKBMTHJhu7v5Cx91X8jL2hREW+MayS9WrlSNaSeh5+eZjHj5HkKXmsgWmED8d5PEGN83E50y//I+P0b/KtnZAe3qRQ7pqiuzf298HslRA0FR9K/VswKw4qT+8i1N8TuLRMpKhlocBUpBeTG9TCBOj4HQDv4bRTE69W71xEFS+NMYg/8rApg2fplumOVstfKFH9TfytfFgfzP8BvpOmeHY3WaEAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Alexa Morning Start Routine\"\n        title=\"Alexa Morning Start Routine\"\n        src=\"/static/0c91c60e40fc2bae2c366f6c58381937/b9e4f/morning_start.png\"\n        srcset=\"/static/0c91c60e40fc2bae2c366f6c58381937/cf440/morning_start.png 148w,\n/static/0c91c60e40fc2bae2c366f6c58381937/d2d38/morning_start.png 295w,\n/static/0c91c60e40fc2bae2c366f6c58381937/b9e4f/morning_start.png 590w,\n/static/0c91c60e40fc2bae2c366f6c58381937/7e0ae/morning_start.png 828w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Morning End Routine\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/0c91c60e40fc2bae2c366f6c58381937/7e0ae/morning_start.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 216.42512077294685%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAArCAYAAAB4pah1AAAACXBIWXMAAAsSAAALEgHS3X78AAAE9ElEQVRIx5VWWVMbRxDeP4AD2hVCXDLYBgPm0oU4DZjDOkBIAgySAAkkQBxFuQKxk3JSlTyl4lT+cqe/3p1lV4CQH1qtmdnp6ePrQ/PGctQ594nerB1Rz/t9Mqay1D69TdgHf4pw7p/dpYH1ktBw4oR8vK9BQO9inhYKn+ltvEyeSMa+pEez5IlmbGqLbJFuPQjet1ykpcNbmt2/odTZN9nXfDPbFFgquD5WGuDCq5UDer16KDTImgSW8rYV4D+F0kJ4sGthzxQ4+LEsh9jUoxlbu2DmnCK5S5rauaLY7jXN5z/T6EbVZYVvZoe8fDfAwvqWC6R1ze/RAPsPGrxlwdBI+Q8XoXlb2KRWSxNlgRdCwTkGxmKRvCxcBI6wQ+HUkeSJmCUfPxIUWOMMmC1wnoO5eiyCNRzCd7plsjGVEzMaRdret7Vkn0JzXmtd7/M0tn1Nw1s1GkhUaGjznIbS59TN+/UCH6wdQhVp0Ah+aoWfhKfFdwIVi8N/+K4ZfGqIzPb1n7R+8lWimb74g1ZKd7R2/EUoXvmVNmu/C4QUAhoK7Fw6oMHMpUQY0R5NVW3cIQPerB5JsLoZFoYDp08KNPinLbYt5sI8mG5nR8SkHzLZhEjz+ftgry4wWufCPke1Rq85wgNs7kCyaqL/GeEPhOGO5DL/dDJg/cz94AzOZrR14RA0mRQsakC5Z+uG9PgZ6ckaGU1q5xQK8px/J2O9ygK5pnlXyuRdOiTv8iG1I0ti9wFoSI5v9NJfIscMSiRN7QwJL6vsvCD52ywFLZN9szvUu3xAHawp6hmKhaJmgwOLfJbvtb7VEsVvv0uRRa2bSJ/R+OapABxCnS3hMVKFNvDBVEpr58h28sWnXkfJepSm77k7U1h6W2iTVBnDGtVa9RMnN8ms6uo72wLEAOWrl5N+rvJNGpUqsqDhxLGYDf4uVZE2gUKM/zhH7oOjwkNo92JBfK7hT7h4K620/0PRbkwgtNZ+9g0KhLlnFg3wl+xznEERaIa6KgIhvTW4IZvOlqmKg65cMOUmQxEi7DQZkQnwix0MH5SoHs5tBR+sVR95jlTbYNgcUfznf0R1tM1w9oJ5TaATYt7hwGJD2IhSgM20CRscKjNMk3JNFdT6nHb50PZV1AmfTMMUVGe2QCB8vso9gyMcztZocss0G/AIyfpM/PiU2WqvezGvYJOnSPFOJin4ERPYS25cCIhaP1a56wW6YPNiImnDRldwcWSI4YBJuwUTF83cP6J1zO1S/3qZA/NJCgS0AmgDzLGGhuDYg+ZIgMcGAETYhM1aiRJ3/8oFQGUofiywGWUfSspxK4VPx60qpFLNNeMwIuxq44JL1EHOaDsibsTc7bQ+WIJDmK2Q3gw1mnl4WNrnQemCBjdOH4xx3hh4zg3eZx7Qnkon51DpovpzO/0skzEzI4cn2elj3AJCVkAwRNmXeUwRstYKWkow/iOofnad4DCYvaRw7koqDgD+LnVKw8mKBMTHJhu7v5Cx91X8jL2hREW+MayS9WrlSNaSeh5+eZjHj5HkKXmsgWmED8d5PEGN83E50y//I+P0b/KtnZAe3qRQ7pqiuzf298HslRA0FR9K/VswKw4qT+8i1N8TuLRMpKhlocBUpBeTG9TCBOj4HQDv4bRTE69W71xEFS+NMYg/8rApg2fplumOVstfKFH9TfytfFgfzP8BvpOmeHY3WaEAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Alexa Morning Start Routine\"\n        title=\"Alexa Morning Start Routine\"\n        src=\"/static/0c91c60e40fc2bae2c366f6c58381937/b9e4f/morning_start.png\"\n        srcset=\"/static/0c91c60e40fc2bae2c366f6c58381937/cf440/morning_start.png 148w,\n/static/0c91c60e40fc2bae2c366f6c58381937/d2d38/morning_start.png 295w,\n/static/0c91c60e40fc2bae2c366f6c58381937/b9e4f/morning_start.png 590w,\n/static/0c91c60e40fc2bae2c366f6c58381937/7e0ae/morning_start.png 828w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h4>Appendix 3: Demo and Images</h4>\n<p>Weather Caja™ Image\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto;  max-width: 590px;\"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/67b4687b9104542914a724d8c4b3a04b/d19b4/weather_caja.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 216.42512077294685%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAArABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAMEAQX/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/2gAMAwEAAhADEAAAAeOtuFoBOy57coaZaquG9nEYX//EABwQAAIBBQEAAAAAAAAAAAAAAAECAAMREiExMv/aAAgBAQABBQJtG8XYb26FInGRmc0akAKxe4tc+k7u5G8jkTZcjP/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BX//EABgRAAMBAQAAAAAAAAAAAAAAAAABEBEh/9oACAECAQE/AY8UfTD/xAAcEAACAgMBAQAAAAAAAAAAAAAAARAhETFxIOH/2gAIAQEABj8CxheLij6YcOtD6Ip7H0Vz/8QAHhABAAMAAgMBAQAAAAAAAAAAAQARITGRUWFxQaH/2gAIAQEAAT8hVo6J8HUBah1Dv7GKpulRVuKa8vMVmMCfscy6K8wynfKG39ozFqGj7Wzs0X8jmNYOwr1/k//aAAwDAQACAAMAAAAQI/zO/wAv/8QAGBEBAAMBAAAAAAAAAAAAAAAAAQARIRD/2gAIAQMBAT8QXa4C7Kg0ZLn/xAAZEQEBAAMBAAAAAAAAAAAAAAABABAhQRH/2gAIAQIBAT8QDUy0ry9h0Yf/xAAcEAEBAQEAAwEBAAAAAAAAAAABEQAhMUFRsfH/2gAIAQEAAT8QOEx84rY9TvxjmlIJhQ0Ci8wwU7vCKETDdxb5jII6Ab3CGvqHvrkmgBJ5M32v0yfYKqyPdC9REUujy/pq+u5AFzeKjuRQK+0O/9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Weather Caja Pic\"\n        title=\"Weather Caja Pic\"\n        src=\"/static/67b4687b9104542914a724d8c4b3a04b/c739e/weather_caja.jpg\"\n        srcset=\"/static/67b4687b9104542914a724d8c4b3a04b/8ee9c/weather_caja.jpg 148w,\n/static/67b4687b9104542914a724d8c4b3a04b/ebbe7/weather_caja.jpg 295w,\n/static/67b4687b9104542914a724d8c4b3a04b/c739e/weather_caja.jpg 590w,\n/static/67b4687b9104542914a724d8c4b3a04b/d19b4/weather_caja.jpg 828w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h4>Appendix 2: Code</h4>\n<p>Available on <a href=\"https://github.com/mattrobertson14/it441-final-project\">GitHub</a></p>","frontmatter":{"title":"Final Project - The Morning Routine","date":"December 12, 2019","description":"Final Project for IT441. In this project, Alexa, a Smart bulb, Apple Music, Google Calendar, an Arduino with a screen, and some LED lights help me with my morning routine","github_link":"https://github.com/mattrobertson14/it441-final-project"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/final-project/","previous":{"fields":{"slug":"/lab-5/"},"frontmatter":{"title":"Lab 5 - Home Assistant"}},"next":null}}}