Bukit Mertajam, Penang

Who is going to feed my fish?


Have you heard about IoT??

A simple way to describe Internet of Things (IoT) is a method of controlling or monitoring a device through the Internet. The device, often embedded with sensors, software, network connectivity and necessary electronics that enables them to collect and exchange data.

IoT is here and becoming an increasing topic of interest among technology giants and business communities. It’s a concept that not only has the potential to impact how we live but also how we work.

So, Cytron Technologies manufactured the ESPresso Lite v2.0 to enable you to get started with your own IoT project the easily. You can refer to the Getting Started For ESPresso Lite v2 tutorial for the setup.

In this tutorial, you are going to learn how to apply IoT in feeding the fish. So now you don’t have to worry that your fish might ever have to go hungry!!!

Additional Information

  • Each ESPresso lite V2 has its own ID (exp : ESPert-xxxxxxxx). Make sure you key in the correct ID in order to have a successful connection.
  • The power for the ESPresso lite V2 can be supplied directly from the battery or USB through the UC00A converter.

Circuit Diagram

Connection for servo motor

  • Brown/Black — ground
  • Red — Vin
  • Yellow/Orange — signal (pin14)

Connection for the hardware setup


1. Assemble and solder all the pin to ESPresso Lite V2.0 board.

2. Connect the ESPresso Lite either with FTDI cable or UC00A USB to UART converter to upload your program from your PC or just simply to power up the board.

For this tutorial, the UC00A is used.

See QUICKSTART guide for more details.

Connect to the internet

1. Methods to configure the ESPresso Lite V2:

  • Using the SmartConfig app
  • Using the AP mode (access point)
  • Connecting to WAP using direct coding

You can choose either method to connect to the internet.

For more details on configuration at Connecting to the internet.

STATUS of ESPresso Lite V2 indicated by LED on GPIO2.

  • Long blinks : SmartConfig mode
  • LED off: Connected to Wi-Fi
  • Short blinks: AP mode
  • Normal blink: Trying to connect to Wi-Fi
  • LED off: Not connected to Wi-Fi

Once the ESPresso Lite is connected to the internet, the LED will turn OFF.

If you are not using an OLED display, you can check for the mode using Serial Monitor.

  • For AP mode
  • For Smart Config mode

Create your Cloud account

After the ESPresso Lite V2 is connected, you need to create a cloud account at ESPert cloud.

For more details on creating cloud account => CREATE YOUR CLOUD ACCOUNT

After installing the ESPert IoT Mobile App, you can try to send a PUSH NOTIFICATION to your smartphone from the cloud.

ESPert IoT Mobile App

  1. Download and install the ESPert IoT Mobile App on your smartphone.

DO Button apps

1. Download DO Button by IFTTT apps from Play Store.

2. Setup the button.

i. Open the DO Button apps

ii. Click the bottom right icon

iii. Press + to create new recipe

iv. Press CHANNELS and search for MAKER

v. Create a New Recipe

vi. Action – Make a web request

vii. Fill in the TITLE and URL.

viii. Method : GET

ix. DONE.

  • TITLE        : Feed the fish
  • URL           : http://www.espert.io/bridge/ESPert/xxxxxxx/FEED?cmd=1
  • CONTENT TYPE : (blank)
  • BODY         : (blank)

xxxxxxx is the ESPert ID.

Hardware Preparation

1. The connection for the hardware is simple. You can refer to the circuit diagram below.

1. Stick the bottle to the servo horn.

2. Drill some holes on the cap.

3. Get prepared with all the components needed.

4. You can setup all the components in a box.

5. The setup is complete.

5. A paper clip can be glued to the box.

Code Overview

  • The key for MySmartphone in the coding must match the key that is shown at ESPert.io.



The coding for Feed The Fish can be downloaded here.

Related Posts

Comments (5)

i have problem with this coding…..
error code —>>>

In file included from C:\Users\nurfadhilah\Desktop\FYP\Feed_the_fish-master\FEED_THE_FISH\FEED_THE_FISH.ino:1:0:

C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:415:18: error: ‘_user_on_start_callback’ has not been declared

OTA_CALLBACK(_user_on_start_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:415:49: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘;’ token

OTA_CALLBACK(_user_on_start_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:415:49: error: ISO C++ forbids declaration of ‘OTA_CALLBACK’ with no type [-fpermissive]

C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:416:18: error: ‘_user_on_end_callback’ has not been declared

OTA_CALLBACK(_user_on_end_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:416:47: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘;’ token

OTA_CALLBACK(_user_on_end_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:416:47: error: ISO C++ forbids declaration of ‘OTA_CALLBACK’ with no type [-fpermissive]

C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:416:5: error: ‘int ESPert_OTA::OTA_CALLBACK(int)’ cannot be overloaded

OTA_CALLBACK(_user_on_end_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:415:5: error: with ‘int ESPert_OTA::OTA_CALLBACK(int)’

OTA_CALLBACK(_user_on_start_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:417:24: error: ‘_user_on_error_callback’ has not been declared

OTA_CALLBACK_ERROR(_user_on_error_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:417:55: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘;’ token

OTA_CALLBACK_ERROR(_user_on_error_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:417:55: error: ISO C++ forbids declaration of ‘OTA_CALLBACK_ERROR’ with no type [-fpermissive]

C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:418:27: error: ‘_user_on_progress_callback’ has not been declared

OTA_CALLBACK_PROGRESS(_user_on_progress_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:418:61: error: invalid pure specifier (only ‘= 0’ is allowed) before ‘;’ token

OTA_CALLBACK_PROGRESS(_user_on_progress_callback) = NULL;


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:418:61: error: ISO C++ forbids declaration of ‘OTA_CALLBACK_PROGRESS’ with no type [-fpermissive]

C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:421:19: error: ‘OTA_CALLBACK’ is not a type

void on_start(OTA_CALLBACK(fn));


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:422:17: error: ‘OTA_CALLBACK’ is not a type

void on_end(OTA_CALLBACK(fn));


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:423:22: error: ‘OTA_CALLBACK_PROGRESS’ is not a type

void on_progress(OTA_CALLBACK_PROGRESS(fn));


C:\Users\nurfadhilah\Documents\Arduino\libraries\ESPert\src/ESPert.h:424:19: error: ‘OTA_CALLBACK_ERROR’ is not a type

void on_error(OTA_CALLBACK_ERROR(fn));


Multiple libraries were found for “HttpClient.h”
Used: C:\Users\nurfadhilah\Documents\Arduino\libraries\HttpClient
Not used: C:\Users\nurfadhilah\Documents\Arduino\libraries\Bridge
Not used: C:\Users\nurfadhilah\Documents\Arduino\libraries\ArduinoHttpClient
Multiple libraries were found for “SSD1306.h”
Used: C:\Users\nurfadhilah\Documents\Arduino\libraries\ESP8266_Oled_Driver_for_SSD1306_display
Not used: C:\Users\nurfadhilah\Documents\Arduino\libraries\arduino_349150
Multiple libraries were found for “PubSubClient.h”
Used: C:\Users\nurfadhilah\Documents\Arduino\libraries\PubSubClient
Not used: C:\Users\nurfadhilah\Documents\Arduino\libraries\CMMC_MQTT_Connector

–>can you help me solve this problem ..??
—>thank you

Dear Cytron,

Im having a error while uploading the code. (espcomm_upload_mem failed)
From the video while trying to upload the code ( Go to Tool > Port > comm xx(XX is the port No) Comm26 does not show up. My serial port only show”dev/cu.SLAB_USBtoUART and dev/cu.bluetooth-incoming-port.

kindly assist. 🙂
Thank you

when i download do button.by ifttt. i follow the step but when i search maker, something like the example in the image did not appear.. i think i dont have. can u explain?

I also having problem finding the maker channels,is it deleted from DO button? Any solution that i can get the maker channel?

There is no maker button on do button app by ifttt .. can you tell me how to get it .. im try to find but there no ways to command that espresso using do button.. please reply immediately

Leave a comment