idk what a fork is
Dependencies: 4DGL-uLCD-SE EthernetInterface HTTPClient Motor mbed-rtos mbed
Fork of 2036lab7_template by
main.cpp
- Committer:
- Alexw2011
- Date:
- 2016-04-28
- Revision:
- 1:739ba18153a4
- Parent:
- 0:df4d7c0a1594
File content as of revision 1:739ba18153a4:
#include "mbed.h" #include "rtos.h" #include "Motor.h" #include "uLCD_4DGL.h" #include "EthernetInterface.h" #include "HTTPClient.h" #define Room_TempC 23.0 #define Room_TempF 78.0 #define Normal_BTempC 30.0 #define Normal_BTempF ((9.0/5.0)*Normal_BTempC) + 32 Motor m(p21, p19, p20); // pwm, fwd, rev DigitalOut myled(LED1); DigitalOut myLED2(LED2); DigitalOut myLED3(LED3); DigitalOut myLED4(LED4); uLCD_4DGL uLCD(p13,p14,p11); Serial pc(USBTX, USBRX); Serial xbee1(p9, p10); DigitalOut rst1(p8); EthernetInterface ethif; HTTPClient http; enum Statetype { ac_off = 0, ac_on }; volatile int sensor_data; void receiver_thread(void const * argument){ rst1 = 0; //Set reset pin to 0 myled = 0; Thread::wait(1); rst1 = 1; //Set reset pin to 1 Thread::wait(1); ethif.init(); //Use DHCP ethif.connect(60000); pc.printf("connected ethernet\n"); char urlBuffer[256]; char str[512]; while (1) { Thread::wait(1000); myled = 1; if(xbee1.readable()){ xbee1.scanf("%d\n", &sensor_data); pc.printf("data received %d \n\r ", sensor_data); Thread::wait(300); myled = 0; Thread::wait(2000); } // initialize ethernet hardware pc.printf("Begin While loop"); urlBuffer[0] = 0; //str[0]= 0; //sprintf(urlBuffer, "http://api.thingspeak.com/update?key=LRZ7ZLXUI7LKC470&field1=%d", 15); sprintf(urlBuffer, "http://api.thingspeak.com/update?key=LRZ7ZLXUI7LKC470&field1=%d", sensor_data); HTTPResult res = http.get(urlBuffer, str,128); if(res==0) { pc.printf("sent get to thingspeak\n"); } else { pc.printf("get failed to send"); } } } /*void network_thread(void const * argument) { ethif.init(); //Use DHCP ethif.connect(60000); pc.printf("connected ethernet\n"); char urlBuffer[256]; char str[512]; while (1) { wait(30); // initialize ethernet hardware pc.printf("Begin While loop"); urlBuffer[0] = 0; //str[0]= 0; //sprintf(urlBuffer, "http://api.thingspeak.com/update?key=LRZ7ZLXUI7LKC470&field1=%d", 15); sprintf(urlBuffer, "http://api.thingspeak.com/update?key=LRZ7ZLXUI7LKC470&field1=%d", 26); HTTPResult res = http.get(urlBuffer, str,128); if(res==0) { pc.printf("sent get to thingspeak\n"); } else { pc.printf("get failed to send"); } //led=!led; Thread::wait(2000); } } */ int main() { Thread thread1(receiver_thread); //Thread thread2(network_thread); Statetype state = ac_off; while(1){ myLED3 = !myLED3; switch (state) { case ac_off: m.speed(0.0); myled = 1; myLED2 =0; myLED3 =1; myLED4 =0; (sensor_data >= Normal_BTempC)? state = ac_on : state = ac_off; // pc.printf("This is off %d: ",sensor_data); break; case ac_on: myled = 1; myLED2 =1; myLED3 =1; myLED4 =1; /* while (sensor_data >= 1.3*Normal_BTempC) { m.speed(1.0); } while ((sensor_data >= 1.2*Normal_BTempC)&&(sensor_data < 1.3*Normal_BTempC)) { m.speed(0.5); Thread::wait(500); m.speed(0.0); Thread::wait(2000); } while ((sensor_data >= 1.1*Normal_BTempC)&&(sensor_data < 1.2*Normal_BTempC)) { m.speed(0.5); Thread::wait(500); m.speed(0.0); Thread::wait(3000); } while ((sensor_data >= Normal_BTempC)&&(sensor_data < 1.1*Normal_BTempC)) { m.speed(0.5); Thread::wait(500); m.speed(0.0); Thread::wait(3500); }*/ m.speed(1.0); (sensor_data < Normal_BTempC)? state = ac_off : state = ac_on; pc.printf("This is on %d: ",sensor_data); break; } Thread::wait(1000); } }