All Mowers - WiFi & APP

Overview

To operate the mower via Smatphone we are going to connect the mower to the home WIFI network.  To do this we will use a NodeMCU board and the BLYNK APP.

This means of course that your mower needs be able to receive WIFI in your garden.  The wiring diagram for the NODEMCU board which is used to handle the WIFI function can be found in the circuit diagrams for the mower

 

Smartphone APP.

 

App being Tested by maker _Greg_

 

As the NODEMCU board is not in the standard list of boards to choose from in the Arduino boards menu, we need to add the NODEMCU & ESP functionality to the Arduino IDE.

 

Adding NODEMCU capability to the ARDUINO IDE

1. In the Arduino IDE, settings menu add this URL address to the "Additional Boards Manager URL's"  box, then press OK.  This will give the Arduino IDE the download address to install the necessary software to communicate with the NodeMCU board.

 

http://arduino.esp8266.com/stable/package_esp8266com_index.json

2. To complete the download of the NODEMCU software go to the Board: menu in the Arduino IDE and select Boards Manager.

In the next window type ESP in the search field.

  

The ESP8266 should appear in the window.

Install the latest version of the ESP board software.

 

Once the download is completed you should now have NodeMCU 1.0 as an additional option in the boards menu.

 

 

2. Download the code from the Arduino Code Page.  The NODEMCU code is within the main MOWERX.X code package.

 

3. Open the NodeMCU code and update the "WLAN Name" network (name of your WiFi network take care with case sensitivity) "password" and "App Key Code" (Auth Code- see below about the BLYNK APP to get that code)

 

4. Ensure all the blynk libraries are installed. The BLYNK libraries are included in the libraries used folder from the GITHUB site so you should have all the libraries required already.

Alternatively you can download the BLYNK libraries from the BLYNK website if you want to ensure you are using the same libraries.

 

5. Now Upload the Arduino code to your NodeMCU board using the Arduino IDE

 

 

The Nodemcu board should now connect to your WiFi network and to the BLYNK server using the Auth Code.

 

You can check that the NodeMCU is connecting properly by viewing the serial monitor of the NodeMCU. 

 

How to Create the Blynk App

To have access to the ReP_AL Lawn Mower via a smartphone we are going to use the Blynk App.  With this we can quickly create a smartphone app to talk to the NODEMCU board in the mower:

 

1. Download and install the Blynk App on your smartphone from the Googe Play or Apple Store.   Search for 'Blynk App'.  Once installed create an account.

 

2. The Blynk App works by buying credits for the different types of functional buttons/widgets you use in the APP.  In the Blank App we are going to need roughly 3000 credits.  Check how many credits you have. An additonal package of 5000 credits costs  €4.99. 

 

We will use the following widgets in the APP

8 Buttons : 200 credits each = 1600 Credits

2 Value Displays : 200 credits each = 400 Credits

6 LED's : 100 credits each = 600 Credits

1 Segmented Switch : 400 credits

Total = 3000 Credits.

 

 3. Create a new project in you smartphone BLYNK app:  Call this ReP_AL Mower (or whatever you want), select NodeMCU as the device and WIFI as the connection type.

 

Once the APP is created the APP auth token will be sent to you email account address.

You will need this code for the NodeMCU arduino code.  This code links the NodeMCU board to this APP.

(If you have more than 1 ReP_AL Mower to control then you will need to create an APP per mower so that each mower has a seperate Auth Token. Once the APP is created it can be duplicated.).

Make sure you have enough credits to buy the buttons/widgets we need (about 3000), then we can start to assemble the APP.  This will take around 15-20mins

 

4. Add 4 buttons to the screen and then resize and position them as shown below.  You can add features by pressing the + button on the  menu bar. This brings up the 'Widget Box. 

Once the widget is added to the APP desktop you can move and resize the buttons by long pressing it and using the frame options provided.

        

 

5. We will now label the buttons and assign them 'Virtual Pins'.  By tapping on the button you will be presented with the buttons attributes. 

  • In OUTPUT select 'Virtual Pin' by scrolling the menu, then select the correct Virtual Pin number for each button.

     

 

  • For all buttons keep the button Type as Push
  • Select the button colour as in the pictures below
  • For all buttons remove the word Button by adding a space to the box.
  • The buttons can be labelled by changing the text in the  ON/OFF Labels box

 

   

 

The 4 buttons should have the following attributes.

 

Button Position Virtual Pin Colour Label
Top Left V2 Red Pause / Stop
Top Right V0 Orange/Yellow Quick Start
Bottom Left V10 White Exit Dock
Bottom Right V1 Blue Go to Dock

 

It is important that the virtual pins are assigned correctly to each APP button otherwise the APP will not work correctly or behave strange.

(Colour and Text is up to you, but it's best to stick to the instructions here before you start to customise it)

 

 6. Now add 2 Value Display and 6 LED features/widgets to the APP and arrange them as in the screenshots below:

 

 

 

Give the new widgets the following attributes by clicking on the widget and modifying the settings.

Button Type Virtual Pin Label (OFF)
Value Display V5 Loops
Value Display V3 Volts
LED V7 Mowing
LED V11 Compass
LED V9 Tracking
LED V8 Docked
LED V12 Charging
LED  V6 Parked

 

 

7. Add 4 more buttons to the APP and position them as shown. These buttons will allow the mower to be steered manually..! :) 

 

Give these 4 buttons the following attributes:

Button Virtual Pin Label (OFF)
Top Button V13 FWD
Lower Button V14 REV
Left Button V15
Right Button V16

 

 

10. Finally we need to add a segmented switch to the APP (you must use Code V6.7 onwards).  Again position the switch as shown in the screenshot and give it the following attributes.

   

  

Output: V4

Labelling

Option 1 - Auto #

Option 2 - Auto @

Option 3 - Auto | |

Option 4 - Manuel

 

(  # = random mowing   @ = Spiral    | | = parallel  )

 

The APP is now complete and should look exactly like this when running.

 

 

Pressing the play button in the BLYNK menu will start the APP.  The APP will now start to look for the connection to the NodeMCU.  The APP works through the BLYNK server, so it can be controlled from your smartphone anywhere you have a data connection (WIFI or Cell phone provider data).  Yes that means you can control your mower from anywhere.....! :)

 

Basic APP Features:

The APP will give you access to the mower anywhere you have a cell phone data or wifi connection.

Please be patient with the buttons.  You will need to give the mower time to execute the command.  Pressing many buttons at once will just confuse it :)

 

In Automatic Mode these features can be used.

Quick Start - Will start the mower (cant be used if the mower is docked)

Pause/Stop - Parks the mower and can be restarted with Qucik Start

Exit Dock - Reverses the mower out of the docking station and tracks the garden to Zone 1.

Go To Dock - Stops the mowing and sends the mower back to the dock using the perimeter tracking feature.

Auto #    - Mows the garden in a random pattern mode

Auto @  - Mows the garden with interlinked spirals

Auto | |   - Mows the garden with a parallel pattern (under development)

(In Manual mode none of the above buttons will work)

 

LED Lights

Show the current status of the mower.

 

Volts and Loops

Shows the current battery voltage and loops progress to let you know that the mower is actually moving

 

Manual Mode

Enables the direction keypad where you can manually steer the lawn mower.  Tap the keys to steer.

There is not button to start the blades cutting.  I thought about this then decided against it for safety.

 

 

WIFI Settings Tab

To use this feature ensure you are using the Code V9.0 or higher.

This feature will allow certain settings of the mower (Sonar, Compass etc) to be remotely controlled via the Blynk APP.  You may need to purchase additional BLYNK credits to add all the Widgets needed for this APP feature.

 

1. Insert a new tab into your BLYNK APP by going to the Widget Box and selecting Tabs.  (The Tab is the band of options you see at the top of the screen like a tab in Excel).

2. Name your new Tab Settings.  (You can name Tabs as you like)

3. Add 8 Segmented Switches to the Blynk screen.  Each segmented switch should have 2 options on it.  Label each segmented switch as shown in the screen shot below:

 

 

4. Give the buttons the following Virtual Pins by editing the settings of that button

 

Button Virtual Pin
Compass V20
Heading Hold V21
GYRO V22
Sonar 1 V24
Sonar 2 V25
Sonar 3 V26
Bumper V29
Sync V23

The buttons do as they are labelled and turn ON or OFF that sensor.

The Sync button will sync the BLYNK app to the mower settings.  (The BLYNK app will start with all the buttons in the OFF position which is not synced to the actual settings of the mower.  Press the sync button when starting the APP)