Ouf, voilà tout fonctionne super bien, aussi bien en USB qu'en TELNET !
This commit is contained in:
@@ -6,30 +6,44 @@ https://github.com/4refr0nt/luatool
|
||||
|
||||
## Description
|
||||
Le petit script python *luatool.py* permet d'automatiser le téléchargement de
|
||||
scripts *.lua* sur un NodeMCU branché sur le port USB.
|
||||
scripts *.lua* sur un NodeMCU branché sur le port USB.<br>
|
||||
Mais il permet aussi et surtout de le faire via WIFI. Pour cela il faut que le petit serveur *telnet* tourne sur le NodeMCU !
|
||||
|
||||
|
||||
## Problématiques
|
||||
La version actuelle datant de 2017 ne fonctionne plus avec les nouveaux firmwares de NodeMCU, il a y un problème de délai au moment de l'initialisation.
|
||||
La version actuelle datant de juillet 2017 ne fonctionne plus avec les nouveaux firmwares de NodeMCU. Il a y un problème au moment de l'initialisation de la connexion série.
|
||||
|
||||
|
||||
## Corrections
|
||||
## Travail effectué
|
||||
* J'ai donc repris le code python et mis un petit délai de 0.5 secondes juste après l'initialisation du port série.
|
||||
|
||||
* J'ai aussi diminué le délai d'attente entre chaque ligne, passé de 0.3 sec à 0.03. Les téléchargement sont donc 10x plus rapides
|
||||
* J'ai aussi diminué le délai d'attente entre chaque ligne, passé de 0.3 sec à 0.03 sec. Les téléchargements sont donc 10x plus rapides
|
||||
|
||||
* J'ai aussi mis un nouveau telnet serveur qui tient compte des tailles maximales des paquets TCP
|
||||
|
||||
* J'ai aussi bien amélioré le script luatool.py (voir le code source)
|
||||
|
||||
## Utilisation
|
||||
Maintenant c'est très facile de télécharger tout un projet dans un NodeMCU. Il suffit simplement de modifier le petit script bash upload.sh, puis de faire:
|
||||
|
||||
## Installation
|
||||
Maintenant c'est très facile de télécharger tout un projet sur un NodeMCU. Il suffit simplement de modifier le petit script bash upload.sh, puis de faire:
|
||||
|
||||
```
|
||||
./upload.sh
|
||||
```
|
||||
S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai !
|
||||
* S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai !<br>
|
||||
* Il est préférable de télécharger en premier les *gros* fichiers .lua !
|
||||
|
||||
|
||||
## Test via WIFI en telnet
|
||||
Après avoir installé tout le *binz* sur le NodeMCU avec le script *upload.sh*, on peut utiliser *luatool.py* via le WIFI.<br>
|
||||
On peut le tester avec le petit script:
|
||||
```
|
||||
./test_toto-sh
|
||||
```
|
||||
|
||||
* Si cela fonctionne, la LED devrait arrêter de clignoter ;-)
|
||||
|
||||
|
||||
|
||||
|
||||
zf191020.1836
|
||||
zf191020.2055
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
version = "0.6.5 zf191020.1932"
|
||||
version = "0.6.5 zf191020.2041"
|
||||
|
||||
print("luatool.py ver " + version)
|
||||
|
||||
@@ -195,24 +195,24 @@ def decidetransport(cliargs):
|
||||
if __name__ == '__main__':
|
||||
# parse arguments or use defaults
|
||||
parser = argparse.ArgumentParser(description='ESP8266 Lua script uploader.')
|
||||
parser.add_argument('-p', '--port', default='/dev/ttyUSB0', help='Device name, default /dev/ttyUSB0')
|
||||
# parser.add_argument('-b', '--baud', default=9600, help='Baudrate, default 9600')
|
||||
parser.add_argument('-b', '--baud', default=115200, help='Baudrate, default 115200')
|
||||
parser.add_argument('-f', '--src', default='main.lua', help='Source file on computer, default main.lua')
|
||||
parser.add_argument('-t', '--dest', default=None, help='Destination file on MCU, default to source file name')
|
||||
parser.add_argument('-c', '--compile', action='store_true', help='Compile lua to lc after upload')
|
||||
parser.add_argument('-r', '--restart', action='store_true', help='Restart MCU after upload')
|
||||
parser.add_argument('-d', '--dofile', action='store_true', help='Run the Lua script after upload')
|
||||
parser.add_argument('-v', '--verbose', action='store_true', help="Show progress messages.")
|
||||
parser.add_argument('-a', '--append', action='store_true', help='Append source file to destination file.')
|
||||
parser.add_argument('-l', '--list', action='store_true', help='List files on device')
|
||||
parser.add_argument('-w', '--wipe', action='store_true', help='Delete all lua/lc files on device.')
|
||||
parser.add_argument('-i', '--id', action='store_true', help='Query the modules chip id.')
|
||||
parser.add_argument('-e', '--echo', action='store_true', help='Echo output of MCU until script is terminated.')
|
||||
parser.add_argument('--bar', action='store_true', help='Show a progress bar for uploads instead of printing each line')
|
||||
parser.add_argument('--delay', default=0.03, help='Delay in seconds between each write, default 0.03 sec.', type=float)
|
||||
parser.add_argument('--delete', default=None, help='Delete a lua/lc file from device.')
|
||||
parser.add_argument('--ip', default=None, help='Connect to a telnet server on the device (--ip IP[:port])')
|
||||
parser.add_argument('--ip', default=None, help='Connect via telnet server (--ip IP[:port])')
|
||||
parser.add_argument('--zrestart', action='store_true', help='Restart the NodeMCU.')
|
||||
parser.add_argument('-a', '--append', action='store_true', help='Append source file to destination file.')
|
||||
parser.add_argument('-b', '--baud', default=115200, help='Baudrate, default 115200')
|
||||
parser.add_argument('-c', '--compile', action='store_true', help='Compile lua to lc after upload')
|
||||
parser.add_argument('-d', '--dofile', action='store_true', help='Run the Lua script after upload')
|
||||
parser.add_argument('-e', '--echo', action='store_true', help='Echo output of MCU until script is terminated.')
|
||||
parser.add_argument('-f', '--src', default='main.lua', help='Source file on computer, default main.lua')
|
||||
parser.add_argument('-i', '--id', action='store_true', help='Query the modules chip id.')
|
||||
parser.add_argument('-l', '--list', action='store_true', help='List files on device')
|
||||
parser.add_argument('-p', '--port', default='/dev/ttyUSB0', help='Device name, default /dev/ttyUSB0')
|
||||
parser.add_argument('-r', '--restart', action='store_true', help='Restart MCU after upload')
|
||||
parser.add_argument('-t', '--dest', default=None, help='Destination file on MCU, default to source file name')
|
||||
parser.add_argument('-v', '--verbose', action='store_true', help="Show progress messages.")
|
||||
parser.add_argument('-w', '--wipe', action='store_true', help='Delete all lua/lc files on device.')
|
||||
args = parser.parse_args()
|
||||
|
||||
transport = decidetransport(args)
|
||||
@@ -224,7 +224,7 @@ if __name__ == '__main__':
|
||||
|
||||
|
||||
if args.list:
|
||||
#zzz191020 Amélioré la sortie du listing des fichiers
|
||||
# zzz191020 Amélioré la sortie du listing des fichiers
|
||||
transport.writeln("print('\\n-----');local l = file.list();for k,v in pairs(l) do print(k..', size:'..v)end;print('-----\\n')\r", 0)
|
||||
while True:
|
||||
char = transport.read(1)
|
||||
@@ -245,6 +245,11 @@ if __name__ == '__main__':
|
||||
print("\n"+id)
|
||||
sys.exit(0)
|
||||
|
||||
# zzz191020 Ajouté la fonction restart seule
|
||||
if args.zrestart:
|
||||
transport.writeln("node.restart()\r")
|
||||
sys.exit(0)
|
||||
|
||||
if args.wipe:
|
||||
transport.writeln("local l = file.list();for k,v in pairs(l) do print(k)end\r", 0)
|
||||
file_list = []
|
||||
@@ -271,6 +276,8 @@ if __name__ == '__main__':
|
||||
|
||||
if args.dest is None:
|
||||
args.dest = basename(args.src)
|
||||
### zzz191020 Affiche le fichier à envoyer
|
||||
print("File: " + args.src)
|
||||
|
||||
# open source file for reading
|
||||
try:
|
||||
|
||||
@@ -1,23 +1,29 @@
|
||||
#!/bin/bash
|
||||
# Petit script pour télécharger facilement tout le binz
|
||||
#zf191020.1957
|
||||
#zf191020.2053
|
||||
|
||||
# S'il y a des erreurs lors d'un téléchargement, il faut simplement augmenter un peu le délai !
|
||||
# Il est préférable de télécharger en premier les *gros* fichiers .lua !
|
||||
|
||||
#ATTENTION: cela efface tout le NodeMCU !
|
||||
|
||||
read -p "ATTENTION, cela va effacer tout le NodeMCU !"
|
||||
read -p "Etes-vous vraiment certain ?"
|
||||
|
||||
chmod +x luatool.py
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 -l
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --zrestart
|
||||
sleep 0.5
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 -w
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 -l
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src boot.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src boot2.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.03 --src flash_led_xfois.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src initz.lua --dest init.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src secrets_energy.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_ap_stop.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_cli_conf.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_cli_start.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.001 --src wifi_info.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --delay 0.06 --src telnet_srv2.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.06 --src telnet_srv2.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src boot.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src boot2.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.03 --src flash_led_xfois.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src secrets_energy.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_ap_stop.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_cli_conf.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_cli_start.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src wifi_info.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --bar --delay 0.001 --src initz.lua --dest init.lua
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 -l
|
||||
|
||||
#./luatool.py --port /dev/cu.wchusbserial1410 -r
|
||||
./luatool.py --port /dev/cu.wchusbserial1410 --zrestart
|
||||
|
||||
Reference in New Issue
Block a user