{"componentChunkName":"component---src-templates-blog-post-js","path":"/lab-2/","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":"3ffd14ec-3690-5a72-aad6-1ce14823d9a3","excerpt":"Objective The purposes of this lab are to: Reinforce enumerating requirements from use cases and user stories Become familiar with the Arduino platform and its…","html":"<h3>Objective</h3>\n<p>The purposes of this lab are to:</p>\n<ul>\n<li>Reinforce enumerating requirements from use cases and user stories</li>\n<li>Become familiar with the Arduino platform and its programming methodologies.</li>\n<li>Program an Arduino-based microcontroller to use the GPIO pins to control LEDs.</li>\n<li>Develop iteratively, beginning with a minimum viable product and add functionality until the requirements are met.</li>\n</ul>\n<h3>Materials</h3>\n<p>The materials used for this lab were</p>\n<ul>\n<li>Personal computer (MacBook Pro)</li>\n<li>1 x ESP8266 Wemos D1 Mini (Microcontroller)</li>\n<li>1 x USB -> MicroUSB cable for connecting the Microcontroller to the computer</li>\n<li>1 x Breadboard</li>\n<li>1 x Stop light LED component with built in resistors</li>\n<li>5 x Male to male jumper cables</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/esp8266/Arduino/tree/master/libraries/ESP8266WebServer\">ESP8266WebServer Docs</a></li>\n<li><a href=\"https://www.esp8266.com/viewtopic.php?f=8&#x26;t=4685\">Forum on how to use PROGMEM to store HTML</a></li>\n<li><a href=\"https://www.arduino.cc/en/main/software\">Arduino IDE</a></li>\n</ol>\n<h3>Procedures</h3>\n<ol>\n<li>Install the Arduino IDE from <a href=\"https://www.arduino.cc/en/main/software\">here</a></li>\n<li>\n<p>Set up your environment to work with the ESP8266 Wemos D1 Mini</p>\n<ul>\n<li>\n<p>Go to Preferences and add the following URL to the <strong>Additional Boards Manager URLs</strong> field</p>\n<div class=\"gatsby-highlight\" data-language=\"md\"><pre class=\"language-md\"><code class=\"language-md\">http://arduino.esp8266.com/stable/package<span class=\"token italic\"><span class=\"token punctuation\">_</span><span class=\"token content\">esp8266com</span><span class=\"token punctuation\">_</span></span>index.json</code></pre></div>\n</li>\n<li>Go to <code class=\"language-text\">Tools -&gt; Board: [Some Board Name] -&gt; Boards Manager</code></li>\n<li>Search for <em>Wemos</em></li>\n<li>Install esp8266 by ESP8266 Community (<em>Note: this tutorial was made using verions 2.5.2 and does not guarantee that everything will work the exact same in later versions</em>)</li>\n<li>\n<p>Go to <code class=\"language-text\">Tools -&gt; Board: [Some Board Name]</code> again and select the following board</p>\n<div class=\"gatsby-highlight\" data-language=\"md\"><pre class=\"language-md\"><code class=\"language-md\">LOLIN(WEMOS) D1 R2 &amp; Mini</code></pre></div>\n</li>\n<li>Go to <code class=\"language-text\">Tools -&gt; Port</code> and select the port that your Arduino is plugged into. (If you have issues on this step, you can find help <a href=\"https://learn.sparkfun.com/tutorials/usb-serial-driver-quick-install-/all\">here</a>)</li>\n<li>Go to <code class=\"language-text\">Tools -&gt; Erase Flash:</code> and select <code class=\"language-text\">All Flash Contents</code></li>\n<li>You are ready to start coding!</li>\n</ul>\n</li>\n<li>Implement WiFi on the Arduino using the example WiFi setup by going to <code class=\"language-text\">File -&gt; Examples -&gt; ESP8266WiFi -&gt; WiFiClientBasic</code></li>\n<li>After you have tested that you are able to connect to network, you are ready to start setting up your web server. </li>\n<li>Using the docs found for the <a href=\"https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer\">ESP8266WebServer Library</a>, create a web server that will turn on and off the lights and set them to a cycle mode. For the cycle mode, I would suggest using the millis() library so that you don’t lock up your server by using delay()‘s.</li>\n<li>Once you have all of your code written and you’re ready to test it, connect your Arduino to the computer and flash it by going to <code class=\"language-text\">Sketch -&gt; Upload</code>. </li>\n<li>Once it has been flashed, keep it connected and open up the serial monitor (<code class=\"language-text\">Tools -&gt; Serial Monitor</code>) so that you can monitor the server’s output.</li>\n<li>You have now implemented a stoplight using an Arduino! What else can you do using the same simple libraries??</li>\n</ol>\n<h3>Thought Questions</h3>\n<ol>\n<li>\n<h4>What are some key differences between developing this lab on a Raspberry Pi, and developing on Arduino?</h4>\n<p>Developing on a Pi has a lot of overhead. There are a lot of different steps needed to even get the Pi up and running and able to host a web server. A Pi has multiple uses other than running a program for you since it has an entire OS on it. An Arduino on the other hand has a single purpose: be given compiled code and run it whenever I have power. Because of the simplistic nature, I had to be more creative to do things that are pretty easily implemented on a Pi (such as timeouts).</p>\n</li>\n<li>\n<h4>What are the strengths and trade-offs of each of these platforms?</h4>\n<p>I think that a Pi can do more complicated things quicker. As well, a Pi is a bit easier to work with. An arduino on the other hand is much more straight forward. There are two functions that need to be implemented and then you have a working product. As well, there is no overhead with starting/stopping a server which I think is incredible. It either has power or it doesn’t and if it does have power, it runs. </p>\n</li>\n<li>\n<h4>How familiar were you with the Arduino platform prior to this lab?</h4>\n<p>I had never used the Arduino platform prior to this lab. However, I will definitely be using it going forward it is an incredibly easy platform to work with and very powerful. </p>\n</li>\n<li>\n<h4>What was the biggest challenge you overcame in this lab?</h4>\n<p>The biggest challenge I had to overcome was getting my Arduino on WiFi. For one reason or another, my Arduino really struggled to get connected. It wasn’t until I erased all settings on the Arduino when I flashed the code (instead of just the sketch) that it actually worked for me.</p>\n</li>\n<li>\n<h4>Please estimate the total time you spent on this lab and report.</h4>\n<p>I spent about 1.5 hours on this project as a whole. Most of that time was familiarizing myself with the Arduino architecture.</p>\n</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: System Interface - Web Page</h4>\n<p>State: Startup, /lights-out\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/d3e4c54b7531058b67078a58b48e20a4/f570d/stoplight-off.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: 77.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABzElEQVQ4y6WTW5OaQBCFeV8FBEE3iwreuKlEZ7hauqwRtSqV/P9/c9IjbqqSrEtVfDh1mJ7uj56btC0rRLzAiuVY8RxhxOHMfAzHLkYT0tgjJ9H4GrvJpthVUx/uPIQbLLH8yiFVlwsOxyMOVYVd+UZ+Jj8gLXKseQaeJNjEMXiaIclzMHKW5IhYfAUkRYEf5Suq0xFxVkByPRdzdwbPF17L9XwEgUffIZKEI01jMM7g+x7lBXD9EM5khqE9wXRGtWGAuRdgOnchyW0FsvyvWq02dL2LvNjidL5gs2F4emrd5mUo5Iqi1mPBaMswDBOSpun4WwLU6WgYDIZYhgusgpA6DmGavTqH5v/Mr73ff4YkCj+Cir+PbAdVkuEnT1AwDoOA9/JF3BQd3ktQb8BXgp3WtPlr1gjs9foNwJGDbZGi3CXgdCiG0QT8ZMmqWgOPb7Tkc4o84+gaj3R4AxZ5iv0uBWcPLlkhoD2yEZdbsPMeG7qLYtMfBDrIvu2Rfi/BqdOHgKragWUNsFxFWEQR3cMFHYrxf8COcIqLOf3FhmG70Mzn37APawTws4v9Hu9aDsyxD71v3e3uPf/Li9UM1HQDWte8PrcmoHh6vwANNaZ7qnb9ywAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Stoplight Page Off\"\n        title=\"Stoplight Page Off\"\n        src=\"/static/d3e4c54b7531058b67078a58b48e20a4/b9e4f/stoplight-off.png\"\n        srcset=\"/static/d3e4c54b7531058b67078a58b48e20a4/cf440/stoplight-off.png 148w,\n/static/d3e4c54b7531058b67078a58b48e20a4/d2d38/stoplight-off.png 295w,\n/static/d3e4c54b7531058b67078a58b48e20a4/b9e4f/stoplight-off.png 590w,\n/static/d3e4c54b7531058b67078a58b48e20a4/f9b6a/stoplight-off.png 885w,\n/static/d3e4c54b7531058b67078a58b48e20a4/f570d/stoplight-off.png 960w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>State: RED on, during cycle or manual\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/ebaa16bfbc609529750cbc0831e1db5a/4909f/stoplight-red.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: 66.03970741901776%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABD0lEQVQ4y62RTW6DMBCFc4AqwTZQIiVAjISNnUTtgr+CCF00qqqepLsepPuetZtXg8SiUtJEkMVoNG+eP82MZ5QyEELR5SGGerGwsFqtUaQZmqpGGIa9durNELP/mpZF4PsBdFFgX9fgUdRrp7xXAyMh8cUTfAcCiVSwzngvApmJuQHuYoEfugHmAUqR4M54GRk5ITFALiU+9o/43D1AKH3We/XK0qzcvJRojiW01kabCBQGeDzkeG1zaHULYCyRHSpkbQV1i5WFuWH21iJ7f4babvu7TgLG5pfTpxxpVSBJ1LQJO912XHh+BG/N4bjeOOBQd5kwG85GwuEK1Hb/9EZNSKkN5i7B7pegBn5pwl9OZErlaIKrmwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Stoplight Page Red\"\n        title=\"Stoplight Page Red\"\n        src=\"/static/ebaa16bfbc609529750cbc0831e1db5a/b9e4f/stoplight-red.png\"\n        srcset=\"/static/ebaa16bfbc609529750cbc0831e1db5a/cf440/stoplight-red.png 148w,\n/static/ebaa16bfbc609529750cbc0831e1db5a/d2d38/stoplight-red.png 295w,\n/static/ebaa16bfbc609529750cbc0831e1db5a/b9e4f/stoplight-red.png 590w,\n/static/ebaa16bfbc609529750cbc0831e1db5a/f9b6a/stoplight-red.png 885w,\n/static/ebaa16bfbc609529750cbc0831e1db5a/4909f/stoplight-red.png 957w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>State: YELLOW on, during cycle or manual\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/b7f68227c9c8ae787bbae0a97ab3fb3d/4909f/stoplight-yellow.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: 66.4576802507837%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABH0lEQVQ4y6WTb06DMBiHd4IBbQFnMhYYgQIzgcmfUcIy/WCcHtMDeAJP4AX84A08xM+WuMVMmSb98KTll74P75umE8ZsUCph35DfKrcsgvncQ1lWEK2A7/tD9mvNFxNC6HDoFJUbhgnPW6DebND1PYJgOWRjNYqjUK2nmKaFKIohigIiz8F5Mnr2wFmhIYUJ57hf13goalxlmfyJhtCSwmXIcdc32G9rRHGm2aFhIU043p4FPl46lOsM0ykB1RFyOfLrU4t3Kb3OpdDQEKpLCeXI7U5A3Hb6Iyuh6rDa71A93iBbrYZMSxjHHE3fotkKpKlmhyq3HReXi3DAcS/+L/zBIacMzOewgxSEOUfh2ZcyiiqWQurMQN3ZsCd/dPgJ1rNNyhvfpTQAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Stoplight Page Yellow\"\n        title=\"Stoplight Page Yellow\"\n        src=\"/static/b7f68227c9c8ae787bbae0a97ab3fb3d/b9e4f/stoplight-yellow.png\"\n        srcset=\"/static/b7f68227c9c8ae787bbae0a97ab3fb3d/cf440/stoplight-yellow.png 148w,\n/static/b7f68227c9c8ae787bbae0a97ab3fb3d/d2d38/stoplight-yellow.png 295w,\n/static/b7f68227c9c8ae787bbae0a97ab3fb3d/b9e4f/stoplight-yellow.png 590w,\n/static/b7f68227c9c8ae787bbae0a97ab3fb3d/f9b6a/stoplight-yellow.png 885w,\n/static/b7f68227c9c8ae787bbae0a97ab3fb3d/4909f/stoplight-yellow.png 957w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>State: GREEN on, during cycle or manual\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/b699ce1935b93c6a20e25005a33c8a8e/f4b04/stoplight-green.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: 66.11053180396247%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABHklEQVQ4y62T0UrDMBSG9wDi0iZpp7CtbmNNqmB1W9rF6d0qiCBeC76DN76E3uj7yr+TwLxQo2K9+Aj8Ofn5zyGnw7lATPAvYCxGvz/AYmFg7RmyYeY1Hqh3dOKYI4riTzi922UYkImpatjVCqODkddCbxzvhu78CGMRprmCLU9hj0+glA7WbvnRUJPJ1dzgmjjUhddaGeaU8NwYXBCaDKO2hq7NZr3EZbNEUfxDQkUJ19UMDVH4llvOMJ/kqJ7vUL3e0zzbJORkuMugyiPUb0+o8QJdlWA7zN/9LWFECcc5zMMNzOMt9FST1qJlpwuZopdk6MkhZJL+/h8GoXUSYw05oS8jku9r3ab4XSZTHpgL5xIi3SP2wYUMJtvu8gaZeUzBPYvSeQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Stoplight Page Green\"\n        title=\"Stoplight Page Green\"\n        src=\"/static/b699ce1935b93c6a20e25005a33c8a8e/b9e4f/stoplight-green.png\"\n        srcset=\"/static/b699ce1935b93c6a20e25005a33c8a8e/cf440/stoplight-green.png 148w,\n/static/b699ce1935b93c6a20e25005a33c8a8e/d2d38/stoplight-green.png 295w,\n/static/b699ce1935b93c6a20e25005a33c8a8e/b9e4f/stoplight-green.png 590w,\n/static/b699ce1935b93c6a20e25005a33c8a8e/f9b6a/stoplight-green.png 885w,\n/static/b699ce1935b93c6a20e25005a33c8a8e/f4b04/stoplight-green.png 959w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h4>Appendix 2: Server Output (via Serial)</h4>\n<p><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/dfa95aad6c1fa60070410995feda1226/b5f89/SerialServerOutput.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: 35.75615474794842%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsSAAALEgHS3X78AAABGklEQVQoz32QW2+DMAyF+f9/DBV4aAXt1D30EsbKpQVCChRCe2ZbYq2mbZaOnBj74zjOYX/AbreHOh6RpinyPEdRnJFnOcpLiaqqUNW1ZGMMTGPQdZ3IXPneoKbvWmtkWQZHKSXDjW6QEVBTbtsO1loUeQFdazweD9QVQcv6e7gh0DRNeA2uOWma4UJO7ve7uLjdBnQEHIaBXCtxPY4jYhWLkiQhfeJ0SglgBMSzHPwz5yNOaM0zDVmUZYm+72UtbmJnv8ezzj1znwB5peu1FQDDeI1hGPFfzJCnXhzODbMjBk505mztJG/5U38FP5Pj+z4WCw+e58F1XYRhiPV6jSiKJL9qs9lguVxJ/3b7LmffD6j+hiAI6L7EF+afFgAc6QcgAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Serial Server Output\"\n        title=\"Serial Server Output\"\n        src=\"/static/dfa95aad6c1fa60070410995feda1226/b9e4f/SerialServerOutput.png\"\n        srcset=\"/static/dfa95aad6c1fa60070410995feda1226/cf440/SerialServerOutput.png 148w,\n/static/dfa95aad6c1fa60070410995feda1226/d2d38/SerialServerOutput.png 295w,\n/static/dfa95aad6c1fa60070410995feda1226/b9e4f/SerialServerOutput.png 590w,\n/static/dfa95aad6c1fa60070410995feda1226/b5f89/SerialServerOutput.png 853w\"\n        sizes=\"(max-width: 590px) 100vw, 590px\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<h4>Appendix 3: Code</h4>\n<p>Available on <a href=\"https://github.com/mattrobertson14/it441-arduino-stop-light\">GitHub</a></p>","frontmatter":{"title":"Lab 2 - Arduino Stop Light 🚦","date":"October 01, 2019","description":"Lab 2 for IT441. In this lab, a stoplight is implemented using a ESP8266 micro-controller (Arduino) and a breadboard.","github_link":"https://github.com/mattrobertson14/it441-arduino-stop-light"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/lab-2/","previous":{"fields":{"slug":"/lab-1/"},"frontmatter":{"title":"Lab 1 - Raspberry Pi Stop Light 🚦"}},"next":{"fields":{"slug":"/lab-3/"},"frontmatter":{"title":"Lab 3 - Arduino Stop Light w/ Distance Detector 🚦"}}}}}