So you're a Noob? Post your questions here until you graduate! Don't be shy.

User avatar
By alexizen003
#62003 Hi guys em new to esp8266, the below code has some error stating that "not enough memory" for connecting six leds and one fan controller.
But this works fine for 2 leds and fan controller. Now wat to do to control six led/lights and fan?


wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","Password")
print(wifi.sta.getip())

--led3 = 5
dim=0
led1 = 5
led2 = 6
led3 = 7
led4 = 4
led5 = 8
led6 = 12
outpin=1
gpio.mode(led1,gpio.OUTPUT)
gpio.write(led1,gpio.LOW)
gpio.mode(led2,gpio.OUTPUT)
gpio.write(led2,gpio.LOW)
gpio.mode(led3,gpio.OUTPUT)
gpio.write(led3,gpio.LOW)
gpio.mode(led4,gpio.OUTPUT)
gpio.write(led4,gpio.LOW)
gpio.mode(led5,gpio.OUTPUT)
gpio.write(led5,gpio.LOW)
gpio.mode(led6,gpio.OUTPUT)
gpio.write(led6,gpio.LOW)

gpio.mode(outpin,gpio.OUTPUT)
gpio.write(outpin,gpio.LOW)


inpin=2
gpio.mode(inpin,gpio.INT,gpio.PULLUP)


function zero_cross()
dt=((100-dim)*76)
tmr.delay(dt)
gpio.write(outpin,gpio.HIGH)
tmr.delay(150)
gpio.write(outpin,gpio.LOW)
tmr.wdclr()
return "ON"
end

function zero_cross1()
dt1=((77-dim)*76)
tmr.delay(dt1)
gpio.write(outpin,gpio.HIGH)
tmr.delay(150)
gpio.write(outpin,gpio.LOW)
tmr.wdclr()
return "ON"
end

function zero_cross2()
dt2=((60-dim)*76)
tmr.delay(dt2)
gpio.write(outpin,gpio.HIGH)
tmr.delay(150)
gpio.write(outpin,gpio.LOW)
tmr.wdclr()
return "ON"
end


srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on("receive", function(client,request)
local buf = "";
local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP");
if(method == nil)then
_, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP");
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do
_GET[k] = v
end
end
buf = buf.."<h1> ESP8266 Web Server</h1>";
buf = buf.."<p>GPIO5 <a href=\"?pin=LOW\"><button>LOW</button></a>&nbsp;<a href=\"?pin=MEDIUM\"><button>MEDIUM</button></a></p>";
buf = buf.."<p>GPIO5 <a href=\"?pin=HIGH\"><button>HIGH</button></a>&nbsp;<a href=\"?pin=OFF\"><button>OFF</button></a></p>";
buf = buf.."<p>GPIO14 <a href=\"?pin=ON1\"><button>ON1</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF1</button></a></p>";
buf = buf.."<p>GPIO12 <a href=\"?pin=ON2\"><button>ON2</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>OFF2</button></a></p>";

buf = buf.."<p>GPIO13 <a href=\"?pin=ON3\"><button>ON3</button></a>&nbsp;<a href=\"?pin=OFF3\"><button>OFF3</button></a></p>";
buf = buf.."<p>GPIO2 <a href=\"?pin=ON4\"><button>ON2</button></a>&nbsp;<a href=\"?pin=OFF4\"><button>OFF4</button></a></p>";
buf = buf.."<p>GPIO15 <a href=\"?pin=ON5\"><button>ON2</button></a>&nbsp;<a href=\"?pin=OFF5\"><button>OFF5</button></a></p>";
buf = buf.."<p>GPIO10 <a href=\"?pin=ON6\"><button>ON2</button></a>&nbsp;<a href=\"?pin=OFF6\"><button>OFF6</button></a></p>";
local _on,_off = "",""
if(_GET.pin == "LOW")then

gpio.trig(inpin,"up",zero_cross)
elseif(_GET.pin == "MEDIUM")then
gpio.trig(inpin,"up",zero_cross1)
elseif(_GET.pin == "HIGH")then
gpio.trig(inpin,"up",zero_cross2)
elseif(_GET.pin == "OFF")then
gpio.trig(inpin,"none",zero_cross2)
elseif(_GET.pin == "ON1")then
gpio.write(led1, gpio.HIGH);
elseif(_GET.pin == "OFF1")then
gpio.write(led1,gpio.LOW)
elseif(_GET.pin == "ON2")then
gpio.write(led2, gpio.HIGH);
elseif(_GET.pin == "OFF2")then
gpio.write(led2,gpio.LOW)
elseif(_GET.pin == "ON3")then
gpio.write(led3, gpio.HIGH);
elseif(_GET.pin == "OFF3")then
gpio.write(led3,gpio.LOW)
elseif(_GET.pin == "ON4")then
gpio.write(led4, gpio.HIGH);
elseif(_GET.pin == "OFF4")then
gpio.write(led4,gpio.LOW)
elseif(_GET.pin == "ON5")then
gpio.write(led5, gpio.HIGH);
elseif(_GET.pin == "OFF5")then
gpio.write(led5,gpio.LOW)
elseif(_GET.pin == "ON6")then
gpio.write(led6, gpio.HIGH);
elseif(_GET.pin == "OFF6")then
gpio.write(led6,gpio.LOW)
end

client:send(buf);
client:close();
collectgarbage();
end)
end)