要到IP之后,就可以用手机透过网路控制Amebaz2。先用最阳春的http就好...
1. Enable httpd
httpd範例SDK早就写好了,打开开关即可。
档案: project/realtek_amebaz2_v0_example/inc/platform_opts.h
#define CONFIG_EXAMPLE_HTTPD 1 // 0改成1
烧完firmware重开机,手机就可以连到板子的阳春网页(没错,连网页都写好了)。
2. 控制LED
因为我要透过http POST来控制LED,所以先把GPIO的code写在这个档案 component/common/example/httpd/example_httpd.c
// 在global区域加上以下几行#include "gpio_api.h"// Ref. ambz2_sdk/project/realtek_amebaz2_v0_example/example_sources/gpio_light_weight/scr/main.c#define GPIO_LED_PIN PA_23 // LED 一脚插A23,一脚插GNDextern void gpio_direct_write(gpio_t *obj, BOOL value);gpio_t gpio_led;// http POST之后执行的functionvoid homepage_cb(struct httpd_conn *conn){// 中间略if(body) { // read HTTP body memset(body, 0, content_len + 1); read_size = httpd_request_read_data(conn, body, content_len); // 中间略 // LED // 根据阳春SDK网页,body就是POST收下来的资料,内容会是text1=XXX&text2=XXX,因为我懒得做字串切割(之后再做),就先抓最后一个char就好 if (body[strlen((char const*)body)-1] == '1') { gpio_direct_write(&gpio_led, 1); printf("[HANA] LED on\n"); } else if (body[strlen((char const*)body)-1] == '0') { gpio_direct_write(&gpio_led, 0); printf("[HANA] LED off\n");// 入口点static void example_httpd_thread(void *param){// 中间略 // 初始 LED control pin gpio_init(&gpio_led, GPIO_LED_PIN); gpio_dir(&gpio_led, PIN_OUTPUT); // direction gpio_mode(&gpio_led, PullNone); // No pull
拿起手机,打开网页,Text1随便输入,只要确保Text2的最后一char是1就好
之后手机返回POST讯息,板子上LED灯也亮了!
关灯只要把Text2的最后一char改0就好了,很迅速喔。