{"id":606,"date":"2025-12-10T15:42:50","date_gmt":"2025-12-10T15:42:50","guid":{"rendered":"https:\/\/portfolio.wcu.edu\/asmccoy2\/?p=606"},"modified":"2025-12-10T15:46:24","modified_gmt":"2025-12-10T15:46:24","slug":"ecet-431-final-project-home-alarm-system","status":"publish","type":"post","link":"https:\/\/portfolio.wcu.edu\/asmccoy2\/2025\/12\/10\/ecet-431-final-project-home-alarm-system\/","title":{"rendered":"ECET-431 Final Project &#8211; Home Alarm System"},"content":{"rendered":"<p>This project is the final project for my ECET-431 Microcontroller Interfacing class. It is a simple home alarm system. In this project, we needed to have a Nucleo F401RE running our sensors and an OLED screen, an ESP32 to act as a wifi AP and host our website, finally, all of these needed to communicate with each other. <\/p>\n<p>This project consists of the following components:<br \/>\n&#8211; STM32 Nucleo F401RE<br \/>\n&#8211; ESP32 Dev Board<br \/>\n&#8211; Breadboard<br \/>\n&#8211; SSD1306 OLED<br \/>\n&#8211; LM35 Temperature Sensor<br \/>\n&#8211; VL53L0X Laser Distance Sensor<br \/>\n&#8211; 10k\u03a9 Resistor<br \/>\n&#8211; 2x 330\u03a9 Resistors<br \/>\n&#8211; 2 LEDs<br \/>\n&#8211; Jumper Wires<\/p>\n<p>This is the wiring schematic for the project:<br \/>\nNote: There is a spot beside the OLED that wire run to but it is empty this is where the laser distance sensor goes. This is done because there was not an appropriate laser distance sensor on the fritzing software.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-content\/uploads\/sites\/1750\/2025\/12\/Screenshot-2025-12-10-103110-300x205.png\" alt=\"\" width=\"1000\" height=\"905\" class=\"alignnone size-medium wp-image-607\" \/><\/p>\n<p>This project will require two separate software&#8217;s:<br \/>\n&#8211; STM32 Cubed<br \/>\n&#8211; Arduino<\/p>\n<p>Nucleo F401RE operations:<br \/>\nThe Nucleo F401RE is programed to the pull the temperature sensor values, and the laser distance sensor values. It is also programmed to send values to the STM32 upon the request of the website. The STM32 also updates the OLED display when the website gets and update request. In order to make the laser distance sensor and OLED to work you must download and install the VL53L0X Library and the SSD1306 Library. This is programmed with STM32 Cubed <\/p>\n<p>STM32 operations:<br \/>\nThe STM32 acts a WIFI AP and hosts the website. This is programmed with Arduino IDE. <\/p>\n<p>This project uses both TX\/RX communication and I2C communication protocols.<\/p>\n<p>This a video explaining how the system works and showing an example it operating. <\/p>\n<div style=\"position: relative; width: 100%; height: 0; padding-bottom: 56.25%\">\n\t<iframe src=\"https:\/\/wcu.hosted.panopto.com\/Panopto\/Pages\/Embed.aspx?id=78f14ca5-993a-4f36-83c9-b3af00f7dea9&#038;autoplay=false&#038;offerviewer=true&#038;showtitle=true&#038;showbrand=false&#038;captions=false&#038;interactivity=all\" style=\"border: 1px solid #464646; position: absolute; top: 0; left: 0; width: 100%; height: 100%; box-sizing: border-box;\" allowfullscreen allow=\"autoplay\" aria-label=\"Panopto Embedded Video Player\" aria-description=\"Mobile upload - Wednesday, December 10, 2025 10:02 AM\"><\/iframe>\n<\/div>\n<p>References<br \/>\nSSD1306 Library: https:\/\/github.com\/DrHarrisWCU\/stm32-ssd1306<br \/>\nVL53L0X Library: https:\/\/github.com\/DrHarrisWCU\/STM-VL53L0x-API<br \/>\nESP32 Wifi Setup: https:\/\/randomnerdtutorials.com\/esp32-access-point-ap-web-server\/<br \/>\nGenerative AI was used as per instruction of the professor to modify the HTML code.<br \/>\nWire Schematic made in Fritzing<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This project is the final project for my ECET-431 Microcontroller Interfacing class. It is a simple home alarm system. In this project, we needed to have a Nucleo F401RE running our sensors and an OLED screen, an ESP32 to act as a wifi AP and host our website, finally, all of these needed to communicate [&hellip;]<\/p>\n","protected":false},"author":1963,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-606","post","type-post","status-publish","format-standard","hentry","category-microprocessors"],"_links":{"self":[{"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/posts\/606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/users\/1963"}],"replies":[{"embeddable":true,"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/comments?post=606"}],"version-history":[{"count":6,"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/posts\/606\/revisions"}],"predecessor-version":[{"id":613,"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/posts\/606\/revisions\/613"}],"wp:attachment":[{"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/categories?post=606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portfolio.wcu.edu\/asmccoy2\/wp-json\/wp\/v2\/tags?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}