wifi.setmode(wifi.SOFTAP) cfg={} cfg.ssid="mywifi" cfg.pwd="qwerty123" cfg.ip="192.168.0.1" cfg.netmask="255.255.255.0" cfg.gateway="192.168.0.1" port = 9876 wifi.ap.setip(cfg) wifi.ap.config(cfg) function stringStarts(a,b) return string.sub(a,1,string.len(b))==b end function stringEnds(a,b) return b=='' or string.sub(a,-string.len(b))==b end -- HUZZAH pin len=6 --12 ldir=7 --13 ren=5 --14 rdir=0 --16 pwm.setup(len,500,0) pwm.setup(ren,500,0) pwm.start(len) pwm.start(ren) gpio.mode(ldir,gpio.OUTPUT) gpio.write(ldir,gpio.LOW) gpio.mode(rdir,gpio.OUTPUT) gpio.write(rdir,gpio.LOW) cmd="" function exeCmd(st) -- ex: "ch0 1500" tmr.stop(1) -- clr contact lost tmr tmr.alarm(1,500,0,function() -- if cnt lost for 500ms pwm.close(len) pwm.close(ren) end) if stringStarts(st, "l") then v = tonumber( string.sub(st, 3, string.len(st) ) ) pwm.close(len) pwm.setup(len,500,0) pwm.start(len) if v<0 then v=-v gpio.write(ldir,gpio.HIGH) else gpio.write(ldir,gpio.LOW) end pwm.close(len) pwm.setup(len,500,v) pwm.start(len) end if stringStarts(st, "r") then v = tonumber( string.sub(st, 3, string.len(st) ) ) pwm.close(ren) pwm.setup(ren,500,0) pwm.start(ren) if v<0 then v=-v gpio.write(rdir,gpio.HIGH) else gpio.write(rdir,gpio.LOW) end pwm.close(ren) pwm.setup(ren,500,v) pwm.start(ren) end end function receiveData(conn, data) cmd = cmd .. data local a, b = string.find(cmd, "\n", 1, true) while a do exeCmd( string.sub(cmd, 1, a-1) ) cmd = string.sub(cmd, a+1, string.len(cmd)) a, b = string.find(cmd, "\n", 1, true) end end print("ESP8266 RC rat 1.0 powered by RoboRemo") print("SSID: " .. cfg.ssid .. " PASS: " .. cfg.pwd) print("RoboRemo app must connect to " .. cfg.ip .. ":" .. port) srv=net.createServer(net.TCP, 28800) srv:listen(port,function(conn) print("RoboRemo connected") conn:on("receive",receiveData) conn:on("disconnection",function(c) print("RoboRemo disconnected") end) tmr.stop(2) tmr.alarm(2,500,1,function() -- heartbeat conn:send("alive 1\n") end) end)