This system is used to control and automate electrical appliances anywhere throughout the world using a microcontroller. The system is divided into two parts:
Master Webserver
Remote Webserver
The Master webserver is a combination of Atmega2560 Microcontroller and Wiznet 5100 Ethernet controller to host a website using SD card. The website was programmed using HTML, CSS, JavaScript and PHP and was stored on the SD card. The Ethernet controller and SD card was interfaced to the microcontroller using Serial Peripherial Interface (SPI). All the sensors for data collection where connected to the microcontroller using I2C communication protocol. The automation script was written in C programming language, where it could gather the data from sensor and execute a specific function automatically without involvement of the user. For dynamically updating the parameters, the website was also programmed using AJAX.
The Remote webserver was installed at a remote places where the master webserver cannot be physically (wires) connected. For example switches in a room, ceiling lamps and many more. The remote webserver is based on ESP8266 Wi-Fi microcontroller to connect to the master webserver. Any request made to the remote webserver is picked by the master webserver which is then forwarded to the remote webserver after processing. The remote webserver also facilitated collection of different sensor data like temperature and humidity to be further processed by the master webserver for automation and user accessibility.
The Project utilizes micro DMA module of Tiva Launchapad to transfer the data from ADC module to RAM buffer without any use of processor. This helps the user to generate real-time fast processing applications. This project can be used at time critical places where an action is dependent upon data from external (ADC) unit. To further effectively process the data this project uses overlapped analysis windowing technique. Which means that, while the processor is busy processing the data, the DMA buffers the data into a window buffer which helps the user not to loose any data points process the data by adding/overlapping the unprocessed data into old window.