def reset(force=False, reply=5, is_hard=True): if force == False and __class__.isconnected(): return True try: # IO map for ESP32 on Maixduino fm.register(25,fm.fpioa.GPIOHS10)#cs fm.register(8,fm.fpioa.GPIOHS11)#rst fm.register(9,fm.fpioa.GPIOHS12)#rdy if is_hard: print("Use Hareware SPI for other maixduino") fm.register(28,fm.fpioa.SPI1_D0, force=True)#mosi fm.register(26,fm.fpioa.SPI1_D1, force=True)#miso fm.register(27,fm.fpioa.SPI1_SCLK, force=True)#sclk __class__.nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10, rst=fm.fpioa.GPIOHS11, rdy=fm.fpioa.GPIOHS12, spi=1) print("ESP32_SPI firmware version:", __class__.nic.version()) else: # Running within 3 seconds of power-up can cause an SD load error print("Use Software SPI for other hardware") fm.register(28,fm.fpioa.GPIOHS13, force=True)#mosi fm.register(26,fm.fpioa.GPIOHS14, force=True)#miso fm.register(27,fm.fpioa.GPIOHS15, force=True)#sclk __class__.nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10,rst=fm.fpioa.GPIOHS11,rdy=fm.fpioa.GPIOHS12, mosi=fm.fpioa.GPIOHS13,miso=fm.fpioa.GPIOHS14,sclk=fm.fpioa.GPIOHS15) print("ESP32_SPI firmware version:", __class__.nic.version()) # time.sleep_ms(500) # wait at ready to connect except Exception as e: print(e) return False return True
def main(): # IO map for ESP32 on Maixduino fm.register(25, fm.fpioa.GPIOHS10) #cs fm.register(8, fm.fpioa.GPIOHS11) #rst fm.register(9, fm.fpioa.GPIOHS12) #rdy fm.register(28, fm.fpioa.GPIOHS13) #mosi fm.register(26, fm.fpioa.GPIOHS14) #miso fm.register(27, fm.fpioa.GPIOHS15) #sclk nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10, rst=fm.fpioa.GPIOHS11, rdy=fm.fpioa.GPIOHS12, mosi=fm.fpioa.GPIOHS13, miso=fm.fpioa.GPIOHS14, sclk=fm.fpioa.GPIOHS15) print("ESP32_SPI firmware version:", nic.version()) nic.connect(WIFI_SSID, WIFI_PASSWD) print(nic.ifconfig()) print(nic.isconnected()) headers = {"User-Agent": "MaixPy"} res = get("http://dl.sipeed.com/MAIX/MaixPy/assets/Alice.jpg", headers=headers) print("response:", res.status_code) content = res.content print("get img, length:{}, should be:{}".format( len(content), int(res.headers['Content-Length']))) img = image.Image(content, from_bytes=True) lcd.init() lcd.display(img)
def esp32_init(force=False): """ Initialize Maixduino ESP32 with IO and SPI assignments :return: esp32 network object or NONE if a device already exists """ esp32 = None exists = False # check if the ESP32 device was already initialized if not force: for key, val in locals().items(): if isinstance(val, network.ESP32_SPI): exists = True print("An ESP32 device was already setup under name: ", key) esp32 = val # if not initialized or we want to re-initialize if not exists: # IO map for ESP32 on Maixduino fm.register(25, fm.fpioa.GPIOHS10) # cs fm.register(8, fm.fpioa.GPIOHS11) # rst fm.register(9, fm.fpioa.GPIOHS12) # rdy fm.register(28, fm.fpioa.GPIOHS13) # mosi fm.register(26, fm.fpioa.GPIOHS14) # miso fm.register(27, fm.fpioa.GPIOHS15) # sclk esp32 = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10, rst=fm.fpioa.GPIOHS11, rdy=fm.fpioa.GPIOHS12, mosi=fm.fpioa.GPIOHS13, miso=fm.fpioa.GPIOHS14, sclk=fm.fpioa.GPIOHS15) return esp32
class wifi(): # IO map for ESP32 on Maixduino fm.register(25,fm.fpioa.GPIOHS10)#cs fm.register(8,fm.fpioa.GPIOHS11)#rst fm.register(9,fm.fpioa.GPIOHS12)#rdy print("Use Hareware SPI for other maixduino") fm.register(28,fm.fpioa.SPI1_D0, force=True)#mosi fm.register(26,fm.fpioa.SPI1_D1, force=True)#miso fm.register(27,fm.fpioa.SPI1_SCLK, force=True)#sclk nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10, rst=fm.fpioa.GPIOHS11, rdy=fm.fpioa.GPIOHS12, spi=1)
def __init__(self): fm.register(25, fm.fpioa.GPIOHS25) #cs fm.register(8, fm.fpioa.GPIOHS8) #rst fm.register(9, fm.fpioa.GPIOHS9) #rdy print("Use hardware SPI for other maixduino") fm.register(28, fm.fpioa.SPI1_D0, force=True) #mosi fm.register(26, fm.fpioa.SPI1_D1, force=True) #miso fm.register(27, fm.fpioa.SPI1_SCLK, force=True) #sclk time.sleep(1.5) self.nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS25, rst=fm.fpioa.GPIOHS8, rdy=fm.fpioa.GPIOHS9, spi=1)
from fpioa_manager import fm, board_info # IO map for ESP32 on Maixduino fm.register(25, fm.fpioa.GPIOHS10) #SPI cs fm.register(8, fm.fpioa.GPIOHS11) #rst fm.register(9, fm.fpioa.GPIOHS12) #rdy fm.register(28, fm.fpioa.GPIOHS13) #SPI mosi fm.register(26, fm.fpioa.GPIOHS14) #SPI miso fm.register(27, fm.fpioa.GPIOHS15) #SPI sclk lcd.init() lcd.clear() nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS10, rst=fm.fpioa.GPIOHS11, rdy=fm.fpioa.GPIOHS12, mosi=fm.fpioa.GPIOHS13, miso=fm.fpioa.GPIOHS14, sclk=fm.fpioa.GPIOHS15) print("ESP32_SPI firmware version:", nic.version()) enc_str = ["OPEN", "", "WPA PSK", "WPA2 PSK", "WPA/WPA2 PSK"] aps = nic.scan() cnt = 0 for ap in aps: enc_1 = "SSID:{:^20}".format(ap[0]) enc_2 = " ENC:{:>5} , RSSI:{:^20}".format(enc_str[ap[1]], ap[2]) lcd.draw_string(0, 0 + 20 * (2 * cnt), enc_1, lcd.WHITE, lcd.RED) lcd.draw_string(0, 0 + 20 * (2 * cnt + 1), enc_2, lcd.WHITE, lcd.RED) print(enc_1) print(enc_2)
fm.register(8, fm.fpioa.GPIOHS8) #rst fm.register(9, fm.fpioa.GPIOHS9) #rdy print("Use hardware SPI for other maixduino") fm.register(28, fm.fpioa.SPI1_D0, force=True) #mosi fm.register(26, fm.fpioa.SPI1_D1, force=True) #miso fm.register(27, fm.fpioa.SPI1_SCLK, force=True) #sclk ################################## sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_vflip(2) lcd.rotation(1) nic = network.ESP32_SPI(cs=fm.fpioa.GPIOHS25, rst=fm.fpioa.GPIOHS8, rdy=fm.fpioa.GPIOHS9, spi=1) print("ESP32_SPI firmware version:", nic.version()) while not WIFI_SSID: img = sensor.snapshot() a = img.replace(vflip=True, hmirror=False, transpose=True) res = img.find_qrcodes() if len(res) > 0: a = img.draw_string(2, 2, res[0].payload(), color=(0, 255, 0), scale=1) payload = res[0].payload() print(payload) payloadJSON = ujson.loads(payload) WIFI_SSID = payloadJSON["ssid"] WIFI_PASSWORD = payloadJSON["password"] server_ip = payloadJSON["host"]