แก้ให้แล้ว
Dependencies: NOKIA_5110 mbed
Fork of Lost-Found_BOX by
Diff: main.cpp
- Revision:
- 7:725f5fb7e3a3
- Parent:
- 6:6635082215c7
- Child:
- 8:e683edc8a530
diff -r 6635082215c7 -r 725f5fb7e3a3 main.cpp --- 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