您当前的位置: 首页 > 

程序员正茂

暂无认证

  • 3浏览

    0关注

    283博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

nodeMCU典型代码(2)

程序员正茂 发布时间:2018-05-02 21:35:35 ,浏览量:3

1.wifi自动重连,led指示连接状态(接通电源led常亮,连接wifi后每隔两秒led闪烁,给弹后每隔0.5秒led闪烁)

pin1 = 1--GPIO5
gpio.mode(pin1,gpio.INT,gpio.PULLUP)

pin5 = 5
gpio.mode(pin5, gpio.OUTPUT)

function pin11cb()
     print("up")
     gpio.write(pin5, gpio.HIGH);    
     gpio.write(pin5, gpio.LOW);    
end
gpio.trig(pin1, "up",pin11cb)

status = gpio.LOW;
function pin1Shoot()
    gpio.write(pin1, gpio.HIGH); 
    gpio.write(pin1, gpio.LOW);      
end

--wifi状态更新计时器
--tmr.alarm(2, 2000, tmr.ALARM_AUTO,  ChangeD1Status)

--LED针脚
D0=0--GPIO16
D1=1--GPIO5
D2=2--GPIO4
D3=3--GPIO0
D4=4--GPIO2
D5=5--GPIO14
D6=6--GPIO12
D7=7--GPIO13
D8=8--GPIO15
D9=9--GPIO3
D10=10--GPIO1
D11=11--GPIO9
D12=12--GPIO10

--LED
led2 = D4;--LED针脚


--常量定义
timer = 2000;--LED闪烁间隔
timer_wifi = 2000
timer_shoot = 500
bullets = 0;--子弹数




--先让LED灯高亮
gpio.mode(led2, gpio.OUTPUT)
gpio.write(led2, gpio.LOW);


--LED灯闪烁变量
ledflash = gpio.LOW;

--wifi状态更新函数,如果wifi连接,LED每隔2秒闪烁;如果wifi断开,LED常亮,wifi自动重连
function updateWifiStatus()
    ip = wifi.sta.getip()
    if ip == nil
    then
        gpio.write(led2, gpio.LOW); 
        print('Setting up WIFI...')
        wifi.setmode(wifi.STATION)
        wifi.sta.config('Netcore_09D8C7', '83315769')
        wifi.sta.autoconnect(1)
    else
        timer = timer_wifi
        gpio.write(led2, ledflash); 
        if ledflash == gpio.HIGH
        then
            ledflash = gpio.LOW
            print(ip..', gpio.LOW')
        else
            ledflash = gpio.HIGH
            print(ip..', gpio.HIGH')
        end
    end
end
--wifi状态更新计时器
tmr.alarm(1,timer,tmr.ALARM_AUTO,updateWifiStatus)

srv=net.createServer(net.TCP, 30)
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.." ESP8266 Web Server";
        buf = buf.."

GPIO2 OFF ON

"; buf = buf.."

GPIO2 Distributive bullets shoot

"; local _on,_off = "","" if(_GET.pin1 == "BTN1")then print('Distributive bullets') tmr.stop(1) tmr.interval(1,timer_shoot) tmr.start(1) bullets = 10 elseif(_GET.pin1 == "BTN2")then print('Shoot'..bullets) bullets = bullets - 1 pin1Shoot() if(bullets
关注
打赏
1660743125
查看更多评论
0.0379s