Project tutorial
Super-Go: An Industrial IoT bot

Super-Go: An Industrial IoT bot © GPL3+

This IoT bot would enable you to place order anytime anywhere. Can be used in any shop or industry to avoid queues and increase efficiency.

  • 2,666 views
  • 0 comments
  • 16 respects

Components and supplies

Apps and online services

About this project

Introduction:

Super-Go is an industrial IoT BOT (Internet of Things Robot), which, on receiving commands from the authorized user implements the task. Being an IoT bot it can be accessible around the globe by the user/owner. Upon receiving the particular command it locates the item and using different methods it delivers the product to the location of the customer.

Problem Statement:

Time is valuable for all. In the busy and tiring schedule of a human being, there are chances of forgetting some of the most essential and daily requirements like groceries or equipment which is needed in time. To overcome this issue, the proposed IoT BOT i.e., Super-Go helps in getting the requirements in real time from a fingertip to the products at home. This proposed project looks forward towards an automated retail super market (maybe a requirement of just one or two people) which will reduce the human errors and will also work efficiently

Working:

.A mobile application is used to enter the user’s requirements and the quantity of the content. A bar code is generated on the user’s mobile application which confirms the placement of the order. The data of the orders placed are sent to the Google’s Fusion table and then it is forwarded to the inventory where the person receives the message and instructs the Amazon Echo dot (Alexa) about the products. The instruction is done using the openHAB (open Home Automation Bus Server). Alexa communicates with the IoT BOT which is controlled using the microcontrollers and this will get all the products down the conveyer belt to the inventory window. On the way back home the user can just visit the inventory retail store to collect the products by scanning the bar code and paying the bill.

Final working Model

Code

Super-GoArduino
The robotic Arm is programmed to perform the requested task.
//#include <Wire.h>

char c=0;
//L2
int m1= 8;//forward
int m12=7;//forward
int m2=5;//end point
int m22=4;//end point
//L1
int m3=9;//circle
int m32=10;//circle
//L3
int m4=11;
int m42=12;
//for chasis
int m5= 3;//forward
int m52=2;//reverse

void L1();
void L11();
void L1_stop();
void L2_stop();
void gripper_stop();

void L2();
void L22();

void gripper();
void grip();

void L3();
void L33();
void L3_stop();

void sensor();

void robo_forward();
void robo_reverse();
void robo_stop();
char state;


void rice();
void sugar();
void dal();

void stop_all();

void setup() {
  Serial.begin (9600);

  

  pinMode(m1, OUTPUT);
  pinMode(m12, OUTPUT);
  pinMode(m2,OUTPUT);
  pinMode(m22,OUTPUT);
  pinMode(m3,OUTPUT);
  pinMode(m32,OUTPUT);
  pinMode(m4,OUTPUT);
  pinMode(m42,OUTPUT);
  pinMode(m5,OUTPUT);
  pinMode(m52,OUTPUT);
  
}

void L1_stop()
{
   digitalWrite(m3,LOW);
  digitalWrite(m32,LOW);
}


void L1()// rotation
{
digitalWrite(m3,HIGH);
  digitalWrite(m32,LOW);
}

void L11()//anticlockwise rotation
{
  digitalWrite(m3,LOW);
  digitalWrite(m32,HIGH);
}

void L2_stop()
{
  digitalWrite(m1,LOW);
  digitalWrite(m12,LOW);  
}
void L2()//bending arm
{
  digitalWrite(m1,LOW);
  digitalWrite(m12,HIGH);  
}

void L22()//arm up
{
  digitalWrite(m1,HIGH);
  digitalWrite(m12,LOW);
}

void gripper_stop()
{
  digitalWrite(m2,LOW);
  digitalWrite(m22,LOW);
}

void gripper()
{
  digitalWrite(m2,HIGH);
  digitalWrite(m22,LOW);
}

void grip()
{
  digitalWrite(m2,LOW);
  digitalWrite(m22,HIGH);
}

void L3_stop()
{
  digitalWrite(m4,LOW);
  digitalWrite(m42,LOW);  
}
void L3()
{
  digitalWrite(m4,LOW);
  digitalWrite(m42,HIGH);  
}

void L33()
{
  digitalWrite(m4,HIGH);
  digitalWrite(m42,LOW);
}

void robo_forward()
{
  digitalWrite(m5,HIGH);
   digitalWrite(m52,LOW);
}

void robo_reverse()
{
 digitalWrite(m5,LOW);
 digitalWrite(m52,HIGH);
}

void robo_stop()
{
   digitalWrite(m5,LOW);
 digitalWrite(m52,LOW);
}

void loop() {
  
if(Serial.available()>0)
{
  while(Serial.available()!=1)
  {
      state=Serial.read();
      Serial.print(state);
      }
}

switch(state)
{
  case 'k':rice();
           state=0;
            break;

  case 'z':sugar();
            state=0;
            break;

  case 'b': dal();
            state=0;
            break;

  default: stop_all();
          break;
}

}

void rice()
{
// if(state=='k')//rice
// {
  int i;
 Serial.print("2");
 robo_forward();
 delay(500);
 robo_stop();
 delay(50);

 gripper();
 delay(1500);
 gripper_stop();
 delay(50);
 
 
for(i=0;i<8;i++)
{
  L2();
 delay(50);
 L2_stop();
 delay(35);
}
 L2_stop();
 delay(50);
 grip();
 delay(1700);
 
 L22();
 delay(600);
 L2_stop();
 delay(50);
 L1();
 delay(1200);
 L1_stop();
 delay(50);
 for(i=0;i<8;i++)
 {
 L2();
 delay(50);
 L2_stop();
 delay(35);
 }
 L2_stop();
 delay(50);
 gripper_stop();
 delay(50);
 gripper();
 delay(1500);
 grip();
 delay(1700);
 gripper_stop();
 delay(50);
 L22();
 delay(600);
 L2_stop();
 delay(50);
 L11();
 delay(910);
 L1_stop();
 delay(50);
  robo_reverse();
 delay(490);
 robo_stop();
  state=0;
 }

void sugar()
{
//else if(state=='b')//sugar
//{
int i;
gripper();
 delay(1500);
 gripper_stop();
 delay(50);
 for(i=0;i<8;i++)
{
  L2();
 delay(50);
 L2_stop();
 delay(35);
}
 L2_stop();
 delay(50);
 grip();
 delay(1700);
 
 L22();
 delay(600);
 L2_stop();
 delay(50);
 L1();
 delay(1200);
 L1_stop();
 delay(50);
 for(i=0;i<8;i++)
 {
 L2();
 delay(50);
 L2_stop();
 delay(35);
 }
 L2_stop();
 delay(50);
 gripper_stop();
 delay(50);
 gripper();
 delay(1500);
 grip();
 delay(1700);
 gripper_stop();
 delay(50);
 L22();
 delay(600);
 L2_stop();
 delay(50);
 L11();
 delay(910);
 L1_stop();
 delay(50);
  state=0;
}

void dal()
{

//else if(state=='z')//dal
//{
int i;
 Serial.print("2");
 robo_reverse();
 delay(520);
 robo_stop();
 delay(50);

 gripper();
 delay(1500);
 gripper_stop();
 delay(50);
 
 
for(i=0;i<8;i++)
{
  L2();
 delay(50);
 L2_stop();
 delay(35);
}
 L2_stop();
 delay(50);
 grip();
 delay(1700);
 
 L22();
 delay(600);
 L2_stop();
 delay(50);
 L1();
 delay(1200);
 L1_stop();
 delay(50);
 for(i=0;i<8;i++)
 {
 L2();
 delay(50);
 L2_stop();
 delay(35);
 }
 L2_stop();
 delay(50);
 gripper_stop();
 delay(50);
 gripper();
 delay(1500);
 grip();
 delay(1700);
 gripper_stop();
 delay(50);
 L22();
 delay(600);
 L2_stop();
 delay(50);
 L11();
 delay(910);
 L1_stop();
 delay(50);
  robo_forward();
 delay(520);
 robo_stop();
  state=0;
}


void stop_all()
{

//else
//{
   L1_stop();
 L2_stop();
 L3_stop();
 gripper_stop();
  robo_stop();
}

Schematics

Architecture
This is the Working Methodology of Super-Go
working_methodology_of_super_ndk1fNB4tb.docx

Comments

Similar projects you might like

SaferWork 4.0: Industrial IoT for Safety

Project tutorial by Gustavo Bertoli

  • 605 views
  • 0 comments
  • 2 respects

IoT Blink - Getting started with IoT

Project showcase by AppShed Support

  • 2,026 views
  • 0 comments
  • 11 respects

Octopod: Smart IoT Home/Industry Automation Project

Project tutorial by Saksham Bhutani

  • 7,028 views
  • 8 comments
  • 30 respects

Comptroller Box: IoT Based Smart Switchboard

Project showcase by Anshul Shaji

  • 853 views
  • 0 comments
  • 9 respects

Android App-Based Home Automation System Using IOT

Project tutorial by Team Autoshack

  • 24,853 views
  • 17 comments
  • 75 respects

Heart Rate Monitor Using IoT

Project tutorial by Team Technopaths

  • 9,115 views
  • 3 comments
  • 26 respects
Add projectSign up / Login