From 1cc9016769295e9b1dea594a88c9ee1bc1df898a Mon Sep 17 00:00:00 2001 From: funshine Date: Thu, 11 Dec 2014 14:32:23 +0800 Subject: [PATCH] fix #18, can set back to uart mode from gpio mode. add wifi.sta.status() api. --- 0.9.2/512k-flash/nodemcu_512k.bin | Bin 520192 -> 520192 bytes README.html | 1268 +++++++++++++++++++++++++++++ README.md | 10 +- 3 files changed, 1272 insertions(+), 6 deletions(-) create mode 100644 README.html diff --git a/0.9.2/512k-flash/nodemcu_512k.bin b/0.9.2/512k-flash/nodemcu_512k.bin index 41c2f03ce7cd516ec9bad9f2050ee3899fe29b14..f88f2f032073be764e14efaeee710ff82c417d4c 100644 GIT binary patch delta 31949 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 E11OE}4gdfE delta 32090 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

6Q);i|`43v{2l#)DN7f^!9YmWm{*dMe zUio(FrZ3o2EwoH{M?2p_6NL!pQ+57gvDl$o+M%?M z6RVUM(d?dNn1v5oNL$#Ln{-szt0}i=g($kZYukUIOCoNHoOeN>?AE@#O9Lh0kQVw2 zE$1!^Uw=SXyo4Rv!bg-OayN0UbOA^9Y7fDQXPWk+DA~P?+AM}gXRVNybXut^K;DNU1b0lK7@lq4+B_VkiEflAP-;-s0Pa8)zM zOG5<==lKL_qu_r6Rd+N&R|x?_vq;;ydh9`~loZ5Wpqg&st4;_81U=ltOIyV|TeWRT z(hWhp^PaXLMOxI+?-1(NBb?SkGo+)uuWOl7sTle#Jl0)Belx;+cr={LFHPjEB12gF6BzA^)Tp@gUY2=R}3$D0Y&weOTQPjcRi?_X|?y%nzE$= z!C+re+3vLfZmcS}P?&F}%m2)qgY!8VUlO)4$4DtA%(=Kym8m>aYCZtb6X+TH_Xk{8 z+22P>-TYlXm2$8%wo;0(bQ#$vBc-HaE`Qh8CAzO?>8joI%Ud@@bB7lH@?5jdF1uR( zQ#JdB<>_1#XrU`9Jc5 z*7ZY;@o(--cq|^0pv#Q+%O^ptD0AMfQD^(PGwtU*D~-Cmc<=n5P}o0* zdfnuB-~6AE8|b=GV|>M(>HNyGvb#GOr|IExI{_FZhJMEBUQJB8!+Gq*ETe~*er$@=gb%(RI9r8*1Z(!;=`v3p{ diff --git a/README.html b/README.html new file mode 100644 index 00000000..e142c5c3 --- /dev/null +++ b/README.html @@ -0,0 +1,1268 @@ +README

NodeMcu

+

A lua based firmware for wifi-soc esp8266

+

version 0.9.2 build 2014-12-11

+

Change log

+

2014-12-09

+increased the number of alarm in tmr module, now it has 7 alarm.

+

2014-12-08

+add uart.setup(), uart.write() api.

+

more change log

+更多变更日志

+

Summary

+
    +
  • Easy to access wireless router
  • +
  • Based on Lua 5.1.4
  • +
  • Event-Drive programming preferred.
  • +
  • Build-in file, timer, pwm, i2c, 1-wire, net, gpio, wifi, adc, uart and system api.
  • +
  • GPIO pin re-mapped, use the index to access gpio, i2c, pwm.
  • +
  • GPIO Map Table:
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IO indexESP8266 pinIO indexESP8266 pin
0GPIO128GPIO0
1GPIO139GPIO2
2GPIO1410GPIO4
3GPIO1511GPIO5
4GPIO3
5GPIO1
6GPIO9
7GPIO10
+ +

Flash the firmware

+

nodemcu_512k.bin: 0x00000

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

+You can use the nodemcu-flasher to burn the firmware.

+

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, 0) 
+    conn:on("receive", function(conn, payload) print(payload) 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) 
+      conn:on("sent",function(conn) conn:close() 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,512) 
+  pwm.setup(1,500,512) 
+  pwm.setup(2,500,512)
+  pwm.start(0) 
+  pwm.start(1) 
+  pwm.start(2)
+  led(512,0,0) -- red
+  led(0,0,512) -- blue
+
+ + + +
  lighton=0
+  tmr.alarm(1,1000,1,function()
+    if lighton==0 then 
+      lighton=1 
+      led(512,512,512) 
+    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.
+
+ + +

With below code, you can telnet to your esp8266 now

+
    -- a simple telnet server
+    s=net.createServer(net.TCP,180) 
+    s:listen(2323,function(c) 
+       function s_output(str) 
+          if(c~=nil) 
+             then c:send(str) 
+          end 
+       end 
+       node.output(s_output, 0)   -- re-direct output to function s_ouput.
+       c:on("receive",function(c,l) 
+          node.input(l)           -- works like pcall(loadstring(l)) but support multiple separate line
+       end) 
+       c:on("disconnection",function(c) 
+          node.output(nil)        -- un-regist the redirect output function, output goes to serial
+       end) 
+       print("Welcome to NodeMcu world.")
+    end)
+
+ + +

Use DS18B20 module extends your esp8266

+
    -- read temperature with DS18B20
+    t=require("ds18b20")
+    t.setup(9)
+    addrs=t.addrs()
+    -- Total DS18B20 numbers, assume it is 2
+    print(table.getn(addrs))
+    -- The first DS18B20
+    print(t.read(addrs[1],t.C))
+    print(t.read(addrs[1],t.F))
+    print(t.read(addrs[1],t.K))
+    -- The second DS18B20
+    print(t.read(addrs[2],t.C))
+    print(t.read(addrs[2],t.F))
+    print(t.read(addrs[2],t.K))
+    -- Just read
+    print(t.read())
+    -- Just read as centigrade
+    print(t.read(nil,t.C))
+    -- Don't forget to release it after use
+    t = nil
+    package.loaded["ds18b20"]=nil   
+
+ + +

Check this out

+

Tencent QQ group: 309957875

+nodemcu wiki

+nodemcu.com

\ No newline at end of file diff --git a/README.md b/README.md index 86948dd6..81f9e54b 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,10 @@ # **NodeMcu** # ###A lua based firmware for wifi-soc esp8266 -version 0.9.2 build 2014-12-09 +version 0.9.2 build 2014-12-11 # Change log -2014-12-09
-increased the number of alarm in tmr module, now it has 7 alarm.
- -2014-12-08
-add uart.setup(), uart.write() api.
+2014-12-11
+fix uart.setup(), now setup can set pins in other mode back to uart mode.
+add wifi.sta.status() api, to get connection status in station mode. [more change log](https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#change_log)
[更多变更日志](https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_cn#change_log)