• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

4refr0nt/luatool: Small python script for loading init.lua to ESP8266 nodemcu fi ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

4refr0nt/luatool

开源软件地址(OpenSource Url):

https://github.com/4refr0nt/luatool

开源编程语言(OpenSource Language):

Python 89.4%

开源软件介绍(OpenSource Introduction):

luatool

Join the chat at https://gitter.im/4refr0nt/luatool

Tool for loading Lua-based scripts from file to ESP8266 with nodemcu firmware

Summary

  • Allow easy uploading of any Lua-based script into the ESP8266 flash memory with NodeMcu firmware

Other projects

Another my project for NodeMCU: ESPlorer Integrated Development Environment (IDE) for ESP8266 developers

Requirements

python 2.7, pyserial (as for esptool)

Discuss

http://esp8266.ru

Changelog

v0.6.4

  • add TCP as possible transport to connect to the module using the supplied telnet server code
  • add --id/-i to query the ID of a module
  • add --delete to remove a given file from the module

v0.6.3

  • fix download bug

v0.6.2

  • added support for nested strings
  • added check to verify the UART buffer will not overflow.

v0.6.1

  • put short versions of arguments back, see issue #2
  • flush serial port, fixes issue #1

v0.6

  • switched to argparse from getopts, renamed some arguments
  • removed call-home from main.lua
  • added --verbose option to show debugging
  • added comments, fixed some grammar, updated README
  • chmod 755'd the script so its runnable on POSIX
  • checked with nodemcu 0.9.4 20141222

v0.5

  • add new option -r, --restart : auto restart module, send command "node.restart()", after file load
  • add new option -d, --dofile : auto run, send command "dofile('file')", after file load
  • delete line "lua script loaded by luatool" for correct line number, lines number now equal lines number in original file
  • add 0.3 sec delay after write

v0.4

  • now check proper answer from NodeMCU after send data. After send string we expect echo line, if not got it, then error message displayed "Error sending data to LuaMCU"
  • if lua interpreter error received, then error message displayed "ERROR from LUA interpreter lua:..."
  • add heap info and chip id to example file init.lua
  • some changes in example file main.lua

Run

Typical use:

Edit file init.lua and set SSID and MasterPassword Then disconnect any terminal programm, and at command prompt type

./luatool.py --port /dev/ttyUSB0 --src init.lua --dest init.lua --verbose

Downloader start
Set timeout 3
Set interCharTimeout 3
Stage 1. Deleting old file from flash memory
->file.remove("init.lua") -> ok
.....................................
->file.close() -> ok
--->>> All done <<<---

./luatool.py

->file.open("main.lua", "w") -> ok
->file.close() -> ok
->file.remove("main.lua") -> ok
->file.open("main.lua", "w+") -> ok
->file.writeline([[tmr.alarm(0, 1000, 1, function()]]) -> ok
->file.writeline([[if wifi.sta.getip() == nil then]]) -> ok
->file.writeline([[print("Connecting to AP...")]]) -> ok
->file.writeline([[else]]) -> ok
->file.writeline([[print('IP: ',wifi.sta.getip())]]) -> ok
->file.writeline([[tmr.stop(0)]]) -> ok
->file.writeline([[end]]) -> ok
->file.writeline([[end)]]) -> ok
->file.flush() -> ok
->file.close() -> ok
--->>> All done <<<---

Connect you terminal program and send command (or you can use --restart option, when loading file init.lua)

node.restart()

after reboot:

lua script loaded by luatool 0.4
init.lua ver 1.2
set mode=STATION (mode=1)
MAC: 	18-FE-34-98-D4-B5
chip: 	10015925
heap: 	18464
set wifi
NodeMcu 0.9.2 build 20141125  powered by Lua 5.1.4

send command (or you can use --dofile option, when loading file main.lua)

dofile("main.lua")

connects to your AP and displays MCU's IP address

> dofile("main.lua")
> IP:   192.168.1.99

Examples:

./luatool.py --port COM4 --src file.lua --dest main.lua --baud 9600
  • --port - COM1-COM128, default /dev/ttyUSB0
  • --baud - baud rate, default 9600
  • --src - source disk file, default main.lua
  • --dest - destination flash file, default main.lua

If use --dest option with parameter "init.lua" - autostart init.lua after boot. Be carefully about bugs in lua-script - may cause a boot loop. Use this option after full testing only.

Running without any parameters: load file "main.lua" via port /dev/ttyUSB0:9600 and place code into "main.lua" file into flash.

./luatool.py

after loading file to flash you can connect any terminal programm to ESP8266 and type:

dofile("main.lua") 

for executing you lua script

If you want load and autoexecute file main.lua, command dofile("main.lua"), you can use --dofile option

./luatool.py --dofile

Typically, place wifi.setmode, wifi.sta.config commands to init.lua file for connecting to you AP with low risk of boot loop, and other code place to main.lua for manually start and debug.

Alternative use:

This requires a nodemcu based module already configured to meet the following conditions:

  • the module is accessible via TCP/IP
  • the telnet server (file: telnet_srv.lua) is running

Now the option --ip IP[:PORT] enables you to specify an IP and optionally a port (if changed for the telnet server) that will be used to communicate with the module via TCP/IP.

Examples:

./luatool.py --ip 192.168.12.34 --src file.lua --dest test.lua --dofile 
  • --ip - the IP to connect to. Note that no Port is given, so 23 will be used (can be changed in telnet_srv.lua)
  • --src - source disk file, default main.lua
  • --dest - destination flash file, default main.lua
  • --dofile - run the just uploaded file



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap