About GPIO, I post a blog when I start VoCore.
Please check this link http://vonger.cn/?p=473.
There is some note about how to finish this:
Connection:
That 330ohm resistor is necessary, without it, the LED will burn.
Command:
Already in this post http://vonger.cn/?p=473.
Advance:
We can write an API for this LED control, so we can simply control it from browser remotely π phone, computer, pad, anything have broswer.
Here is the code, based on VoWeb, just add one function:
int voweb_func_gpio0ctrl(socket_data *d, string_reference *pa) { char buf[MESSAGE_SIZE] = "Invalid parameter."; FILE *fp; fp = fopen("/sys/class/gpio/gpio0/direction", "w"); if(fp == NULL) { sprintf(buf, "update gpio 0 direction failed."); return send(d->sock, buf, strlen(buf), 0); } fwrite("out", 1, 4, fp); fclose(fp); if(memcmp(pa->ref, "on", 2) == 0) { fp = fopen("/sys/class/gpio/gpio0/value", "w"); if(fp != NULL) { fwrite("1", 1, 2, fp); fclose(fp); sprintf(buf, "update gpio 0 value to 1 success."); } else { sprintf(buf, "update gpio 0 value to 1 failed."); } } if(memcmp(pa->ref, "off", 3) == 0) { fp = fopen("/sys/class/gpio/gpio0/value", "w"); if(fp != NULL) { fwrite("0", 1, 2, fp); fclose(fp); sprintf(buf, "update gpio 0 value to 0 success."); } else { sprintf(buf, "update gpio 0 value to 0 failed."); } } return send(d->sock, buf, strlen(buf), 0); }
And register this function:
string_hash_set(funcs, "gpio0ctrl", (uchar *)voweb_func_gpio0ctrl);
Here is compiled one and necessary html: download
Uncompress vocore.voweb.gpio.test.zip to local folder, such as “~/voweb.gpio”, and scp all of the files to root@192.168.61.1:~/
scp -r ~/voweb.gpio/* root@192.168.61.1:~/
Then run command in vocore.
/root/voweb 8080 /root/html
Just open 192.168.61.1:8080, you will find this page, now, just click on the switch, the LED is under your control.
Here is a simple video:
Any questions, just leave a comment under. π
brandonhead, I like your question π