diff --git a/DeepSleep/ESP-M3/set_time.lua b/DeepSleep/ESP-M3/set_time.lua index f4f1bab..88f1acb 100644 --- a/DeepSleep/ESP-M3/set_time.lua +++ b/DeepSleep/ESP-M3/set_time.lua @@ -1,6 +1,6 @@ -- Scripts pour régler l'horloge quand on est connecté en WIFI -print("\n set_time.lua zf181211.0010 \n") +print("\n set_time.lua zf181212.0841 \n") --f= "wifi_ap_stop.lua" if file.exists(f) then dofile(f) end --f= "wifi_cli_conf.lua" if file.exists(f) then dofile(f) end @@ -16,7 +16,7 @@ function set_time() end function ztime() - tm = rtctime.epoch2cal(rtctime.get()) + tm = rtctime.epoch2cal(rtctime.get()+3600) print(string.format("%04d/%02d/%02d %02d:%02d:%02d", tm["year"], tm["mon"], tm["day"], tm["hour"], tm["min"], tm["sec"])) end diff --git a/DeepSleep/ESP-M3/telnet_srv2.lua b/DeepSleep/ESP-M3/telnet_srv2.lua index b126f2f..16a7deb 100644 --- a/DeepSleep/ESP-M3/telnet_srv2.lua +++ b/DeepSleep/ESP-M3/telnet_srv2.lua @@ -1,7 +1,7 @@ -- Serveur telnet pour connexion en remote WIFI, NOUVELLE VERSION ! -- source: https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/telnet/telnet.lua -print("\n telnet_srv2.lua zf181210.1625 \n") +print("\n telnet_srv2.lua zf181215.1326 \n") local node, table, tmr, wifi, uwrite, tostring = node, table, tmr, wifi, uart.write, tostring @@ -84,5 +84,5 @@ local function telnet_listener(socket) end net.createServer(net.TCP, 180):listen(23, telnet_listener) -print("Telnet server running...\nUsage: telnet -r ip\n") +print("Telnet server running...\nUsage: telnet -rN ip\n") diff --git a/LED_RGB_WS2812/chapeau_led/boot.lua b/LED_RGB_WS2812/chapeau_led/boot.lua index aacafa1..9e291ef 100644 --- a/LED_RGB_WS2812/chapeau_led/boot.lua +++ b/LED_RGB_WS2812/chapeau_led/boot.lua @@ -1,6 +1,6 @@ -- Scripts à charger après le boot pour démarrer son appli -print("\n boot.lua zf181205.2126 \n") +print("\n boot.lua zf181215.1320 \n") function heartbeat() f= "flash_led_xfois.lua" if file.exists(f) then dofile(f) end @@ -14,7 +14,7 @@ end f= "wifi_ap_stop.lua" if file.exists(f) then dofile(f) end f= "wifi_cli_conf.lua" if file.exists(f) then dofile(f) end f= "wifi_cli_start.lua" if file.exists(f) then dofile(f) end ---f= "telnet_srv.lua" if file.exists(f) then dofile(f) end +f= "telnet_srv2.lua" if file.exists(f) then dofile(f) end f= "web_ide2.lua" if file.exists(f) then dofile(f) end f= "az_init_led.lua" if file.exists(f) then dofile(f) end f= "webleds.lua" if file.exists(f) then dofile(f) end diff --git a/LED_RGB_WS2812/chapeau_led/credentials.lua b/LED_RGB_WS2812/chapeau_led/credentials.lua index 0efde32..8a98512 100644 --- a/LED_RGB_WS2812/chapeau_led/credentials.lua +++ b/LED_RGB_WS2812/chapeau_led/credentials.lua @@ -2,7 +2,7 @@ -- pas être exportées sur Internet (github) -- faut donc le mettre ailleurs que dans le dépôt ! -print("\n credential.lua zf181205.1910 \n") +print("\n credentials.lua zf181215.1328 \n") cli_ssid="3g-s7" cli_pwd="12234567" diff --git a/LED_RGB_WS2812/chapeau_led/deploy/dir.lua b/LED_RGB_WS2812/chapeau_led/deploy/dir.lua deleted file mode 100644 index 8bf9414..0000000 --- a/LED_RGB_WS2812/chapeau_led/deploy/dir.lua +++ /dev/null @@ -1,15 +0,0 @@ --- fonction dir() pour afficher les fichiers dans la flash -print("\n dir.lua zf180826.1019 \n") - -function dir() - print("\n-------------------------------") - l=file.list() i=0 - for k,v in pairs(l) do - i=i+v - print(k..string.rep(" ",19-string.len(k)).." : "..v.." bytes") - end - print("-------------------------------") - print('\nUsed: '..i..' bytes\nusage: dofile("file.lua")\n') -end - -dir() diff --git a/LED_RGB_WS2812/chapeau_led/deploy/luatool.py b/LED_RGB_WS2812/chapeau_led/deploy/luatool.py deleted file mode 100755 index e9db586..0000000 --- a/LED_RGB_WS2812/chapeau_led/deploy/luatool.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/env python2 -# -# ESP8266 luatool -# Author e-mail: 4ref0nt@gmail.com -# Site: http://esp8266.ru -# Contributions from: https://github.com/sej7278 -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 51 Franklin -# Street, Fifth Floor, Boston, MA 02110-1301 USA. - -import sys -import serial -from time import sleep -import socket -import argparse -from os.path import basename - - -tqdm_installed = True -try: - from tqdm import tqdm -except ImportError, e: - if e.message == 'No module named tqdm': - tqdm_installed = False - else: - raise - -version = "0.6.4" - - -class TransportError(Exception): - """Custom exception to represent errors with a transport - """ - def __init__(self, message): - self.message = message - - def __str__(self): - return self.message - -class AbstractTransport: - def __init__(self): - raise NotImplementedError('abstract transports cannot be instantiated.') - - def close(self): - raise NotImplementedError('Function not implemented') - - def read(self, length): - raise NotImplementedError('Function not implemented') - - def writeln(self, data, check=1): - raise NotImplementedError('Function not implemented') - - def writer(self, data): - self.writeln("file.writeline([==[" + data + "]==])\r") - - def performcheck(self, expected): - line = '' - char = '' - i = -1 - while char != chr(62): # '>' - char = self.read(1) - if char == '': - raise Exception('No proper answer from MCU') - if char == chr(13) or char == chr(10): # LF or CR - if line != '': - line = line.strip() - if line+'\r' == expected and not args.bar: - sys.stdout.write(" -> ok") - elif line+'\r' != expected: - if line[:4] == "lua:": - sys.stdout.write("\r\n\r\nLua ERROR: %s" % line) - raise Exception('ERROR from Lua interpreter\r\n\r\n') - else: - expected = expected.split("\r")[0] - sys.stdout.write("\r\n\r\nERROR") - sys.stdout.write("\r\n send string : '%s'" % expected) - sys.stdout.write("\r\n expected echo : '%s'" % expected) - sys.stdout.write("\r\n but got answer : '%s'" % line) - sys.stdout.write("\r\n\r\n") - raise Exception('Error sending data to MCU\r\n\r\n') - line = '' - else: - line += char - if char == chr(62) and expected[i] == char: - char = '' - i += 1 - - -class SerialTransport(AbstractTransport): - def __init__(self, port, baud, delay): - self.port = port - self.baud = baud - self.serial = None - self.delay = delay - - try: - self.serial = serial.Serial(port, baud) - except serial.SerialException as e: - raise TransportError(e.strerror) - - self.serial.timeout = 3 - self.serial.interCharTimeout = 3 - - def writeln(self, data, check=1): - if self.serial.inWaiting() > 0: - self.serial.flushInput() - if len(data) > 0 and not args.bar: - sys.stdout.write("\r\n->") - sys.stdout.write(data.split("\r")[0]) - self.serial.write(data) - sleep(self.delay) - if check > 0: - self.performcheck(data) - elif not args.bar: - sys.stdout.write(" -> send without check") - - def read(self, length): - return self.serial.read(length) - - def close(self): - self.serial.flush() - self.serial.close() - - -class TcpSocketTransport(AbstractTransport): - def __init__(self, host, port): - self.host = host - self.port = port - self.socket = None - - try: - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - except socket.error as e: - raise TransportError(e.strerror) - - try: - self.socket.connect((host, port)) - except socket.error as e: - raise TransportError(e.strerror) - # read intro from telnet server (see telnet_srv.lua) - self.socket.recv(50) - - def writeln(self, data, check=1): - if len(data) > 0 and not args.bar: - sys.stdout.write("\r\n->") - sys.stdout.write(data.split("\r")[0]) - self.socket.sendall(data) - if check > 0: - self.performcheck(data) - elif not args.bar: - sys.stdout.write(" -> send without check") - - def read(self, length): - return self.socket.recv(length) - - def close(self): - self.socket.close() - - -def decidetransport(cliargs): - if cliargs.ip: - data = cliargs.ip.split(':') - host = data[0] - if len(data) == 2: - port = int(data[1]) - else: - port = 23 - return TcpSocketTransport(host, port) - else: - return SerialTransport(cliargs.port, cliargs.baud, cliargs.delay) - - -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('-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.3, help='Delay in seconds between each write.', 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])') - args = parser.parse_args() - - transport = decidetransport(args) - - if args.bar and not tqdm_installed: - sys.stdout.write("You must install the tqdm library to use the bar feature\n") - sys.stdout.write("To install, at the prompt type: \"pip install tqdm\"\n") - sys.exit(0) - - - if args.list: - transport.writeln("local l = file.list();for k,v in pairs(l) do print('name:'..k..', size:'..v)end\r", 0) - while True: - char = transport.read(1) - if char == '' or char == chr(62): - break - sys.stdout.write(char) - sys.exit(0) - - if args.id: - transport.writeln("=node.chipid()\r", 0) - id="" - while True: - char = transport.read(1) - if char == '' or char == chr(62): - break - if char.isdigit(): - id += char - print("\n"+id) - 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 = [] - fn = "" - while True: - char = transport.read(1) - if char == '' or char == chr(62): - break - if char not in ['\r', '\n']: - fn += char - else: - if fn: - file_list.append(fn.strip()) - fn = '' - for fn in file_list[1:]: # first line is the list command sent to device - if args.verbose: - sys.stderr.write("Delete file {} from device.\r\n".format(fn)) - transport.writeln("file.remove(\"" + fn + "\")\r") - sys.exit(0) - - if args.delete: - transport.writeln("file.remove(\"" + args.delete + "\")\r") - sys.exit(0) - - if args.dest is None: - args.dest = basename(args.src) - - # open source file for reading - try: - try: - f = open(args.src, "rt") - except: - import os - base_dir = os.path.dirname(os.path.realpath(__file__)) - f = open(os.path.join(base_dir, args.src), "rt") - os.chdir(base_dir) - except: - sys.stderr.write("Could not open input file \"%s\"\n" % args.src) - sys.exit(1) - - # Verify the selected file will not exceed the size of the serial buffer. - # The size of the buffer is 256. This script does not accept files with - # lines longer than 230 characters to have some room for command overhead. - num_lines = 0 - for ln in f: - if len(ln) > 230: - sys.stderr.write("File \"%s\" contains a line with more than 240 " - "characters. This exceeds the size of the serial buffer.\n" - % args.src) - f.close() - sys.exit(1) - num_lines += 1 - - # Go back to the beginning of the file after verifying it has the correct - # line length - f.seek(0) - - # set serial timeout - if args.verbose: - sys.stderr.write("Upload starting\r\n") - - # remove existing file on device - if args.append==False: - if args.verbose: - sys.stderr.write("Stage 1. Deleting old file from flash memory") - transport.writeln("file.open(\"" + args.dest + "\", \"w\")\r") - transport.writeln("file.close()\r") - transport.writeln("file.remove(\"" + args.dest + "\")\r") - else: - if args.verbose: - sys.stderr.write("[SKIPPED] Stage 1. Deleting old file from flash memory [SKIPPED]") - - - # read source file line by line and write to device - if args.verbose: - sys.stderr.write("\r\nStage 2. Creating file in flash memory and write first line") - if args.append: - transport.writeln("file.open(\"" + args.dest + "\", \"a+\")\r") - else: - transport.writeln("file.open(\"" + args.dest + "\", \"w+\")\r") - line = f.readline() - if args.verbose: - sys.stderr.write("\r\nStage 3. Start writing data to flash memory...") - if args.bar: - for i in tqdm(range(0, num_lines)): - transport.writer(line.strip()) - line = f.readline() - else: - while line != '': - transport.writer(line.strip()) - line = f.readline() - - # close both files - f.close() - if args.verbose: - sys.stderr.write("\r\nStage 4. Flush data and closing file") - transport.writeln("file.flush()\r") - transport.writeln("file.close()\r") - - # compile? - if args.compile: - if args.verbose: - sys.stderr.write("\r\nStage 5. Compiling") - transport.writeln("node.compile(\"" + args.dest + "\")\r") - transport.writeln("file.remove(\"" + args.dest + "\")\r") - - # restart or dofile - if args.restart: - transport.writeln("node.restart()\r") - if args.dofile: # never exec if restart=1 - transport.writeln("dofile(\"" + args.dest + "\")\r", 0) - - if args.echo: - if args.verbose: - sys.stderr.write("\r\nEchoing MCU output, press Ctrl-C to exit") - while True: - sys.stdout.write(transport.read(1)) - - # close serial port - transport.close() - - # flush screen - sys.stdout.flush() - sys.stderr.flush() - if not args.bar: - sys.stderr.write("\r\n--->>> All done <<<---\r\n") diff --git a/LED_RGB_WS2812/chapeau_led/goodies/just_test_6x.lua b/LED_RGB_WS2812/chapeau_led/goodies/just_test_6x.lua new file mode 100644 index 0000000..9c8abe0 --- /dev/null +++ b/LED_RGB_WS2812/chapeau_led/goodies/just_test_6x.lua @@ -0,0 +1,21 @@ +-- Scripts juste pour tester 6x LED RGB +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n just_test_3x.lua zf181106.1458 \n") + + +print("Initializing LED strip...") +ws2812.init() +ws2812_effects.stop() +strip_buffer = ws2812.newBuffer(6, 3) +ws2812.write(string.char(255, 0, 0, 0, 255, 0, 0, 0, 255)) -- RGB positionnement naturel + +ws2812.write(string.char(0, 255, 0, 0, 0, 255, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255)) -- GBR and CMY en GBR WS2813! + +ws2812.write(string.char(0, 255, 0, 0, 0, 255/3, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255)) -- vert compensé GBR and CMY en GBR WS2813! + +ws2812.write(string.char(128, 255, 128, 200, 200, 255, 255, 200, 200, 255, 255, 255, 40, 40, 40, 5, 5, 5)) -- White RGB & White 100/50/10% + +ws2812.write(string.char(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)) -- LED OFF + diff --git a/LED_RGB_WS2812/chapeau_led/index.html b/LED_RGB_WS2812/chapeau_led/index.html index 59cf3db..7daf968 100644 --- a/LED_RGB_WS2812/chapeau_led/index.html +++ b/LED_RGB_WS2812/chapeau_led/index.html @@ -3,7 +3,7 @@ -LED RGB zf181205.2048 +LED RGB