map

Dependencies:   mbed APDS_9960 Servo TM1636 RTC-DS1307 RC522

Committer:
poom10490
Date:
Tue Dec 18 11:53:37 2018 +0000
Revision:
0:3854371f105a
Child:
1:8017931b98cb
job;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
poom10490 0:3854371f105a 1 #include "mbed.h"
poom10490 0:3854371f105a 2 #include "Rtc_Ds1307.h"
poom10490 0:3854371f105a 3 #include "TM1636.h" //ClockShield
poom10490 0:3854371f105a 4 #include "glibr.h" // Color
poom10490 0:3854371f105a 5 #include "Servo.h" // Motor
poom10490 0:3854371f105a 6 #include "MFRC522.h" // RFID
poom10490 0:3854371f105a 7 #include <string>
poom10490 0:3854371f105a 8 #include <iostream>
poom10490 0:3854371f105a 9 //Serial///////////////////////////////
poom10490 0:3854371f105a 10 Serial esp(D8,D2);
poom10490 0:3854371f105a 11 //Serial pc(USBTX,USBRX);
poom10490 0:3854371f105a 12 //////////////////////////////////////
poom10490 0:3854371f105a 13 //Sensor//////////////////////////////
poom10490 0:3854371f105a 14 AnalogIn DistanceI(A0);
poom10490 0:3854371f105a 15 AnalogIn DistanceII(A1);
poom10490 0:3854371f105a 16 DigitalIn Proximity(D2);
poom10490 0:3854371f105a 17 glibr Color(D14,D15);//SDA, SCL
poom10490 0:3854371f105a 18 MFRC522 RfChip(D11, D12, D13, D10, D9);//MOSI, MISO, SCK, SDA, RST
poom10490 0:3854371f105a 19 /////////////////////////////////////
poom10490 0:3854371f105a 20 //ClockShield////////////////////////
poom10490 0:3854371f105a 21 Rtc_Ds1307 rtc(D3, D6);
poom10490 0:3854371f105a 22 DigitalIn button_K3(A5);
poom10490 0:3854371f105a 23 TM1636 tm1636(D7,D8);
poom10490 0:3854371f105a 24 Serial pc(USBTX, USBRX, "pc");
poom10490 0:3854371f105a 25
poom10490 0:3854371f105a 26 uint16_t color, red, green, blue, ambient;
poom10490 0:3854371f105a 27 string tagRFID;
poom10490 0:3854371f105a 28 int goodProduct, badProduct, allProduct;
poom10490 0:3854371f105a 29 float Quality;
poom10490 0:3854371f105a 30 //int allProduct, goodProduct, badProduct;
poom10490 0:3854371f105a 31 float Performance, Ability;
poom10490 0:3854371f105a 32 int8_t temp[4];
poom10490 0:3854371f105a 33 int main(){
poom10490 0:3854371f105a 34 //int8_t temp[4];
poom10490 0:3854371f105a 35 button_K3.mode(PullUp);
poom10490 0:3854371f105a 36 tm1636.init();
poom10490 0:3854371f105a 37 Rtc_Ds1307::Time_rtc tm = {};
poom10490 0:3854371f105a 38 tm.date = 1 ;
poom10490 0:3854371f105a 39 tm.mon = 1 ;
poom10490 0:3854371f105a 40 tm.year = 12 ;
poom10490 0:3854371f105a 41 tm.hour = 0;
poom10490 0:3854371f105a 42 tm.min = 0;
poom10490 0:3854371f105a 43 tm.sec = 0;
poom10490 0:3854371f105a 44 rtc.setTime(tm, false, false);
poom10490 0:3854371f105a 45 rtc.startClock();
poom10490 0:3854371f105a 46 string DataCode;
poom10490 0:3854371f105a 47 esp.baud(115200);
poom10490 0:3854371f105a 48 pc.baud(115200);
poom10490 0:3854371f105a 49 RfChip.PCD_Init();
poom10490 0:3854371f105a 50 Color.setMode(0,1);
poom10490 0:3854371f105a 51 Color.enableLightSensor(true);
poom10490 0:3854371f105a 52 Color.enablePower();
poom10490 0:3854371f105a 53 //rtc.startClock();
poom10490 0:3854371f105a 54 while(1){
poom10490 0:3854371f105a 55 rtc.getTime(tm);
poom10490 0:3854371f105a 56 pc.printf("%02d:%02d:%02d\n",tm.hour,tm.min,tm.sec);
poom10490 0:3854371f105a 57 temp[0] = tm.min / 10;
poom10490 0:3854371f105a 58 temp[1] = tm.min % 10;
poom10490 0:3854371f105a 59 temp[2] = tm.sec / 10;
poom10490 0:3854371f105a 60 temp[3] = tm.sec % 10;
poom10490 0:3854371f105a 61 tm1636.display(temp);
poom10490 0:3854371f105a 62 if(RfChip.PICC_IsNewCardPresent()){
poom10490 0:3854371f105a 63 pc.printf("Card Read\n");
poom10490 0:3854371f105a 64 RfChip.PICC_ReadCardSerial();
poom10490 0:3854371f105a 65 pc.printf("%02d:%02d:%02d\n",tm.hour,tm.min,tm.sec);
poom10490 0:3854371f105a 66
poom10490 0:3854371f105a 67 string str = "";
poom10490 0:3854371f105a 68 pc.printf("\nTAG SERIAL : %X02", RfChip.uid.uidByte[0]); pc.printf(" %X02",RfChip.uid.uidByte[1]); pc.printf(" %X02",RfChip.uid.uidByte[2]); pc.printf(" %X02\n",RfChip.uid.uidByte[3]);
poom10490 0:3854371f105a 69 uint16_t newstr = (RfChip.uid.uidByte[0] += RfChip.uid.uidByte[1]) |= 0x1010;
poom10490 0:3854371f105a 70 pc.printf("%d\n",newstr);
poom10490 0:3854371f105a 71 if(newstr == 145){
poom10490 0:3854371f105a 72 pc.printf("Order B\n");
poom10490 0:3854371f105a 73 tagRFID = "B";
poom10490 0:3854371f105a 74 DataCode = "$B032";
poom10490 0:3854371f105a 75 }
poom10490 0:3854371f105a 76 if(newstr == 213){
poom10490 0:3854371f105a 77 pc.printf("Order W\n");
poom10490 0:3854371f105a 78 tagRFID = "W";
poom10490 0:3854371f105a 79 DataCode = "$W402";
poom10490 0:3854371f105a 80 }
poom10490 0:3854371f105a 81 }
poom10490 0:3854371f105a 82 if(tagRFID == "B"){
poom10490 0:3854371f105a 83 float distance = DistanceI.read()*100;
poom10490 0:3854371f105a 84 //pc.printf("%.2f",distance);
poom10490 0:3854371f105a 85 if(distance <= 65){
poom10490 0:3854371f105a 86 pc.printf("Distance read\n");
poom10490 0:3854371f105a 87 allProduct += 1;
poom10490 0:3854371f105a 88 wait(12);
poom10490 0:3854371f105a 89 uint16_t red, green, blue;
poom10490 0:3854371f105a 90 Color.readRedLight(red);
poom10490 0:3854371f105a 91 Color.readGreenLight(green);
poom10490 0:3854371f105a 92 Color.readBlueLight(blue);
poom10490 0:3854371f105a 93 pc.printf("Red = %d\n",red);
poom10490 0:3854371f105a 94 pc.printf("Green = %d\n",green);
poom10490 0:3854371f105a 95 pc.printf("Blue = %d\n",blue);
poom10490 0:3854371f105a 96 int Colors = red + green + blue;
poom10490 0:3854371f105a 97 if(Colors >= 4 && Colors <= 6 && blue >= 1){
poom10490 0:3854371f105a 98 pc.printf("Blue\n");
poom10490 0:3854371f105a 99 wait(1);
poom10490 0:3854371f105a 100 if(Proximity == 1){
poom10490 0:3854371f105a 101 goodProduct+=1;
poom10490 0:3854371f105a 102 }
poom10490 0:3854371f105a 103 }
poom10490 0:3854371f105a 104 if(Colors >= 16 && Colors <= 21){
poom10490 0:3854371f105a 105 badProduct += 1;
poom10490 0:3854371f105a 106 if(Proximity != 1){
poom10490 0:3854371f105a 107 badProduct+=1;
poom10490 0:3854371f105a 108 }
poom10490 0:3854371f105a 109 }
poom10490 0:3854371f105a 110 }
poom10490 0:3854371f105a 111 pc.printf("%d\n",goodProduct);
poom10490 0:3854371f105a 112 Quality = ((goodProduct-badProduct)/allProduct)*100;
poom10490 0:3854371f105a 113 pc.printf("%.2f\n",Quality) ;
poom10490 0:3854371f105a 114 }
poom10490 0:3854371f105a 115 if(tagRFID == "W"){
poom10490 0:3854371f105a 116 float distance = DistanceI.read()*100;
poom10490 0:3854371f105a 117 //pc.printf("%.2f",distance);
poom10490 0:3854371f105a 118 if(distance <= 65){
poom10490 0:3854371f105a 119 pc.printf("Distance read\n");
poom10490 0:3854371f105a 120 allProduct += 1;
poom10490 0:3854371f105a 121 wait(12);
poom10490 0:3854371f105a 122 uint16_t red, green, blue;
poom10490 0:3854371f105a 123 Color.readRedLight(red);
poom10490 0:3854371f105a 124 Color.readGreenLight(green);
poom10490 0:3854371f105a 125 Color.readBlueLight(blue);
poom10490 0:3854371f105a 126 pc.printf("Red = %d\n",red);
poom10490 0:3854371f105a 127 pc.printf("Green = %d\n",green);
poom10490 0:3854371f105a 128 pc.printf("Blue = %d\n",blue);
poom10490 0:3854371f105a 129 int Colors = red + green + blue;
poom10490 0:3854371f105a 130 if(Colors >= 20){
poom10490 0:3854371f105a 131 pc.printf("White\n");
poom10490 0:3854371f105a 132 wait(1);
poom10490 0:3854371f105a 133 Proximity.read();
poom10490 0:3854371f105a 134 pc.printf("%d\n",Proximity.read());
poom10490 0:3854371f105a 135 if(Proximity == 1){
poom10490 0:3854371f105a 136 goodProduct+=1;
poom10490 0:3854371f105a 137 }
poom10490 0:3854371f105a 138 }
poom10490 0:3854371f105a 139 if(Colors >= 4 && Colors <= 6 && blue >= 1){
poom10490 0:3854371f105a 140 wait(1);
poom10490 0:3854371f105a 141 if(Proximity != 1){
poom10490 0:3854371f105a 142 badProduct += 1;
poom10490 0:3854371f105a 143 }
poom10490 0:3854371f105a 144 }
poom10490 0:3854371f105a 145 Quality = (goodProduct/allProduct)*100;
poom10490 0:3854371f105a 146 pc.printf("%.2f\n",Quality) ;
poom10490 0:3854371f105a 147 }
poom10490 0:3854371f105a 148 }
poom10490 0:3854371f105a 149 }
poom10490 0:3854371f105a 150 }