Working Video

Why Wemos D1 Mini?

There is a wide variety of development boards with the ESP8266 chip. We actually need a board with an optimum size that can be easily reprogrammable and powered from an external source. So Wemos D1 Mini satisfies our need.

Wemos.jpg
WeMosD1Mini_pinout.png

For programming up the Wemos D1 Mini with Arduino IDE, let's have a look here.

Continous Rotation Servo

In this project, we are using a continuous rotation servo for rotating the Archimedes screw, because they have integrated motor drivers in a compact and very inexpensive. They can easily drive from the microcontroller itself, not needing an external power supply. The normal DC motor needs a driver circuit which will make the project a little messy. As you all know servo can provide high torque also.

Servo0.jpg
servo1.jpg

A continuous rotation servo (sometimes called a full rotation or 360°servo) looks like a regular hobby servo. While a regular servo motor only turns over a narrow range, with precise control over position, a continuous rotation servo has a shaft that spins continuously, with control over its speed and direction.

A continuous rotation servo motor can be controlled by calling the servo.writeMicroseconds() function, which typically accepts values from 1000-2000. A value of 1000 should rotate the motor counter-clockwise at full speed. A value of 2000 should rotate the motor clockwise at full speed. A value of 1500 should cause the motor to stop rotating (and without any vibration). Intermediate values can be used to change the speed of the rotation.

If you need your device to only rotate for a specific period of time, then simply use a delay() statement to wait for a specific amount of time in milliseconds (1000 milliseconds = 1 second) before stopping the motor. If you want to know more about this, just have a look here.

Here we used SG90 named servo which can produce optimum torque and that is very enough for this project. If you are planning to make a large feeder consider huge torque generating servos.

Note: You can also hack your normal servo for continuous rotations by referring to this guide

Firebase Realtime Database

Firebase is a mobile and web application development platform. Firebase frees developers to focus on crafting fantastic user experiences. You don’t need to manage servers. You don’t need to write APIs. Firebase is your server, your API, and your data store, all written so generically that you can modify it to suit most needs. In our project, we use Firebase real-time database to instantly post and retrieve data so that there is no time delay.

To find Firebase Host

  • Go to Firebase
  • Then go and open your project (If you have no projects create one)
  • Then move to Real-Time Database
  • The selected URL in the screenshot without "https://" is the Firebase Host

To find Firebase Auth

  • Go to Firebase
  • Then go to Settings > Project Settings
  • From there move on to Service accounts
  • Then under the Database secrets tab, you can find the firebase auth key

To find Firebase Config

  • Go to Firebase
  • Then go to Settings > Project Settings
  • Under Your Apps > SDK Setup and Configuration > Config (Sample given below)
{
  "apiKey": "<apiKey>",
  "authDomain": "<authDomain>",
  "databaseURL": "<databaseURL>",
  "projectId": "<projectID>",
  "storageBucket": "<storageBucket>",
  "messagingSenderId": "<ID>",
  "appId": "<APP ID>"
}

Website

We have designed a neumorphic companion web app for the device. Neumorphism, or soft UI, is a visual style that combines background colors, shapes, gradients, highlights, and shadows to ensure graphic intense buttons and switches. All that allows achieving a soft, extruded plastic look, and almost 3D styling.

The website is developed using HTML, CSS, and JS and hosted on a free hosting service. Add the Firebase Config in the script.js file and host the code given here and you are good to go.

Circuit and Testing

So it's time for testing the circuit. You can wire as per the schematics....

Read more »