map
Dependencies: mbed APDS_9960 Servo TM1636 RTC-DS1307 RC522
Diff: main.cpp
- Revision:
- 1:8017931b98cb
- Parent:
- 0:3854371f105a
--- a/main.cpp Tue Dec 18 11:53:37 2018 +0000 +++ b/main.cpp Tue Dec 18 21:57:09 2018 +0000 @@ -7,8 +7,8 @@ #include <string> #include <iostream> //Serial/////////////////////////////// -Serial esp(D8,D2); -//Serial pc(USBTX,USBRX); +//Serial esp(D8,D2); +Serial pc(USBTX,USBRX); ////////////////////////////////////// //Sensor////////////////////////////// AnalogIn DistanceI(A0); @@ -18,20 +18,19 @@ MFRC522 RfChip(D11, D12, D13, D10, D9);//MOSI, MISO, SCK, SDA, RST ///////////////////////////////////// //ClockShield//////////////////////// -Rtc_Ds1307 rtc(D3, D6); +Rtc_Ds1307 rtc(D3, D6); //I2C DigitalIn button_K3(A5); -TM1636 tm1636(D7,D8); -Serial pc(USBTX, USBRX, "pc"); +TM1636 tm1636(D7,D4); uint16_t color, red, green, blue, ambient; string tagRFID; -int goodProduct, badProduct, allProduct; -float Quality; +//int goodProduct, badProduct, allProduct; +//int Quality = (goodProduct/allProduct)*100; //int allProduct, goodProduct, badProduct; float Performance, Ability; -int8_t temp[4]; +//int8_t temp[4]; int main(){ - //int8_t temp[4]; + int8_t temp[4]; button_K3.mode(PullUp); tm1636.init(); Rtc_Ds1307::Time_rtc tm = {}; @@ -43,108 +42,201 @@ tm.sec = 0; rtc.setTime(tm, false, false); rtc.startClock(); - string DataCode; + char DataCode[]; esp.baud(115200); pc.baud(115200); RfChip.PCD_Init(); Color.setMode(0,1); Color.enableLightSensor(true); Color.enablePower(); - //rtc.startClock(); + rtc.startClock(); while(1){ - rtc.getTime(tm); + pc.printf("."); + rtc.getTime(tm); pc.printf("%02d:%02d:%02d\n",tm.hour,tm.min,tm.sec); temp[0] = tm.min / 10; temp[1] = tm.min % 10; temp[2] = tm.sec / 10; temp[3] = tm.sec % 10; - tm1636.display(temp); - if(RfChip.PICC_IsNewCardPresent()){ - pc.printf("Card Read\n"); - RfChip.PICC_ReadCardSerial(); - pc.printf("%02d:%02d:%02d\n",tm.hour,tm.min,tm.sec); - - string str = ""; - 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]); - uint16_t newstr = (RfChip.uid.uidByte[0] += RfChip.uid.uidByte[1]) |= 0x1010; - pc.printf("%d\n",newstr); - if(newstr == 145){ - pc.printf("Order B\n"); - tagRFID = "B"; - DataCode = "$B032"; - } - if(newstr == 213){ - pc.printf("Order W\n"); - tagRFID = "W"; - DataCode = "$W402"; + tm1636.display(temp); + int Status = pc.read() + if(Status == 1){//Online Checking + if(RfChip.PICC_IsNewCardPresent()){ + pc.printf("Card Read\n"); + RfChip.PICC_ReadCardSerial(); + //pc.printf("%02d:%02d:%02d\n",tm.hour,tm.min,tm.sec); + string str = ""; + 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]); + uint16_t newstr = (RfChip.uid.uidByte[0] += RfChip.uid.uidByte[1]) |= 0x1010; + pc.printf("%d\n",newstr); + if(newstr == 145){ + pc.printf("Order B\n"); + tagRFID = "B"; + DataCode = "$B032"; + } + if(newstr == 213){ + pc.printf("Order W\n"); + tagRFID = "W"; + DataCode = "$W402"; + } + } + if(tagRFID == "B"){ + float distance = DistanceI.read()*100; + //pc.printf("%.2f",distance); + if(distance <= 65){ + pc.printf("Distance read\n"); + allProduct += 1; + wait(12); + uint16_t red, green, blue; + Color.readRedLight(red); + Color.readGreenLight(green); + Color.readBlueLight(blue); + pc.printf("Red = %d\n",red); + pc.printf("Green = %d\n",green); + pc.printf("Blue = %d\n",blue); + int Colors = red + green + blue; + if(Colors >= 4 && Colors <= 6 && blue >= 1){ + pc.printf("Blue\n"); + wait(1); + if(Proximity == 1){ + goodProduct+=1; + } + } + if(Colors >= 16 && Colors <= 21){ + badProduct += 1; + if(Proximity != 1){ + badProduct+=1; + } + } + } + } + if(tagRFID == "W"){ + float distance = DistanceI.read()*100; + //pc.printf("%.2f",distance); + if(distance <= 65){ + pc.printf("Distance read\n"); + allProduct += 1; + wait(12); + uint16_t red, green, blue; + Color.readRedLight(red); + Color.readGreenLight(green); + Color.readBlueLight(blue); + pc.printf("Red = %d\n",red); + pc.printf("Green = %d\n",green); + pc.printf("Blue = %d\n",blue); + int Colors = red + green + blue; + if(Colors >= 20){ + pc.printf("White\n"); + wait(1); + Proximity.read(); + //pc.printf("%d\n",Proximity.read()); + if(Proximity == 1){ + goodProduct+=1; + } + } + if(Colors >= 4 && Colors <= 6 && blue >= 1){ + wait(1); + if(Proximity != 1){ + badProduct += 1; + } + } + } + } + int Quality = (goodProduct/allProduct)*100; + //int Performance = RealTIme/StartTime; + //int Ability = (goodProduct*RealTime)/StartTime; + DataCode = DataCode + string(Quality) + string(Performance) + string(Ability); + int len_Data; + for(len_Data = 0;len_Data < 14;len_Data++){ + esp.putc(DataCode[i]); + wait(0.01); + } } - } - if(tagRFID == "B"){ - float distance = DistanceI.read()*100; - //pc.printf("%.2f",distance); - if(distance <= 65){ - pc.printf("Distance read\n"); - allProduct += 1; - wait(12); - uint16_t red, green, blue; - Color.readRedLight(red); - Color.readGreenLight(green); - Color.readBlueLight(blue); - pc.printf("Red = %d\n",red); - pc.printf("Green = %d\n",green); - pc.printf("Blue = %d\n",blue); - int Colors = red + green + blue; - if(Colors >= 4 && Colors <= 6 && blue >= 1){ - pc.printf("Blue\n"); - wait(1); - if(Proximity == 1){ - goodProduct+=1; - } + if(Status == 0){ + if(RfChip.PICC_IsNewCardPresent()){ + pc.printf("Card Read\n"); + RfChip.PICC_ReadCardSerial(); + //pc.printf("%02d:%02d:%02d\n",tm.hour,tm.min,tm.sec); + string str = ""; + 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]); + uint16_t newstr = (RfChip.uid.uidByte[0] += RfChip.uid.uidByte[1]) |= 0x1010; + pc.printf("%d\n",newstr); + if(newstr == 145){ + pc.printf("Order B\n"); + tagRFID = "B"; + DataCode = "$B032"; + } + if(newstr == 213){ + pc.printf("Order W\n"); + tagRFID = "W"; + DataCode = "$W402"; + } + } + if(tagRFID == "B"){ + float distance = DistanceI.read()*100; + //pc.printf("%.2f",distance); + if(distance <= 65){ + pc.printf("Distance read\n"); + allProduct += 1; + wait(12); + uint16_t red, green, blue; + Color.readRedLight(red); + Color.readGreenLight(green); + Color.readBlueLight(blue); + pc.printf("Red = %d\n",red); + pc.printf("Green = %d\n",green); + pc.printf("Blue = %d\n",blue); + int Colors = red + green + blue; + if(Colors >= 4 && Colors <= 6 && blue >= 1){ + pc.printf("Blue\n"); + wait(1); + if(Proximity == 1){ + goodProduct+=1; + } + } + if(Colors >= 16 && Colors <= 21){ + badProduct += 1; + if(Proximity != 1){ + badProduct+=1; + } + } } - if(Colors >= 16 && Colors <= 21){ - badProduct += 1; - if(Proximity != 1){ - badProduct+=1; - } + } + if(tagRFID == "W"){ + float distance = DistanceI.read()*100; + //pc.printf("%.2f",distance); + if(distance <= 65){ + pc.printf("Distance read\n"); + allProduct += 1; + wait(12); + uint16_t red, green, blue; + Color.readRedLight(red); + Color.readGreenLight(green); + Color.readBlueLight(blue); + pc.printf("Red = %d\n",red); + pc.printf("Green = %d\n",green); + pc.printf("Blue = %d\n",blue); + int Colors = red + green + blue; + if(Colors >= 20){ + pc.printf("White\n"); + wait(1); + Proximity.read(); + //pc.printf("%d\n",Proximity.read()); + if(Proximity == 1){ + goodProduct+=1; + } + } + if(Colors >= 4 && Colors <= 6 && blue >= 1){ + wait(1); + if(Proximity != 1){ + badProduct += 1; + } + } + } } - } - pc.printf("%d\n",goodProduct); - Quality = ((goodProduct-badProduct)/allProduct)*100; - pc.printf("%.2f\n",Quality) ; - } - if(tagRFID == "W"){ - float distance = DistanceI.read()*100; - //pc.printf("%.2f",distance); - if(distance <= 65){ - pc.printf("Distance read\n"); - allProduct += 1; - wait(12); - uint16_t red, green, blue; - Color.readRedLight(red); - Color.readGreenLight(green); - Color.readBlueLight(blue); - pc.printf("Red = %d\n",red); - pc.printf("Green = %d\n",green); - pc.printf("Blue = %d\n",blue); - int Colors = red + green + blue; - if(Colors >= 20){ - pc.printf("White\n"); - wait(1); - Proximity.read(); - pc.printf("%d\n",Proximity.read()); - if(Proximity == 1){ - goodProduct+=1; - } - } - if(Colors >= 4 && Colors <= 6 && blue >= 1){ - wait(1); - if(Proximity != 1){ - badProduct += 1; - } - } - Quality = (goodProduct/allProduct)*100; - pc.printf("%.2f\n",Quality) ; - } - } - } - } \ No newline at end of file + int Quality = (goodProduct/allProduct)*100; + //int Performance = RealTIme/StartTime; + //int Ability = (goodProduct*RealTime)/StartTime; + DataCode = DataCode + string(Quality) + string(Performance) + string(Ability); + }//while + }//int(main) \ No newline at end of file