yangyang

Dependencies:   WIZnetInterface mbed

Fork of espyun1 by jiang hao

Committer:
846354866
Date:
Wed Nov 09 09:25:49 2016 +0000
Revision:
7:bda2a6a118f7
Parent:
6:bc4901a948b1
sensor iot for espressif(no chinese) version-0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jehoon 0:af541535ef54 1 #include "mbed.h"
jehoon 0:af541535ef54 2 #include "EthernetInterface.h"
jh_ndm 1:3550659bd872 3 #include "cJSON.h"
jehoon 0:af541535ef54 4
846354866 4:e1d2c6f94c69 5 DigitalInOut myIOD10(D10);
846354866 7:bda2a6a118f7 6 DigitalIn myInD11(D11);
846354866 4:e1d2c6f94c69 7 DigitalOut myOutD12(D12);
846354866 4:e1d2c6f94c69 8 AnalogIn myInA1(A1);
jh_ndm 1:3550659bd872 9 int socketPort = 8000;
jh_ndm 1:3550659bd872 10 int httpPort = 80;
jh_ndm 1:3550659bd872 11
jh_ndm 1:3550659bd872 12 Serial pc(PA_13,PA_14);
jh_ndm 1:3550659bd872 13
jh_ndm 1:3550659bd872 14 int MallocSize = 800*sizeof(char);
846354866 7:bda2a6a118f7 15 //bool socket_GET(TCPSocketConnection &conn);
jh_ndm 1:3550659bd872 16 bool http_GET(TCPSocketConnection &conn);
846354866 4:e1d2c6f94c69 17 bool http_POST(TCPSocketConnection &conn,int vall);
846354866 7:bda2a6a118f7 18 //bool socket_POST(TCPSocketConnection &conn,int vall);
846354866 7:bda2a6a118f7 19 //bool closeConnect(TCPSocketConnection &conn);
846354866 4:e1d2c6f94c69 20 void receive_dht11();
846354866 4:e1d2c6f94c69 21 unsigned char receive_byte();
846354866 7:bda2a6a118f7 22 void button_led();
846354866 4:e1d2c6f94c69 23 Timeout receive_dht11Timeout;
846354866 7:bda2a6a118f7 24 Timeout button_ledTimeout;
846354866 4:e1d2c6f94c69 25
846354866 4:e1d2c6f94c69 26 void delay(unsigned char ms)
846354866 4:e1d2c6f94c69 27 {
846354866 4:e1d2c6f94c69 28 unsigned int y;
846354866 4:e1d2c6f94c69 29 while(ms--)
846354866 4:e1d2c6f94c69 30 for(y=1920; y>0; y--);
846354866 4:e1d2c6f94c69 31 }
846354866 4:e1d2c6f94c69 32
846354866 4:e1d2c6f94c69 33 void Delay_us(unsigned char us)
846354866 4:e1d2c6f94c69 34 {
846354866 4:e1d2c6f94c69 35 unsigned char y;
846354866 4:e1d2c6f94c69 36 while(us--)
846354866 4:e1d2c6f94c69 37 for(y=2; y>0; y--);
846354866 4:e1d2c6f94c69 38 }
jh_ndm 1:3550659bd872 39
jh_ndm 1:3550659bd872 40 float val;
jh_ndm 1:3550659bd872 41 bool out=false;
846354866 4:e1d2c6f94c69 42 unsigned char RH,RL,TH,TL;
846354866 4:e1d2c6f94c69 43 unsigned char data_byte;
846354866 4:e1d2c6f94c69 44 unsigned int U8FLAG;
846354866 4:e1d2c6f94c69 45 static unsigned char num = 4;
846354866 4:e1d2c6f94c69 46 const char receive_module[4][5] = {"Led", "Gas", "Hum", "Temp", };
846354866 7:bda2a6a118f7 47 #if 1
jh_ndm 1:3550659bd872 48 int main() {
jehoon 0:af541535ef54 49 int phy_link;
jh_ndm 1:3550659bd872 50 pc.printf("Wait a second...\r\n");
jh_ndm 1:3550659bd872 51 uint8_t mac_addr[6] = {0x78, 0x08, 0xDC, 0x1c, 0xa8, 0x95};
846354866 4:e1d2c6f94c69 52 receive_dht11Timeout.attach(&receive_dht11,0.2f);
846354866 7:bda2a6a118f7 53 button_ledTimeout.attach(&button_led,0.1f);
jehoon 0:af541535ef54 54
jehoon 0:af541535ef54 55 EthernetInterface eth;
jehoon 0:af541535ef54 56 eth.init(mac_addr); //Use DHCP
jehoon 0:af541535ef54 57 eth.connect();
jh_ndm 1:3550659bd872 58 pc.printf("start IP Address is %s\r\n", eth.getIPAddress());
846354866 7:bda2a6a118f7 59
jh_ndm 1:3550659bd872 60 do{
jh_ndm 1:3550659bd872 61 phy_link = eth.ethernet_link();
jh_ndm 1:3550659bd872 62 pc.printf("...");
846354866 7:bda2a6a118f7 63 pc.printf("phy_link=%d...", phy_link);
jh_ndm 1:3550659bd872 64 wait(2);
jh_ndm 1:3550659bd872 65 }while(!phy_link);
jh_ndm 1:3550659bd872 66 printf("\r\n");
846354866 7:bda2a6a118f7 67
jh_ndm 1:3550659bd872 68 pc.printf("IP Address is %s\r\n", eth.getIPAddress());
jh_ndm 1:3550659bd872 69
jh_ndm 1:3550659bd872 70 TCPSocketConnection conn;
jh_ndm 1:3550659bd872 71 while(true)
jh_ndm 1:3550659bd872 72 {
846354866 7:bda2a6a118f7 73 //wait(0.5f);
846354866 4:e1d2c6f94c69 74 if(num)
846354866 4:e1d2c6f94c69 75 {
846354866 4:e1d2c6f94c69 76 if (num == 4)
846354866 4:e1d2c6f94c69 77 val = TH;
846354866 4:e1d2c6f94c69 78 else if (num == 3)
846354866 4:e1d2c6f94c69 79 val = RH;
846354866 4:e1d2c6f94c69 80 else if (num == 2)
846354866 7:bda2a6a118f7 81 val = myInA1.read_u16();
846354866 4:e1d2c6f94c69 82 else if (num == 1)
846354866 6:bc4901a948b1 83 val = myOutD12.read();
846354866 4:e1d2c6f94c69 84 }
846354866 7:bda2a6a118f7 85 //int mathtest = ceil(val);//math.
jh_ndm 1:3550659bd872 86 pc.printf("start http_post\r\n");
846354866 6:bc4901a948b1 87 wait(1);
846354866 7:bda2a6a118f7 88
846354866 7:bda2a6a118f7 89 conn.connect("iot.espressif.cn", httpPort);
jh_ndm 1:3550659bd872 90
846354866 7:bda2a6a118f7 91 http_POST(conn, val);
jh_ndm 1:3550659bd872 92
846354866 7:bda2a6a118f7 93 conn.close();
846354866 4:e1d2c6f94c69 94 val = 0.0;
846354866 6:bc4901a948b1 95 //mathtest = 0;
jh_ndm 1:3550659bd872 96
jh_ndm 1:3550659bd872 97 if(out)break;
jh_ndm 1:3550659bd872 98 }
846354866 7:bda2a6a118f7 99
846354866 7:bda2a6a118f7 100 //conn.close();
846354866 7:bda2a6a118f7 101 eth.disconnect();
846354866 7:bda2a6a118f7 102 pc.printf("out the program!\r\n");
846354866 7:bda2a6a118f7 103 return 0;
846354866 7:bda2a6a118f7 104 }
846354866 7:bda2a6a118f7 105 #else
846354866 7:bda2a6a118f7 106
846354866 7:bda2a6a118f7 107 int main() {
846354866 7:bda2a6a118f7 108 pc.printf("Wait a second...\r\n");
846354866 7:bda2a6a118f7 109 uint8_t mac_addr[6] = {0x78, 0x08, 0xDC, 0x1c, 0xa8, 0x95};
846354866 7:bda2a6a118f7 110
846354866 7:bda2a6a118f7 111 EthernetInterface eth;
846354866 7:bda2a6a118f7 112 eth.init(mac_addr); //Use DHCP
846354866 7:bda2a6a118f7 113 eth.connect();
846354866 7:bda2a6a118f7 114 pc.printf("start IP Address is %s\r\n", eth.getIPAddress());
846354866 7:bda2a6a118f7 115 eth.ethernet_link();
846354866 7:bda2a6a118f7 116 pc.printf("IP Address is %s\r\n", eth.getIPAddress());
846354866 7:bda2a6a118f7 117
846354866 7:bda2a6a118f7 118 TCPSocketConnection conn;
846354866 7:bda2a6a118f7 119
846354866 7:bda2a6a118f7 120
846354866 7:bda2a6a118f7 121 while(true)
846354866 7:bda2a6a118f7 122 {
846354866 7:bda2a6a118f7 123 int ret = 0;
846354866 7:bda2a6a118f7 124 pc.printf("start http_post\r\n");
846354866 7:bda2a6a118f7 125 //ret = conn.connect("192.168.1.41", 10086);
846354866 7:bda2a6a118f7 126 ret = conn.connect("iot.espressif.cn", httpPort);
846354866 7:bda2a6a118f7 127
846354866 7:bda2a6a118f7 128 pc.printf("connect ret=%d\n",ret);
846354866 7:bda2a6a118f7 129 ret = conn.send_all("asdfghh", 7);//http_cmd for http,pJSON for
846354866 7:bda2a6a118f7 130 pc.printf("send ret=%d\n",ret);
846354866 7:bda2a6a118f7 131 wait(1.0f);
846354866 7:bda2a6a118f7 132 ret = conn.close();
846354866 7:bda2a6a118f7 133 pc.printf("close ret=%d\n",ret);
846354866 7:bda2a6a118f7 134 wait(1.0f);
846354866 7:bda2a6a118f7 135 }
846354866 7:bda2a6a118f7 136
846354866 7:bda2a6a118f7 137
jh_ndm 1:3550659bd872 138 eth.disconnect();
jh_ndm 1:3550659bd872 139 pc.printf("out the program!\r\n");
jh_ndm 1:3550659bd872 140 return 0;
jh_ndm 1:3550659bd872 141 }
jh_ndm 1:3550659bd872 142
846354866 7:bda2a6a118f7 143 #endif
846354866 4:e1d2c6f94c69 144 /*http POST*/
846354866 4:e1d2c6f94c69 145 bool http_POST(TCPSocketConnection &conn, int val)
846354866 4:e1d2c6f94c69 146 {
846354866 7:bda2a6a118f7 147 pc.printf("%s():%d\n",__FUNCTION__, __LINE__);
846354866 4:e1d2c6f94c69 148 //wait(0.5);
846354866 7:bda2a6a118f7 149 /*if(conn.is_connected()){
846354866 4:e1d2c6f94c69 150 pc.printf("connect is already ok!\r\n");
846354866 7:bda2a6a118f7 151 }else{pc.printf("%s():%d\n",__FUNCTION__, __LINE__);
846354866 4:e1d2c6f94c69 152 if(!conn.connect("iot.espressif.cn", httpPort)) //80 for http,8000 for socket
846354866 4:e1d2c6f94c69 153 pc.printf("connect OK!\r\n");
846354866 4:e1d2c6f94c69 154 else{
846354866 4:e1d2c6f94c69 155 pc.printf("connct ERR!\r\n");
846354866 4:e1d2c6f94c69 156 out = true;
846354866 4:e1d2c6f94c69 157 return false;
846354866 4:e1d2c6f94c69 158 }
846354866 7:bda2a6a118f7 159 }*///conn.connect("iot.espressif.cn", httpPort);
846354866 7:bda2a6a118f7 160
846354866 4:e1d2c6f94c69 161 cJSON* http_post=NULL;
846354866 4:e1d2c6f94c69 162 http_post = cJSON_CreateObject();
846354866 4:e1d2c6f94c69 163 if(NULL == http_post)
846354866 4:e1d2c6f94c69 164 {
846354866 4:e1d2c6f94c69 165 pc.printf("OUT4\r\n");
846354866 4:e1d2c6f94c69 166 out = true;
846354866 4:e1d2c6f94c69 167 return false;
846354866 4:e1d2c6f94c69 168 }
846354866 7:bda2a6a118f7 169
846354866 4:e1d2c6f94c69 170 cJSON* http_post_json=NULL;
846354866 4:e1d2c6f94c69 171 http_post_json = cJSON_CreateObject();
846354866 4:e1d2c6f94c69 172 if(NULL == http_post_json)
846354866 4:e1d2c6f94c69 173 {
846354866 4:e1d2c6f94c69 174 cJSON_Delete(http_post);
846354866 4:e1d2c6f94c69 175 pc.printf("OUT5\r\n");
846354866 4:e1d2c6f94c69 176 out = true;
846354866 4:e1d2c6f94c69 177 return false;
846354866 4:e1d2c6f94c69 178 }
846354866 4:e1d2c6f94c69 179 cJSON_AddNumberToObject(http_post_json, "x", val);
846354866 4:e1d2c6f94c69 180 //cJSON_AddNumberToObject(http_post_json, "y", 2);
846354866 4:e1d2c6f94c69 181 //cJSON_AddNumberToObject(http_post_json, "z", 2);
846354866 4:e1d2c6f94c69 182 cJSON_AddItemToObject(http_post, "datapoint", http_post_json);
846354866 4:e1d2c6f94c69 183 char* pJSON_http_post = cJSON_PrintUnformatted(http_post);
846354866 7:bda2a6a118f7 184
846354866 4:e1d2c6f94c69 185 if(NULL == pJSON_http_post)
846354866 4:e1d2c6f94c69 186 {
846354866 4:e1d2c6f94c69 187 cJSON_Delete(http_post);
846354866 4:e1d2c6f94c69 188 pc.printf("OUT6\r\n");
846354866 4:e1d2c6f94c69 189 out = true;
846354866 4:e1d2c6f94c69 190 return false;
846354866 4:e1d2c6f94c69 191 }
846354866 4:e1d2c6f94c69 192
846354866 4:e1d2c6f94c69 193 //Pay attention to out of memory
846354866 4:e1d2c6f94c69 194 //char http_POST_cmd[500] = "POST /v1/datastreams/jhtest/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\r\n"\
846354866 4:e1d2c6f94c69 195 // "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token ebe1671e9d9f42a5231d017ec550552b9bae2cdf\r\n"\
846354866 4:e1d2c6f94c69 196 // "Content-Length: 33\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n";
846354866 4:e1d2c6f94c69 197 char http_POST_cmd[500];// = "POST /v1/datastreams/test/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\r\n"\
846354866 4:e1d2c6f94c69 198 // "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token b1e92cf17fe4482647924941949ab2b07ffab548\r\n"\
846354866 4:e1d2c6f94c69 199 // "Content-Length: ";
846354866 7:bda2a6a118f7 200 sprintf(http_POST_cmd,"POST /v1/datastreams/%s/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.35.0\r\n"\
846354866 4:e1d2c6f94c69 201 "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token b1e92cf17fe4482647924941949ab2b07ffab548\r\n"\
846354866 4:e1d2c6f94c69 202 "Content-Length: ", receive_module[num-1]);
846354866 4:e1d2c6f94c69 203 num--;
846354866 4:e1d2c6f94c69 204 if (num == 0)
846354866 4:e1d2c6f94c69 205 num = 4;
846354866 4:e1d2c6f94c69 206
846354866 4:e1d2c6f94c69 207 char len[2];
846354866 4:e1d2c6f94c69 208 len[0]=strlen(pJSON_http_post)/10%10+48;
846354866 4:e1d2c6f94c69 209 len[1]=strlen(pJSON_http_post)%10+48;
846354866 4:e1d2c6f94c69 210 strcat(http_POST_cmd,len);
846354866 4:e1d2c6f94c69 211 strcat(http_POST_cmd,"\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n");
846354866 4:e1d2c6f94c69 212
846354866 4:e1d2c6f94c69 213 strcat(http_POST_cmd,pJSON_http_post);
846354866 4:e1d2c6f94c69 214 conn.send_all(http_POST_cmd, strlen(http_POST_cmd));//http_cmd for http,pJSON for socket,should be three changes
846354866 4:e1d2c6f94c69 215 pc.printf("%s\r\n",http_POST_cmd);
846354866 7:bda2a6a118f7 216
846354866 4:e1d2c6f94c69 217 char *buffer = NULL;
846354866 4:e1d2c6f94c69 218 buffer = (char *)malloc(MallocSize);
846354866 4:e1d2c6f94c69 219 if(!buffer)pc.printf("malloc buffer err\r\n");
846354866 4:e1d2c6f94c69 220
846354866 7:bda2a6a118f7 221 /*int ret;
846354866 7:bda2a6a118f7 222 pc.printf("6666\r\n");
846354866 7:bda2a6a118f7 223 while (true)
846354866 7:bda2a6a118f7 224 {
846354866 7:bda2a6a118f7 225 wait(1);pc.printf("%s():%d\n",__FUNCTION__, __LINE__);
846354866 7:bda2a6a118f7 226 ret = conn.receive_all(buffer, MallocSize-1);pc.printf("%s():%d\n",__FUNCTION__, __LINE__);
846354866 7:bda2a6a118f7 227 pc.printf("ret = %d\r\n",ret);
846354866 7:bda2a6a118f7 228 if (ret <= 0) {
846354866 7:bda2a6a118f7 229 ;//break;
846354866 7:bda2a6a118f7 230 }
846354866 7:bda2a6a118f7 231 buffer[ret] = '\0';
846354866 7:bda2a6a118f7 232 pc.printf("Received %d chars from server: %s\n", ret, buffer);
846354866 7:bda2a6a118f7 233 }*/
846354866 7:bda2a6a118f7 234 pc.printf("http_POST OUT\r\n");
846354866 7:bda2a6a118f7 235
846354866 7:bda2a6a118f7 236 free(pJSON_http_post);
846354866 7:bda2a6a118f7 237 free(buffer);
846354866 7:bda2a6a118f7 238 cJSON_Delete(http_post);
846354866 7:bda2a6a118f7 239
846354866 7:bda2a6a118f7 240 return true;
846354866 7:bda2a6a118f7 241 }
846354866 7:bda2a6a118f7 242
846354866 7:bda2a6a118f7 243 /*http_GET*/
846354866 7:bda2a6a118f7 244 bool http_GET(TCPSocketConnection &conn)
846354866 7:bda2a6a118f7 245 {
846354866 7:bda2a6a118f7 246 if(conn.is_connected()){
846354866 7:bda2a6a118f7 247 pc.printf("connect is already ok!\r\n");
846354866 7:bda2a6a118f7 248 }else{
846354866 7:bda2a6a118f7 249 if(!conn.connect("iot.espressif.cn", httpPort)) //80 for http,8000 for socket
846354866 7:bda2a6a118f7 250 pc.printf("connect OK!\r\n");
846354866 7:bda2a6a118f7 251 else{
846354866 7:bda2a6a118f7 252 pc.printf("connct ERR!\r\n");
846354866 7:bda2a6a118f7 253 out = true;
846354866 7:bda2a6a118f7 254 return false;
846354866 7:bda2a6a118f7 255 }
846354866 7:bda2a6a118f7 256 }
846354866 7:bda2a6a118f7 257
846354866 7:bda2a6a118f7 258 char http_cmd[] = "GET /v1/datastreams/Led/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\r\n"\
846354866 7:bda2a6a118f7 259 "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token b1e92cf17fe4482647924941949ab2b07ffab548\r\n\r\n";
846354866 7:bda2a6a118f7 260
846354866 7:bda2a6a118f7 261 conn.send_all(http_cmd, strlen(http_cmd));//http_cmd for http,pJSON for socket,should be three changes
846354866 7:bda2a6a118f7 262 pc.printf("%s\r\n",http_cmd);
846354866 7:bda2a6a118f7 263
846354866 7:bda2a6a118f7 264 //char *buffer = NULL;
846354866 7:bda2a6a118f7 265 //buffer = (char *)malloc(MallocSize);
846354866 7:bda2a6a118f7 266 //if(!buffer)pc.printf("malloc buffer err\r\n");
846354866 7:bda2a6a118f7 267 char buffer[500];
846354866 4:e1d2c6f94c69 268 int ret;
846354866 7:bda2a6a118f7 269
846354866 4:e1d2c6f94c69 270 while (true) {
846354866 4:e1d2c6f94c69 271 wait(1);
846354866 7:bda2a6a118f7 272 ret = conn.receive(buffer, 500-1);
846354866 4:e1d2c6f94c69 273 pc.printf("ret = %d\r\n",ret);
846354866 4:e1d2c6f94c69 274 if (ret <= 0) {
846354866 4:e1d2c6f94c69 275 break;
846354866 4:e1d2c6f94c69 276 }
846354866 4:e1d2c6f94c69 277 buffer[ret] = '\0';
846354866 4:e1d2c6f94c69 278 pc.printf("Received %d chars from server: %s\n", ret, buffer);
846354866 4:e1d2c6f94c69 279 }
846354866 7:bda2a6a118f7 280 pc.printf("http_GET OUT\r\n");
846354866 7:bda2a6a118f7 281 /*
846354866 7:bda2a6a118f7 282 if(conn.close()){
846354866 7:bda2a6a118f7 283 pc.printf("conn.close OK\r\n");
846354866 7:bda2a6a118f7 284 }else{
846354866 7:bda2a6a118f7 285 pc.printf("conn.close ERR\r\n");
846354866 7:bda2a6a118f7 286 }
846354866 7:bda2a6a118f7 287 */
846354866 7:bda2a6a118f7 288 //free(buffer);
846354866 4:e1d2c6f94c69 289 return true;
846354866 4:e1d2c6f94c69 290 }
846354866 4:e1d2c6f94c69 291
846354866 4:e1d2c6f94c69 292 unsigned char receive_byte()
846354866 4:e1d2c6f94c69 293 {
846354866 4:e1d2c6f94c69 294 unsigned char i,temp;
846354866 4:e1d2c6f94c69 295 for(i=0;i<8;i++)
846354866 4:e1d2c6f94c69 296 {
846354866 4:e1d2c6f94c69 297 U8FLAG = 2;
846354866 4:e1d2c6f94c69 298 while(!myIOD10.read() && U8FLAG++);
846354866 4:e1d2c6f94c69 299 Delay_us(30);
846354866 4:e1d2c6f94c69 300 temp=0;
846354866 4:e1d2c6f94c69 301 if(myIOD10.read()==1)
846354866 4:e1d2c6f94c69 302 temp=1;
846354866 4:e1d2c6f94c69 303 U8FLAG = 2;
846354866 4:e1d2c6f94c69 304 while(myIOD10.read() && U8FLAG++);
846354866 4:e1d2c6f94c69 305
846354866 4:e1d2c6f94c69 306 if(U8FLAG==1)break;
846354866 4:e1d2c6f94c69 307 data_byte<<=1;//
846354866 4:e1d2c6f94c69 308 data_byte|=temp;
846354866 4:e1d2c6f94c69 309 }
846354866 4:e1d2c6f94c69 310 return data_byte;
846354866 4:e1d2c6f94c69 311 }
846354866 4:e1d2c6f94c69 312
846354866 4:e1d2c6f94c69 313 void receive_dht11()
846354866 4:e1d2c6f94c69 314 {
846354866 4:e1d2c6f94c69 315 unsigned char T_H,T_L,R_H,R_L,check,num_check;
846354866 4:e1d2c6f94c69 316
846354866 4:e1d2c6f94c69 317
846354866 4:e1d2c6f94c69 318 myIOD10.output();
846354866 4:e1d2c6f94c69 319 myIOD10.write(0);
846354866 4:e1d2c6f94c69 320 delay(20);
846354866 4:e1d2c6f94c69 321
846354866 4:e1d2c6f94c69 322 myIOD10.write(1);
846354866 4:e1d2c6f94c69 323 Delay_us(25);
846354866 4:e1d2c6f94c69 324 myIOD10.write(1);
846354866 4:e1d2c6f94c69 325
846354866 4:e1d2c6f94c69 326 myIOD10.input();
846354866 4:e1d2c6f94c69 327 if(!myIOD10.read())
846354866 4:e1d2c6f94c69 328 {
846354866 4:e1d2c6f94c69 329 while(!myIOD10.read());
846354866 4:e1d2c6f94c69 330 while(myIOD10.read());
846354866 4:e1d2c6f94c69 331 R_H=receive_byte();
846354866 4:e1d2c6f94c69 332 R_L=receive_byte();
846354866 4:e1d2c6f94c69 333 T_H=receive_byte();
846354866 4:e1d2c6f94c69 334 T_L=receive_byte();
846354866 4:e1d2c6f94c69 335 check=receive_byte();
846354866 6:bc4901a948b1 336 //pc.printf("--R_H--%d---R_L---%d--T_H--%d---T_L---%d\r\n", R_H,R_L,T_H,T_L);
846354866 4:e1d2c6f94c69 337 Delay_us(20);
846354866 6:bc4901a948b1 338 num_check=R_H+R_L+T_H+T_L;//pc.printf("--num_check--%d---check---%d\r\n", num_check,check);
846354866 4:e1d2c6f94c69 339 if(num_check==check)
846354866 4:e1d2c6f94c69 340 {
846354866 4:e1d2c6f94c69 341 RH=R_H;
846354866 4:e1d2c6f94c69 342 RL=R_L;
846354866 4:e1d2c6f94c69 343 TH=T_H;
846354866 4:e1d2c6f94c69 344 TL=T_L;
846354866 4:e1d2c6f94c69 345 check=num_check;
846354866 4:e1d2c6f94c69 346 }
846354866 4:e1d2c6f94c69 347 }
846354866 4:e1d2c6f94c69 348
846354866 4:e1d2c6f94c69 349 //pc.printf("humidity [H] -out--%d\r\n", RH);
846354866 4:e1d2c6f94c69 350 //pc.printf("humidity [L] -out--%d\r\n", RL);
846354866 4:e1d2c6f94c69 351 //pc.printf("temperature [H] -out--%d\r\n", TH);
846354866 4:e1d2c6f94c69 352 //pc.printf("temperature [L] -out--%d\r\n", TL);
846354866 4:e1d2c6f94c69 353
846354866 4:e1d2c6f94c69 354 receive_dht11Timeout.attach(&receive_dht11,0.2f);
846354866 4:e1d2c6f94c69 355 }
846354866 7:bda2a6a118f7 356
846354866 7:bda2a6a118f7 357 void button_led()
846354866 7:bda2a6a118f7 358 {
846354866 7:bda2a6a118f7 359 while(myInD11.read())
846354866 7:bda2a6a118f7 360 {
846354866 7:bda2a6a118f7 361 wait(0.01f);
846354866 7:bda2a6a118f7 362 if(!myInD11.read())
846354866 7:bda2a6a118f7 363 {
846354866 7:bda2a6a118f7 364 myOutD12.write(!myOutD12.read());
846354866 7:bda2a6a118f7 365 break;
846354866 7:bda2a6a118f7 366 }
846354866 7:bda2a6a118f7 367 }
846354866 7:bda2a6a118f7 368
846354866 7:bda2a6a118f7 369 button_ledTimeout.attach(&button_led,0.1f);
846354866 7:bda2a6a118f7 370 }