แก้ให้แล้ว

Dependencies:   NOKIA_5110 mbed

Fork of Lost-Found_BOX by FRA221:A

Revision:
7:725f5fb7e3a3
Parent:
6:6635082215c7
Child:
8:e683edc8a530
--- a/main.cpp	Mon Dec 07 13:27:25 2015 +0000
+++ b/main.cpp	Mon Dec 07 14:43:15 2015 +0000
@@ -16,39 +16,36 @@
 #include "NOKIA_5110.h" // Nucleo Pin for MFRC522 reset (pick another D pin if you need D8)
 #define MF_RESET    D9
 #include "speaker.h"
+#include "myESP.h"
+#include "myRFID.h"
+#include "myLCD4884.h"
 DigitalOut LedGreen(LED1);
 DigitalOut spi_address[2] = {SPI_CS,PB_4};
 //Serial connection to PC for output
+Serial esp(D8, D2); //tx rx
 Serial pc(SERIAL_TX, SERIAL_RX);
 Speakers speak(D3);
 DigitalOut lock(PB_13);
 MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
 char buffers[5]={'\0'};
 char IDs[17]={'\0'};
-void GetID(uint8_t ID[])
-{
-    for (uint8_t i = 0; i < RfChip.uid.size; i++)
-    {
-        ID[i] = RfChip.uid.uidByte[i];
-        sprintf(buffers,"%X",RfChip.uid.uidByte[i]);
-        strcat(IDs,buffers); 
-    };  
+
+void wifiInitial(){
+       pc.baud(115200);
+    esp.baud(9600);
+    string ssid = "1544_2G";
+    string pass = "fiborobot" ;
+
+    if(setupESP(ssid,pass) == 1) {
+        pc.printf("System connected to %s with %s as password\n",ssid.c_str(),pass.c_str());
+        pc.printf("System Initialized :: ESP8266 Module Ready!\n");
+        wait(2);
+    }
 }
-uint8_t check(uint8_t ID[])
-{
-    uint8_t x=0;
-    for(uint8_t i = 0; i < RfChip.uid.size; i++)
-    {
-        if(ID[i] == RfChip.uid.uidByte[i]){ x = x+1;}
-    }
-    if(x == RfChip.uid.size){return 1;}
-    else {return 0;}
-}
+
+
 int main(void) {
-    pc.baud(115200);
-    uint8_t RFID[10];
-    int checker = 0;
-    int checks = 0;
+    // Init. LCD Pin
     LcdPins myPins;      
     myPins.sce  = PB_4;  //D5 ActiveLow SlaveSelect
     myPins.rst  = PB_10; //D6
@@ -56,17 +53,92 @@
     myPins.mosi = PA_7;  //SPI_MOSI;
     myPins.miso = NC;
     myPins.sclk = PA_5; //SPI_SCK;    
+    
+    // Init. LCD Chip
     NokiaLcd myLcd( myPins );
- 
     myLcd.InitLcd();                // LCD is reset and DDRAM is cleared
-    myLcd.DrawString("Welcome");   
+    myLcd.DrawString("System Initializing...");   
     myLcd.stop();
     
-    //RfChip.start();
+    // Init. esp8266
+    wifiInitial();
+    char name[20];
+    char sid[20];
+    char tel[10];
+    char stat_uid[3];
+    
+    // Init.RFID Variable
+    uint8_t RFID[10];
+    int checker = 0;
+    int checks = 0;
+    int mode = 0;
+    int submode = 0;
     pc.printf("starting...\n");
+    
     // Init. RC522 Chip
     RfChip.PCD_Init();
     pc.printf("Begin RFID!\n");
+    
+  /* ===== System Initialized ===== */
+    myLcd.InitLcd();  
+    myLcd.DrawString("Welcome to LOST & FOUND BOX V.1");   
+    myLcd.stop();
+    
+    getStatus("192.168.1.88","/l-f-box/getdata.php?check=1",stat_uid);
+    if(stat_uid[0] > 0){
+        mode = 0; //It have an item
+    }else{
+        mode = 1;  //Doesn't have an item
+    }
+
+    while(mode == 0){
+        if(submode == 0){
+            myLcd.InitLcd();  
+            myLcd.DrawString("PLEASE TAP A CARD");   
+            myLcd.stop();
+            submode++;
+        }
+        if(submode == 1){
+            if ( ! RfChip.PICC_IsNewCardPresent())
+            {
+                 wait_ms(500);
+                continue;
+             }
+            // Select one of the cards
+            if ( ! RfChip.PICC_ReadCardSerial())
+            {
+              wait_ms(500);
+              continue;
+            }
+            speak.speak();
+            submode ++;
+        }
+        if(submode == 2){
+            wait(0.5);
+            myLcd.InitLcd();  
+            myLcd.DrawString("WAITING...");
+            myLcd.stop();  
+            GetID(RFID);
+            getDataHTTP("192.168.1.88","/l-f-box/getdata.php?rfid=",IDs,sid,name,tel);
+            submode ++;
+        }
+        if(submode == 3){
+            wait(0.5);
+            myLcd.InitLcd();  
+            myLcd.DrawString("NAME : ");   
+            myLcd.DrawString(name);   
+            myLcd.SetXY(0,1);
+            myLcd.DrawString("TEL : ");   
+            myLcd.DrawString(tel);   
+            myLcd.stop();
+        }
+    }
+    
+    
+    
+    
+    
+/*
     while (true) {
     LedGreen = 1;
     // Look for new cards
@@ -123,5 +195,5 @@
     wait_ms(1000);
     checks = 1;
     }
-  
+*/
 }
\ No newline at end of file