# Implementation of an IoT-Based Solar-Powered Smart Lawn Mower

Authors: Tayyab Tahir; Adnan Khalid; Jehangir Arshad; Aun Haider; Iftikhar Rasheed; Ateeq Ur Rehman; Seada Hussen
Journal: Wireless Communications and Mobile Computing
 (2022)

---

## Abstract

Rapid growth in technology has created opportunities to design and develop high-end applications and tools. Conventional mowers in practice are mostly fuel-powered and require personnel assistance for operation. This work develops a smart lawn mower powered by a solar photovoltaic (PV) panel and controlled by an Internet of Things- (IoT-) based technique. The designed lawn mower comprises one brushless direct current (BLDC) motor, four gear motors, sensors, an Arduino-based charge controller, and a Raspberry Pi-powered renewable energy source making it a sustainable device. A lawn mower is operated and controlled through an Android application. Raspberry Pi is used as an edge computing device for transmitting data through the Internet and for communication with Android applications. Arduino UNO is used for energy management and motor control operation. The main novelty of this research is IOT-based motion control feature which provides the user the provision to operate the mower remotely. Results of the designed model depict an average of 89.5% electrical efficiency of the system based on varying weather conditions. Application of the designed model is golf clubs, playgrounds, and lawns eliminating operator costs, saving energy, reducing noise pollution, and achieving environmental sustainability goals.


---

## Body

## 1. Introduction

With the advancements in technology, conventional ways of performing different tasks have been replaced with improved methods. Human work is being replaced by machines fully or partially, and automation is getting involved in commercial and domestic processes. Like in different industries to increase production and to improve accuracy, the use of robotics is becoming very common day by day. Similarly, daily life domestic tasks are also getting automated with the help of recent technologies. Along with automation, solar energy is another area that is becoming popular over time. It has become an important source of power generation because it is pollution-free. Sun is the main source of solar energy, and the energy through the sun is about 12 times the total world’s energy demand. PV cells are being used to convert solar energy into electrical energy, and this process has an efficiency of about 18% to 23% [1]. Automation and solar photovoltaic energy are the two modern technologies that have been used in this research to improve conventional lawn mowers.


### 1.1. Background

A few decades back, a lot of human effort was required for grass-cutting tasks. Over time, a large amount of human effort has been replaced with a single person and a machine. These machines were operated manually by humans. Later on, these machines were upgraded with engines and sharp blades as shown in Figure1 [2]. These engines use conventional energy sources which are not environment friendly and result in global warming. Global warming is one of the major challenges that humanity is facing, and it needs to be addressed seriously. The engines used for mowers are getting replaced with electric motors which require electrical power for their operation, and the electrical power used for motors still comes from conventional energy sources. The same is the case with conventional lawnmowers. Such mowers also need a long cord to power the electric motors of grass cutters that is very dangerous as it operates on high voltages. It also limits the operational range of these mowers because of the limited cord length. Increasing the chord length also increases operational costs. Despite the addition of motors, lawn mowers still require a significant amount of human effort to operate. So, this human effort can further be reduced by using the latest technology as proposed in this work.Figure 1
Conventional lawn mower [2].


### 1.2. Literature Review

Solar-powered smart lawnmower developed in [3] is an advanced version of a grass-cutting machine. It gets its power from a photovoltaic module mounted on the top and uses smart control methods for the movement of the lawnmower. The electrical energy produced by the solar panel is stored in a 12 V battery by using a charge controller. The complete operation of this lawnmower is controlled by computing devices used in the design. Motors are controlled by the driver circuit. Mowing is done using a high-speed DC motor which provides the torque required to drive the blades directly coupled with the shaft of the motor. The IoT-based control of this lawnmower is based on Hypertext Transfer Protocol (HTTP) requests and a python code written to control the lawnmower. The unique Internet Protocol (IP) address of the lawnmower along with the Transmission Control Protocol (TCP) request is used to control the lawnmower. Furthermore, an Android application is designed to call HTTP addresses when any key is pressed. All the keys have different addresses assigned to them.In [4], a solution for the solar-powered smart lawnmower is proposed, where a PIC 16F877 microcontroller for robotic operation is used. While for solar charging, they used a direct online (DOL) connection method in which the solar panel is directly connected to the battery for charging. A gyroscope sensor is used to control the directions of the system. The microcontroller reads distance in meters and moves to the left side when the meter is complete. In [5], an artificial intelligence- (AI-) based lawn mowing model is proposed. In this paper, a smart lawn mowing method is proposed using computer vision (CV) and ultrasonic sensors. A Raspberry Pi 3 is used as the main controller which runs the python code for AI. An ultrasonic sensor is used in this work for distance measurement from an obstacle. The Pi camera is used for video streaming and based on convolution neural network (CNN), the obstacle detection model is applied to the video stream. Raspberry Pi detects the obstacles and sends signals to move the motor driver according to the AI algorithm. In [6], three motors are used to make the design cost-efficient. Two motors are directly coupled with rear wheels while the front wheel is freely moveable. For solar charging, a PWM-based solar charge controller is used while Arduino is used as the main controller of the project. In this paper, the author performs a stress-strain analysis on solid works for a lawnmower. The overall system efficiency is 93.37%. Likewise, some other lawn mowers are proposed in [7, 8]. In these papers, Arduino UNO microcontroller interfaced with Bluetooth module is used for main control of lawn mower. The Bluetooth module is connected to an Android application. Users send navigation commands from the Android application. The proposed design is simulated on Proteus, and it is verified through hardware implementation [7]. While in [8], additional PIR sensors along with ultrasonic sensors are used for pathfinding and obstacle detection.A model of solar-powered lawn mower controlling RF communication is proposed in [9]. An HT12E encoder IC is used to convert the received parallel data to serial data. The microcontroller is programmed according to the time interval of HT12E output. Each functionality is differentiated by the high duration of each channel. HT12E starts working at a low signal at the TE pin. This low signal on the TE pin starts the communication of 4 data bits. Likewise, [10] proposed a cost-efficient autonomous smart lawnmower. It is a two-wheeled robot that can also be controlled manually using the mobile app. ESP8266 is used as a microcontroller for this robot. For remote control operation, a camera is installed on ESP8266 for live video streaming on the mobile screen. L298N motor driver is also used to drive the wheel motors, whereas the speed of motors is controlled by PWM. Similarly, a vision-based solar-powered robotic mower is presented in [11]. Unlike other robotic mowers, this design requires no wires to maintain its operation within the lawn. The design also detects and avoids objects and humans on the lawn. Another solar-powered lawn mower is developed in [12]. It is comprised of a direct current (D.C) motor, a rechargeable battery, a solar panel, a stainless-steel blade, and a control switch. Performance evaluation of the developed machine is carried out with different types of grasses and the design gives good results. Moreover, in [13], another solar-powered lawn mower is implemented. A design is proposed for the lawn mower that is powered through solar energy as well as electrical energy. This reduced both environment and noise pollution.Most recently, a fully autonomous solar-powered lawn mower is presented in [14]. In this design, 12 V batteries are used to power all the electrical components. Arduino microcontroller is used to control the motors used for the movement of the mower and the grass cutter motor. Based on information coming from the sensors, controller makes the corresponding decisions. The 12-volt battery used in this design is continuously charged by a solar panel mounted on the top of this mower. The presented design is simple and cheaper than other solutions. Another solar-powered lawn mower is implemented on the principle of mowing in [15]. The components used in this work are a direct current (DC) motor, battery, solar panel, steel blade, and speed controller. The required torque necessary for the steel blade was achieved through the DC motor. The speed controller is used to control the speed of the DC motor. The battery involved in this work is recharged through the charging circuit containing a solar panel and charge controller. The performance of the developed mower is evaluated with various thicknesses and shapes of the cutting blade. It was found that the cutting efficiency of the mower ranges from 70.50% to 84.10%. Moreover, in [16], fabrication and working of a smart solar grass cutter are presented. An efficient and environment-friendly solar-powered lawn mower is designed for this work. A microcontroller is used to control the different lawn mowing movements and actions. Two DC motors are used for the movement of the grass cutter, whereas one DC blade motor is used for grass cutting. It is designed to be remotely controlled using an Arduino UNO microcontroller. A Smart Solar Tracker is also implemented via Bluetooth and a smartphone. It can operate for more than two hours when the battery is fully charged. A comparison of the abovementioned design is presented in Table 1.Table 1
Literature review comparison.
Ref #ControllerAlgorithm/techniqueDeficiency[4]PICObstacle detectionNo proper method for the movement of the mower[8]Arduino miniBluetooth module, PIR motion sensorLow range communication, insecure channel[9]8-bit microcontrollerRF communicationNo monitoring system, no sensor for obstacle[15]ATMEGA32 microcontrollerSelf-controlNo predefined path, low solar efficiencyThere are some other lawn mowers available that lack the feature of being solar-powered; yet, their working and design are very significant. These are nonsolar but electrically powered and autonomously control lawn mowers, like a robotic system is developed in [17]. This work deals with the fabrication and design of the prototype. For the computer-aided design and simulation of an automated lawn mower, the author used Auto-desk Inventor 2018. The electrical system containing the connections between the microcontroller and the rest of the electrical system is designed to cut grass efficiently with minimum or zero human effort. The designed model of lawn mower contains GPS, cameras, infrared, and ultrasonic sensors for obstacle detection. Arduino microcontroller is used to control the two geared motors to control the direction of the lawn mower. The controlling is done by readings from the sensors connected to the microcontroller. The mower makes a 180-degree turn in case of any obstacle is detected in the path, and it cuts the grass with high efficiency. Similarly, another automated lawn mower is developed in [18]. This paper deals with the design of a smart lawn mower able to distinguish between obstacles using image processing. A user interfaces mobile phone application is designed so that users can choose the slow mode, inching mode, and obstacle avoidance mode. Rather than using wheels and tires, crawler tracks are used for better surface gripping. In this lawn mower, the built-in python toolkit “Tkinter” is used for the actions to be taken for the lawn mower using a human-machine interface. The Digital Signal Processing (DSP) chip is used as the core controller of the project while Raspberry Pi is used for image recognition and human-machine interface. Another fully automated lawn mower that can be used with minimum human effort is presented in [19]. The lawn mower is designed to cut the grass within a predefined ground area without any user intervention. It can also be used in any other location using radio control (RC). In this model, Raspberry Pi 3 is used as the main controller communicating with the RC transmitter and Navio2-HAT for GPS location. Another battery power lawn mower is proposed in [20]. The primary focus of this project is to get higher electrical efficiency and reduce the cost by the use of Li-ion batteries and brushless direct current (BLDC) motors. Simple electrical circuits using operational amplifiers and voltage sensors are used for the protection of motors and batteries.With the advancement in technology, new approaches are being employed for lawn mowing. This context [21] highlights some of the problems in conventional lawn mowing techniques and models. As a solution, an electrically powered lawn mower vehicle is designed for this work. The mower is powered by Li-ion batteries, and a solar platform is installed for the charging of batteries. The mechanical structure is flexible to change the height of the blades during grass cutting. Image processing techniques are also used for obstacle detection and path planning. Another solar-powered lawn mower is developed in [22] with an ARM controller along with ultrasonic and color sensors. A color sensor is used for grass detection while an ultrasonic sensor is used for obstacle detection. The system is tested on different ground surfaces, and it is concluded that the model can be used efficiently on flat surfaces.The sensor data is crucial for robotic navigational tasks like path planning and collision or obstacle avoidance. AI algorithms may have the ability to adapt obstacle detection and pathfinding with much higher efficiency than microcontrollers. In this context, a method for obstacle detection using digital image processing is proposed by [23]. The paper deals with object classification that usually exists on football grounds. This work deals with image filtering, segmentation, and edge detection using image processing. RoboRealm tool is used for object detection and recognition, whereas [24] proposed a model for obstacle detection in the path using machine learning. The model can estimate the distance, scale information, and distinguish pedestrians from other barriers using a camera. The machine learning model is divided into two branches: obstacle estimation and pedestrian detection. These two branches are used for infers scales and pedestrian categorical detection, respectively. The model is tested, and results are collected during a real-time experiment with a maximum distance error of 5% and 94% pedestrian detection accuracy.Nowadays, Android phones have become an important part of our daily life. Rather than using radio control methods for robotics, engineers are working on smartphone applications to control robots directly from Android applications. There are some lawn mowers presented recently that are working with Android applications. The implementation of Android applications for mower operation results in low-cost lawn mowers. In this regard, Android-controlled lawn mowers are proposed in [25, 26]. Like other models, an Arduino microcontroller is used as the main controller for these mowers while a Bluetooth module is used to communicate with the Android application. The Android applications for these projects are designed in MIT app inventor. The fusion of robotics with the IoT has given rise to a new idea known as IoT-aided robotics technology or the Internet of Robotic Things (IoRT). The IoRT technology has also resulted in the development of effective mobile robot applications. Such mobile robot applications can be used for services, household tasks, and healthcare. Like in [27], an IoRT lawn mower working with IBM and cloud services is presented. IBM cloud is used as a means of communication between Android applications and microcontrollers. Furthermore, an IoT-based robot lawn mower is developed [28]. In this work, the assembly of the mower is based on PVC pipes, while an additional water sprinkler feature is also added to the robotic mower. Users can operate sprinklers and control the mower through Bluetooth connectivity with an Android phone. Industrial IoT applications are carried out using a safe infrastructure to communicate with sensors and surveillance cameras. Thenceforth, the Industrial Internet of Things (IIOT) can be used with machine learning-based algorithm for monitoring and event detection [29].There are some nonprogramming-based online tools available for the development of the Android application. MIT app inventor is one of these open-source online tools for designing and developing custom Android applications [30]. HTTP requests are one of the widely used methods for Android communication, while a microcontroller connected to the local area network is used as a server and receives HTTP requests over the same network. To control any GPIO pin of the NodeMCU, a unique request along with IP address and port number is accessed through a web browser while connected to the same network [31]. Based on such technology, a mobile robot is proposed in [32] that can be controlled using Wi-Fi. The primary aim of this robot is to expand the control radius of the robot. Wi-Fi has a wide range as compared with other communication mediums like Bluetooth and Infrared. ESP8266 development module is used in it as a microcontroller. A Telnet SSH server is created on LAN which made it possible to be connected with external clients. The PC control software sends the speed parameters of the robot motors (in the range of 0 to 100), and it is connected to the control unit of the mobile robot (server) as a client via TCP/IP connection. The speed of the rear motors can be changed by changing the PWM pulse width. The application managing TCP/IP-based connection and control of the mobile robot is built up of two classes. In the first class, there is the description of TCP/IP connection, where the responsibility of the TCP client class is to establish, maintain, and close new connections on the IP address and port. In the second class, there is the description of performing control of the mobile robot by cursor keys.


### 1.3. Objectives

Considering all the issues mentioned in the background and limitations in the previous work mentioned in the literature review, a solar-powered smart lawnmower is proposed as the best solution. As the world is focused on using renewable energy resources to overcome greenhouse gases. This work will be very useful for reducing fuel consumption. Moreover, it significantly reduces further human efforts required for the process of grass cutting. The designed lawnmower is applicable on large ground areas like golf clubs, cricket grounds, or parks where a large area is needed to be mowed. Conventionally, a large number of human operators or ground keepers need to be hired for lawn mowing, but this lawn mower is very useful in such areas as a single user can cut grass without operating it manually. Moreover, solar energy allows operating this mower in large areas where power cords cannot reach power grid-powered mowers. The novelty of this research involves two aspects. Firstly, the lawn mower is powered with PV that powers all the electrical equipment of lawn mower, and it supplies electrical power to charge the battery to be used during night time. Secondly, the mower is controlled using IoT-architecture which made it possible to reduce the human labor.The section division of this paper is as follows. Section2 outlines the design and implementation, whereas Section 3 contains Results and Discussion. Finally, Section 4 contains the conclusion of this research work.


## 1.1. Background

A few decades back, a lot of human effort was required for grass-cutting tasks. Over time, a large amount of human effort has been replaced with a single person and a machine. These machines were operated manually by humans. Later on, these machines were upgraded with engines and sharp blades as shown in Figure1 [2]. These engines use conventional energy sources which are not environment friendly and result in global warming. Global warming is one of the major challenges that humanity is facing, and it needs to be addressed seriously. The engines used for mowers are getting replaced with electric motors which require electrical power for their operation, and the electrical power used for motors still comes from conventional energy sources. The same is the case with conventional lawnmowers. Such mowers also need a long cord to power the electric motors of grass cutters that is very dangerous as it operates on high voltages. It also limits the operational range of these mowers because of the limited cord length. Increasing the chord length also increases operational costs. Despite the addition of motors, lawn mowers still require a significant amount of human effort to operate. So, this human effort can further be reduced by using the latest technology as proposed in this work.Figure 1
Conventional lawn mower [2].


## 1.2. Literature Review

Solar-powered smart lawnmower developed in [3] is an advanced version of a grass-cutting machine. It gets its power from a photovoltaic module mounted on the top and uses smart control methods for the movement of the lawnmower. The electrical energy produced by the solar panel is stored in a 12 V battery by using a charge controller. The complete operation of this lawnmower is controlled by computing devices used in the design. Motors are controlled by the driver circuit. Mowing is done using a high-speed DC motor which provides the torque required to drive the blades directly coupled with the shaft of the motor. The IoT-based control of this lawnmower is based on Hypertext Transfer Protocol (HTTP) requests and a python code written to control the lawnmower. The unique Internet Protocol (IP) address of the lawnmower along with the Transmission Control Protocol (TCP) request is used to control the lawnmower. Furthermore, an Android application is designed to call HTTP addresses when any key is pressed. All the keys have different addresses assigned to them.In [4], a solution for the solar-powered smart lawnmower is proposed, where a PIC 16F877 microcontroller for robotic operation is used. While for solar charging, they used a direct online (DOL) connection method in which the solar panel is directly connected to the battery for charging. A gyroscope sensor is used to control the directions of the system. The microcontroller reads distance in meters and moves to the left side when the meter is complete. In [5], an artificial intelligence- (AI-) based lawn mowing model is proposed. In this paper, a smart lawn mowing method is proposed using computer vision (CV) and ultrasonic sensors. A Raspberry Pi 3 is used as the main controller which runs the python code for AI. An ultrasonic sensor is used in this work for distance measurement from an obstacle. The Pi camera is used for video streaming and based on convolution neural network (CNN), the obstacle detection model is applied to the video stream. Raspberry Pi detects the obstacles and sends signals to move the motor driver according to the AI algorithm. In [6], three motors are used to make the design cost-efficient. Two motors are directly coupled with rear wheels while the front wheel is freely moveable. For solar charging, a PWM-based solar charge controller is used while Arduino is used as the main controller of the project. In this paper, the author performs a stress-strain analysis on solid works for a lawnmower. The overall system efficiency is 93.37%. Likewise, some other lawn mowers are proposed in [7, 8]. In these papers, Arduino UNO microcontroller interfaced with Bluetooth module is used for main control of lawn mower. The Bluetooth module is connected to an Android application. Users send navigation commands from the Android application. The proposed design is simulated on Proteus, and it is verified through hardware implementation [7]. While in [8], additional PIR sensors along with ultrasonic sensors are used for pathfinding and obstacle detection.A model of solar-powered lawn mower controlling RF communication is proposed in [9]. An HT12E encoder IC is used to convert the received parallel data to serial data. The microcontroller is programmed according to the time interval of HT12E output. Each functionality is differentiated by the high duration of each channel. HT12E starts working at a low signal at the TE pin. This low signal on the TE pin starts the communication of 4 data bits. Likewise, [10] proposed a cost-efficient autonomous smart lawnmower. It is a two-wheeled robot that can also be controlled manually using the mobile app. ESP8266 is used as a microcontroller for this robot. For remote control operation, a camera is installed on ESP8266 for live video streaming on the mobile screen. L298N motor driver is also used to drive the wheel motors, whereas the speed of motors is controlled by PWM. Similarly, a vision-based solar-powered robotic mower is presented in [11]. Unlike other robotic mowers, this design requires no wires to maintain its operation within the lawn. The design also detects and avoids objects and humans on the lawn. Another solar-powered lawn mower is developed in [12]. It is comprised of a direct current (D.C) motor, a rechargeable battery, a solar panel, a stainless-steel blade, and a control switch. Performance evaluation of the developed machine is carried out with different types of grasses and the design gives good results. Moreover, in [13], another solar-powered lawn mower is implemented. A design is proposed for the lawn mower that is powered through solar energy as well as electrical energy. This reduced both environment and noise pollution.Most recently, a fully autonomous solar-powered lawn mower is presented in [14]. In this design, 12 V batteries are used to power all the electrical components. Arduino microcontroller is used to control the motors used for the movement of the mower and the grass cutter motor. Based on information coming from the sensors, controller makes the corresponding decisions. The 12-volt battery used in this design is continuously charged by a solar panel mounted on the top of this mower. The presented design is simple and cheaper than other solutions. Another solar-powered lawn mower is implemented on the principle of mowing in [15]. The components used in this work are a direct current (DC) motor, battery, solar panel, steel blade, and speed controller. The required torque necessary for the steel blade was achieved through the DC motor. The speed controller is used to control the speed of the DC motor. The battery involved in this work is recharged through the charging circuit containing a solar panel and charge controller. The performance of the developed mower is evaluated with various thicknesses and shapes of the cutting blade. It was found that the cutting efficiency of the mower ranges from 70.50% to 84.10%. Moreover, in [16], fabrication and working of a smart solar grass cutter are presented. An efficient and environment-friendly solar-powered lawn mower is designed for this work. A microcontroller is used to control the different lawn mowing movements and actions. Two DC motors are used for the movement of the grass cutter, whereas one DC blade motor is used for grass cutting. It is designed to be remotely controlled using an Arduino UNO microcontroller. A Smart Solar Tracker is also implemented via Bluetooth and a smartphone. It can operate for more than two hours when the battery is fully charged. A comparison of the abovementioned design is presented in Table 1.Table 1
Literature review comparison.
Ref #ControllerAlgorithm/techniqueDeficiency[4]PICObstacle detectionNo proper method for the movement of the mower[8]Arduino miniBluetooth module, PIR motion sensorLow range communication, insecure channel[9]8-bit microcontrollerRF communicationNo monitoring system, no sensor for obstacle[15]ATMEGA32 microcontrollerSelf-controlNo predefined path, low solar efficiencyThere are some other lawn mowers available that lack the feature of being solar-powered; yet, their working and design are very significant. These are nonsolar but electrically powered and autonomously control lawn mowers, like a robotic system is developed in [17]. This work deals with the fabrication and design of the prototype. For the computer-aided design and simulation of an automated lawn mower, the author used Auto-desk Inventor 2018. The electrical system containing the connections between the microcontroller and the rest of the electrical system is designed to cut grass efficiently with minimum or zero human effort. The designed model of lawn mower contains GPS, cameras, infrared, and ultrasonic sensors for obstacle detection. Arduino microcontroller is used to control the two geared motors to control the direction of the lawn mower. The controlling is done by readings from the sensors connected to the microcontroller. The mower makes a 180-degree turn in case of any obstacle is detected in the path, and it cuts the grass with high efficiency. Similarly, another automated lawn mower is developed in [18]. This paper deals with the design of a smart lawn mower able to distinguish between obstacles using image processing. A user interfaces mobile phone application is designed so that users can choose the slow mode, inching mode, and obstacle avoidance mode. Rather than using wheels and tires, crawler tracks are used for better surface gripping. In this lawn mower, the built-in python toolkit “Tkinter” is used for the actions to be taken for the lawn mower using a human-machine interface. The Digital Signal Processing (DSP) chip is used as the core controller of the project while Raspberry Pi is used for image recognition and human-machine interface. Another fully automated lawn mower that can be used with minimum human effort is presented in [19]. The lawn mower is designed to cut the grass within a predefined ground area without any user intervention. It can also be used in any other location using radio control (RC). In this model, Raspberry Pi 3 is used as the main controller communicating with the RC transmitter and Navio2-HAT for GPS location. Another battery power lawn mower is proposed in [20]. The primary focus of this project is to get higher electrical efficiency and reduce the cost by the use of Li-ion batteries and brushless direct current (BLDC) motors. Simple electrical circuits using operational amplifiers and voltage sensors are used for the protection of motors and batteries.With the advancement in technology, new approaches are being employed for lawn mowing. This context [21] highlights some of the problems in conventional lawn mowing techniques and models. As a solution, an electrically powered lawn mower vehicle is designed for this work. The mower is powered by Li-ion batteries, and a solar platform is installed for the charging of batteries. The mechanical structure is flexible to change the height of the blades during grass cutting. Image processing techniques are also used for obstacle detection and path planning. Another solar-powered lawn mower is developed in [22] with an ARM controller along with ultrasonic and color sensors. A color sensor is used for grass detection while an ultrasonic sensor is used for obstacle detection. The system is tested on different ground surfaces, and it is concluded that the model can be used efficiently on flat surfaces.The sensor data is crucial for robotic navigational tasks like path planning and collision or obstacle avoidance. AI algorithms may have the ability to adapt obstacle detection and pathfinding with much higher efficiency than microcontrollers. In this context, a method for obstacle detection using digital image processing is proposed by [23]. The paper deals with object classification that usually exists on football grounds. This work deals with image filtering, segmentation, and edge detection using image processing. RoboRealm tool is used for object detection and recognition, whereas [24] proposed a model for obstacle detection in the path using machine learning. The model can estimate the distance, scale information, and distinguish pedestrians from other barriers using a camera. The machine learning model is divided into two branches: obstacle estimation and pedestrian detection. These two branches are used for infers scales and pedestrian categorical detection, respectively. The model is tested, and results are collected during a real-time experiment with a maximum distance error of 5% and 94% pedestrian detection accuracy.Nowadays, Android phones have become an important part of our daily life. Rather than using radio control methods for robotics, engineers are working on smartphone applications to control robots directly from Android applications. There are some lawn mowers presented recently that are working with Android applications. The implementation of Android applications for mower operation results in low-cost lawn mowers. In this regard, Android-controlled lawn mowers are proposed in [25, 26]. Like other models, an Arduino microcontroller is used as the main controller for these mowers while a Bluetooth module is used to communicate with the Android application. The Android applications for these projects are designed in MIT app inventor. The fusion of robotics with the IoT has given rise to a new idea known as IoT-aided robotics technology or the Internet of Robotic Things (IoRT). The IoRT technology has also resulted in the development of effective mobile robot applications. Such mobile robot applications can be used for services, household tasks, and healthcare. Like in [27], an IoRT lawn mower working with IBM and cloud services is presented. IBM cloud is used as a means of communication between Android applications and microcontrollers. Furthermore, an IoT-based robot lawn mower is developed [28]. In this work, the assembly of the mower is based on PVC pipes, while an additional water sprinkler feature is also added to the robotic mower. Users can operate sprinklers and control the mower through Bluetooth connectivity with an Android phone. Industrial IoT applications are carried out using a safe infrastructure to communicate with sensors and surveillance cameras. Thenceforth, the Industrial Internet of Things (IIOT) can be used with machine learning-based algorithm for monitoring and event detection [29].There are some nonprogramming-based online tools available for the development of the Android application. MIT app inventor is one of these open-source online tools for designing and developing custom Android applications [30]. HTTP requests are one of the widely used methods for Android communication, while a microcontroller connected to the local area network is used as a server and receives HTTP requests over the same network. To control any GPIO pin of the NodeMCU, a unique request along with IP address and port number is accessed through a web browser while connected to the same network [31]. Based on such technology, a mobile robot is proposed in [32] that can be controlled using Wi-Fi. The primary aim of this robot is to expand the control radius of the robot. Wi-Fi has a wide range as compared with other communication mediums like Bluetooth and Infrared. ESP8266 development module is used in it as a microcontroller. A Telnet SSH server is created on LAN which made it possible to be connected with external clients. The PC control software sends the speed parameters of the robot motors (in the range of 0 to 100), and it is connected to the control unit of the mobile robot (server) as a client via TCP/IP connection. The speed of the rear motors can be changed by changing the PWM pulse width. The application managing TCP/IP-based connection and control of the mobile robot is built up of two classes. In the first class, there is the description of TCP/IP connection, where the responsibility of the TCP client class is to establish, maintain, and close new connections on the IP address and port. In the second class, there is the description of performing control of the mobile robot by cursor keys.


## 1.3. Objectives

Considering all the issues mentioned in the background and limitations in the previous work mentioned in the literature review, a solar-powered smart lawnmower is proposed as the best solution. As the world is focused on using renewable energy resources to overcome greenhouse gases. This work will be very useful for reducing fuel consumption. Moreover, it significantly reduces further human efforts required for the process of grass cutting. The designed lawnmower is applicable on large ground areas like golf clubs, cricket grounds, or parks where a large area is needed to be mowed. Conventionally, a large number of human operators or ground keepers need to be hired for lawn mowing, but this lawn mower is very useful in such areas as a single user can cut grass without operating it manually. Moreover, solar energy allows operating this mower in large areas where power cords cannot reach power grid-powered mowers. The novelty of this research involves two aspects. Firstly, the lawn mower is powered with PV that powers all the electrical equipment of lawn mower, and it supplies electrical power to charge the battery to be used during night time. Secondly, the mower is controlled using IoT-architecture which made it possible to reduce the human labor.The section division of this paper is as follows. Section2 outlines the design and implementation, whereas Section 3 contains Results and Discussion. Finally, Section 4 contains the conclusion of this research work.


## 2. Design and Implementation

The work is divided into two parts. In the first part, detail about hardware is mentioned, whereas the second part is composed of software architecture developed for the proposed design. Figure2 is the block diagram of the proposed design.Figure 2
Block diagram of the Smart Lawn Mower.


### 2.1. Master Controller

Raspberry Pi is used as a main controller for the smart lawnmower. The General-Purpose Input Output (GPIO) pins generate a PWM signal to control the speed of motors. H-bridge motor driver circuit is designed to control wheel motors, as there are four-wheel motors each motor is controlled by a single H-bridge circuit. The duty cycle of generated PWM signal is based on the throttle value received by the operator. Raspberry Pi can generate a PWM signal ranging from 10 Hz to 8KHz. In this lawn mower, a 1 kHz frequency is set for the PWM signal. A boost converter or voltage converter is needed to change the 3.3 V signal to a 5 V signal generated from Raspberry Pi. This level shifting is important because the H-bridge motor driver circuit is based on MOSFETs. N-channel MOSFET triggers at 4.5 V gate voltage, whereas Raspberry Pi can only generate a 3.3 V low current signal. Raspberry Pi is programmed to control the movement of the mower. For this purpose, a local area network (LAN) server is created, communicating between Raspberry Pi and the Android application. A video camera is installed in front of the mower, and LAN server transmits that video to the Android application. Following Figure3 shows the flowchart of the LAN server of Raspberry Pi.Figure 3
Local area server communication flowchart.


### 2.2. Control Application

An Android application is designed to control a lawn mower. To connect with the mower, the user first login the application using a secure password. This password completely depends on the user and can be changed afterward. The Android application communicates to the mower by entering the IP address of Raspberry. The IP address of Raspberry Pi is set to a static IP address so that it will not change when connects to the network. When any movement key is pressed on the Android application, it sends a unique HTTP request to the server. The server receives and responds to the request by generating a PWM signal for the respected motor and also sends a response message to the application. Figure4 shows the flowchart of the Android application.Figure 4
Android control application flowchart.


### 2.3. Solar Charge Controller and Slave Device

In this lawn mower, Arduino is used as a slave device. It reads analog voltages from the voltage sensors and transmits them to the master controller (Raspberry Pi) upon request from the master. As there is no Analog to Digital converters (ADC) in Raspberry Pi, so Arduino is used for the solar charge controller. It senses the solar and battery voltages and generates PWM signals to control solar voltages. The maximum power point tracking (MPPT) algorithm has been implemented in the slave microcontroller to get maximum efficiency from the solar panel. Arduino reads the voltage and load current of the solar panel and generates a PWM signal. The generated PWM signal is provided to the buck-boost converter which controls the output of the solar panel. A16×4 LCD is attached to the back of the mower, which displays the health of the battery and the parameters of solar. The working of the designed MPPT charge controller is based on fill factor (FF) curve. The voltage sensor of Arduino gives real-time voltage on connected load, whereas the current sensor gives load current. A V-I curve based on these voltage and current values is estimated to find the fill factor. The FF curve is estimated by recording maximum values, obtained values of voltage, and current sensors for 2000 microseconds in Arduino. Further, the duty cycle is calculated by selecting the peak point of that Fill Factor.


### 2.4. Motor Driver Circuit

The motor driver of this lawn mower is based on an H-bridge circuit designed by N-channel MOSFETs and BJTs, whereas in the simulation, just BJTs are used to make the circuit as simple as possible. In practical N-channel, MOSFETs are connected to the PNP sides of each H-bridge driver to quickly turn off PNP. There are four driving motors and one high-speed cutting motor. Each motor is controlled by a single H-bridge circuit. The speeds of driving motors can be controlled by changing the throttle level from the Android application, hence changing the duty cycle of the PWM signal generated by Raspberry Pi. The speed of the grass-cutting motor is fixed, and the user can only turn the on or off motor through the Android application. Figure5 shows the simulation of the H-bridge motor driver circuit.Figure 5
H-bridge motor driver circuit PROTEUS simulation.


### 2.5. Circuit Diagram

Figure6 shows the circuit diagram of the lawn mower, and the main circuit is divided into three portions. The level shifter circuit is based on NPN transistors. This circuit receives a low voltage (3.3 V) signal from the Raspberry Pi and generates 5 V signal output without changing its frequency or duty cycle. It is important to shift the voltage level because N-channel MOSFETs used in the H-bridge circuit only trigger at a 4.5 V gate signal. In this lawn mower, three different voltage levels are needed: 12 V for motors, 5 V for relays and Arduino, and 3.3 V for Raspberry Pi and camera. In the charge controller circuit, a multipurpose buck-boost converter is used which converts 12 V to these three levels. A multipurpose buck-boost converter also works for battery charging. It receives high voltages from the solar panel and modifies to optimize the power based on the PWM signal of Arduino. The charge controller circuit performs the following functions: control solar voltages, optimize power, and battery management, whereas Arduino continuously checks battery voltages and automatically cuts off load if battery voltages fall below the threshold point. A 16×4 LCD is also connected to display the charge controller parameters. The motor driver circuit contains two H-bridge drivers and one cutting motor switch circuit. The H-bridge circuit allows the user to change the direction and speeds of the driving motor. There is no need to change the direction or speed of the cutting motor; so, just a switching circuit is added to operate the cutting motor. Three NPN transistors are connected in parallel to increase the power rating of the circuit. An 8-megapixel camera is attached to the Raspberry Pi to transmit a video feed to the application. The vertical tilt angle of the camera can be changed by the use of an Android application. A servo motor is attached with Raspberry Pi to control the tilt angle.Figure 6
Complete circuit diagram of smart lawn mower.


## 2.1. Master Controller

Raspberry Pi is used as a main controller for the smart lawnmower. The General-Purpose Input Output (GPIO) pins generate a PWM signal to control the speed of motors. H-bridge motor driver circuit is designed to control wheel motors, as there are four-wheel motors each motor is controlled by a single H-bridge circuit. The duty cycle of generated PWM signal is based on the throttle value received by the operator. Raspberry Pi can generate a PWM signal ranging from 10 Hz to 8KHz. In this lawn mower, a 1 kHz frequency is set for the PWM signal. A boost converter or voltage converter is needed to change the 3.3 V signal to a 5 V signal generated from Raspberry Pi. This level shifting is important because the H-bridge motor driver circuit is based on MOSFETs. N-channel MOSFET triggers at 4.5 V gate voltage, whereas Raspberry Pi can only generate a 3.3 V low current signal. Raspberry Pi is programmed to control the movement of the mower. For this purpose, a local area network (LAN) server is created, communicating between Raspberry Pi and the Android application. A video camera is installed in front of the mower, and LAN server transmits that video to the Android application. Following Figure3 shows the flowchart of the LAN server of Raspberry Pi.Figure 3
Local area server communication flowchart.


## 2.2. Control Application

An Android application is designed to control a lawn mower. To connect with the mower, the user first login the application using a secure password. This password completely depends on the user and can be changed afterward. The Android application communicates to the mower by entering the IP address of Raspberry. The IP address of Raspberry Pi is set to a static IP address so that it will not change when connects to the network. When any movement key is pressed on the Android application, it sends a unique HTTP request to the server. The server receives and responds to the request by generating a PWM signal for the respected motor and also sends a response message to the application. Figure4 shows the flowchart of the Android application.Figure 4
Android control application flowchart.


## 2.3. Solar Charge Controller and Slave Device

In this lawn mower, Arduino is used as a slave device. It reads analog voltages from the voltage sensors and transmits them to the master controller (Raspberry Pi) upon request from the master. As there is no Analog to Digital converters (ADC) in Raspberry Pi, so Arduino is used for the solar charge controller. It senses the solar and battery voltages and generates PWM signals to control solar voltages. The maximum power point tracking (MPPT) algorithm has been implemented in the slave microcontroller to get maximum efficiency from the solar panel. Arduino reads the voltage and load current of the solar panel and generates a PWM signal. The generated PWM signal is provided to the buck-boost converter which controls the output of the solar panel. A16×4 LCD is attached to the back of the mower, which displays the health of the battery and the parameters of solar. The working of the designed MPPT charge controller is based on fill factor (FF) curve. The voltage sensor of Arduino gives real-time voltage on connected load, whereas the current sensor gives load current. A V-I curve based on these voltage and current values is estimated to find the fill factor. The FF curve is estimated by recording maximum values, obtained values of voltage, and current sensors for 2000 microseconds in Arduino. Further, the duty cycle is calculated by selecting the peak point of that Fill Factor.


## 2.4. Motor Driver Circuit

The motor driver of this lawn mower is based on an H-bridge circuit designed by N-channel MOSFETs and BJTs, whereas in the simulation, just BJTs are used to make the circuit as simple as possible. In practical N-channel, MOSFETs are connected to the PNP sides of each H-bridge driver to quickly turn off PNP. There are four driving motors and one high-speed cutting motor. Each motor is controlled by a single H-bridge circuit. The speeds of driving motors can be controlled by changing the throttle level from the Android application, hence changing the duty cycle of the PWM signal generated by Raspberry Pi. The speed of the grass-cutting motor is fixed, and the user can only turn the on or off motor through the Android application. Figure5 shows the simulation of the H-bridge motor driver circuit.Figure 5
H-bridge motor driver circuit PROTEUS simulation.


## 2.5. Circuit Diagram

Figure6 shows the circuit diagram of the lawn mower, and the main circuit is divided into three portions. The level shifter circuit is based on NPN transistors. This circuit receives a low voltage (3.3 V) signal from the Raspberry Pi and generates 5 V signal output without changing its frequency or duty cycle. It is important to shift the voltage level because N-channel MOSFETs used in the H-bridge circuit only trigger at a 4.5 V gate signal. In this lawn mower, three different voltage levels are needed: 12 V for motors, 5 V for relays and Arduino, and 3.3 V for Raspberry Pi and camera. In the charge controller circuit, a multipurpose buck-boost converter is used which converts 12 V to these three levels. A multipurpose buck-boost converter also works for battery charging. It receives high voltages from the solar panel and modifies to optimize the power based on the PWM signal of Arduino. The charge controller circuit performs the following functions: control solar voltages, optimize power, and battery management, whereas Arduino continuously checks battery voltages and automatically cuts off load if battery voltages fall below the threshold point. A 16×4 LCD is also connected to display the charge controller parameters. The motor driver circuit contains two H-bridge drivers and one cutting motor switch circuit. The H-bridge circuit allows the user to change the direction and speeds of the driving motor. There is no need to change the direction or speed of the cutting motor; so, just a switching circuit is added to operate the cutting motor. Three NPN transistors are connected in parallel to increase the power rating of the circuit. An 8-megapixel camera is attached to the Raspberry Pi to transmit a video feed to the application. The vertical tilt angle of the camera can be changed by the use of an Android application. A servo motor is attached with Raspberry Pi to control the tilt angle.Figure 6
Complete circuit diagram of smart lawn mower.


## 3. Results and Discussion

This research work comprises of an 80 W solar panel mounted on top of the mower to power motors and all electrical load. The overall load of the mower is calculated based on its maximum power demand to calculate the required size of the solar panel. The efficiency of a solar panel is maximum when mounted on fix surface at a specific angle, whereas it is not possible in this case. A 12 V, 7 Ah battery is added to compensate for the low efficiency and shadowing effects of solar panels. The charge controller charges the battery when generated power is more than the load demand and feeds power from the battery to the load when solar power is not enough to meet the load demand. The solar model has been simulated on TRNSYS-16 by entering the weather conditions of Lahore Pakistan. The load was entered according to the calculation, and the simulation runtime was set for 1 year (8760 hrs). Figure7 shows the generated power graph of the solar panel running for 8760 hours. The center higher lines show the summer period while the left and right lines are for the winter season, whereas Figure 8 shows the V-I graph of the solar panel.Figure 7
Power graph of the solar panel running for 1 year.Figure 8
V-I graph of the solar panel running for 1 year.The solar charge controller is designed using the principle of MPPT where maximum power points are estimated using the FF curve through Arduino. The designed charge controller has the properties of a battery management system. Arduino continuously reads the voltages of the battery and solar panel, to protect the battery from overcharge and overdischarge. It automatically stops charging when battery voltages reach 14 V. Overdischarge protection gets into the process when battery voltages fall below 10 V. The efficiency of the charge controller is calculated by using equation (1).
(1)η=Solarvoltage×CurrentMaximumpowerofpanel×100.The solar charge controller is tested under different weather conditions, and the results obtained are shown in Tables2 and 3.Table 2
Values obtained during clear weather conditions.
Solar voltage (V)Current (A)Efficiency (%)192.5761.0192.866.5203.3283.0203.3884.5213.7498.2Table 3
Values obtained during clear weather conditions.
Solar voltage (V)Current (A)Efficiency (%)162.5450.8172.6155.5172.7358.0183.0268.0183.1170.0The maximum efficiency of the charge controller during clear weather is about 98% at maximum solar voltages, while maximum efficiency during cloudy weather conditions is about 70% at a maximum 18 V.Inside the smart lawn mower, there is a Raspberry Pi acting as the main controller of the lawn mower, which communicates with the Android application. Android application as shown in Figure9 is built on the MIT app inventor and programmed to send an HTTP request to control.Figure 9
Android control application user interface.Each button in the Android application is programmed to send a unique HTTP request to the server when such a button is pressed. Raspberry Pi receives this HTTP request and generates PWM signal to control the corresponding motor of the lawn mower. As a confirmation, Raspberry Pi sends an HTTP response message to the Android application. In case of no response, a message is received from the server, and the Android application will show an error notifier for 2 seconds on the screen. This application consists of two windows: one window is for passwords, and the other is for main control. The main window is only accessed when a user enters the correct password. When the user enters an incorrect password, a notification of an invalid password appears on the screen. Figure10 shows the final model of the proposed IOT-based solar-powered smart lawn mower.Figure 10
Hardware model of smart lawn mower.


## 4. Conclusion

In this research work, a solar-powered smart lawn mower using Raspberry Pi and controlled by an Android application is developed. It has special features of solar charging and power management through an Arduino microcontroller. The designed mower can reduce human effort and power consumption using smart controllers and by deploying solar photovoltaic energy. A low voltage MPPT charge controller with a three-stage battery management system is designed for higher power efficiency. The mowing and video streaming is achieved by a local area network (LAN) connection. An Android application is used for remote monitoring and control while connecting to the same network connection. The proposed design of a smart lawn mower is successfully implemented and tested, and all the goals are also achieved successfully. The average electric power efficiency is 89.5% which is much better than conventional and electric-powered mowers. An optimal design is implemented using an IOT infrastructure, and an efficient solution is provided for grass cutting. Applications of the mower are large grounds used for different sports activities, lawns, and gardens. This concept can be extended to perform complex features like object detection through computer vision and machine learning for fully autonomous operation.



---

*Source: 1971902-2022-10-06.xml*