Auto Pets Feeder

Dependencies:   mbed RangeFinder ESP8266 HC_SR04_Ultrasonic_Library

Files at this revision

API Documentation at this revision

Comitter:
zsong
Date:
Tue Apr 30 13:20:00 2019 +0000
Parent:
1:8ab009672555
Commit message:
Auto Pets Feeder

Changed in this revision

HC_SR04_Ultrasonic_Library.lib Show annotated file Show diff for this revision Revisions of this file
RangeFinder.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 8ab009672555 -r c2e622db40aa HC_SR04_Ultrasonic_Library.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HC_SR04_Ultrasonic_Library.lib	Tue Apr 30 13:20:00 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/ejteb/code/HC_SR04_Ultrasonic_Library/#e0f9c9fb4cf3
diff -r 8ab009672555 -r c2e622db40aa RangeFinder.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RangeFinder.lib	Tue Apr 30 13:20:00 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/teams/Edutech/code/RangeFinder/#cf496fb70317
diff -r 8ab009672555 -r c2e622db40aa main.cpp
--- a/main.cpp	Sat Jun 17 09:53:27 2017 +0000
+++ b/main.cpp	Tue Apr 30 13:20:00 2019 +0000
@@ -1,32 +1,42 @@
 #include "mbed.h"
 #include "ESP8266.h"
+#include "RangeFinder.h"
+ 
+//Rangefinder Init
+RangeFinder rf(D2, 10, 5800.0, 100000);
  
 Serial pc(USBTX,USBRX);
 
-//POT sensor 
-AnalogIn pot(PTB0);
+//sensor 
+AnalogIn lightSensor(A1);
+PwmOut pwm(PTD0);
 
 //wifi UART port and baud rate
-ESP8266 wifi(PTE0, PTE1, 115200); 
+ESP8266 wifi(PTC17, PTC16, 115200); 
+
 
 //buffers for wifi library
 char resp[1000];
 char http_cmd[300], comm[300];
 
+//lightsensor reading
+float lightRead = 0.0f;
+
 int timeout = 8000; //timeout for wifi commands
 
+//system state
+int state = 0;
+
 //SSID and password for connection
-#define SSID "Eduvance" 
-#define PASS "eduvance123"  
+#define SSID "ATT4fpt8dY" 
+#define PASS "8k#ua9zy%4ue"  
 
 //Remote IP
 #define IP "184.106.153.149"
 
-//global variable
-float potvalue = 0; 
 
 //Update key for thingspeak
-char* Update_Key = "O1VOWGC3WXI981H6";
+char* Update_Key = "H67JROEREPXPGPFZ";
  
 //Wifi init function
 void wifi_initialize(void){
@@ -79,8 +89,8 @@
     wait(1);
 }
 
-void wifi_send(void){
-    
+void wifi_send(void){  
+
     pc.printf("******** Starting TCP connection on IP and port ********\r\n");
     wifi.startTCPConn(IP,80);    //cipstart
     wifi.RcvReply(resp, timeout);
@@ -89,10 +99,10 @@
     else
         pc.printf("No response while starting TCP connection \r\n");
     wait(1);
+    //create link 
+    sprintf(http_cmd,"/update?api_key=%s&field1=%f",Update_Key,lightRead); 
+    pc.printf(http_cmd);
     
-    //create link 
-    sprintf(http_cmd,"/update?api_key=%s&field1=%f",Update_Key,potvalue); 
-    pc.printf(http_cmd);
     
     pc.printf("******** Sending URL to wifi ********\r\n");
     wifi.sendURL(http_cmd, comm);   //cipsend and get command
@@ -103,15 +113,35 @@
 }
 
 int main () {
+    pwm.period_ms(20) ;
+    wifi_initialize();
+    float d;
+    int count = 0;
     
     
-    wifi_initialize();
     
     while (1) {
-        potvalue = 255*pot.read();
-        pc.printf("Current potvalue is = %.3f \r\n", potvalue);
+        printf("running\n");
+        lightRead = 1 - lightSensor.read();
+        d = rf.read_m();
         
-        wifi_send();
-        wait(30);
+        switch(state){
+            case 0:
+                if(d < 0.2f){
+                    state = 1;    
+                }break;
+            case 1:
+                pwm.pulsewidth_us(2400);
+                wait(1);
+                pwm.pulsewidth_us(1000);
+                wait(1);
+                state = 2;
+                break;
+            case 2:
+                if(d > 0.6f){state = 0;}break;
+        }
+        if(count == 500){wifi_send();count = 0;}
+        count++;
+        //
     }
 }
\ No newline at end of file