09120786892
atrinelectronic@gmail.com تهران پاساژ امجد طبقه1 واحد 16
ساخت وب سرور در esp8266

ساخت وب سرور در esp8266

2018-09-24 11:30:35

ماژول وای فای esp8266 ، یکی از پرکاربردترین ، قوی ترین و در عین حال ارزان ترین ماژول وای فای موجود در بازار هست که علاوه بر این که دارای پایه های وروردی و خروجی هست ، قابلیت پروگرم کردن firmware رو هم داره که این کار کمک میکنه بتونیم انعطاف پذیری زیادی در انجام پروژه با ماژول وای فای esp8266 داشته باشیم .

.منظور از وب سرور در این ماژول به این صورت هست که در صورتی که از طریق مرورگر در موبایل یا کامپیوتر آدرس آی پی ماژول رو وارد کنیم یه صفحه وب برای ما نشون داده بشه و بتونیم پایه های ماژول رو کنترل کنیم یا حتی دیتا ورودی به ماژول رو نمایش بدیم.

 البته در این پروژه فقط ۲ پایه از ماژول را در صفحه وب نمایش میدیم و میتونیم اونو فعال یا غیر فعال کنیم . برای ادامه این پروژه باید با مباحث نحوه پروگرم کردن فریم ورک ماژول esp8266  آشنایی داشته باشید همچنین که سخت افزار لازم برای پروگرم کردن  که یه رابط usb2serial  هست رو لازم دارید. البته اگر برای نسخه آزمایشگاهی بخواین فریم ورک رو فلش کنید میتونید از نسخه های Development Board استفاده کنید که ادوات و سخت افزاری ها لازم بر روی یک برد در کنار ماژول قرار دارد.

در بالا یه نمونه esp8266 development board  رو مشاهده میکنید خوب در صورتی که این برد  یا ماژول esp8266 رو در اختیار دارید طبق نقشه زیر قطعات رو به ماژول وصل کنید

در این مرحله باید کد زیر رو بر روی ماژول فلش کنید برای این کار کد زیر رو به نام init.lua  ذخیره کنید و بر روی ماژولتون به کمک نرم افزار فلشر آپلود کنید البته در قسمت wifi.sta.config ( خط ۲ کد) لازمه اطلاعات مودمتون شامل نام مودم و رمز عبور رو بر اساس مقادر مودم خودتون تغییر بدین تا ماژول بتونه به مودم وصل بشه.

wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
print(wifi.sta.getip())
led1 = ۳
led2 = ۴
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
srv=net.createServer(net.TCP)
srv:listen(۸۰,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>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>";
        local _on,_off = "",""
        if(_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);
        end
        client:send(buf);
        client:close();
        collectgarbage();
    end)
end)

در پایان یه کلیپ کوتاه از نحوه عملکرد برد رو مشاهده میکنید. ( منبع کلیپ)

 

م

به سبد خرید اضافه شد.
سبد خرید
Item removed. بازگرداندن