<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 免費申請的匯思銳模塊燒入NODEMCU測試成功(附源碼)

    作者:niwusong | 更新時間:2017-06-08 | 瀏覽量:1774

    自認為比較符合邏輯通用的語言思路,做參考,原論壇中匯思銳代碼是錯誤的,可能是故意寫錯的。

    還有傳感器的程序,見另外的源代碼程序,還沒有把這兩個整合。

    --init.lua
     if true then  --change to if true 
        ssid1="free"
        password1="??"
        ssid2="TP"
        password2="1???1"
        ssid3="freewifi"
        password3="********"
         g_mac=nil   
         print("set up wifi mode")
        wifi.setmode(wifi.STATION)
        wifi.sta.config(ssid3,password3)  
         wifi.sta.connect()
        cnt = 0
        tmr.alarm(1, 1000, tmr.ALARM_AUTO, function() 
      if (wifi.sta.getip() == nil) and (cnt < 20) then 
                print("IP1 unavaiable, Waiting...")
                cnt = cnt + 1   
         else    
            
                tmr.stop(1)
      if (cnt < 60) then print("IP:"..wifi.sta.getip())
                    MAC=wifi.sta.getmac()
                    mac=string.gsub(MAC,":","")
                    g_mac = mac
                    print("MAC:"..mac)
                   
                    dofile("runtime.lua") 
         else   

            
                end     
               end 
         end)
    else  
        print("\n")
        print("Please edit 'init.lua' first:")
        print("Step 1: Modify wifi.sta.config() function in line 5 according settings of your wireless router.")
        print("Step 2: Change the 'if false' statement in line 1 to 'if true'.")
          node.restart()
    end

    --config.lua
    host = host or "www.eqytg.org"
    port = port or 8181
    DEVICEID = "1347"
    APIKEY = "09dd54b61"
    LED1 = 2
    LED2 = 5
    LED3 = 6
    LED4 = 1

    --checkin.lua
    if r.M == "WELCOME TO BIGIOT" then       --收到連接正常,發送checkin
        ok, s = pcall(cjson.encode, {M="checkin",ID=DEVICEID,K=APIKEY})  
        if ok then   
          print(s)
        else
          print("failed to encode!")
        end
        cu:send( s.."\n" )
        bLive=0
        --定時心跳,防止掉線
        tmr.alarm(2, 40000, 1, function()
            --如果標記為1,表示未收到上次的心跳返回,重啟
            if bLive==3 then
                node.restart()
            end
            ok, ticket = pcall(cjson.encode, {M="isOL",ID="D"..DEVICEID})
            print(ticket)
            cu:send(ticket.."\n" )
            --發送后將標記置為1
            bLive=bLive+1        
        end)
    end
    if r.M=="checkinok" then
        bOnLine=1
    end


    --runtime.lua
    dofile("config.lua")

    bLive=0
    bOnLine=0

    gpio.mode(LED1,gpio.OUTPUT)
    gpio.mode(LED2,gpio.OUTPUT)
    gpio.mode(LED3,gpio.OUTPUT)
    gpio.mode(LED4,gpio.OUTPUT)

    gpio.write(LED1, gpio.HIGH)
    gpio.write(LED2, gpio.LOW)
    gpio.write(LED3, gpio.HIGH)
    gpio.write(LED4, gpio.HIGH)


    cu = net.createConnection(net.TCP)
    cu:connect(port, host)

    cu:on("receive", function(cu, c) 
        print(c)
        r = cjson.decode(c)

        if r.M=="isOL" then
            bLive=0 
        end
        tmr.alarm(1, 10000, 1, function()
        
            dofile("checkin.lua")
     
              print(c)
        end)
      
        dofile("sayCommand.lua")

    end)

     --sayCommand.lua
    gpio.mode(config.LED1,gpio.OUTPUT)
    gpio.mode(config.LED2,gpio.OUTPUT)
    gpio.mode(config.LED3,gpio.OUTPUT)
    gpio.mode(config.LED4,gpio.OUTPUT)

    if r.M == "say" then     
        local commander=r.C    
        if commander == "play" then  
            print("play:LED1 turn on!")    
            gpio.write(config.LED1,gpio.LOW) 
            ok, played = pcall(cjson.encode, {M="say",ID=r.ID,C="play:LED1 turn on!"})
            cu:send( played.."\n" )
        elseif commander == "stop" then 
            print("stop:LED1 turn off!")         
            gpio.write(config.LED1,gpio.HIGH)
            ok, stoped = pcall(cjson.encode, {M="say",ID=r.ID,C="stop:LED1 turn off!"})
            cu:send( stoped.."\n" )     
           --------1--------
       elseif commander == "up" then 
            print("up:LED2 turn on!") 
            gpio.write(config.LED2,gpio.HIGH)
            ok, uped = pcall(cjson.encode, {M="say",ID=r.ID,C="up:LED2 turn on!"})
            cu:send( uped.."\n" )  
       elseif commander == "plus" then  
            print("plus:LED2 turn off!")       
            gpio.write(config.LED2,gpio.LOW)
            ok, plused = pcall(cjson.encode, {M="say",ID=r.ID,C="plus:LED2 turn off!"})
            cu:send( plused.."\n" )  
            --------2--------
       elseif commander == "pause" then  
            print("pause:LED3 turn on!") 
            gpio.write(config.LED3,gpio.LOW)
            ok, paused = pcall(cjson.encode, {M="say",ID=r.ID,C="pause:LED3 turn on!"})
            cu:send( paused.."\n" )  
       elseif commander == "right" then 
            print("right:LED3 turn off!")        
            gpio.write(config.LED3,gpio.HIGH)
            ok, righted = pcall(cjson.encode, {M="say",ID=r.ID,C="right:LED3 turn off!"})
            cu:send( righted.."\n" )  
            --------3--------
       elseif commander == "down" then 
            print("right:LED4 turn on!")        
            gpio.write(config.LED4,gpio.LOW)
            ok, downed = pcall(cjson.encode, {M="say",ID=r.ID,C="down:LED4 turn on!"})
            cu:send( downed.."\n" ) 
       elseif commander == "forward" then 
            print("forward:LED4 turn off!")        
            gpio.write(config.LED4,gpio.HIGH)
            ok, forward = pcall(cjson.encode, {M="say",ID=r.ID,C="forward:LED4 turn off!"})
            cu:send( forward.."\n" )  
            --------4--------        
       elseif commander == "offOn" then 
            print("offOn:LED ALL off!")        
            gpio.write(config.LED1,gpio.HIGH)
            gpio.write(config.LED2,gpio.LOW)
            gpio.write(config.LED3,gpio.HIGH)
            gpio.write(config.LED4,gpio.HIGH)
            ok, offOned = pcall(cjson.encode, {M="say",ID=r.ID,C="offOn:LED ALL off!"})
            cu:send( offOned.."\n" )         
       elseif commander == "minus" then 
            print("minus:LED ALL off!")        
            gpio.write(config.LED1,gpio.LOW)
            gpio.write(config.LED2,gpio.HIGH)
            gpio.write(config.LED3,gpio.LOW)
            gpio.write(config.LED4,gpio.LOW)
            ok, minused = pcall(cjson.encode, {M="say",ID=r.ID,C="minus:LED ALL ON!"})
            cu:send( minused.."\n" ) 
            --------5--------
       elseif commander == "left" then 
            print("^~^left^~^")        
           
            ok, lefted = pcall(cjson.encode, {M="say",ID=r.ID,C="^~^left^~^"})
            cu:send( lefted.."\n" ) 
       elseif commander == "backward" then 
            print("^~^backward^~^")      
           
            ok, forwarded = pcall(cjson.encode, {M="say",ID=r.ID,C="^~^forward^~^"})
            cu:send( forwarded.."\n" )     
        end  
    end

     


    評論:共2條

    惟獨113 評論于:2017-11-07 12:36:20
    666
    a18222970 評論于:2017-11-18 19:24:30
    寫的好,不過這個能在WIFI掉線重連的情況下鏈接服務器么?
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看