Synthomir goes online with esp8266 wifi modul
This version did not work with putty, and linux, working from windows terminal
file.remove("init.lua")
file.open("init.lua","w")
file.writeline([[print("####################################################")]])
file.writeline([[print("Radiona ESP8266 module for Synthomir")]])
file.writeline([[print("Version: v0.1")]])
file.writeline([[print("Presented by.: Igor(Synthomir),Davor(Lua),Goran(ESP)")]])
file.writeline([[print("Wait for 5 sec for IP adress")]])
file.writeline([[print("Telnet to port 80, and send A to Blink LED")]])
file.writeline([[print("Blink is set to 1000 micro seconds, becouse it will be used as Synthomir button")]])
file.writeline([[print("####################################################")]])
file.writeline([[tmr.alarm(10000, 0, function() dofile("get_IP.lua") end )]])
file.close()
file.remove("get_IP.lua")
file.open("get_IP.lua","w")
file.writeline([[print("Current IP is: ")]])
file.writeline([[print(wifi.sta.getip())]])
file.writeline([[tmr.alarm(1000, 0, function() dofile("start_Server.lua") end )]])
file.close()
file.remove("start_Server.lua")
file.open("start_Server.lua","w")
file.writeline([[dofile("blink_Led.lua")]])
file.writeline([[print("Starting server")]])
file.writeline([[print("Creating a server")]])
file.writeline([[print("Server listen on 80, if data received checks for letter A, if A is recieved LED blinks.")]])
file.writeline([[sv=net.createServer(net.TCP, 30)]])
file.writeline([[sv:listen(80,function(c)]])
file.writeline([[ c:on("receive", function(sck, pl) if (pl=="a") then dofile("TurnLedOn.lua") elseif (pl=="b") then dofile("TurnLedOff.lua") else print("Caracter is not A, send A to blink LED") end end)]])
file.writeline([[ end)]])
file.writeline([[print("Server started")]])
file.close()
file.remove("TurnLedOn.lua")
file.open("TurnLedOn.lua","w")
file.writeline([[print("Setting GPIO4 to HIGH -- pin1")]])
file.writeline([[gpio.write(10, gpio.HIGH)]])
file.close()
file.remove("TurnLedOff.lua")
file.open("TurnLedOff.lua","w")
file.writeline([[print("Setting GPIO4 to LOW -- pin1")]])
file.writeline([[gpio.write(10, gpio.LOW)]])
file.close()
file.remove("blink_Led.lua")
file.open("blink_Led.lua","w")
file.writeline([[dofile("TurnLedOn.lua")]])
file.writeline([[for i=1,10000 do]])
file.writeline([[ tmr.wdclr()]])
file.writeline([[end]])
file.writeline([[dofile("TurnLedOff.lua")]])
file.close()This version is working from putty, just type ON and press ENTER to turn led ON
file.remove("start_Server.lua")
file.open("start_Server.lua","w")
file.writeline([[dofile("blink_Led.lua")]])
file.writeline([[print("Starting server")]])
file.writeline([[sv=net.createServer(net.TCP, 30)]])
file.writeline([[sv:listen(80,function(c)]])
file.writeline([[ c:on("receive", function(sck, pl) print(pl)]])
file.writeline([[ if string.find (pl,"ON") then dofile ("TurnLedOn.lua") c:send("LED ON\n\r")]])
file.writeline([[ elseif string.find (pl,"OFF") then dofile ("TurnLedOff.lua") c:send("LED OFF\n\r")]])
file.writeline([[ else print("\n\r")]])
file.writeline([[ end]])
file.writeline([[ end)]])
file.writeline([[ c:send("Welcome to Synthomir server, type letter a to press button down, and letter b to relese button\n\r")]])
file.writeline([[ end)]])
file.writeline([[print("Server started")]])
file.close() on router with openwrt I have installed lua, and write a script that pings range of adress
ip_tables = {}
ip_tables_count = 0
for i=1,254 do
ping_success=os.execute('ping -c 1 -4 -w 1 10.254.221.' ..i.. '>/dev/null')
if (ping_success == 0) then
ip_tables[ip_tables_count] = '10.254.221.' ..i
ip_tables_count = ip_tables_count + 1
-- print("Pinging 10.254.221." ..i.. " success")
else
-- print("Pinging 10.254.221." ..i.. " failed")
end
end
print("There are " ..ip_tables_count.. " active clients")
for i=1,ip_tables_count do
os.execute("/scripts/blink_LED.sh")
end
ip_tables = {}
ip_tables_count = 0
and blinks no. of connected clients
printf "ON" | telnet 10.254.184.235 80 sleep 1 printf "OFF" | telnet 10.254.184.235 80 sleep 1
Processing sample is work in progress …
import processing.net.*;
import controlP5.*;
ControlP5 cp5;
boolean lEDStatus = false;
Client c;
void setup()
{
size(200, 200);
cp5 = new ControlP5(this);
cp5.addButton("buttonA")
.setPosition(50,50)
.setImages(loadImage("Arrow-Left.png"), loadImage("Arrow-Right.png"), loadImage("Refresh.png"))
.updateSize();
frameRate(10); // Slow it down a little
// Connect to the server's IP address and port
c = new Client(this, "10.254.184.235", 80); // Replace with your server's IP and port
}
void draw()
{
// Receive data from server
if (c.available() > 0) {
}
}
public void controlEvent(ControlEvent theEvent) {
println(theEvent.getController().getName());
if (lEDStatus){
c.write("OFF" + "\n");
lEDStatus=false;
}
else{
c.write("ON" + "\n");
lEDStatus=true;
}
}https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en
http://scargill.wordpress.com/
http://esp8266.ru/wp-content/uploads/esp8266-gpio.jpg
http://esp8266.ru/



