esp8266 kulanımı ve lua

Başlatan mesut25, 09 Eylül 2017, 16:01:47

mesut25

merhaba akadaşlar 2 aydır esp8266 modülü ve lua dilini araştırıyorum  buldugum ve anladıgım kadarıyla hemen paylaşmak istedim  esp8266 modülü 2 çeşit programlanabiliyor  1. lua dili 2. AT komutları ile seriiletişim üzerinden programlanıp kulanılabılıyor 1. secenegi inceleyecegiz  yeni aldıgınız modülü ESP8266Flasher programıyla günceleleme yaparak  modülümüzü lua diline hazır hale getiriyoruz  ve esplorer programı ile yazdıgımız programı esp modülüne atarak kulanmaya hazır hale getiriyoruz   kulandıgımız modül nodemcu v1.0 bu modül minı usb girişi var burdan pc baglantı saglıyoruz modem üzerinde bulunan entegrenın sürücüsünü pc kurduktan sonra   esplorer  programını açıyoruz pc modüle sanal serıport üzerinden baglantı kuruyor  ve modül üzerinden bulunan reset tuşuna basınca modülümüz baglanmış oluyor modülümüzü ap olarak veya server oluşturup sitemize ıp dresinden baglanabılıriz  bir çok yerler bilgiler mevcut ama kodlar pek yok  modülü dedikleri gibi internek üzerinden baglantı kuramıyorsunuz  sadece local baglantı saglanıyor ıp üzerinden eyer modülü fırebase  üzerinden baglantı kurabılırsek süper ama ona bizim bilgi becerimiz biraz eksik  daha iyi bilen varsa baylaşsın dicem ama kod kimse paylaşmıyor..modül üzerinden bir çok giriş ve çıkış olarak kulanacagımız  uclar var adc pıw mevcut  aşagıdaki kodları denedim çalışıyor  modül lua dilinde çalışırken rx tx uçları altıf burdan pıc baglantı yapılabılır  diye düşünüyorum benzer kodlar  her yerde mevcut ama koddların bazıları çaılışmıyor hata veriyor baylaştıgım kodlar çalışıyor arkadaşlar  kolay gelsin ....
 print("Ready to start soft ap")
     
     local str=wifi.ap.getmac();
    local ssidTemp=string.format("%s%s%s",string.sub(str,10,11),string.sub(str,13,14),string.sub(str,16,17));
   
    cfg={}
     cfg.ssid="MESUT ASLAN"..ssidTemp;
    cfg.pwd="12345678"
     wifi.ap.config(cfg)
   
     cfg={}
     cfg.ip="192.168.1.6";
     cfg.netmask="255.255.255.0";
     cfg.gateway="192.168.1.1";
     wifi.ap.setip(cfg);
     wifi.setmode(wifi.SOFTAP)     
        str=nil;
    ssidTemp=nil;
     collectgarbage();
     
    print("Soft AP started")
     print("Heep:(bytes)"..node.heap());
     print("MAC:"..wifi.ap.getmac().."\r\nIP:"..wifi.ap.getip());

led1 = 1
led2 = 2
led3 = 3
gpio.mode(8,gpio.INPUT,gpio.FLOAT)
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
gpio.mode(led3, gpio.OUTPUT)
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 mesut aslan</h1>";

        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO3 <a href=\"?pin=ON3\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF3\"><button>OFF</button></a></p>";
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.HIGH);
          print("Hello World")

        elseif(_GET.pin == "OFF1")then
        buf = buf.."<p><strong>merhaba dünya</strong></p>"

              gpio.write(led1, gpio.LOW);
             elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.HIGH);
              print("led yandı")
               buf = buf.."<p><strong>led yandı</strong></p>"
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.LOW);
              buf = buf.."<p><strong>led söndüxx</strong></p>"
                elseif(_GET.pin == "ON3")then
              gpio.write(led3, gpio.HIGH);
        elseif(_GET.pin == "OFF3")then
              gpio.write(led3, gpio.LOW);
        end

       
client:send(buf);
client:close();
collectgarbage();
    end)
end)
tmr.alarm(1,900,1,function()
   if gpio.read(8) == 0 then

else
print("sivice basıldı")
end
end)


     
wifi.setmode(wifi.STATION)
wifi.sta.config("18F2550","mesutaslan1")
wifi.sta.setip({ip="192.168.1.6",netmask="255.255.255.0",gateway="192.168.18.1"})
print(wifi.sta.getip())
led1 = 1
led2 = 2
led3 = 3
gpio.mode(8,gpio.INPUT,gpio.FLOAT)
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
gpio.mode(led3, gpio.OUTPUT)
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 mesut aslan</h1>";

        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF1\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF2\"><button>OFF</button></a></p>";
        buf = buf.."<p>GPIO3 <a href=\"?pin=ON3\"><button>ON</button></a>&nbsp;<a href=\"?pin=OFF3\"><button>OFF</button></a></p>";
        local _on,_off = "",""
        if(_GET.pin == "ON1")then
              gpio.write(led1, gpio.HIGH);
          print("Hello World")

        elseif(_GET.pin == "OFF1")then
        buf = buf.."<p><strong>merhaba dünya</strong></p>"

              gpio.write(led1, gpio.LOW);
             elseif(_GET.pin == "ON2")then
              gpio.write(led2, gpio.HIGH);
              print("led yandı")
               buf = buf.."<p><strong>led yandı</strong></p>"

http.get("http://httpbin.org/ip", nil, function(code, data)
    if (code < 0) then
      print("HTTP request failed")
    else
      print(code, data)
    end
  end)

               
        elseif(_GET.pin == "OFF2")then
              gpio.write(led2, gpio.LOW);
              buf = buf.."<p><strong>led söndüxx</strong></p>"
                elseif(_GET.pin == "ON3")then
              gpio.write(led3, gpio.HIGH);
        elseif(_GET.pin == "OFF3")then
              gpio.write(led3, gpio.LOW);
        end

       
client:send(buf);
client:close();
collectgarbage();
    end)
end)
tmr.alarm(1,900,1,function()
   if gpio.read(8) == 0 then

else
print("sivice basıldı")
end
end)



hkalaycioglu

#1
programı c demi yazdınız mesut bey.. Bende Esp8266 12-F modül aldım hem lua firmware yükledim hem at firmware yükledim. Lua dan pek bir şey çıkaramadım bir kaç kod buldum ama üzerine bir şey koyamadım. Bende 18f4550 yi picbasic programla AT komutlarını kullanarakcep telefonu üzerinde 2 çıkışı kontrol edebilecek kadar bir şeyler yazdım.kodlar biraz amatörce ama belki birilerinin bir işine yarar. kolay gelsin... Bu yazılan kodlarda aynı zamanda sim900 GSM Modül kodlarıda var ihtiyacınıza göre kullanabilirsiniz..

mesut25

hayır kodları ben yazmadım kodllar alıntıdır ben bir kaç yerinde degişlik yaptım  piyasada çok kod var ama bazıları çalışmıyor ben çalışanları bir araya getirip toplu bir bilgi oluşturmaya çalışıyorum   tek kaynak oluşturmaya çalışıyorum bilgisi olan paylasması güzel olur  var sa arkadaşımız bu kodlar üzerinden pıc kodlar yazılıp seri port üzerinden paylaşabilir  aslında gerçek amaç (firebase.com) baglantı kurmak ilgin için teşekkürler

aRci

paylaşim için teşekkür  ederim su ara 18f serisine başlama istiyordum işden gücten zaman ayırdıkca elden geldiği kadar proje yapıyorum.hep 16f le çalışmak güzel ama hafıza yetersiz kalıyor gsm, esp vb projelerde paylaştığınız program 4mhz üzerine ben bunu 20 mhz olarak ayarlayıp deneme yapaccağım iyi günler

KMD

esp8266 usb gırıslı ona modulden aldım usb ıle pc ye baglıyorum resetledıgımde sacma sapan karakterler cıkıyor AT comutlarını kullanabılmem ıcı ne yapmam lazım.

İlyas KAYA

Alıntı yapılan: KMD - 04 Mayıs 2018, 19:27:43
esp8266 usb gırıslı ona modulden aldım usb ıle pc ye baglıyorum resetledıgımde sacma sapan karakterler cıkıyor AT comutlarını kullanabılmem ıcı ne yapmam lazım.

Resetlediğinizde saçma sapan karakterler çıkması normal. "AT" yazıp gönderin. Ama baud hızına dikkat edin. 9600 yada 115200 ile deneyin.
AT yazıp gönderdiğinizde size "OK" yanıtını vermesi gerekir.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

KMD

Ilyas hocam ıyı aksamlar sımdı bagladım

Node MCU 0.9.5 bulıld 20150318 powered by lua
5.1.4. lua:connat open ınıt lua
boyle dıyor hocam lua desteklemekte dıyor ne yapmam lazım

İlyas KAYA

Lua hiç kullanmadım bir ara baktim zor geldi sildim :) esp lua ya bağlanmayı bekliyor sanırım. Güncelleme moduna alıp at firmware i yüklemeniz gerekebilir.
Fırat deveci eap8266 diye arama yapın gerekli bilgilere ulaşırsınız. At firmware de tavsiye etmem esasen. Bence arduino ile kendi firmware inizi yazın.
Bunun için de yine "esp8266 programming with arduino ide " aramasi yaparak bircok bilgiye ulasabilirsiniz. Burada anlatılarak olacak şey değil kaldı ki zaten çok ca doküman bulabilirsiniz.

Yada şu linki takip edin.

http://tecrubedenkatreler.com/esp8266-programlama-arduinoyla/
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

KMD

Hayirli sabahlar ilyas hocam yanlis anlamayij ben ardunio yu sevmiyorum acikcasi pic bana daha egitici ve eglenceli geliyor.pic konusunda yardimci olursaniz sevinirim.bu esp modul baya karisiga benziyor guncellemeler vs.

İlyas KAYA

Alıntı yapılan: KMD - 05 Mayıs 2018, 07:58:59
Hayirli sabahlar ilyas hocam yanlis anlamayij ben ardunio yu sevmiyorum acikcasi pic bana daha egitici ve eglenceli geliyor.pic konusunda yardimci olursaniz sevinirim.bu esp modul baya karisiga benziyor guncellemeler vs.

Bu konunun arduino ile uzak yakın ilgisi yok. Sadece arduino nün idesini yani yazılım yapılan programı kullanarak esp yi programliyoesunuz. Size daha kolay kaynak ve kütüphane imkanı sunuyor. Arduino ya soğuk bakmanın da bir anlamı yok sonuçta atmega mcu dur. Gayet güzeldir ve bence herşeyden öte zaman dan tasarrufdur.
Zaman herşeyden daha değerli  ;)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

KMD

Arkadaslar pic ile direk uart uzerinden calistirabilecegim bi esp seridi varmi.bu esp8266 lua v3 serisi bayagi karisik

İlyas KAYA

Alıntı yapılan: KMD - 05 Mayıs 2018, 18:51:53
Arkadaslar pic ile direk uart uzerinden calistirabilecegim bi esp seridi varmi.bu esp8266 lua v3 serisi bayagi karisik

hepsi öyle, sendeki de. sendekinde rs232 çevirici üstünde.

http://www.instructables.com/id/Getting-Started-With-ESP8266LiLon-NodeMCU-V3Flashi/
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

mesut25

Tüm esp 8266 modüleri seri port üzerinden haberleşir  en mantılıklısı arduino programını  kulanmaktır uzun vadede  güzel projeler getirir pıc serisinden ayrılmadan esp8266 modülünüzü arduino İLE  programlamak ve pıc seri iletişimle kulanmak benimde hayalimden biri budur uzun araştırmalarım sonucu  özel projeler lua dili ile pek mümkün degil lua sınırlı veya ortada fazla bilgi yok bu yüzden arduino ile devam edilmeli hem güncel kütübaneler var hemde  bilgi olarak  yeterli bence  kısacası  arduino ile esp8266 programlamak pıc serisi ile devam etmek .. 

mesut25

#include <ESP8266WiFi.h>

const char* ssid = "xxxxx";//type your ssid
const char* password = "xxxxx";//type your password

int ledPin = 2; // GPIO2 of ESP8266
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);


  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
   
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
   
  WiFi.begin(ssid, password);
   
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
   
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
   
}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
   
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
   
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
   
  // Match the request

  int value = LOW;
  if (request.indexOf("/LED=ON") != -1) {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1){
    digitalWrite(ledPin, LOW);
    value = LOW;
  }

// Set ledPin according to the request
//digitalWrite(ledPin, value);
   

  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
   
  client.print("Led pin is now: ");
   
  if(value == HIGH) {
    client.print("On"); 
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 2 ON<br>");
  client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 2 OFF<br>");
  client.println("Click <a href=\"/LED=ON1\">here</a> turn the LED on pin 3 ON<br>");
  client.println("Click <a href=\"/LED=OFF1\">here</a> turn the LED on pin 3 OFF<br>");
  client.println("</html>");

  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");

}


bıraz önce arduino ile esp8266 programladım ben ögrenmeye çalışıyorum  ve güzel çalıştı  sizinlede paylaşmak istedim

KMD

Ben bu esp isini pic ile yapamayacagim galiba:( galiba ardunioya teslim olmak lazim

Powered by EzPortal