t = utarfile.TarFile(fileobj = res.raw) for f in t: print("Extracting {}: {}".format(f.type, f.name)) if f.type == utarfile.DIRTYPE: if f.name[-1:] == '/': name = f.name[:-1] else: name = f.name if not exists(name): os.mkdir(name) else: extracted = t.extractfile(f) with open(f.name, "wb") as fobj: shutil.copyfileobj(extracted, fobj) def shutil(): print("System download > (initial octopus modules)") import upip print("Installing shutil") upip.install("micropython-shutil") print("Running deploy") shutil() deplUrl="https://octopusengine.org/download/micropython/stable.tar" deploy(deplUrl)
def setup(): mainOctopus() print("Hello, this will help you initialize your ESP") print(ver) print("Press Ctrl+C to abort") # TODO improve this # prepare directory if 'config' not in uos.listdir(): uos.makedirs('config') run= True while run: sele = setupMenu() if sele == "e": print("Setup - exit >") time.sleep_ms(2000) print("all OK, press CTRL+D to soft reboot") run = False if sele == "si": #system_info() from util.sys_info import sys_info sys_info() if sele == "ds": print("Device setting:") print(" board_type | soc_type (system on the board)") i=0 for di in devices: print(str(i)+": "+str(di[0]) + " | " + str(di[1])) i=i+1 print() sd = input("select: ") #print(str(devices[int(sd)])) print("> " + str(devices[int(sd)][0]) + " | " + str(devices[int(sd)][1])) dc = {} dc['board_type'] = str(devices[int(sd)][0]) #input("Board type ('oLAB RobotBoard1' or 'oLAB IoTBoard1'): ") dc['soc_type'] = str(devices[int(sd)][1]) #input("SoC type ('esp32' or 'esp8266'): ") print("Writing to file config/device.json") with open('config/device.json', 'w') as f: ujson.dump(dc, f) # ujson.dump(wc, f, ensure_ascii=False, indent=4) if sele == "sw": print("Set WiFi >") print() wc = {} wc['wifi_ssid'] = input("SSID: ") wc['wifi_pass'] = input("PASSWORD: "******"Writing to file config/wifi.json") with open('config/wifi.json', 'w') as f: ujson.dump(wc, f) # ujson.dump(wc, f, ensure_ascii=False, indent=4) if sele == "cw": print("Connect WiFi >") from util.wifi_connect import read_wifi_config, WiFiConnect time.sleep_ms(1000) wifi_config = read_wifi_config() print("config for: " + wifi_config["wifi_ssid"]) w = WiFiConnect() w.connect(wifi_config["wifi_ssid"], wifi_config["wifi_pass"]) print("WiFi: OK") if sele == "mq": print("Set mqtt >") print() mq = {} mq['mqtt_broker_ip'] = input("BROKER IP: ") mq['mqtt_ssl'] = input("> SSL (0/1): ") mq['mqtt_port'] = input("> PORT (1883/8883/?): ") mq['mqtt_clientid_prefix'] = input("CLIENT PREFIX: ") mq['mqtt_root_topic'] = input("ROOT TOPIC: ") # TODO improve this if 'config' not in uos.listdir(): uos.makedirs('config') print("Writing to file config/mqtt.json") with open('config/mqtt.json', 'w') as f: ujson.dump(mq, f) if sele == "st": print("Time setting >") rtc = machine.RTC() print(str(rtc.datetime())) setdatetime = input("input 6 numbers - format: RRRRR,M,D,wd,h,m > ")+(",0,0") dt_str = setdatetime.split(",") print(str(dt_str)) dt_int = [int(numeric_string) for numeric_string in dt_str] rtc.init(dt_int) print(str(rtc.datetime())) if sele == "sdp": shutil() deplUrl = "http://iot.petrkr.net/olab/latest.tar" deploy(deplUrl) if sele == "sdo": shutil() #deplUrl = "http://octopuslab.cz/download/latest.tar" deplUrl = "http://octopusengine.org/download/latest.tar" deploy(deplUrl) if sele == "o": from util.octopus import octopus octopus()
def setup(): printOctopus() print("Hello, this will help you initialize your ESP") print("ver: " + ver + " (c)octopusLAB") print("Press Ctrl+C to abort") # TODO improve this # prepare directory if 'config' not in uos.listdir(): uos.mkdir('config') run = True while run: sele = setupMenu() if sele == "q": print("all OK, press CTRL+D to soft reboot") run = False if sele == "w": from utils.wifi_connect import WiFiConnect w = WiFiConnect() sel_w = wifiMenu() if sel_w == "a": wifi_ssid = input("SSID: ") wifi_pass = input("PASSWORD: "******"r": wifi_ssid = input("SSID: ") w.remove_network(wifi_ssid) if sel_w == "s": print("Saved wifi networks") for k, v in w.config['networks'].items(): print("SSID: {0}".format(k)) if sele == "cw": print("Connect WiFi >") from utils.wifi_connect import WiFiConnect w = WiFiConnect() if w.connect(): print("WiFi: OK") else: print("WiFi: Connect error, check configuration") if sele == "cl": print("Connect LAN >") import network if "ETH_CLOCK_GPIO17_OUT" in dir(network): lan = network.LAN(mdc=machine.Pin(23), mdio=machine.Pin(18), phy_type=network.PHY_LAN8720, phy_addr=1, clock_mode=network.ETH_CLOCK_GPIO17_OUT) else: lan = network.LAN(mdc=machine.Pin(23), mdio=machine.Pin(18), phy_type=network.PHY_LAN8720, phy_addr=1) lan.active(1) retry = 0 while not lan.isconnected() or lan.ifconfig()[0] is '0.0.0.0': retry += 1 time.sleep_ms(500) if retry > 20: break if lan.isconnected(): print("LAN: OK") else: print("LAN: Connect error, check cable or DHCP server") if sele == "sd": shutil() deplUrl = "https://octopusengine.org/download/micropython/stable.tar" deploy(deplUrl)
def setup(): mainOctopus() print("Hello, this will help you initialize your ESP") print("ver: " + ver + " (c)octopusLAB") print("Press Ctrl+C to abort") # TODO improve this # prepare directory if 'config' not in uos.listdir(): uos.mkdir('config') run = True while run: sele = setupMenu() if sele == "q": print("Setup - quit >") time.sleep_ms(1000) print("all OK, press CTRL+D to soft reboot") run = False if sele == "si": #system_info() from util.sys_info import sys_info sys_info() if sele == "ds": print("Device setting:") print(" board_type | soc_type (system on the board)") i = 0 for di in devices: print(str(i) + ": " + str(di[0]) + " | " + str(di[1])) i = i + 1 print() sd = input("select: ") #print(str(devices[int(sd)])) print("> " + str(devices[int(sd)][0]) + " | " + str(devices[int(sd)][1])) dc = {} dc['board_type'] = str( devices[int(sd)][0] ) #input("Board type ('oLAB RobotBoard1' or 'oLAB IoTBoard1'): ") dc['soc_type'] = str(devices[int( sd)][1]) #input("SoC type ('esp32' or 'esp8266'): ") print("Writing to file config/device.json") with open('config/device.json', 'w') as f: ujson.dump(dc, f) # ujson.dump(wc, f, ensure_ascii=False, indent=4) if sele == "ios": print("I/O setting:") # io menu ioMenu() if sele == "iot": print("Testing I/O") from util import io_test io_test.all() if sele == "w": from util.wifi_connect import WiFiConnect w = WiFiConnect() sel_w = wifiMenu() if sel_w == "a": wifi_ssid = input("SSID: ") wifi_pass = input("PASSWORD: "******"r": wifi_ssid = input("SSID: ") w.remove_network(wifi_ssid) if sel_w == "s": print("Saved wifi networks") for k, v in w.config['networks'].items(): print("SSID: {0}".format(k)) if sele == "cw": print("Connect WiFi >") from util.wifi_connect import WiFiConnect w = WiFiConnect() if w.connect(): print("WiFi: OK") else: print("WiFi: Connect error, check configuration") if sele == "cl": print("Connect LAN >") import network lan = network.LAN(mdc=machine.Pin(23), mdio=machine.Pin(18), phy_type=network.PHY_LAN8720, phy_addr=1, clock_mode=network.ETH_CLOCK_GPIO17_OUT) lan.active(1) retry = 0 while not lan.isconnected() or lan.ifconfig()[0] is '0.0.0.0': retry += 1 time.sleep_ms(500) if retry > 20: break if lan.isconnected(): print("LAN: OK") else: print("LAN: Connect error, check cable or DHCP server") if sele == "mq": print("mqtt setup >") try: print() from util.mqtt import mqtt mqtt() except: print("Err.mqtt() or 'util.mqtt.py' does not exist") if sele == "st": print("Time setting >") rtc = machine.RTC() print(str(rtc.datetime())) setdatetime = input( "input 6 numbers - format: RRRRR,M,D,wd,h,m > ") + (",0,0") dt_str = setdatetime.split(",") print(str(dt_str)) dt_int = [int(numeric_string) for numeric_string in dt_str] rtc.init(dt_int) print(str(rtc.datetime())) if sele == "sd": shutil() deplUrl = "https://octopusengine.org/download/micropython/stable.tar" deploy(deplUrl) if sele == "sde": shutil() deplUrl = "https://octopusengine.org/download/micropython/examples.tar" deploy(deplUrl) if sele == "sdp": shutil() deplUrl = "http://iot.petrkr.net/olab/latest.tar" deploy(deplUrl) if sele == "sdo": shutil() deplUrl = "https://octopusengine.org/download/latest.tar" deploy(deplUrl) if sele == "sdh": shutil() deplUrl = "https://octopusengine.org/download/hydroponics.tar" deploy(deplUrl) if sele == "wr": print("under reconstruction <") import esp esp.osdebug(None) import webrepl webrepl.start()