diff --git a/0.9.2/512k-flash/blank.bin b/0.9.2/512k-flash/blank.bin deleted file mode 100644 index 7de9e36a..00000000 --- a/0.9.2/512k-flash/blank.bin +++ /dev/null @@ -1 +0,0 @@ -ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/0.9.2/512k-flash/eagle.app.v6.flash.bin b/0.9.2/512k-flash/eagle.app.v6.flash.bin deleted file mode 100644 index 9c2632bc..00000000 Binary files a/0.9.2/512k-flash/eagle.app.v6.flash.bin and /dev/null differ diff --git a/0.9.2/512k-flash/eagle.app.v6.irom0text.bin b/0.9.2/512k-flash/eagle.app.v6.irom0text.bin deleted file mode 100644 index b7714e61..00000000 Binary files a/0.9.2/512k-flash/eagle.app.v6.irom0text.bin and /dev/null differ diff --git a/0.9.2/512k-flash/esp_init_data_default.bin b/0.9.2/512k-flash/esp_init_data_default.bin deleted file mode 100644 index 2936c7b7..00000000 Binary files a/0.9.2/512k-flash/esp_init_data_default.bin and /dev/null differ diff --git a/0.9.2/512k-flash/nodemcu_512k.bin b/0.9.2/512k-flash/nodemcu_512k.bin new file mode 100644 index 00000000..4e4449ec Binary files /dev/null and b/0.9.2/512k-flash/nodemcu_512k.bin differ diff --git a/README.html b/README.html index a777785e..686520a1 100644 --- a/README.html +++ b/README.html @@ -999,95 +999,16 @@ body .markdown-body page-break-after: avoid; } } -README

nodeMcu API Instruction

-

version 0.2 2014-11-10

-

change log:

-

2014-11-11

-add file.seek() api to file module

-now max 6 pwm channel is supported

-

2014-11-10

-change log module to file module

-now file operation support multiple read/write

-for now file module only allowed one file opened

-

2014-11-5

-delete log operation api from node module

-add log module

-modify wifi module api

-modify node.key long_press and short_press default function

-key is triged only when key is released

+README

NodeMcu

+

A lua based firmware for wifi-soc esp8266

+

version 0.9.2 2014-11-12

Summary

@@ -1120,1173 +1041,86 @@ key is triged only when key is released

-

Firmware Program

-

Address

-

eagle.app.v6.flash.bin: 0x00000

-eagle.app.v6.irom0text.bin: 0x10000

-esp_init_data_default.bin: 0x7c000

-blank.bin: 0x7e000

-

node module

-

-

node.restart()

-

Description

-

restart the chip.

-

Syntax

-

node.restart()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    node.restart();
-
- - -

See also

-

-

-

-

node.dsleep()

-

Description

-

Enter deep sleep mode, wake up when timed out

-

Syntax

-

node.dsleep(us)

--Note: This function can only be used in the condition that esp8266 PIN32(RST) and PIN8(XPD_DCDC) are connected together.

-

Parameters

-

us: sleep time in micro second

-

Returns

-

nil

-

Example

-
    node.dsleep(us);
-
- - -

See also

-

-

-

-

node.chipid()

-

Description

-

return chip ID

-

Syntax

-

node.chipid()

-

Parameters

-

nil

-

Returns

-

number:chip ID

-

Example

-
    id = node.chipid();
-
- - -

See also

-

-

-

-

node.heap()

-

Description

-

return the remain HEAP size in bytes

-

Syntax

-

node.heap()

-

Parameters

-

nil

-

Returns

-

number: system heap size left in bytes

-

Example

-
    heap_size = node.heap();
-
- - -

See also

-

-

-

-

node.key()

-

Description

-

define button function.

-

Syntax

-

node.key(type, function())

-

Parameters

-

type: type is either string “long” or “short”. long: press the key for 3 seconds, short: press shortly(less than 3 seconds)

-function(): user defined function which is called when key is pressed. If nil, cancling the user defined function.

-Default function: long: change LED blinking rate, short: reset chip

-

Returns

-

nil

-

Example

-
    node.key("long", function(){print('hello world')})
-
- - -

See also

-

-

-

-

node.led()

-

Description

-

setup the on/off time for led

-

Syntax

-

node.led(low, high)

-

Parameters

-

Low: LED off time, LED keeps on when low=0. Unit: milliseconds, time resolution: 80~100ms

-High: LED off time. Unit: milliseconds, time resolution: 80~100ms

-

Returns

-

nil

-

Example

-
    -- turn led on forever.
-    node.led(0);
-
- - -

See also

-

-

-

file module

-

-

file.remove()

-

Description

-

remove file from file system.

-

Syntax

-

file.remove(filename)

-

Parameters

-

filename: file to remove

-

Returns

-

nil

-

Example

-
    -- remove "foo.lua" from file system.
-    file.remove("foo.lua")
-
- - -

See also

-

- file.open()

-- file.close()

-

-

file.open()

-

Description

-

open file.

-

Syntax

-

file.open(filename, mode)

-

Parameters

-

filename: file to be opened, directories are not supported

-mode:

- “r”: read mode (the default)

- “w”: write mode

- “a”: append mode

- “r+”: update mode, all previous data is preserved

- “w+”: update mode, all previous data is erased

- “a+”: append update mode, previous data is preserved, writing is only allowed at the end of file

-

Returns

-

nil

-

Example

-
    -- open 'init.lua', print the first line.
-    file.open("init.lua", "r")
-    print(file.readline())
-    file.close()
-
- - -

See also

-

- file.close()

-- file.readline()

-

-

file.close()

-

Description

-

close the file.

-

Syntax

-

file.close()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    -- open 'init.lua', print the first line.
-    file.open("init.lua", "r")
-    print(file.readline())
-    file.close()
-
- - -

See also

-

- file.open()

-- file.readline()

-

-

file.readline()

-

Description

-

read one line of file which is opened before.

-

Syntax

-

file.readline()

-

Parameters

-

nil

-

Returns

-

file content in string, line by line

-

Example

-
    -- print the first line of 'init.lua'
-    file.open("init.lua", "r")
-    print(file.readline())
-    file.close()
-
- - -

See also

-

- file.open()

-- file.close()

-

-

file.writeline()

-

Description

-

write string to file and add a ‘\n’ at the end.

-

Syntax

-

file.writeline(string)

-

Parameters

-

string: content to be write to file

-

Returns

-

true: write ok.
-nil: there is error

-

Example

-
    -- open 'init.lua' in 'a+' mode
-    file.open("init.lua", "a+")
-    -- write 'foo bar' to the end of the file
-    file.writeline('foo bar')
-    file.close()
-
- - -

See also

-

- file.open()

-- file.write()

-

-

file.write()

-

Description

-

write string to file.

-

Syntax

-

file.write(string)

-

Parameters

-

string: content to be write to file.

-

Returns

-

true: write ok.
-nil: there is error

-

Example

-
    -- open 'init.lua' in 'a+' mode
-    file.open("init.lua", "a+")
-    -- write 'foo bar' to the end of the file
-    file.write('foo bar')
-    file.close()
-
- - -

See also

-

- file.open()

-- file.writeline()

-

-

file.flush()

-

Description

-

flush to file.

-

Syntax

-

file.flush()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    -- open 'init.lua' in 'a+' mode
-    file.open("init.lua", "a+")
-    -- write 'foo bar' to the end of the file
-    file.write('foo bar')
-    file.flush()
-    file.close()
-
- - -

See also

-

- file.open()

-- file.writeline()

-

-

file.seek()

-

Description

-

Sets and gets the file position, measured from the beginning of the file, to the position given by offset plus a base specified by the string whence.

-

Syntax

-

file.seek(whence, offset)

-

Parameters

-

whence:

-“set”: base is position 0 (beginning of the file);

-“cur”: base is current position;(default value)

-“end”: base is end of file;

-offset: default 0

-

Returns

-

success: returns the final file position

-fail: returns nil

-

Example

-
    -- open 'init.lua' in 'a+' mode
-    file.open("init.lua", "a+")
-    -- write 'foo bar' to the end of the file
-    file.write('foo bar')
-    file.flush()
-    file.seek("set")
-    print(file.readline())
-    file.close()
-
- - -

See also

-

- file.open()

-- file.writeline()

-

-

file.list()

-

Description

-

list all files.

-

Syntax

-

file.list()

-

Parameters

-

nil

-

Returns

-

a lua table which contains the {file name: file size} pairs

-

Example

-
    l = file.list();
-    for k,v in l do
-      print("name:"..k..", size:"..v)
-    end
-
- - -

See also

-

- file.remove()

-

wifi module

-

CONSTANT

-

wifi.STATION, wifi.SOFTAP, wifi.STATIONAP

-

-

wifi.setmode(mode)

-

Description

-

setup wifi operation mode.

-

Syntax

-

wifi.setmode(mode)

-

Parameters

-

mode: value should be: wifi.STATION, wifi.SOFTAP or wifi.STATIONAP

-

Returns

-

current mode after setup

-

Example

-
    wifi.setmode(wifi.STATION)
-
- - -

See also

-

- wifi.getmode()

-

-

wifi.getmode(mode)

-

Description

-

get wifi operation mode.

-

Syntax

-

wifi.getmode()

-

Parameters

-

nil

-

Returns

-

wifi operation mode

-

Example

-
    print(wifi.getmode())
-
- - -

See also

-

- wifi.setmode()

-

-

wifi.startsmart()

-

Description

-

starts to auto configuration, if success set up ssid and pwd automatically .

-

Syntax

-

wifi.startsmart(channel, function succeed_callback())

-

Parameters

-

channel: 1~13, startup channel for searching, if nil, default to 6. 20 seconds for each channel.

-succeed_callback: callback function called after configuration, which is called when got password and connected to AP.

-

Returns

-

nil

-

Example

-
    wifi.startsmart(6, cb())
-
- - -

See also

-

- wifi.stopsmart()

-

-

wifi.stopsmart()

-

Description

-

stop the configuring process.

-

Syntax

-

wifi.stopsmart()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    wifi.stopsmart()
-
- - -

See also

-

- wifi.startsmart()

-

wifi.sta module

-

-

wifi.sta.config()

-

Description

-

set ssid and password in station mode.

-

Syntax

-

wifi.sta.config(ssid, password)

-

Parameters

-

ssid: string which is less than 32 bytes.

-password: string which is less than 64 bytes.

-

Returns

-

nil

-

Example

-
    wifi.sta.config("myssid","mypassword")
-
- - -

See also

-

- wifi.sta.connect()

-- wifi.sta.disconnect()

-

-

wifi.sta.connect()

-

Description

-

connect to AP in station mode.

-

Syntax

-

wifi.sta.connect()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    wifi.sta.connect()
-
- - -

See also

-

- wifi.sta.disconnect()

-- wifi.sta.config()

-

-

wifi.sta.disconnect()

-

Description

-

disconnect from AP in station mode.

-

Syntax

-

wifi.sta.disconnect()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    wifi.sta.disconnect()
-
- - -

See also

-

- wifi.sta.config()

-- wifi.sta.connect()

-

-

wifi.sta.autoconnect()

-

Description

-

auto connect to AP in station mode.

-

Syntax

-

wifi.sta.autoconnect(auto)

-

Parameters

-

auto: 0 to disable auto connecting. 1 to enable auto connecting

-

Returns

-

nil

-

Example

-
    wifi.sta.autoconnect()
-
- - -

See also

-

- wifi.sta.config()

-- wifi.sta.connect()

-- wifi.sta.disconnect()

-

-

wifi.sta.getip()

-

Description

-

get ip address in station mode.

-

Syntax

-

wifi.sta.getip()

-

Parameters

-

nil

-

Returns

-

ip address in string, for example:”192.168.0.111”

-

Example

-
    -- print current ip
-    print(wifi.sta.getip())
-
- - -

See also

-

- wifi.sta.getmac()

-

-

wifi.sta.getmac()

-

Description

-

get mac address in station mode.

-

Syntax

-

wifi.sta.getmac()

-

Parameters

-

nil

-

Returns

-

mac address in string, for example:”18-33-44-FE-55-BB”

-

Example

-
    -- print current mac address
-    print(wifi.sta.getmac())
-
- - -

See also

-

- wifi.sta.getip()

-

wifi.ap module

-

-

wifi.ap.config()

-

Description

-

set ssid and password in ap mode.

-

Syntax

-

wifi.ap.config(cfg)

-

Parameters

-

cfg: lua table to setup ap.

-

Example:

-
     cfg={}
-     cfg.ssid="myssid"
-     cfg.pwd="mypwd"
-     wifi.ap.setconfig(cfg)
-
- - -

Returns

-

nil

-

Example

-
    wifi.ap.config(ssid, 'password')
-
- - -

See also

-

-

-

-

wifi.ap.getip()

-

Description

-

get ip in ap mode.

-

Syntax

-

wifi.ap.getip()

-

Parameters

-

nil

-

Returns

-

ip address in string, for example:”192.168.0.111”

-

Example

-
    wifi.ap.getip()
-
- - -

See also

-

- wifi.ap.getmac()

-

-

wifi.ap.getmac()

-

Description

-

get mac address in ap mode.

-

Syntax

-

wifi.ap.getmac()

-

Parameters

-

nil

-

Returns

-

mac address in string, for example:”1A-33-44-FE-55-BB”

-

Example

-
    wifi.ap.getmac()
-
- - -

See also

-

- wifi.ap.getip()

-

timer module

-

-

tmr.delay()

-

Description

-

delay us micro seconds.

-

Syntax

-

tmr.dealy(us)

-

Parameters

-

us: delay time in micro second

-

Returns

-

nil

-

Example

-
    -- delay 100us
-    tmr.delay(100)
-
- - -

See also

-

- tmr.now()

-

-

tmr.now()

-

Description

-

return the current value of system counter: uint32, us.

-

Syntax

-

tmr.now()

-

Parameters

-

nil

-

Returns

-

uint32: value of counter

-

Example

-
    -- print current value of counter
-    print(tmr.now())
-
- - -

See also

-

- tmr.delay()

-

-

tmr.alarm()

-

Description

-

alarm time.

-

Syntax

-

tmr.alarm(interval, repeat, function do())

-

Parameters

-

Interval: alarm time, unit: millisecond

-repeat: 0 - one time alarm, 1 - repeat

-function do(): callback function for alarm timed out

-

Returns

-

nil

-

Example

-
    -- print "hello world" every 1000ms
-    tmr.alarm(1000, 1, function() print("hello world") end )
-
- - -

See also

-

- tmr.now()

-

-

tmr.stop()

-

Description

-

stop alarm.

--Note: only one alarm is allowed, the previous one would be replaced if tmr.alarm() called again before tmr.stop().

-

Syntax

-

tmr.stop()

-

Parameters

-

nil.

-

Returns

-

nil

-

Example

-
    -- print "hello world" every 1000ms
-    tmr.alarm(1000, 1, function() print("hello world") end )
-
-    -- something else
-
-    -- stop alarm
-    tmr.stop()
-
- - -

See also

-

- tmr.now()

-

GPIO module

-

CONSTANT

-

gpio.OUTPUT, gpio.INPUT, gpio.INT, gpio.HIGH, gpio.LOW

-

-

gpio.mode()

-

Description

-

initialize pin to GPIO mode, set the pin in/out mode.

-

Syntax

-

gpio.mode(pin, mode)

-

Parameters

-

pin: 0~11, IO index

-mode: gpio.OUTPUT or gpio.INPUT, or gpio.INT(interrupt mode)

-

Returns

-

nil

-

Example

-
    -- set gpio 0 as output.
-    gpio.mode(0, gpio.OUTPUT)
-
- - -

See also

-

- gpio.read()

-

-

gpio.read()

-

Description

-

read pin value.

-

Syntax

-

gpio.read(pin)

-

Parameters

-

pin: 0~11, IO index

-

Returns

-

number:0 - low, 1 - high

-

Example

-
    -- read value of gpio 0.
-    gpio.read(0)
-
- - -

See also

-

- gpio.mode()

-

-

gpio.write()

-

Description

-

set pin value.

-

Syntax

-

gpio.write(pin)

-

Parameters

-

pin: 0~11, IO index

-level: gpio.HIGH or gpio.LOW

-

Returns

-

nil

-

Example

-
    -- set pin index 1 to GPIO mode, and set the pin to high.
-    pin=1
-    gpio.mode(pin, gpio.OUTPUT)
-    gpio.write(pin, gpio.HIGH)
-
- - -

See also

-

- gpio.mode()

-- gpio.read()

-

-

gpio.trig()

-

Description

-

set the interrupt callback function for pin.

-

Syntax

-

gpio.trig(pin, type, function(level))

-

Parameters

-

pin: 0~11, IO index

-type: “up”, “down”, “both”, “low”, “high”, which represent rising edge, falling edge, both edge, low level, high level trig mode separately.

-function(level): callback function when triggered. The gpio level is the param. Use previous callback function if undefined here.

-

Returns

-

nil

-

Example

-
    -- use pin 0 as the input pulse width counter
-    pulse0 = 0
-    du = 0
-    gpio.mode(0,gpio.INT)
-    function pin0cb(level)
-     du = tmr.now() – pulse0
-     print(du)
-     pulse0 = tmr.now()
-     if level == 1 then gpio.trig(0, "down ") else gpio.trig(0, "up ") end
-    end
-    gpio.trig(0, "down ",pin0cb)
-
- - -

See also

-

- gpio.mode()

-- gpio.write()

-

PWM module

-

-

pwm.setup()

-

Description

-

set pin to PWM mode. Only 3 pins can be set to PWM mode at the most.

-

Syntax

-

pwm.setup(pin, clock, duty)

-

Parameters

-

pin: 0~11, IO index

-clock: 1~500, pwm frequency

-duty: 0~100, pwm duty cycle in percentage

-

Returns

-

nil

-

Example

-
    -- set pin index 0 as pwm output, frequency is 100Hz, duty cycle is 50-50.
-    pwm.setup(0, 100, 50)
-
- - -

See also

-

- pwm.start()

-

-

pwm.close()

-

Description

-

quit PWM mode for specified pin.

-

Syntax

-

pwm.close(pin)

-

Parameters

-

pin: 0~11, IO index

-

Returns

-

nil

-

Example

-
    pwm.close(0)
-
- - -

See also

-

- pwm.start()

-

-

pwm.start()

-

Description

-

pwm starts, you can detect the waveform on the gpio.

-

Syntax

-

pwm.start(pin)

-

Parameters

-

pin: 0~11, IO index

-

Returns

-

nil

-

Example

-
    pwm.start(0)
-
- - -

See also

-

- pwm.stop()

-

-

pwm.stop()

-

Description

-

pause the output of PWM waveform.

-

Syntax

-

pwm.stop(pin)

-

Parameters

-

pin: 0~11, IO index

-

Returns

-

nil

-

Example

-
    pwm.stop(0)
-
- - -

See also

-

- pwm.start()

-

-

pwm.setclock()

-

Description

-

set pwm frequency for pin.

--Note: setup pwm frequency will synchronously change others if there are any. Only one PWM frequency can be allowed for the system.

-

Syntax

-

pwm.setclock(pin, clock)

-

Parameters

-

pin: 0~11, IO index.

-clock: 1~500, pwm frequency.

-

Returns

-

nil

-

Example

-
    pwm.setclock(0, 100)
-
- - -

See also

-

- pwm.getclock()

-

-

pwm.getclock()

-

Description

-

get pwm frequency of pin.

-

Syntax

-

pwm.getclock(pin)

-

Parameters

-

pin: 0~11, IO index.

-

Returns

-

number:pwm frequency of pin

-

Example

-
    print(pwm.getclock(0))
-
- - -

See also

-

- pwm.setclock()

-

-

pwm.setduty()

-

Description

-

set duty clycle for pin.

-

Syntax

-

pwm.setduty(pin, duty)

-

Parameters

-

pin: 0~11, IO index

-duty: 0~100, pwm duty cycle in percentage

-

Returns

-

nil

-

Example

-
    pwm.setduty(0, 50)
-
- - -

See also

-

- pwm.getduty()

-

-

pwm.getduty()

-

Description

-

get duty clycle for pin.

-

Syntax

-

pwm.getduty(pin)

-

Parameters

-

pin: 0~11, IO index

-

Returns

-

nil

-

Example

-
    -- D0 is connected to green led
-    -- D1 is connected to blue led
-    -- D2 is connected to red led
-    pwm.setup(0,500,50)
-    pwm.setup(1,500,50)
-    pwm.setup(2,500,50)
-    pwm.start(0)
-    pwm.start(1)
-    pwm.start(2)
-    function led(r,g,b)
-      pwm.setduty(0,g)
-      pwm.setduty(1,b)
-      pwm.setduty(2,r)
-    end
-    led(50,0,0) --  set led to red
-    led(0,0,50) -- set led to blue.
-
- - -

See also

-

- pwm.setduty()

-

net module

-

CONSTANT

-

net.TCP, net.UDP

-

-

net.createServer()

-

Description

-

create a server.

-

Syntax

-

net.createServer(type, secure)

-

Parameters

-

type: net.TCP or net.UDP

-secure: true or false, true for safe link, false for ordinary link

-

Returns

-

net.server sub module

-

Example

-
    net.createServer(net.TCP, true)
-
- - -

See also

-

- net.createConnection()

-

-

net.createConnection()

-

Description

-

create a client.

-

Syntax

-

net.createConnection(type, secure)

-

Parameters

-

type: net.TCP or net.UDP

-secure: true or false, true for safe link, false for ordinary link

-

Returns

-

net.server sub module

-

Example

-
    net.createConnection(net.UDP, false)
-
- - -

See also

-

- net.createServer()

-

net.server module

-

-

listen()

-

Description

-

listen on port from [ip] address.

-

Syntax

-

net.server.listen(port,[ip],function(net.socket))

-

Parameters

-

port: port number

-ip:ip address string, can be omitted

-function(net.socket): callback function, pass to Caller function as param if a connection is created successfully

-

Returns

-

nil

-

Example

-
    -- create a server
-    sv=net.createServer(net.TCP, false)
-    -- server listen on 80, if data received, print data to console, and send "hello world" to remote.
-    sv:listen(80,function(c)
-        c:on("receive", function(sck, pl) print(pl) end)
-        c:send("hello world")
-        end)
-
- - -

See also

-

- net.createServer()

-

-

close()

-

Description

-

close server.

-

Syntax

-

net.server.close()

-

Parameters

-

nil

-

Returns

-

nil

-

Example

-
    -- create a server
-    sv=net.createServer(net.TCP, false)
-    -- close server
-    sv:close()
-
- - -

See also

-

- net.createServer()

-

net.socket module

-

-

connect()

-

Description

-

connect to remote.

-

Syntax

-

connect(port, ip)

-

Parameters

-

port: port number

-ip: ip address in string

-

Returns

-

nil

-

See also

-

- net.socket:on()

-

-

send()

-

Description

-

send data to remote via connection.

-

Syntax

-

send(string, function(sent))

-

Parameters

-

string: data in string which will be sent to remote

-function(sent): callback function for sending string

-

Returns

-

nil

-

See also

-

- net.socket:on()

-

-

on()

-

Description

-

register callback function for event.

-

Syntax

-

on(event, function cb())

-

Parameters

-

event: string, which can be: “connection”, “reconnection”, “disconnection”, “receive”, “sent”

-function cb(net.socket, [string]): callback function. The first param is the socket.

-If event is”receive”, the second param is received data in string.

-

Returns

-

nil

-

Example

-
    sk=net.createConnection(net.TCP, false)
-    sk:on("receive", function(sck, c) print(c) end )
-    sk:connect(80,"192.168.0.66")
-    sk:send("GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")
-
- - -

See also

-

- net.createServer()

-

-

close()

-

Description

-

close socket.

-

Syntax

-

close()

-

Parameters

-

nil

-

Returns

-

nil

-

See also

-

- net.createServer()

-

-

dns()

-

Description

-

get domain ip

-

Syntax

-

dns(domain, function(net.socket, ip))

-

Parameters

-

domain: domain name.

-function (net.socket, ip): callback function. The first param is the socket, the second param is the ip address in string.

-

Returns

-

nil

-

See also

-

- net.createServer()

-

i2c module

-

CONSTANT

-

i2c.SLOW, i2c.TRANSMITTER, i2c. RECEIVER. FAST(400k)is not supported for now.

-

-

i2c.setup()

-

Description

-

initialize i2c.

-

Syntax

-

i2c.setup(id, pinSDA, pinSCL, speed)

-

Parameters

-

id = 0

-pinSDA: 0~11, IO index

-pinSCL: 0~11, IO index

-speed: i2c.SLOW

-

Returns

-

nil

-

See also

-

- i2c.read()

-

-

i2c.start()

-

Description

-

start i2c transporting.

-

Syntax

-

i2c.start(id)

-

Parameters

-

id = 0

-

Returns

-

nil

-

See also

-

- i2c.read()

-

-

i2c.stop()

-

Description

-

stop i2c transporting.

-

Syntax

-

i2c.stop(id)

-

Parameters

-

id = 0

-

Returns

-

nil

-

See also

-

- i2c.read()

-

-

i2c.address()

-

Description

-

setup i2c address and read/write mode.

-

Syntax

-

i2c.address(id, device_addr, direction)

-

Parameters

-

id=0

-device_addr: device address.

-direction: i2c.TRANSMITTER for writing mode , i2c. RECEIVER for reading mode

-

Returns

-

nil

-

See also

-

- i2c.read()

-

-

i2c.write()

-

Description

-

write data to i2c, data can be multi numbers, string or lua table.

-

Syntax

-

i2c.write(id, data1, data2,…)

-

Parameters

-

id=0

-data: data can be numbers, string or lua table.

-

Returns

-

nil

-

Example

-
    i2c.write(0, "hello", "world")
-
- - -

See also

-

- i2c.read()

-

-

i2c.read()

-

Description

-

read data for len bytes.

-

Syntax

-

i2c.read(id, len)

-

Parameters

-

id=0

-len: data length

-

Returns

-

string:data received.

-

Example

-
    id=0
-    sda=1
-    scl=0
-
-    -- initialize i2c, set pin1 as sda, set pin0 as scl
-    i2c.setup(id,sda,scl,i2c.SLOW)
-
-    -- user defined function: read from reg_addr content of dev_addr
-    function read_reg(dev_addr, reg_addr)
-      i2c.start(id)
-      i2c.address(id, dev_addr ,i2c.TRANSMITTER)
-      i2c.write(id,reg_addr)
-      i2c.stop(id)
-      i2c.start(id)
-      i2c.address(id, dev_addr,i2c.RECEIVER)
-      c=i2c.read(id,1)
-      i2c.stop(id)
-      return c
-    end
-
-    -- get content of register 0xAA of device 0x77
-    reg = read_reg(0x77, 0xAA)
-    pirnt(string.byte(reg))
-
- - -

See also

-

- i2c.write()

\ No newline at end of file +

Flash the firmware

+

nodemcu_512k.bin: 0x00000

+for most esp8266 modules, just pull GPIO0 down and restart.

+

Connect the hardware in serial

+

braudrate:9600

+

Start play

+

Connect to your ap

+
    print(wifi.sta.getip())
+    --0.0.0.0
+    wifi.setmode(wifi.STATION)
+    wifi.sta.config("SSID","password")
+    print(wifi.sta.getip())
+    --192.168.18.110
+
+ +

Manipulate hardware like a arduino

+
    pin = 1
+    gpio.mode(pin,gpio.OUTPUT)
+    gpio.write(pin,gpio.HIGH)
+    print(gpio.read(pin))
+
+ +

Write network application in nodejs style

+
    -- A simple http client
+    conn=net.createConnection(net.TCP, false) 
+    conn:on("receive", function(conn, payload) print(c) end )
+    conn:connect(80,"115.239.210.27")
+    conn:send("GET / HTTP/1.1\r\nHost: www.baidu.com\r\n"
+        .."Connection: keep-alive\r\nAccept: */*\r\n\r\n")
+
+ +

Or a simple http server

+
    -- A simple http server
+    srv=net.createServer(net.TCP) 
+    srv:listen(80,function(conn) 
+      conn:on("receive",function(conn,payload) 
+        print(payload) 
+        conn:send("<h1> Hello, NodeMcu.</h1>")
+      end) 
+    end)
+
+ +

Do something shining

+
  function led(r,g,b) 
+    pwm.setduty(0,r) 
+    pwm.setduty(1,g) 
+    pwm.setduty(2,b) 
+  end
+  pwm.setup(0,500,50) 
+  pwm.setup(1,500,50) 
+  pwm.setup(2,500,50)
+  pwm.start(0) 
+  pwm.start(1) 
+  pwm.start(2)
+  led(50,0,0) -- red
+  led(0,0,50) -- blue
+
+ + +
  lighton=0
+  tmr.alarm(1000,1,function()
+    if lighton==0 then 
+      lighton=1 
+      led(50,50,50) 
+    else 
+      lighton=0 
+      led(0,0,0) 
+    end 
+  end)
+
+ +

If you want to run something when system started

+
  --init.lua will be excuted
+  file.open("init.lua","w")
+  file.writeline([[print("Hello, do this at the beginning.")]])
+  file.close()
+  node.restart()  -- this will restart the module.
+
+ +

Check this out

+

Tencent QQ group: 309957875
+nodemcu wiki
+nodemcu.com comming soon~~~

\ No newline at end of file diff --git a/README.md b/README.md index 6cf8eed8..d62b84f1 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,13 @@ -# **nodeMcu API Instruction** # -###version 0.2 2014-11-10 -###change log: - -2014-11-11
-add file.seek() api to file module
-now max 6 pwm channel is supported
- -2014-11-10
-change log module to file module
-now file operation support multiple read/write
-for now file module only allowed one file opened
- -2014-11-5
-delete log operation api from node module
-add log module
-modify wifi module api
-modify node.key long_press and short_press default function
-key is triged only when key is released
- +# **NodeMcu** # +###A lua based firmware for wifi-soc esp8266 +version 0.9.2 2014-11-12 # Summary - Easy to access wireless router -- Based on Lua 5.1.4, Developers are supposed to have experience with Lua Program language. -- Event-Drive programming modal. -- Build-in file, timer, pwm, i2c, net, gpio, wifi module. -- Serial Port BaudRate:9600 -- Re-mapped GPIO pin, use the index to program gpio, i2c, pwm. +- Based on Lua 5.1.4 +- Event-Drive programming preferred. +- Build-in file, timer, pwm, i2c, net, gpio, wifi, and system api. +- GPIO pin re-mapped, use the index to access gpio, i2c, pwm. - GPIO Map Table: @@ -59,1586 +41,99 @@ key is triged only when key is released
-#Firmware Program -###Address +#Flash the firmware +nodemcu_512k.bin: 0x00000
+for most esp8266 modules, just pull GPIO0 down and restart. -eagle.app.v6.flash.bin: 0x00000
-eagle.app.v6.irom0text.bin: 0x10000
-esp_init_data_default.bin: 0x7c000
-blank.bin: 0x7e000 +#Connect the hardware in serial +braudrate:9600 +#Start play -#node module - -## node.restart() -####Description -restart the chip. +####Connect to your ap -####Syntax - -node.restart() - -####Parameters -nil - -####Returns -nil - -####Example - -``` - node.restart(); -``` - -####See also -**-** []() - - -## node.dsleep() -####Description - -Enter deep sleep mode, wake up when timed out
- -####Syntax - -node.dsleep(us)
-**-Note:** This function can only be used in the condition that esp8266 PIN32(RST) and PIN8(XPD_DCDC) are connected together. - -####Parameters -us: sleep time in micro second - -####Returns -nil - -####Example - -``` - node.dsleep(us); -``` - -####See also -**-** []() - - -## node.chipid() -####Description -return chip ID - -####Syntax -node.chipid() - -####Parameters -nil - -####Returns -number:chip ID - -####Example - -``` - id = node.chipid(); -``` - -####See also -**-** []() - - -## node.heap() -####Description -return the remain HEAP size in bytes - -####Syntax -node.heap() - -####Parameters -nil - -####Returns -number: system heap size left in bytes - -####Example - -``` - heap_size = node.heap(); -``` - -####See also -**-** []() - - -## node.key() -####Description -define button function. - -####Syntax -node.key(type, function()) - -####Parameters -type: type is either string "long" or "short". long: press the key for 3 seconds, short: press shortly(less than 3 seconds)
-function(): user defined function which is called when key is pressed. If nil, cancling the user defined function.
-Default function: long: change LED blinking rate, short: reset chip - -####Returns -nil - -####Example -``` - node.key("long", function(){print('hello world')}) -``` - -####See also -**-** []() - - -## node.led() -####Description -setup the on/off time for led - -####Syntax -node.led(low, high) - -####Parameters -Low: LED off time, LED keeps on when low=0. Unit: milliseconds, time resolution: 80~100ms
-High: LED off time. Unit: milliseconds, time resolution: 80~100ms - -####Returns -nil - -####Example - -``` - -- turn led on forever. - node.led(0); -``` - -####See also -**-** []() - -#file module - -## file.remove() -####Description -remove file from file system. - -####Syntax -file.remove(filename) - -####Parameters -filename: file to remove - -####Returns -nil - -####Example - -``` - -- remove "foo.lua" from file system. - file.remove("foo.lua") -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.close()](#fl_close) - - -## file.open() -####Description -open file. - -####Syntax -file.open(filename, mode) - -####Parameters -filename: file to be opened, directories are not supported
-mode:
- "r": read mode (the default)
- "w": write mode
- "a": append mode
- "r+": update mode, all previous data is preserved
- "w+": update mode, all previous data is erased
- "a+": append update mode, previous data is preserved, writing is only allowed at the end of file - -####Returns -nil - -####Example - -``` - -- open 'init.lua', print the first line. - file.open("init.lua", "r") - print(file.readline()) - file.close() -``` - -####See also -**-** [file.close()](#fl_close)
-**-** [file.readline()](#fl_readline) - - -## file.close() -####Description -close the file. - -####Syntax -file.close() - -####Parameters -nil - -####Returns -nil - -####Example - -``` - -- open 'init.lua', print the first line. - file.open("init.lua", "r") - print(file.readline()) - file.close() -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.readline()](#fl_readline) - - -## file.readline() -####Description -read one line of file which is opened before. - -####Syntax -file.readline() - -####Parameters -nil - -####Returns -file content in string, line by line - -####Example - -``` - -- print the first line of 'init.lua' - file.open("init.lua", "r") - print(file.readline()) - file.close() -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.close()](#fl_close) - - -## file.writeline() -####Description -write string to file and add a '\n' at the end. - -####Syntax -file.writeline(string) - -####Parameters -string: content to be write to file - -####Returns -true: write ok. -nil: there is error - -####Example - -``` - -- open 'init.lua' in 'a+' mode - file.open("init.lua", "a+") - -- write 'foo bar' to the end of the file - file.writeline('foo bar') - file.close() -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.write()](#fl_write) - - -## file.write() -####Description -write string to file. - -####Syntax -file.write(string) - -####Parameters -string: content to be write to file. - -####Returns -true: write ok. -nil: there is error - -####Example - -``` - -- open 'init.lua' in 'a+' mode - file.open("init.lua", "a+") - -- write 'foo bar' to the end of the file - file.write('foo bar') - file.close() -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.writeline()](#fl_writeline) - - -## file.flush() -####Description -flush to file. - -####Syntax -file.flush() - -####Parameters -nil - -####Returns -nil - -####Example - -``` - -- open 'init.lua' in 'a+' mode - file.open("init.lua", "a+") - -- write 'foo bar' to the end of the file - file.write('foo bar') - file.flush() - file.close() -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.writeline()](#fl_writeline) - - -## file.seek() -####Description -Sets and gets the file position, measured from the beginning of the file, to the position given by offset plus a base specified by the string whence. - -####Syntax -file.seek(whence, offset) - -####Parameters -whence:
-"set": base is position 0 (beginning of the file);
-"cur": base is current position;(default value)
-"end": base is end of file;
-offset: default 0 - -####Returns -success: returns the final file position
-fail: returns nil - -####Example - -``` - -- open 'init.lua' in 'a+' mode - file.open("init.lua", "a+") - -- write 'foo bar' to the end of the file - file.write('foo bar') - file.flush() - file.seek("set") - print(file.readline()) - file.close() -``` - -####See also -**-** [file.open()](#fl_open)
-**-** [file.writeline()](#fl_writeline) - - -## file.list() -####Description -list all files. - -####Syntax -file.list() - -####Parameters -nil - -####Returns -a lua table which contains the {file name: file size} pairs - -####Example - -``` - l = file.list(); - for k,v in l do - print("name:"..k..", size:"..v) - end -``` - -####See also -**-** [file.remove()](#fl_remove) - -#wifi module -##CONSTANT -wifi.STATION, wifi.SOFTAP, wifi.STATIONAP - - -## wifi.setmode(mode) -####Description -setup wifi operation mode. - -####Syntax -wifi.setmode(mode) - -####Parameters -mode: value should be: wifi.STATION, wifi.SOFTAP or wifi.STATIONAP - -####Returns -current mode after setup - -####Example - -``` - wifi.setmode(wifi.STATION) -``` - -####See also -**-** [wifi.getmode()](#wf_getmode) - - - -## wifi.getmode(mode) -####Description -get wifi operation mode. - -####Syntax -wifi.getmode() - -####Parameters -nil - -####Returns -wifi operation mode - -####Example - -``` - print(wifi.getmode()) -``` - -####See also -**-** [wifi.setmode()](#wf_setmode) - - - -## wifi.startsmart() -####Description -starts to auto configuration, if success set up ssid and pwd automatically . - -####Syntax -wifi.startsmart(channel, function succeed_callback()) - -####Parameters - -channel: 1~13, startup channel for searching, if nil, default to 6. 20 seconds for each channel.
-succeed_callback: callback function called after configuration, which is called when got password and connected to AP. - -####Returns -nil - -####Example - -``` - wifi.startsmart(6, cb()) -``` - -####See also -**-** [wifi.stopsmart()](#wf_stopsmart) - - - -## wifi.stopsmart() -####Description -stop the configuring process. - -####Syntax -wifi.stopsmart() - -####Parameters -nil - -####Returns -nil - -####Example - -``` - wifi.stopsmart() -``` - -####See also -**-** [wifi.startsmart()](#wf_startsmart) - - -#wifi.sta module - - -## wifi.sta.config() -####Description -set ssid and password in station mode. - -####Syntax -wifi.sta.config(ssid, password) - -####Parameters - -ssid: string which is less than 32 bytes.
-password: string which is less than 64 bytes. - -####Returns -nil - -####Example - -``` - wifi.sta.config("myssid","mypassword") -``` - -####See also -**-** [wifi.sta.connect()](#ws_connect)
-**-** [wifi.sta.disconnect()](#ws_disconnect) - - - -## wifi.sta.connect() -####Description -connect to AP in station mode. - -####Syntax -wifi.sta.connect() - -####Parameters -nil - - -####Returns -nil - -####Example - -``` - wifi.sta.connect() -``` - -####See also -**-** [wifi.sta.disconnect()](#ws_disconnect)
-**-** [wifi.sta.config()](#ws_config) - - - -## wifi.sta.disconnect() -####Description -disconnect from AP in station mode. - -####Syntax -wifi.sta.disconnect() - -####Parameters -nil - - -####Returns -nil - -####Example - -``` - wifi.sta.disconnect() -``` - -####See also -**-** [wifi.sta.config()](#ws_config)
-**-** [wifi.sta.connect()](#ws_connect) - - - -## wifi.sta.autoconnect() -####Description -auto connect to AP in station mode. - -####Syntax -wifi.sta.autoconnect(auto) - -####Parameters -auto: 0 to disable auto connecting. 1 to enable auto connecting - - -####Returns -nil - -####Example - -``` - wifi.sta.autoconnect() -``` - -####See also -**-** [wifi.sta.config()](#ws_config)
-**-** [wifi.sta.connect()](#ws_connect)
-**-** [wifi.sta.disconnect()](#ws_disconnect) - - - -## wifi.sta.getip() -####Description -get ip address in station mode. - -####Syntax -wifi.sta.getip() - -####Parameters -nil - - -####Returns -ip address in string, for example:"192.168.0.111" - -####Example - -``` - -- print current ip +```lua print(wifi.sta.getip()) + --0.0.0.0 + wifi.setmode(wifi.STATION) + wifi.sta.config("SSID","password") + print(wifi.sta.getip()) + --192.168.18.110 ``` -####See also -**-** [wifi.sta.getmac()](#ws_getmac) - - - -## wifi.sta.getmac() -####Description -get mac address in station mode. - -####Syntax -wifi.sta.getmac() - -####Parameters -nil - - -####Returns -mac address in string, for example:"18-33-44-FE-55-BB" - -####Example - -``` - -- print current mac address - print(wifi.sta.getmac()) +####Manipulate hardware like a arduino + +```lua + pin = 1 + gpio.mode(pin,gpio.OUTPUT) + gpio.write(pin,gpio.HIGH) + print(gpio.read(pin)) ``` -####See also -**-** [wifi.sta.getip()](#ws_getip) - - -#wifi.ap module - - -## wifi.ap.config() -####Description -set ssid and password in ap mode. - -####Syntax -wifi.ap.config(cfg) - -####Parameters -cfg: lua table to setup ap. - -####Example: - -``` - cfg={} - cfg.ssid="myssid" - cfg.pwd="mypwd" - wifi.ap.setconfig(cfg) +####Write network application in nodejs style + +```lua + -- A simple http client + conn=net.createConnection(net.TCP, false) + conn:on("receive", function(conn, payload) print(c) end ) + conn:connect(80,"115.239.210.27") + conn:send("GET / HTTP/1.1\r\nHost: www.baidu.com\r\n" + .."Connection: keep-alive\r\nAccept: */*\r\n\r\n") ``` -####Returns -nil - -####Example - -``` - wifi.ap.config(ssid, 'password') +####Or a simple http server + +```lua + -- A simple http server + srv=net.createServer(net.TCP) + srv:listen(80,function(conn) + conn:on("receive",function(conn,payload) + print(payload) + conn:send("

Hello, NodeMcu.

") + end) + end) ``` -####See also -**-** []() - - -## wifi.ap.getip() -####Description -get ip in ap mode. - -####Syntax -wifi.ap.getip() - -####Parameters -nil - -####Returns -ip address in string, for example:"192.168.0.111" - -####Example - -``` - wifi.ap.getip() +####Do something shining +```lua + function led(r,g,b) + pwm.setduty(0,r) + pwm.setduty(1,g) + pwm.setduty(2,b) + end + pwm.setup(0,500,50) + pwm.setup(1,500,50) + pwm.setup(2,500,50) + pwm.start(0) + pwm.start(1) + pwm.start(2) + led(50,0,0) -- red + led(0,0,50) -- blue ``` -####See also -**-** [wifi.ap.getmac()](#wa_getmac) - - - -## wifi.ap.getmac() -####Description -get mac address in ap mode. - -####Syntax -wifi.ap.getmac() - -####Parameters -nil - -####Returns -mac address in string, for example:"1A-33-44-FE-55-BB" - -####Example - -``` - wifi.ap.getmac() +####And blink it +```lua + lighton=0 + tmr.alarm(1000,1,function() + if lighton==0 then + lighton=1 + led(50,50,50) + else + lighton=0 + led(0,0,0) + end + end) ``` -####See also -**-** [wifi.ap.getip()](#wa_getip) - - -#timer module - -## tmr.delay() -####Description -delay us micro seconds. - -####Syntax -tmr.dealy(us) - -####Parameters -us: delay time in micro second - -####Returns -nil - -####Example - +####If you want to run something when system started +```lua + --init.lua will be excuted + file.open("init.lua","w") + file.writeline([[print("Hello, do this at the beginning.")]]) + file.close() + node.restart() -- this will restart the module. ``` - -- delay 100us - tmr.delay(100) -``` - -####See also -**-** [tmr.now()](#tm_now) - - - -## tmr.now() -####Description -return the current value of system counter: uint32, us. - -####Syntax -tmr.now() - -####Parameters -nil - -####Returns -uint32: value of counter - -####Example - -``` - -- print current value of counter - print(tmr.now()) -``` - -####See also -**-** [tmr.delay()](#tm_delay) - - - -## tmr.alarm() -####Description -alarm time. - -####Syntax -tmr.alarm(interval, repeat, function do()) - -####Parameters -Interval: alarm time, unit: millisecond
-repeat: 0 - one time alarm, 1 - repeat
-function do(): callback function for alarm timed out - -####Returns -nil - -####Example - -``` - -- print "hello world" every 1000ms - tmr.alarm(1000, 1, function() print("hello world") end ) -``` - -####See also -**-** [tmr.now()](#tm_now) - - - -## tmr.stop() -####Description - -stop alarm.
-**-Note:** only one alarm is allowed, the previous one would be replaced if tmr.alarm() called again before tmr.stop(). - -####Syntax -tmr.stop() - -####Parameters -nil. - -####Returns -nil - -####Example - -``` - -- print "hello world" every 1000ms - tmr.alarm(1000, 1, function() print("hello world") end ) - - -- something else - - -- stop alarm - tmr.stop() -``` - -####See also -**-** [tmr.now()](#tm_now) - - -#GPIO module -##CONSTANT -gpio.OUTPUT, gpio.INPUT, gpio.INT, gpio.HIGH, gpio.LOW - - - -## gpio.mode() -####Description -initialize pin to GPIO mode, set the pin in/out mode. - -####Syntax -gpio.mode(pin, mode) - -####Parameters -pin: 0~11, IO index
-mode: gpio.OUTPUT or gpio.INPUT, or gpio.INT(interrupt mode) - -####Returns -nil - -####Example - -``` - -- set gpio 0 as output. - gpio.mode(0, gpio.OUTPUT) - -``` - -####See also -**-** [gpio.read()](#io_read) - - - -## gpio.read() -####Description -read pin value. - -####Syntax -gpio.read(pin) - -####Parameters -pin: 0~11, IO index - -####Returns -number:0 - low, 1 - high - -####Example - -``` - -- read value of gpio 0. - gpio.read(0) -``` - -####See also -**-** [gpio.mode()](#io_mode) - - - -## gpio.write() -####Description -set pin value. - -####Syntax -gpio.write(pin) - -####Parameters -pin: 0~11, IO index
-level: gpio.HIGH or gpio.LOW - -####Returns -nil - -####Example - -``` - -- set pin index 1 to GPIO mode, and set the pin to high. - pin=1 - gpio.mode(pin, gpio.OUTPUT) - gpio.write(pin, gpio.HIGH) -``` - -####See also -**-** [gpio.mode()](#io_mode)
-**-** [gpio.read()](#io_read) - - - -## gpio.trig() -####Description -set the interrupt callback function for pin. - -####Syntax -gpio.trig(pin, type, function(level)) - -####Parameters -pin: 0~11, IO index
-type: "up", "down", "both", "low", "high", which represent rising edge, falling edge, both edge, low level, high level trig mode separately.
-function(level): callback function when triggered. The gpio level is the param. Use previous callback function if undefined here. - -####Returns -nil - -####Example - -``` - -- use pin 0 as the input pulse width counter - pulse0 = 0 - du = 0 - gpio.mode(0,gpio.INT) - function pin0cb(level) - du = tmr.now() – pulse0 - print(du) - pulse0 = tmr.now() - if level == 1 then gpio.trig(0, "down ") else gpio.trig(0, "up ") end - end - gpio.trig(0, "down ",pin0cb) - -``` - -####See also -**-** [gpio.mode()](#io_mode)
-**-** [gpio.write()](#io_write) - - -#PWM module - -## pwm.setup() -####Description -set pin to PWM mode. Only 3 pins can be set to PWM mode at the most. - -####Syntax -pwm.setup(pin, clock, duty) - -####Parameters -pin: 0~11, IO index
-clock: 1~500, pwm frequency
-duty: 0~100, pwm duty cycle in percentage - -####Returns -nil - -####Example - -``` - -- set pin index 0 as pwm output, frequency is 100Hz, duty cycle is 50-50. - pwm.setup(0, 100, 50) -``` - -####See also -**-** [pwm.start()](#pw_start) - - - -## pwm.close() -####Description -quit PWM mode for specified pin. - -####Syntax -pwm.close(pin) - -####Parameters -pin: 0~11, IO index - -####Returns -nil - -####Example - -``` - pwm.close(0) -``` - -####See also -**-** [pwm.start()](#pw_start) - - - -## pwm.start() -####Description -pwm starts, you can detect the waveform on the gpio. - -####Syntax -pwm.start(pin) - -####Parameters -pin: 0~11, IO index - -####Returns -nil - -####Example - -``` - pwm.start(0) -``` - -####See also -**-** [pwm.stop()](#pw_stop) - - - -## pwm.stop() -####Description -pause the output of PWM waveform. - -####Syntax -pwm.stop(pin) - -####Parameters -pin: 0~11, IO index - -####Returns -nil - -####Example - -``` - pwm.stop(0) -``` - -####See also -**-** [pwm.start()](#pw_start) - - - -## pwm.setclock() -####Description - -set pwm frequency for pin.
-**-Note:** setup pwm frequency will synchronously change others if there are any. Only one PWM frequency can be allowed for the system. - -####Syntax -pwm.setclock(pin, clock) - -####Parameters -pin: 0~11, IO index.
-clock: 1~500, pwm frequency. - -####Returns -nil - -####Example - -``` - pwm.setclock(0, 100) -``` - -####See also -**-** [pwm.getclock()](#pw_getclock) - - - -## pwm.getclock() -####Description -get pwm frequency of pin. - -####Syntax -pwm.getclock(pin) - -####Parameters -pin: 0~11, IO index. - -####Returns -number:pwm frequency of pin - -####Example - -``` - print(pwm.getclock(0)) -``` - -####See also -**-** [pwm.setclock()](#pw_setclock) - - - -## pwm.setduty() -####Description -set duty clycle for pin. - -####Syntax -pwm.setduty(pin, duty) - -####Parameters -pin: 0~11, IO index
-duty: 0~100, pwm duty cycle in percentage - -####Returns -nil - -####Example - -``` - pwm.setduty(0, 50) -``` - -####See also -**-** [pwm.getduty()](#pw_getduty) - - - -## pwm.getduty() -####Description -get duty clycle for pin. - -####Syntax -pwm.getduty(pin) - -####Parameters -pin: 0~11, IO index - -####Returns -nil - -####Example - -``` - -- D0 is connected to green led - -- D1 is connected to blue led - -- D2 is connected to red led - pwm.setup(0,500,50) - pwm.setup(1,500,50) - pwm.setup(2,500,50) - pwm.start(0) - pwm.start(1) - pwm.start(2) - function led(r,g,b) - pwm.setduty(0,g) - pwm.setduty(1,b) - pwm.setduty(2,r) - end - led(50,0,0) -- set led to red - led(0,0,50) -- set led to blue. - -``` - -####See also -**-** [pwm.setduty()](#pw_setduty) - - -#net module -##CONSTANT -net.TCP, net.UDP - - -## net.createServer() -####Description -create a server. - -####Syntax -net.createServer(type, secure) - -####Parameters -type: net.TCP or net.UDP
-secure: true or false, true for safe link, false for ordinary link - -####Returns -net.server sub module - -####Example - -``` - net.createServer(net.TCP, true) -``` - -####See also -**-** [net.createConnection()](#nt_createConnection) - - - -## net.createConnection() -####Description -create a client. - -####Syntax -net.createConnection(type, secure) - -####Parameters -type: net.TCP or net.UDP
-secure: true or false, true for safe link, false for ordinary link - -####Returns -net.server sub module - -####Example - -``` - net.createConnection(net.UDP, false) -``` - -####See also -**-** [net.createServer()](#nt_createServer) - - -#net.server module - -## listen() -####Description -listen on port from [ip] address. - -####Syntax -net.server.listen(port,[ip],function(net.socket)) - -####Parameters -port: port number
-ip:ip address string, can be omitted
-function(net.socket): callback function, pass to Caller function as param if a connection is created successfully - -####Returns -nil - -####Example - -``` - -- create a server - sv=net.createServer(net.TCP, false) - -- server listen on 80, if data received, print data to console, and send "hello world" to remote. - sv:listen(80,function(c) - c:on("receive", function(sck, pl) print(pl) end) - c:send("hello world") - end) -``` - -####See also -**-** [net.createServer()](#nt_createServer) - - - -## close() -####Description -close server. - -####Syntax -net.server.close() - -####Parameters -nil - -####Returns -nil - -####Example - -``` - -- create a server - sv=net.createServer(net.TCP, false) - -- close server - sv:close() -``` - -####See also -**-** [net.createServer()](#nt_createServer) - - -#net.socket module - -## connect() -####Description -connect to remote. - -####Syntax -connect(port, ip) - -####Parameters -port: port number
-ip: ip address in string - -####Returns -nil - -####See also -**-** [net.socket:on()](#nk_on) - - - -## send() -####Description -send data to remote via connection. - -####Syntax -send(string, function(sent)) - -####Parameters -string: data in string which will be sent to remote
-function(sent): callback function for sending string - -####Returns -nil - -####See also -**-** [net.socket:on()](#nk_on) - - - -## on() -####Description -register callback function for event. - -####Syntax -on(event, function cb()) - -####Parameters -event: string, which can be: "connection", "reconnection", "disconnection", "receive", "sent"
-function cb(net.socket, [string]): callback function. The first param is the socket.
-If event is"receive", the second param is received data in string. - -####Returns -nil - -####Example - -``` - sk=net.createConnection(net.TCP, false) - sk:on("receive", function(sck, c) print(c) end ) - sk:connect(80,"192.168.0.66") - sk:send("GET / HTTP/1.1\r\nHost: 192.168.0.66\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n") -``` - -####See also -**-** [net.createServer()](#nt_createServer) - - - -## close() -####Description -close socket. - -####Syntax -close() - -####Parameters -nil - -####Returns -nil - -####See also -**-** [net.createServer()](#nt_createServer) - - - -## dns() -####Description -get domain ip - -####Syntax -dns(domain, function(net.socket, ip)) - -####Parameters -domain: domain name.
-function (net.socket, ip): callback function. The first param is the socket, the second param is the ip address in string. - -####Returns -nil - -####See also -**-** [net.createServer()](#nt_createServer) - - -#i2c module -##CONSTANT -i2c.SLOW, i2c.TRANSMITTER, i2c. RECEIVER. FAST(400k)is not supported for now. - - -## i2c.setup() -####Description -initialize i2c. - -####Syntax -i2c.setup(id, pinSDA, pinSCL, speed) - -####Parameters -id = 0
-pinSDA: 0~11, IO index
-pinSCL: 0~11, IO index
-speed: i2c.SLOW - -####Returns -nil - -####See also -**-** [i2c.read()](#ic_read) - - - -## i2c.start() -####Description -start i2c transporting. - -####Syntax -i2c.start(id) - -####Parameters -id = 0 - -####Returns -nil - -####See also -**-** [i2c.read()](#ic_read) - - - -## i2c.stop() -####Description -stop i2c transporting. - -####Syntax -i2c.stop(id) - -####Parameters -id = 0 - -####Returns -nil - -####See also -**-** [i2c.read()](#ic_read) - - - -## i2c.address() -####Description -setup i2c address and read/write mode. - -####Syntax -i2c.address(id, device_addr, direction) - -####Parameters -id=0
-device_addr: device address.
-direction: i2c.TRANSMITTER for writing mode , i2c. RECEIVER for reading mode - -####Returns -nil - -####See also -**-** [i2c.read()](#ic_read) - - -## i2c.write() -####Description -write data to i2c, data can be multi numbers, string or lua table. - -####Syntax -i2c.write(id, data1, data2,...) - -####Parameters -id=0
-data: data can be numbers, string or lua table. - -####Returns -nil - -####Example - -``` - i2c.write(0, "hello", "world") -``` - -####See also -**-** [i2c.read()](#ic_read) - - - -## i2c.read() -####Description -read data for len bytes. - -####Syntax -i2c.read(id, len) - -####Parameters -id=0
-len: data length - -####Returns -string:data received. - -####Example - -``` - id=0 - sda=1 - scl=0 - - -- initialize i2c, set pin1 as sda, set pin0 as scl - i2c.setup(id,sda,scl,i2c.SLOW) - - -- user defined function: read from reg_addr content of dev_addr - function read_reg(dev_addr, reg_addr) - i2c.start(id) - i2c.address(id, dev_addr ,i2c.TRANSMITTER) - i2c.write(id,reg_addr) - i2c.stop(id) - i2c.start(id) - i2c.address(id, dev_addr,i2c.RECEIVER) - c=i2c.read(id,1) - i2c.stop(id) - return c - end - - -- get content of register 0xAA of device 0x77 - reg = read_reg(0x77, 0xAA) - pirnt(string.byte(reg)) - -``` - -####See also -**-** [i2c.write()](#ic_write) - +#Check this out +Tencent QQ group: 309957875 +[nodemcu wiki](https://github.com/funshine/nodemcu-firmware/wiki/nodeMcu:-lua-based-interactive-firmware-for-mcu) +[nodemcu.com](http://www.nodemcu.com) comming soon~~~ \ No newline at end of file