![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Kuo Yiching
Fork of iot_example by
Revision 8:cd472721e8a8, committed 2017-12-20
- Comitter:
- jasonkuo52
- Date:
- Wed Dec 20 08:46:09 2017 +0000
- Parent:
- 7:49a823b5a935
- Commit message:
- Kuo Yiching
Changed in this revision
esp8266.cpp | 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 49a823b5a935 -r cd472721e8a8 esp8266.cpp --- a/esp8266.cpp Wed Dec 13 10:09:44 2017 +0000 +++ b/esp8266.cpp Wed Dec 20 08:46:09 2017 +0000 @@ -52,6 +52,8 @@ else if(strcmp(token, "control") == 0){ if(!control_cmd){ strncpy(control_buf, param, sizeof(control_buf)); + ser2usb.printf("%s\r\n", control_buf); + control_cmd = true; } } @@ -63,9 +65,10 @@ bool Esp8266::get_control_cmd(char* actuator, char* value) { + if(!control_cmd) return false; - + char* plus = strchr(control_buf, '+'); if(!plus){ control_cmd = false;
diff -r 49a823b5a935 -r cd472721e8a8 main.cpp --- a/main.cpp Wed Dec 13 10:09:44 2017 +0000 +++ b/main.cpp Wed Dec 20 08:46:09 2017 +0000 @@ -11,8 +11,14 @@ #include "esp8266.h" Serial ser2usb(PA_2, PA_3, 115200); -DigitalOut LED(PD_2); -DigitalIn humansensor(PA_0); +//DigitalOut LED(PD_2); +//DigitalIn humansensor(PA_0); +PwmOut mypwm19(PB_4); +PwmOut mypwm20(PB_5); +PwmOut mypwm21(PB_13); +PwmOut mypwm22(PB_3); +//DigitalIn mybutton(PA_12); +DigitalOut myled(PB_14); int test_main(void){ Serial esp8266(PA_9, PA_10, 9600); @@ -25,9 +31,11 @@ } int main(void) { - + myled = 0; + // 选定与 esp8266 相连接的串口,WiFi 名称和密码 // 参数分别为 TX pin / RX pin / SSID / Password + ser2usb.printf("Reset.\r\n"); Esp8266 client(PA_9, PA_10, "TSINGHUA.iCenter", "TS.icenter"); //声明所有的传感器,每行一个,每个由名字、单位两部分组成,最后一行必须为空指针作为结尾 @@ -43,8 +51,12 @@ //声明所有的执行器,每行一个,每个由名字、参数类型两部分组成,最后一行必须为空指针作为结尾 //服务器收到声明后,将在网页上显示这些执行器 const char* actuators[][2] = { - "servo1", "int", - "switch2", "int", + "servo19", "int", + "servo20", "int", + "servo21", "int", + "servo22", "int", + "LED01", "int", + //"switch2", "int", NULL, NULL //最后一行以空指针作为结束标记 }; @@ -63,15 +75,47 @@ if(client.get_control_cmd(actuator_name, control_value)){ ser2usb.printf("Received CMD %s, %s\r\n", actuator_name, control_value); //判断哪个执行器收到命令 - if(strcmp(actuator_name, "switch1")){ - //do something for switch1 - LED = atoi(control_value); - }else if(strcmp(actuator_name, "switch2")){ + if (!strcmp(actuator_name, "servo19")){ + //LED = atoi(control_value); + if (!strcmp(control_value, "1")){ + mypwm19.pulsewidth(0.001); + }else{ + mypwm19.pulsewidth(0.002); + } + + }else if (!strcmp(actuator_name, "servo20")){ + if (!strcmp(control_value, "1")){ + mypwm20.pulsewidth(0.001); + }else{ + mypwm20.pulsewidth(0.002); + } + }else if (!strcmp(actuator_name, "servo21")){ + if (!strcmp(control_value, "1")){ + mypwm21.pulsewidth(0.001); + }else{ + mypwm21.pulsewidth(0.002); + } + + }else if (!strcmp(actuator_name, "servo22")){ + if (!strcmp(control_value, "1")){ + mypwm22.pulsewidth(0.001); + }else{ + mypwm22.pulsewidth(0.002); + } //do something for switch2 + }else if (!strcmp(actuator_name, "LED01")){ + if (!strcmp(control_value, "1")){ + myled = 1; + }else{ + myled = 0; + } } + }else{ + //ser2usb.printf("Not Received CMD\r\n"); + } - if(t.read() - last_report > 1){ // 每1s发送汇报一次传感器数据 + /*if(t.read() - last_report > 1){ // 每1s发送汇报一次传感器数据 //汇报传感器数据,两个参数分别是传感器名字和值 //client.publish_value("pressure", "100000 Pa"); @@ -80,6 +124,6 @@ client.publish_value("huamn", "30 %"); last_report = t.read(); - } + }*/ } }