Sheelapriya Thiyagarajan
/
RFIDreaderwithHC06
smart fridge using RFID and Bluetooth
Revision 2:9a39ebd76683, committed 2019-04-19
- Comitter:
- sthiyag
- Date:
- Fri Apr 19 21:59:14 2019 +0000
- Parent:
- 1:ad028c0c6c6c
- Commit message:
- v1
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r ad028c0c6c6c -r 9a39ebd76683 main.cpp --- a/main.cpp Mon Apr 15 20:34:43 2019 +0000 +++ b/main.cpp Fri Apr 19 21:59:14 2019 +0000 @@ -1,9 +1,28 @@ #include "mbed.h" #include "MFRC522.h" +#include "ESP8266.h" // Include header file from Author: Antonio Quevedo +#include "math.h" +#include <string> + // FRDM-K64F (Freescale) Pin for MFRC522 reset #define MF_RESET PTD0 #define SERIAL_1 +#define APIKEY XE2W5EIXWN6LA234 //Put "Write key" of your channel in thingspeak.com +#define IP "184.106.153.149" // IP Address of "api.thingspeak.com\" +#define WIFI_SSID "Sheelu" +#define WIFI_PASS "Barbie" + +//Serial pc(USBTX,USBRX); + +ESP8266 esp(PTC17, PTC16, 115200); // baud rate for wifi + +char snd[255],rcv[1000],snd_Data[255]; //snd= string used to send command to ESP 8266 wii and rcv = string used to receive response from ESP8266 wifi module + +void esp_initialize(void); // Function used to initialize ESP8266 wifi module +void esp_send(void); // Function used to connect with thingspeak.com and update channel using ESP8266 wifi module + + DigitalOut LedGreen(LED2); //Serial connection to PC for output @@ -21,13 +40,22 @@ int main(void) { - blue.baud(9600); - pc.baud(9600); + blue.baud(115200); + pc.baud(115200); printf("Welcome to RFID Tag Reader Using FRDM K64F...\n\r"); blue.printf("Welcome to RFID Tag Reader Uing FRDM K64F...\n\r"); printf("Bluetooth Enable\r\n"); blue.printf("Bluetooth Enable\r\n"); - RfChip.PCD_Init(); + RfChip.PCD_Init(); + + + pc.baud(115200); // Baud rate used for communicating with Tera-term on PC + + pc.printf("START\r\n"); // Starting point + + esp_initialize(); + + while (true) { LedGreen = 1; @@ -70,6 +98,7 @@ else if(counter1 == 1){ printf("\r\nMilk is out of the fridge"); counter1 = 0; + esp_send(); } } @@ -84,6 +113,7 @@ else if (counter2 == 1){ printf("\r\nBeer is out of the fridge"); counter2 = 0; + esp_send(); } } //wait(1); @@ -104,4 +134,95 @@ } } - + void esp_initialize(void) +{ + pc.printf("Initializing ESP\r\n"); + + pc.printf("Reset ESP\r\n"); + esp.Reset(); //RESET ESP + esp.RcvReply(rcv, 400); //receive a response from ESP + //pc.printf(rcv); //Print the response onscreen + wait(2); + + strcpy(snd,"AT"); + esp.SendCMD(snd); + pc.printf(snd); + //wait(2); + esp.RcvReply(rcv, 400); + pc.printf(rcv); + wait(0.1); + + strcpy(snd,"AT+CWMODE=1"); + esp.SendCMD(snd); + pc.printf(snd); + wait(2); + + strcpy(snd,"AT+CWJAP=\""); + strcat(snd,WIFI_SSID); + strcat(snd,"\",\""); + strcat(snd,WIFI_PASS); + strcat(snd,"\""); + + esp.SendCMD(snd); + pc.printf(snd); + wait(5); + esp.RcvReply(rcv, 400); + pc.printf("\n %s \n", rcv); + + strcpy(snd,"AT+CIPMUX=0"); + esp.SendCMD(snd); + pc.printf(snd); + //wait(2); + esp.RcvReply(rcv, 400); + pc.printf("\n %s \n", rcv); + +} + + +void esp_send(void) +{ + + //ESP updates the Status of Thingspeak channel// + + strcpy(snd,"AT+CIPSTART="); + strcat(snd,"\"TCP\",\""); + strcat(snd,IP); + strcat(snd,"\",80"); + + esp.SendCMD(snd); + pc.printf("S\r\n%s",snd); + //wait(2); + esp.RcvReply(rcv, 1000); + pc.printf("R\r\n%s",rcv); + wait(1); + + sprintf(snd,"GET https://api.thingspeak.com/update?key=XE2W5EIXWN6LA234&field1=%d&field2=%d\r\n",counter1,counter2); + + int i=0; + for(i=0;snd[i]!='\0';i++); + i++; + char cmd[255]; + + sprintf(cmd,"AT+CIPSEND=%d",i); //Send Number of open connection and Characters to send + esp.SendCMD(cmd); + pc.printf("S\r\n%s",cmd); + while(i<=20 || rcv == ">") + { + esp.RcvReply(rcv, 1000); + wait(100); + i++; + } + pc.printf("R\r\n%s",rcv); + + esp.SendCMD(snd); //Post value to thingspeak channel + pc.printf("S\r\n%s",snd); + + while(i<=20 || rcv == "OK") + { + esp.RcvReply(rcv, 1000); + wait(100); + i++; + } + pc.printf("R\r\n%s",rcv); + +}