for aplaca jack education purpose

Dependencies:   mbed Servo X_NUCLEO_IDW01M1v2 NetworkSocketAPI X_NUCLEO_IKS01A1 HC_SR04_Ultrasonic_Library

Committer:
WAIYIP
Date:
Fri Nov 23 14:38:32 2018 +0000
Revision:
14:c24a683e40a9
Parent:
13:9a2016106dae
for alpaca jack

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mridup 0:dee849b0e6e6 1 #include "mbed.h"
mridup 0:dee849b0e6e6 2 #include "SpwfInterface.h"
WAIYIP 14:c24a683e40a9 3 #include "x_nucleo_iks01a1.h"
mridup 0:dee849b0e6e6 4 #include "TCPSocket.h"
WAIYIP 14:c24a683e40a9 5 #include "Servo.h"
WAIYIP 14:c24a683e40a9 6 #include "ultrasonic.h"
WAIYIP 14:c24a683e40a9 7
mridup 0:dee849b0e6e6 8
mapellil 8:74b827befe72 9
WAIYIP 14:c24a683e40a9 10 int distance1;
WAIYIP 14:c24a683e40a9 11 int distance;
WAIYIP 14:c24a683e40a9 12 void dist(int distance)
WAIYIP 14:c24a683e40a9 13 {
WAIYIP 14:c24a683e40a9 14 //put code here to happen when the distance is changed
WAIYIP 14:c24a683e40a9 15 printf("Distance changed to %dmm\r\n", distance);
WAIYIP 14:c24a683e40a9 16 distance1= distance;
WAIYIP 14:c24a683e40a9 17 }
WAIYIP 14:c24a683e40a9 18
WAIYIP 14:c24a683e40a9 19
WAIYIP 14:c24a683e40a9 20 ultrasonic mu(D8, D9, .1, 1, &dist); //Set the trigger pin to D8 and the echo pin to D9
WAIYIP 14:c24a683e40a9 21 //have updates every .1 seconds and a timeout after 1
WAIYIP 14:c24a683e40a9 22 //second, and call dist when the distance changes
WAIYIP 14:c24a683e40a9 23 Servo myservo(D6);
imi121 13:9a2016106dae 24 //char* ntpServerUrl = "0.ca.pool.ntp.org";
WAIYIP 14:c24a683e40a9 25 //#define IP "184.106.153.149/update"
WAIYIP 14:c24a683e40a9 26 #define IP "184.106.153.149"
imi121 13:9a2016106dae 27 char* thingSpeakUrl = "http://api.thingspeak.com/update";
WAIYIP 14:c24a683e40a9 28 char* thingSpeakKey = "5WJ5OYWTWTQX4310";
mridup 0:dee849b0e6e6 29
mridup 2:3a87dbea07a7 30 Serial pc(USBTX, USBRX);
mridup 0:dee849b0e6e6 31 DigitalOut myled(LED1);
WAIYIP 14:c24a683e40a9 32 /*************/
mridup 1:daf71fa3674c 33 SpwfSAInterface spwf(D8, D2, false);
WAIYIP 14:c24a683e40a9 34 uint8_t id;
WAIYIP 14:c24a683e40a9 35 float value1, value2;
WAIYIP 14:c24a683e40a9 36 char buffer1[32], buffer2[32];
mridup 2:3a87dbea07a7 37
imi121 13:9a2016106dae 38
imi121 13:9a2016106dae 39 int http_demo(void)
imi121 13:9a2016106dae 40 {
imi121 13:9a2016106dae 41 TCPSocket socket(&spwf);
imi121 13:9a2016106dae 42 char buffer[256];
WAIYIP 14:c24a683e40a9 43 char message[160];
imi121 13:9a2016106dae 44 int err;
imi121 13:9a2016106dae 45 printf("Sending HTTP Data to thingspeak...\r\n");
imi121 13:9a2016106dae 46
imi121 13:9a2016106dae 47 // Open a socket on the network interface, and create a TCP connection to thingspeak
imi121 13:9a2016106dae 48 //socket.open(&spwf);
imi121 13:9a2016106dae 49 err=socket.connect(IP,80); // connecting to thingspeak
imi121 13:9a2016106dae 50 if(err!=0)
imi121 13:9a2016106dae 51 {
imi121 13:9a2016106dae 52 pc.printf("\r\nCould not connect to Socket, err = %d!!\r\n", err);
imi121 13:9a2016106dae 53 return -1;
imi121 13:9a2016106dae 54 } else pc.printf("\r\nconnected to host server\r\n");
WAIYIP 14:c24a683e40a9 55 sprintf(message,"field1=%d",distance1);
imi121 13:9a2016106dae 56 printf("Message Length=%d\r\n",(int)strlen(message));
imi121 13:9a2016106dae 57 sprintf(buffer,"POST /update HTTP/1.1\r\nHost: api.thingspeak.com\r\nConnection: close\r\nX-THINGSPEAKAPIKEY: %s\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: %d\r\n\r\n%s",thingSpeakKey,(int)strlen(message),message);
imi121 13:9a2016106dae 58 pc.printf("Request to %s\r\n", buffer);
imi121 13:9a2016106dae 59 int scount = socket.send(buffer, (int)strlen(buffer));
imi121 13:9a2016106dae 60 printf("sent %d [%.*s]\r\n", scount, strstr(buffer, "\r\n")-buffer, buffer);
imi121 13:9a2016106dae 61
imi121 13:9a2016106dae 62 // Recieve a simple http response and print out the response line
imi121 13:9a2016106dae 63 char rbuffer[64];
imi121 13:9a2016106dae 64 int rcount = socket.recv(rbuffer, sizeof rbuffer);
imi121 13:9a2016106dae 65 printf("recv %d [%.*s]\r\n", rcount, strstr(rbuffer, "\r\n")-rbuffer, rbuffer);
imi121 13:9a2016106dae 66
imi121 13:9a2016106dae 67 // Close the socket to return its memory and bring down the network interface
imi121 13:9a2016106dae 68 socket.close();
imi121 13:9a2016106dae 69 return 0;
imi121 13:9a2016106dae 70 }
imi121 13:9a2016106dae 71
imi121 13:9a2016106dae 72 int main()
imi121 13:9a2016106dae 73 {
WAIYIP 14:c24a683e40a9 74
WAIYIP 14:c24a683e40a9 75
WAIYIP 14:c24a683e40a9 76 char * ssid = "homebb@unifi";
WAIYIP 14:c24a683e40a9 77 char * seckey = "homebb987";
WAIYIP 14:c24a683e40a9 78 pc.printf("\r\nReal Time Weather System\r\n");
mridup 0:dee849b0e6e6 79 pc.printf("\r\nconnecting to AP\r\n");
mridup 0:dee849b0e6e6 80
mridup 0:dee849b0e6e6 81 if(spwf.connect(ssid, seckey, NSAPI_SECURITY_WPA2)) {
mridup 0:dee849b0e6e6 82 pc.printf("\r\nnow connected\r\n");
mridup 0:dee849b0e6e6 83 } else {
mridup 0:dee849b0e6e6 84 pc.printf("\r\nerror connecting to AP.\r\n");
mridup 0:dee849b0e6e6 85 return -1;
mridup 0:dee849b0e6e6 86 }
mapellil 8:74b827befe72 87
mridup 0:dee849b0e6e6 88 const char *ip = spwf.get_ip_address();
mridup 0:dee849b0e6e6 89 const char *mac = spwf.get_mac_address();
mridup 0:dee849b0e6e6 90
mridup 0:dee849b0e6e6 91 pc.printf("\r\nIP Address is: %s\r\n", (ip) ? ip : "No IP");
WAIYIP 14:c24a683e40a9 92 pc.printf("\r\nMAC Address is: %s\r\n", (mac) ? mac : "No MAC");
WAIYIP 14:c24a683e40a9 93 wait (3);
mridup 0:dee849b0e6e6 94
imi121 13:9a2016106dae 95 while(1)
imi121 13:9a2016106dae 96 {
WAIYIP 14:c24a683e40a9 97 mu.checkDistance(); //call checkDistance() as much as possible, as this is where
WAIYIP 14:c24a683e40a9 98 //the class checks if dist needs to be called.
WAIYIP 14:c24a683e40a9 99 if(distance1 <55){
WAIYIP 14:c24a683e40a9 100 printf("ok\r\n");
WAIYIP 14:c24a683e40a9 101 //for(float p=0; p<1.0; p += 0.99)
WAIYIP 14:c24a683e40a9 102 // myservo = p;
WAIYIP 14:c24a683e40a9 103 //wait(0.2);
WAIYIP 14:c24a683e40a9 104 http_demo();
WAIYIP 14:c24a683e40a9 105 //x=0;y=0;z=0;
WAIYIP 14:c24a683e40a9 106 pc.printf("Thingspeak update completed successfully\r\n");
WAIYIP 14:c24a683e40a9 107 //buz=0;//RESET CONDITION
WAIYIP 14:c24a683e40a9 108 wait(10);
mridup 0:dee849b0e6e6 109 }
WAIYIP 14:c24a683e40a9 110 }}