Smart IOT vagn för intern logistik (Intel IoT) (5 / 10 steg)
Steg 5: MQTT prenumeration och objektet köp med robotarm
Kunder har möjlighet att markera objekt med hjälp av Android App och efter valet, app kommer att publicera en MQTT meddelande och det kommer att tecknas i edison. När edison får produktinfo, det kommer att flytta till produkterna och använder RFID, det kommer att identifiera produkten och när den identifierar, roboten kommer att stanna där och sedan robotarmen hämtar objektet och lägga den i kundvagnen.
om (res == "a") {/ / får det produkt-id "a" från Android App med MQTT. dvs kunden markerade objekt att köpa via App
rfidon(); Anropa funktionen för att spåra produkten med RFID
motor1.Run(forward); Vagnen går att hitta artikeln
}
Funktion rfidon() < br >< br > annullera rfidon() < /p >< p > {Serial.println ("RFID fungerar nu");
uchar i, tmp;
uchar status.
uchar str [MAX_LEN];
uchar RC_size;
uchar blockAddr; 选择操作的块地址0 ~ 63
Sträng mynum = "";
runFunction();
寻卡, 返回卡类型
status = MFRC522_Request (PICC_REQIDL, str);
Serial.println(status);
Serial.println(MI_OK);
medan (status! = MI_OK)
{
status = MFRC522_Request (PICC_REQIDL, str);
Serial.println(status);
Serial.println(MI_OK);
om (status == MI_OK)
{
Serial.println ("kort upptäckt");
status = MFRC522_Anticoll(str);
memcpy (serNum, str, 5);
om (status == MI_OK)
{
göra {
Serial.println ("kortets nummer är:");
Serial.Print(serNum[0]);
Serial.Print (",");
Serial.Print (serNum [1], BIN);
Serial.Print (",");
Serial.Print (serNum [2], BIN);
Serial.Print (",");
Serial.Print (serNum [3], BIN);
Serial.Print (",");
Serial.Print (serNum [4], BIN);
status = MFRC522_Request (PICC_REQIDL, str);
status = MFRC522_Anticoll(str);
memcpy (serNum, str, 5);
Serial.println("");
Ska verkligen kolla alla par, men nu använder vi bara först
}
medan (serNum [0]! = 225);
om (serNum [0] == 225) {
Serial.println ("RFID identifieras"); Produkt som anges
Serial.Print(serNum[0]);
MotorSpeedSetAB(0,0); Stoppa fordonet / Golfvagn
servo_4.attach(9);
för (servo4_pos = 175; servo4_pos > = 30; servo4_pos--)
{
servo_4.write(servo4_pos);
Delay(20);
Serial.println ("inuti servo 4");
}
servo_4.detach();
Delay(1000);
servo_1.attach(3);
för (servo1_pos = 5; servo1_pos < = 100; servo1_pos ++)
{
servo_1.write(servo1_pos);
Delay(20);
}
servo_1.detach();
Delay(1000); < /p >< p > delay(1000);
servo_1.attach(3);
för (servo1_pos = 100; servo1_pos > = 5; servo1_pos--)
{
servo_1.write(servo1_pos);
Delay(20);
}
Delay(1000); < /p >< p > servo_4.attach(9);
för (servo4_pos = 30; servo4_pos < = 175; servo4_pos ++)
{
servo_4.write(servo4_pos);
Delay(20);
Serial.println ("inuti servo 4");
}
servo_4.detach();
bryta;
Delay(1000);
servo_1.attach(3);
för (servo1_pos = 5; servo1_pos < = 100; servo1_pos ++)
{
servo_1.write(servo1_pos);
Delay(20);
}
för (servo1_pos = 100; servo1_pos > = 5; servo1_pos--)
{
servo_1.write(servo1_pos);
Delay(20);
}
servo_1.detach();
Delay(1000);
}
}
Serial.Print(Str[0],bin);
Serial.Print (",");
Serial.Print(Str[1],bin);
Serial.println("");
} }
Serial.println("");
MFRC522_Halt();