Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of ACandLightsandWifi by
main.cpp@1:7fff8f0dce62, 2016-06-17 (annotated)
- Committer:
- jzacaroli
- Date:
- Fri Jun 17 15:35:04 2016 +0000
- Revision:
- 1:7fff8f0dce62
- Parent:
- 0:e5aa1648b1c5
AC/Lights over Wifi
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| jzacaroli | 1:7fff8f0dce62 | 1 | /* Simpler prog based on the serial passthrough code to enable a command line driven test of esp8266 |
| jzacaroli | 1:7fff8f0dce62 | 2 | * wifi modules. |
| jzacaroli | 1:7fff8f0dce62 | 3 | * NB this uses the mbed sleep() command to form a low power system but on some MCUs this is a problem |
| jzacaroli | 1:7fff8f0dce62 | 4 | * this works fine on an lpc1768 but not as yet on the KL25Z |
| jzacaroli | 1:7fff8f0dce62 | 5 | */ |
| wadh4587 | 0:e5aa1648b1c5 | 6 | |
| jzacaroli | 1:7fff8f0dce62 | 7 | #include "mbed.h" |
| jzacaroli | 1:7fff8f0dce62 | 8 | #include "DS1820.h" |
| jzacaroli | 1:7fff8f0dce62 | 9 | |
| wadh4587 | 0:e5aa1648b1c5 | 10 | Serial pc(USBTX, USBRX); // serial terminal for the pc connection |
| wadh4587 | 0:e5aa1648b1c5 | 11 | Serial dev(PTE0,PTE1); // for KL25Z... asuming one can't use the PTA1 version which is the stdio |
| jzacaroli | 1:7fff8f0dce62 | 12 | DigitalOut led1(LED1); // two leds |
| jzacaroli | 1:7fff8f0dce62 | 13 | DigitalOut led2(LED2); // to allow visual check of bidirectional comms |
| jzacaroli | 1:7fff8f0dce62 | 14 | DigitalOut led3(LED3); //third led to check status of loading |
| jzacaroli | 1:7fff8f0dce62 | 15 | DigitalOut rst(PTD7); // single digital pin to drive the esp8266 reset line |
| jzacaroli | 1:7fff8f0dce62 | 16 | |
| jzacaroli | 1:7fff8f0dce62 | 17 | |
| jzacaroli | 1:7fff8f0dce62 | 18 | PwmOut Lights(PTE31); // Output to the lighting system |
| jzacaroli | 1:7fff8f0dce62 | 19 | AnalogIn V1(PTB0); // Input from the LDR voltage level telling us brightness information |
| jzacaroli | 1:7fff8f0dce62 | 20 | |
| jzacaroli | 1:7fff8f0dce62 | 21 | const int MAX_PROBES = 1; |
| jzacaroli | 1:7fff8f0dce62 | 22 | DS1820* probe[MAX_PROBES]; |
| jzacaroli | 1:7fff8f0dce62 | 23 | DigitalOut fan(PTB11); |
| jzacaroli | 1:7fff8f0dce62 | 24 | |
| jzacaroli | 1:7fff8f0dce62 | 25 | bool AUTO = false; //Sets whether we are sending data to the server or not |
| jzacaroli | 1:7fff8f0dce62 | 26 | float Temp = 0; |
| jzacaroli | 1:7fff8f0dce62 | 27 | int Dummy = 0; |
| jzacaroli | 1:7fff8f0dce62 | 28 | float intensity = 0; |
| jzacaroli | 1:7fff8f0dce62 | 29 | int LightStatus = 0; |
| jzacaroli | 1:7fff8f0dce62 | 30 | int START = 0; |
| jzacaroli | 1:7fff8f0dce62 | 31 | |
| jzacaroli | 1:7fff8f0dce62 | 32 | // subroutine to run anytime a serial interrupt arrives from the device |
| jzacaroli | 1:7fff8f0dce62 | 33 | // this basically passes everything thatthe device produces on to the pc terminal screen |
| jzacaroli | 1:7fff8f0dce62 | 34 | /*void dev_recv() |
| jzacaroli | 1:7fff8f0dce62 | 35 | { |
| jzacaroli | 1:7fff8f0dce62 | 36 | |
| jzacaroli | 1:7fff8f0dce62 | 37 | led1 = !led1; |
| jzacaroli | 1:7fff8f0dce62 | 38 | while(dev.readable()) { |
| jzacaroli | 1:7fff8f0dce62 | 39 | pc.putc(dev.getc()); |
| jzacaroli | 1:7fff8f0dce62 | 40 | |
| jzacaroli | 1:7fff8f0dce62 | 41 | } |
| jzacaroli | 1:7fff8f0dce62 | 42 | }*/ |
| jzacaroli | 1:7fff8f0dce62 | 43 | // subroutine to service the serial interrupt on the pc connection |
| jzacaroli | 1:7fff8f0dce62 | 44 | // this is a bit more complex - it takes what the use sends on the pc and copies it on to the device |
| jzacaroli | 1:7fff8f0dce62 | 45 | // the esp should echo these straight back to the the pc if all is well |
| jzacaroli | 1:7fff8f0dce62 | 46 | // this also detects the end of command character which is ascii 13 (0x0d) adn adds a linefeed after it =asscii 10 (0x0a) |
| jzacaroli | 1:7fff8f0dce62 | 47 | /*void pc_recv() |
| jzacaroli | 1:7fff8f0dce62 | 48 | { |
| jzacaroli | 1:7fff8f0dce62 | 49 | char c; |
| jzacaroli | 1:7fff8f0dce62 | 50 | led2 = !led2; |
| jzacaroli | 1:7fff8f0dce62 | 51 | while(pc.readable()) { |
| jzacaroli | 1:7fff8f0dce62 | 52 | c = pc.getc(); |
| jzacaroli | 1:7fff8f0dce62 | 53 | dev.putc(c); |
| jzacaroli | 1:7fff8f0dce62 | 54 | // pc.putc(c); // echo back |
| jzacaroli | 1:7fff8f0dce62 | 55 | if(c==13) { |
| jzacaroli | 1:7fff8f0dce62 | 56 | dev.putc(10); // send the linefeed to complement the carriage return generated by return key on the pc |
| jzacaroli | 1:7fff8f0dce62 | 57 | pc.putc(10); |
| jzacaroli | 1:7fff8f0dce62 | 58 | } |
| jzacaroli | 1:7fff8f0dce62 | 59 | } |
| jzacaroli | 1:7fff8f0dce62 | 60 | } |
| jzacaroli | 1:7fff8f0dce62 | 61 | */ |
| jzacaroli | 1:7fff8f0dce62 | 62 | void NEWMESSAGE() |
| jzacaroli | 1:7fff8f0dce62 | 63 | { |
| jzacaroli | 1:7fff8f0dce62 | 64 | char message; |
| jzacaroli | 1:7fff8f0dce62 | 65 | pc.putc('#'); |
| jzacaroli | 1:7fff8f0dce62 | 66 | while (dev.readable()) { |
| jzacaroli | 1:7fff8f0dce62 | 67 | message= (char)dev.getc(); |
| jzacaroli | 1:7fff8f0dce62 | 68 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 69 | if(message==':') { |
| jzacaroli | 1:7fff8f0dce62 | 70 | message= (char)dev.getc(); |
| jzacaroli | 1:7fff8f0dce62 | 71 | break; |
| jzacaroli | 1:7fff8f0dce62 | 72 | } |
| jzacaroli | 1:7fff8f0dce62 | 73 | } |
| jzacaroli | 1:7fff8f0dce62 | 74 | if(message == 'G') { |
| jzacaroli | 1:7fff8f0dce62 | 75 | START = 1; |
| jzacaroli | 1:7fff8f0dce62 | 76 | } |
| jzacaroli | 1:7fff8f0dce62 | 77 | if(message == 'Q') { |
| jzacaroli | 1:7fff8f0dce62 | 78 | AUTO=!AUTO; |
| jzacaroli | 1:7fff8f0dce62 | 79 | pc.printf("AUTO=!AUTO\r\n",AUTO); |
| jzacaroli | 1:7fff8f0dce62 | 80 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 81 | } |
| jzacaroli | 1:7fff8f0dce62 | 82 | if(message == 'K') { |
| jzacaroli | 1:7fff8f0dce62 | 83 | fan = 1; |
| jzacaroli | 1:7fff8f0dce62 | 84 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 85 | } |
| jzacaroli | 1:7fff8f0dce62 | 86 | if(message == 'L') { |
| jzacaroli | 1:7fff8f0dce62 | 87 | fan = 0; |
| jzacaroli | 1:7fff8f0dce62 | 88 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 89 | } |
| jzacaroli | 1:7fff8f0dce62 | 90 | if(message == 'Z') { |
| jzacaroli | 1:7fff8f0dce62 | 91 | Lights = 0; |
| jzacaroli | 1:7fff8f0dce62 | 92 | LightStatus = 0; |
| jzacaroli | 1:7fff8f0dce62 | 93 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 94 | } |
| jzacaroli | 1:7fff8f0dce62 | 95 | if(message == 'X') { |
| jzacaroli | 1:7fff8f0dce62 | 96 | Lights = 0.1; |
| jzacaroli | 1:7fff8f0dce62 | 97 | LightStatus = 1; |
| jzacaroli | 1:7fff8f0dce62 | 98 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 99 | } |
| jzacaroli | 1:7fff8f0dce62 | 100 | if(message == 'Y') { |
| jzacaroli | 1:7fff8f0dce62 | 101 | Lights = 0.5; |
| jzacaroli | 1:7fff8f0dce62 | 102 | LightStatus = 2; |
| jzacaroli | 1:7fff8f0dce62 | 103 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 104 | } |
| jzacaroli | 1:7fff8f0dce62 | 105 | if(message == 'W') { |
| jzacaroli | 1:7fff8f0dce62 | 106 | Lights = 1; |
| jzacaroli | 1:7fff8f0dce62 | 107 | LightStatus = 3; |
| jzacaroli | 1:7fff8f0dce62 | 108 | pc.putc(message); |
| jzacaroli | 1:7fff8f0dce62 | 109 | } |
| jzacaroli | 1:7fff8f0dce62 | 110 | } |
| jzacaroli | 1:7fff8f0dce62 | 111 | |
| wadh4587 | 0:e5aa1648b1c5 | 112 | int main() |
| wadh4587 | 0:e5aa1648b1c5 | 113 | { |
| wadh4587 | 0:e5aa1648b1c5 | 114 | pc.baud(115200); |
| jzacaroli | 1:7fff8f0dce62 | 115 | dev.baud(115200); |
| jzacaroli | 1:7fff8f0dce62 | 116 | printf("Start \r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 117 | rst=0; |
| jzacaroli | 1:7fff8f0dce62 | 118 | wait(3); |
| jzacaroli | 1:7fff8f0dce62 | 119 | rst = 1; // send the esp8266 reset |
| jzacaroli | 1:7fff8f0dce62 | 120 | wait(1); |
| jzacaroli | 1:7fff8f0dce62 | 121 | |
| wadh4587 | 0:e5aa1648b1c5 | 122 | |
| jzacaroli | 1:7fff8f0dce62 | 123 | // pc.attach(&pc_recv, Serial::RxIrq); // attach the two interrupt services |
| jzacaroli | 1:7fff8f0dce62 | 124 | // dev.attach(&dev_recv, Serial::RxIrq); |
| jzacaroli | 1:7fff8f0dce62 | 125 | wait(5); |
| jzacaroli | 1:7fff8f0dce62 | 126 | dev.printf("AT+RST\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 127 | wait(10); |
| jzacaroli | 1:7fff8f0dce62 | 128 | dev.printf("AT+CWJAP=\"BTHub3-WXWX\",\"fdd6f7c682\"\r\n"); //Don't necessarily need this line as it already should connect |
| jzacaroli | 1:7fff8f0dce62 | 129 | wait(10); |
| jzacaroli | 1:7fff8f0dce62 | 130 | dev.printf("AT+CIPMUX=1\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 131 | wait(1); |
| jzacaroli | 1:7fff8f0dce62 | 132 | dev.printf("AT+CIPSTART=4,\"TCP\",\"192.168.1.95\",333\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 133 | wait(2); |
| jzacaroli | 1:7fff8f0dce62 | 134 | /*dev.printf("AT+CIPSEND=4,4\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 135 | wait(1); |
| jzacaroli | 1:7fff8f0dce62 | 136 | dev.printf("TEST\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 137 | wait(1);*/ |
| jzacaroli | 1:7fff8f0dce62 | 138 | |
| jzacaroli | 1:7fff8f0dce62 | 139 | dev.attach(&NEWMESSAGE); //Interrupts and tells us to carry on sending data or not |
| jzacaroli | 1:7fff8f0dce62 | 140 | |
| jzacaroli | 1:7fff8f0dce62 | 141 | |
| jzacaroli | 1:7fff8f0dce62 | 142 | |
| jzacaroli | 1:7fff8f0dce62 | 143 | |
| jzacaroli | 1:7fff8f0dce62 | 144 | |
| wadh4587 | 0:e5aa1648b1c5 | 145 | while(1) { |
| jzacaroli | 1:7fff8f0dce62 | 146 | if(START == 0) { |
| jzacaroli | 1:7fff8f0dce62 | 147 | Dummy = 1 - Dummy; |
| jzacaroli | 1:7fff8f0dce62 | 148 | //pc.printf("Off"); |
| jzacaroli | 1:7fff8f0dce62 | 149 | } |
| jzacaroli | 1:7fff8f0dce62 | 150 | |
| jzacaroli | 1:7fff8f0dce62 | 151 | else if(START == 1) { |
| jzacaroli | 1:7fff8f0dce62 | 152 | pc.printf("Start = 1\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 153 | |
| jzacaroli | 1:7fff8f0dce62 | 154 | if(AUTO) {//***************AUTOMATIC MODE***********************// |
| jzacaroli | 1:7fff8f0dce62 | 155 | |
| jzacaroli | 1:7fff8f0dce62 | 156 | pc.printf("AUTO\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 157 | //Code which reads temperature and sets fan on/off accordingly |
| jzacaroli | 1:7fff8f0dce62 | 158 | int i; |
| jzacaroli | 1:7fff8f0dce62 | 159 | int devices_found=0; |
| jzacaroli | 1:7fff8f0dce62 | 160 | // Initialize the probe array to DS1820 objects |
| jzacaroli | 1:7fff8f0dce62 | 161 | for (i = 0; i < MAX_PROBES; i++) |
| jzacaroli | 1:7fff8f0dce62 | 162 | probe[i] = new DS1820(D0); |
| jzacaroli | 1:7fff8f0dce62 | 163 | // Initialize global state variables |
| jzacaroli | 1:7fff8f0dce62 | 164 | probe[0]->search_Rom_setup(); |
| jzacaroli | 1:7fff8f0dce62 | 165 | // Loop to find all devices on the data line |
| jzacaroli | 1:7fff8f0dce62 | 166 | while (probe[devices_found]->search_Rom() and devices_found<MAX_PROBES-1) |
| jzacaroli | 1:7fff8f0dce62 | 167 | devices_found++; |
| jzacaroli | 1:7fff8f0dce62 | 168 | // If maximum number of probes are found, |
| jzacaroli | 1:7fff8f0dce62 | 169 | // bump the counter to include the last array entry |
| jzacaroli | 1:7fff8f0dce62 | 170 | if (probe[devices_found]->Rom[0] != 0xFF) |
| jzacaroli | 1:7fff8f0dce62 | 171 | devices_found++; |
| jzacaroli | 1:7fff8f0dce62 | 172 | |
| jzacaroli | 1:7fff8f0dce62 | 173 | if (devices_found==0) |
| jzacaroli | 1:7fff8f0dce62 | 174 | printf("No devices found"); |
| jzacaroli | 1:7fff8f0dce62 | 175 | else { |
| jzacaroli | 1:7fff8f0dce62 | 176 | |
| jzacaroli | 1:7fff8f0dce62 | 177 | probe[0]->convert_temperature(DS1820::all_devices); |
| jzacaroli | 1:7fff8f0dce62 | 178 | for (i=0; i<devices_found; i++) { |
| jzacaroli | 1:7fff8f0dce62 | 179 | Temp = probe[i]->temperature('c'); |
| jzacaroli | 1:7fff8f0dce62 | 180 | if(Temp>27) { |
| jzacaroli | 1:7fff8f0dce62 | 181 | fan = 1; |
| jzacaroli | 1:7fff8f0dce62 | 182 | } else { |
| jzacaroli | 1:7fff8f0dce62 | 183 | fan = 0; |
| jzacaroli | 1:7fff8f0dce62 | 184 | } |
| jzacaroli | 1:7fff8f0dce62 | 185 | } |
| jzacaroli | 1:7fff8f0dce62 | 186 | } |
| jzacaroli | 1:7fff8f0dce62 | 187 | |
| jzacaroli | 1:7fff8f0dce62 | 188 | |
| jzacaroli | 1:7fff8f0dce62 | 189 | |
| jzacaroli | 1:7fff8f0dce62 | 190 | // Code reads a voltage from an LDR and sets brightness of inside lighting accordingly |
| jzacaroli | 1:7fff8f0dce62 | 191 | |
| jzacaroli | 1:7fff8f0dce62 | 192 | float v = 3.3*V1.read(); |
| jzacaroli | 1:7fff8f0dce62 | 193 | |
| jzacaroli | 1:7fff8f0dce62 | 194 | if(v<1) { |
| jzacaroli | 1:7fff8f0dce62 | 195 | intensity = 0.1; |
| jzacaroli | 1:7fff8f0dce62 | 196 | LightStatus = 1; |
| jzacaroli | 1:7fff8f0dce62 | 197 | } else if(v<1.6) { |
| jzacaroli | 1:7fff8f0dce62 | 198 | intensity = 0.5; |
| jzacaroli | 1:7fff8f0dce62 | 199 | LightStatus = 2; |
| jzacaroli | 1:7fff8f0dce62 | 200 | } else if(v<2.2) { |
| jzacaroli | 1:7fff8f0dce62 | 201 | intensity = 1; |
| jzacaroli | 1:7fff8f0dce62 | 202 | LightStatus = 3; |
| jzacaroli | 1:7fff8f0dce62 | 203 | } else { |
| jzacaroli | 1:7fff8f0dce62 | 204 | intensity = 0; |
| jzacaroli | 1:7fff8f0dce62 | 205 | LightStatus = 0; |
| jzacaroli | 1:7fff8f0dce62 | 206 | } |
| jzacaroli | 1:7fff8f0dce62 | 207 | Lights = intensity; |
| jzacaroli | 1:7fff8f0dce62 | 208 | |
| jzacaroli | 1:7fff8f0dce62 | 209 | pc.printf("reached here"); |
| jzacaroli | 1:7fff8f0dce62 | 210 | |
| jzacaroli | 1:7fff8f0dce62 | 211 | |
| jzacaroli | 1:7fff8f0dce62 | 212 | // if(AUTO) { //This is here to make sure that we're still on AutoMode before sending back data |
| jzacaroli | 1:7fff8f0dce62 | 213 | pc.printf("ALights = %d\r\n",LightStatus); |
| jzacaroli | 1:7fff8f0dce62 | 214 | pc.printf("ATemp = %3.1f\r\n",Temp); |
| jzacaroli | 1:7fff8f0dce62 | 215 | pc.printf("AFan = %d\r\n",fan.read()); |
| jzacaroli | 1:7fff8f0dce62 | 216 | |
| jzacaroli | 1:7fff8f0dce62 | 217 | char msg[80]; |
| jzacaroli | 1:7fff8f0dce62 | 218 | sprintf(msg,"Temp %3.1f\r\nFan %d\r\nLights %d\r\n",Temp,fan.read(),LightStatus); |
| jzacaroli | 1:7fff8f0dce62 | 219 | dev.printf("AT+CIPSEND=4,%d\r\n",strlen(msg)); |
| jzacaroli | 1:7fff8f0dce62 | 220 | wait(0.2); |
| jzacaroli | 1:7fff8f0dce62 | 221 | dev.printf("%s",msg); |
| jzacaroli | 1:7fff8f0dce62 | 222 | wait(5); |
| jzacaroli | 1:7fff8f0dce62 | 223 | // } |
| jzacaroli | 1:7fff8f0dce62 | 224 | |
| jzacaroli | 1:7fff8f0dce62 | 225 | |
| jzacaroli | 1:7fff8f0dce62 | 226 | } else { //***********************MANUAL MODE**************************// |
| jzacaroli | 1:7fff8f0dce62 | 227 | Dummy = 1-Dummy; |
| jzacaroli | 1:7fff8f0dce62 | 228 | pc.printf("MANUAL\r\n"); |
| jzacaroli | 1:7fff8f0dce62 | 229 | |
| jzacaroli | 1:7fff8f0dce62 | 230 | int i; |
| jzacaroli | 1:7fff8f0dce62 | 231 | int devices_found=0; |
| jzacaroli | 1:7fff8f0dce62 | 232 | // Initialize the probe array to DS1820 objects |
| jzacaroli | 1:7fff8f0dce62 | 233 | for (i = 0; i < MAX_PROBES; i++) |
| jzacaroli | 1:7fff8f0dce62 | 234 | probe[i] = new DS1820(D0); |
| jzacaroli | 1:7fff8f0dce62 | 235 | // Initialize global state variables |
| jzacaroli | 1:7fff8f0dce62 | 236 | probe[0]->search_Rom_setup(); |
| jzacaroli | 1:7fff8f0dce62 | 237 | // Loop to find all devices on the data line |
| jzacaroli | 1:7fff8f0dce62 | 238 | while (probe[devices_found]->search_Rom() and devices_found<MAX_PROBES-1) |
| jzacaroli | 1:7fff8f0dce62 | 239 | devices_found++; |
| jzacaroli | 1:7fff8f0dce62 | 240 | // If maximum number of probes are found, |
| jzacaroli | 1:7fff8f0dce62 | 241 | // bump the counter to include the last array entry |
| jzacaroli | 1:7fff8f0dce62 | 242 | if (probe[devices_found]->Rom[0] != 0xFF) |
| jzacaroli | 1:7fff8f0dce62 | 243 | devices_found++; |
| jzacaroli | 1:7fff8f0dce62 | 244 | if (devices_found==0) |
| jzacaroli | 1:7fff8f0dce62 | 245 | printf("No devices found"); |
| jzacaroli | 1:7fff8f0dce62 | 246 | else { |
| jzacaroli | 1:7fff8f0dce62 | 247 | probe[0]->convert_temperature(DS1820::all_devices); |
| jzacaroli | 1:7fff8f0dce62 | 248 | for (i=0; i<devices_found; i++) { |
| jzacaroli | 1:7fff8f0dce62 | 249 | Temp = probe[i]->temperature('c'); |
| jzacaroli | 1:7fff8f0dce62 | 250 | } |
| jzacaroli | 1:7fff8f0dce62 | 251 | } |
| jzacaroli | 1:7fff8f0dce62 | 252 | pc.printf("mLights = %d\r\n",LightStatus); |
| jzacaroli | 1:7fff8f0dce62 | 253 | pc.printf("mTemp = %3.1f\r\n",Temp); |
| jzacaroli | 1:7fff8f0dce62 | 254 | pc.printf("mFan = %d\r\n",fan.read()); |
| jzacaroli | 1:7fff8f0dce62 | 255 | |
| jzacaroli | 1:7fff8f0dce62 | 256 | char msg[80]; |
| jzacaroli | 1:7fff8f0dce62 | 257 | sprintf(msg,"Temp %3.1f\r\nFan %d\r\nLights %d\r\n",Temp,fan.read(),LightStatus); |
| jzacaroli | 1:7fff8f0dce62 | 258 | dev.printf("AT+CIPSEND=4,%d\r\n",strlen(msg)); |
| jzacaroli | 1:7fff8f0dce62 | 259 | wait(0.2); |
| jzacaroli | 1:7fff8f0dce62 | 260 | dev.printf("%s",msg); |
| jzacaroli | 1:7fff8f0dce62 | 261 | wait(5); |
| jzacaroli | 1:7fff8f0dce62 | 262 | } |
| jzacaroli | 1:7fff8f0dce62 | 263 | } |
| jzacaroli | 1:7fff8f0dce62 | 264 | |
| wadh4587 | 0:e5aa1648b1c5 | 265 | } |
| jzacaroli | 1:7fff8f0dce62 | 266 | } |
