Motion detection using PIR sensor would observe the motions detected near the field of sensor and alerts you with a message whenever there is a detection

Dependencies:   ESP8266

Committer:
spriyanka
Date:
Wed Dec 13 20:30:20 2017 +0000
Revision:
0:0a3ec84d1493
Detection

Who changed what in which revision?

UserRevisionLine numberNew contents of line
spriyanka 0:0a3ec84d1493 1 #include "mbed.h"
spriyanka 0:0a3ec84d1493 2 #include "ESP8266.h"
spriyanka 0:0a3ec84d1493 3 #include <string>
spriyanka 0:0a3ec84d1493 4 #include <stdio.h>
spriyanka 0:0a3ec84d1493 5 #define APIKEY 5ZVYJP19NQZJHIJM //Put "Write key" of your channel in thingspeak.com
spriyanka 0:0a3ec84d1493 6 #define IP "184.106.153.149" // IP Address of "api.thingspeak.com\"
spriyanka 0:0a3ec84d1493 7 #define WIFI_SSID "iphone"
spriyanka 0:0a3ec84d1493 8 #define WIFI_PASS "priyanka2024"
spriyanka 0:0a3ec84d1493 9
spriyanka 0:0a3ec84d1493 10
spriyanka 0:0a3ec84d1493 11 char snd[255],rcv[1000],snd_Data[255];
spriyanka 0:0a3ec84d1493 12 int cnt;
spriyanka 0:0a3ec84d1493 13
spriyanka 0:0a3ec84d1493 14
spriyanka 0:0a3ec84d1493 15 ESP8266 esp(PTC17, PTC16, 115200); // baud rate for wifi
spriyanka 0:0a3ec84d1493 16 Serial pc(USBTX, USBRX);
spriyanka 0:0a3ec84d1493 17
spriyanka 0:0a3ec84d1493 18 InterruptIn motion(D2);
spriyanka 0:0a3ec84d1493 19 int motion_detected = 0;
spriyanka 0:0a3ec84d1493 20 void irq_handler(void)
spriyanka 0:0a3ec84d1493 21 {
spriyanka 0:0a3ec84d1493 22 motion_detected = 1;
spriyanka 0:0a3ec84d1493 23 }
spriyanka 0:0a3ec84d1493 24 void esp_initialize(void);
spriyanka 0:0a3ec84d1493 25 void esp_send(void);
spriyanka 0:0a3ec84d1493 26
spriyanka 0:0a3ec84d1493 27 int main(void)
spriyanka 0:0a3ec84d1493 28 {
spriyanka 0:0a3ec84d1493 29 pc.baud(115200);
spriyanka 0:0a3ec84d1493 30 esp_initialize();
spriyanka 0:0a3ec84d1493 31
spriyanka 0:0a3ec84d1493 32 cnt = 0;
spriyanka 0:0a3ec84d1493 33 motion.rise(&irq_handler);
spriyanka 0:0a3ec84d1493 34 while(1)
spriyanka 0:0a3ec84d1493 35 {
spriyanka 0:0a3ec84d1493 36 if(motion_detected)
spriyanka 0:0a3ec84d1493 37 {
spriyanka 0:0a3ec84d1493 38 cnt++;
spriyanka 0:0a3ec84d1493 39 motion_detected = 0;
spriyanka 0:0a3ec84d1493 40 printf("Hello! I've detected %d times since reset\n", cnt);
spriyanka 0:0a3ec84d1493 41 printf("Now uploading status to cloud\n\r");
spriyanka 0:0a3ec84d1493 42
spriyanka 0:0a3ec84d1493 43
spriyanka 0:0a3ec84d1493 44 esp_send();
spriyanka 0:0a3ec84d1493 45 }
spriyanka 0:0a3ec84d1493 46 }
spriyanka 0:0a3ec84d1493 47 }
spriyanka 0:0a3ec84d1493 48
spriyanka 0:0a3ec84d1493 49 void esp_initialize(void)
spriyanka 0:0a3ec84d1493 50 {
spriyanka 0:0a3ec84d1493 51 //AT+CWJAP="priyanka2024","iPhone" ;
spriyanka 0:0a3ec84d1493 52
spriyanka 0:0a3ec84d1493 53 pc.printf("Initializing ESP\r\n");
spriyanka 0:0a3ec84d1493 54 pc.printf("Reset ESP\r\n");
spriyanka 0:0a3ec84d1493 55 esp.Reset(); //RESET ESP
spriyanka 0:0a3ec84d1493 56 esp.RcvReply(rcv, 400); //receive a response from ESP
spriyanka 0:0a3ec84d1493 57 wait(2);
spriyanka 0:0a3ec84d1493 58
spriyanka 0:0a3ec84d1493 59 strcpy(snd,"AT");
spriyanka 0:0a3ec84d1493 60 esp.SendCMD(snd);
spriyanka 0:0a3ec84d1493 61 pc.printf(snd);
spriyanka 0:0a3ec84d1493 62 esp.RcvReply(rcv, 400);
spriyanka 0:0a3ec84d1493 63 pc.printf(rcv);
spriyanka 0:0a3ec84d1493 64 wait(2);
spriyanka 0:0a3ec84d1493 65
spriyanka 0:0a3ec84d1493 66 strcpy(snd,"AT+CWMODE=1");
spriyanka 0:0a3ec84d1493 67 esp.SendCMD(snd);
spriyanka 0:0a3ec84d1493 68 pc.printf(snd);
spriyanka 0:0a3ec84d1493 69 wait(2);
spriyanka 0:0a3ec84d1493 70
spriyanka 0:0a3ec84d1493 71 strcpy(snd,"AT+CWJAP=\"");
spriyanka 0:0a3ec84d1493 72 strcat(snd,WIFI_SSID);
spriyanka 0:0a3ec84d1493 73 strcat(snd,"\",\"");
spriyanka 0:0a3ec84d1493 74 strcat(snd,WIFI_PASS);
spriyanka 0:0a3ec84d1493 75 strcat(snd,"\"");
spriyanka 0:0a3ec84d1493 76
spriyanka 0:0a3ec84d1493 77 esp.SendCMD(snd);
spriyanka 0:0a3ec84d1493 78 pc.printf(snd);
spriyanka 0:0a3ec84d1493 79 wait(5);
spriyanka 0:0a3ec84d1493 80 esp.RcvReply(rcv, 400);
spriyanka 0:0a3ec84d1493 81 pc.printf("\n %s \n", rcv);
spriyanka 0:0a3ec84d1493 82
spriyanka 0:0a3ec84d1493 83 strcpy(snd,"AT+CIPMUX=1");
spriyanka 0:0a3ec84d1493 84 esp.SendCMD(snd);
spriyanka 0:0a3ec84d1493 85 pc.printf(snd);
spriyanka 0:0a3ec84d1493 86 esp.RcvReply(rcv, 400);
spriyanka 0:0a3ec84d1493 87 pc.printf("\n %s \n", rcv);
spriyanka 0:0a3ec84d1493 88 }
spriyanka 0:0a3ec84d1493 89
spriyanka 0:0a3ec84d1493 90 void esp_send(void)
spriyanka 0:0a3ec84d1493 91 {
spriyanka 0:0a3ec84d1493 92 //ESP updates the Status of Thingspeak channel//
spriyanka 0:0a3ec84d1493 93
spriyanka 0:0a3ec84d1493 94 strcpy(snd,"AT+CIPSTART=");
spriyanka 0:0a3ec84d1493 95 strcat(snd,"\"TCP\",\"");
spriyanka 0:0a3ec84d1493 96 strcat(snd,IP);
spriyanka 0:0a3ec84d1493 97 strcat(snd,"\",80");
spriyanka 0:0a3ec84d1493 98
spriyanka 0:0a3ec84d1493 99 esp.SendCMD(snd);
spriyanka 0:0a3ec84d1493 100 pc.printf("Send\r\n%s",snd);
spriyanka 0:0a3ec84d1493 101 esp.RcvReply(rcv, 1000);
spriyanka 0:0a3ec84d1493 102 pc.printf("Receive\r\n%s",rcv);
spriyanka 0:0a3ec84d1493 103 wait(2);
spriyanka 0:0a3ec84d1493 104
spriyanka 0:0a3ec84d1493 105
spriyanka 0:0a3ec84d1493 106 pc.printf("Sending this information to thingspeak.com \r\n");
spriyanka 0:0a3ec84d1493 107 sprintf(snd,"GET https://api.thingspeak.com/update?api_key=5ZVYJP19NQZJHIJM&field1=%d\r\n", cnt);
spriyanka 0:0a3ec84d1493 108 //wait(5);
spriyanka 0:0a3ec84d1493 109 //https://api.thingspeak.com/update?api_key=5ZVYJP19NQZJHIJM&field1=%d\r\n", cnt
spriyanka 0:0a3ec84d1493 110
spriyanka 0:0a3ec84d1493 111 int i=0;
spriyanka 0:0a3ec84d1493 112 for(i=0; snd[i]!='\0'; i++);
spriyanka 0:0a3ec84d1493 113 i++;
spriyanka 0:0a3ec84d1493 114 char cmd[255];
spriyanka 0:0a3ec84d1493 115
spriyanka 0:0a3ec84d1493 116 sprintf(cmd,"AT+CIPSEND=%d",i); //Send Number of open connection and Characters to send
spriyanka 0:0a3ec84d1493 117 esp.SendCMD(cmd);
spriyanka 0:0a3ec84d1493 118 pc.printf("Send\r\n%s",cmd);
spriyanka 0:0a3ec84d1493 119 while(i<=20 || rcv == ">")
spriyanka 0:0a3ec84d1493 120 {
spriyanka 0:0a3ec84d1493 121 esp.RcvReply(rcv, 1000);
spriyanka 0:0a3ec84d1493 122 wait(100);
spriyanka 0:0a3ec84d1493 123 i++;
spriyanka 0:0a3ec84d1493 124 }
spriyanka 0:0a3ec84d1493 125 pc.printf("Receive\r\n%s",rcv);
spriyanka 0:0a3ec84d1493 126
spriyanka 0:0a3ec84d1493 127 esp.SendCMD(snd); //Post value to thingspeak channel
spriyanka 0:0a3ec84d1493 128 pc.printf("Send\r\n%s",snd);
spriyanka 0:0a3ec84d1493 129
spriyanka 0:0a3ec84d1493 130 while(i<=20 || rcv == "OK")
spriyanka 0:0a3ec84d1493 131 {
spriyanka 0:0a3ec84d1493 132 esp.RcvReply(rcv, 1000);
spriyanka 0:0a3ec84d1493 133 wait(100);
spriyanka 0:0a3ec84d1493 134 i++;
spriyanka 0:0a3ec84d1493 135 }
spriyanka 0:0a3ec84d1493 136 pc.printf("Receive\r\n%s",rcv);
spriyanka 0:0a3ec84d1493 137
spriyanka 0:0a3ec84d1493 138 }
spriyanka 0:0a3ec84d1493 139
spriyanka 0:0a3ec84d1493 140
spriyanka 0:0a3ec84d1493 141
spriyanka 0:0a3ec84d1493 142
spriyanka 0:0a3ec84d1493 143