NodeMCU

NodeMCU

NodeMCU,是一個開源的物聯網平台。 它使用Lua腳本語言編程。該平台基於eLua 開源項目,底層使用ESP8266 sdk 0.9.5版本。該平台使用了很多開源項目, 例如 lua-cjson, spiffs. NodeMCU包含了可以運行在 esp8266 Wi-Fi SoC晶片之上的固件,以及基於ESP-12模組的硬體。

基本介紹

  • 中文名:節點微處理器單元
  • 外文名:NodeMCU
  • 開發者:ESP8266開源社區
  • 作業系統:XTOS
簡介,軟體屬性,編譯固件,下載,常見測試程式,

簡介

NodeMCU,是一個開源的物聯網平台。 它使用Lua腳本語言編程。該平台基於eLua開源項目,底層使用ESP8266 sdk 0.9.5版本。該平台使用了很多開源項目, 例如 lua-cjson, spiffs. NodeMCU包含了可以運行在esp8266Wi-FiSoC晶片之上的固件,以及基於ESP-12模組的硬體。

軟體屬性

該平台基於eLua開源項目,底層使用ESP8266 sdk 0.9.5版本。該平台使用了很多開源項目, 例如 lua-cjson, spiffs. NodeMCU包含了可以運行在esp8266Wi-FiSoC晶片之上的固件,以及基於ESP-12模組的硬體。

編譯固件

本地編譯:
由於nodemcu是基於esp8266開發的固件,所以,在編譯之前需要構建esp8266開發環境,我們可以從源碼構建編譯環境或者使用已經編譯好的二進制檔案,二進制檔案可以從github下載,然後將對於的二進制資料夾加入linux環境變數PATH。
雲編譯:
雲編譯可以線上裁剪固件所包含的一些模組,並做一些其他設定。

下載

下載lua腳本到MCU
  1. 使用nodemcu Studio
NodeMCU
NodeMCU
使用雲服務下載代碼
雲服務主要使用mcunode雲服務連線,並線上開發,不同於本地下載,雲服務下載主要依賴於用戶的瀏覽器,不需要用戶連線usb線就可以遠程下載,並且沒有本地距離的限制。
首先使用本地串口下載兩個lua檔案,然後我們就可以扔掉連線pc的線了。然後訪問mcunode輸入自己定義的id就可以連線了。
然後就可以使用本地一樣的檔案下載和控制服務了。

常見測試程式

NodeMCU實現遠程控制LED燈
NodeMCU實現遠程控制LED燈代碼如下:
wifi.setmode(wifi.STATION)  
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")  
print(wifi.sta.getip())  
led1 = 3  
led2 = 4  
gpio.mode(led1, gpio.OUTPUT)  
gpio.mode(led2, 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 Web Server</h1>";  
        buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>";  
        buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <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)
使用結果:
NodeMCU
nodemcu遠程控制LED燈

相關詞條

熱門詞條

聯絡我們