Skip navigation

IoT Project using Arduino MKR1000


The purpose of this project is to design a home automation system that can be operated from anywhere in the world. As the first phase of this project, System to control only the water pump of the house is designed.

This prototype system consists 3 major parts

  1. Ultra-sonic sensor to determine the water level of the tank
  2. Microcontroller + Wi-Fi module/Ethernet module.
  3. Web Server


The ultra-sonic sensor that is mounted at the top of the water tank is a 24/7 online device. It is sending the time data to the microcontroller. The program that is loaded to the microcontroller can calculate the water level using time data. In this system microcontroller data has to send the data to a server via WIFI or Ethernet. To do that separate Wi-Fi module or Ethernet module should connect to the microcontroller. To overcome this extra cost, New “Arduino MKR1000” module is used.Genuino/Arduino MKR 1000 is the latest microcontroller module which is designed by Arduino. It is an updated design of the Arduino zero board. One of its special specification is that it has an inbuilt Wi-Fi shield. This Wi-Fi shield is operated only with the updated library of WIFI101. MKR 1000 is powered by ARM Cortex M0+ 32 bit microcontroller.

As mentioned before inbuilt Wi-Fi shield of MKR 1000 is operated only using WIFI101 library. The calculated distance is now sent to the web server.WIFI101 library has functions to prepare and send data to the webserver. The complete code of this project attached by mathworks is used as the private ‘data server’ of this project. Microcontroller is directly connected to this server. Thingspeak gather data from the microcontroller using API (Application Program Interface) protocols. Also can plot required data which is received from the microcontroller.Plotted data is now sent to the web-host. Free web host ‘’ is used as the web-host of the project. User can log on to “” and control the water pump of his house. No security feature is added because of this is a testing phase.The gauge shows the current water level of the tank and 2 buttons can switch on and off the pump. The gauge is a customized version of “Google gauge” web widget. It is directly operated according to the plotted data from And 2 buttons was created using HTML. They trigger an API call and communicate with the microcontroller when it is pressed. The API call is also functioned by