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!!!





  • 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.



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.



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



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.



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



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.




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.



  • 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.

5 thoughts on “Who is going to feed my fish?”

  1. 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

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

  3. 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?

  4. 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

  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

Leave a Comment

Your email address will not be published.

Share this Tutorial

Share on facebook
Share on whatsapp
Share on email
Share on print
Share on twitter
Share on pinterest
Share on facebook
Share on whatsapp
Share on email
Share on print
Share on twitter
Share on pinterest

Latest Tutorial

Soil Moisture Alarm Using CircuitPython on Seeeduino XIAO
Read Surrounding Temperature and Humidity Using Grove Beginner Kit
Program Seeeduino XIAO Using CircuitPython
Does Technology Make Us Feel Safe
Send Video to Telegram Bot Using Raspberry Pi Camera
Scroll to Top