def run(ssd, key, jsonfile): apinfo = config.get(jsonfile)['apinfo'] print(apinfo) print(apinfo['name']) if not wifi.ap.isconnected(): wifi.ap.config(essid=apinfo['name']) wifi.ap.active(True) ssd.fill(0) graph.disUnicode(ssd, 0, 0, '打开微信小程序') graph.disUnicode(ssd, 32, 20, 'IOT管家') #ssd.text('essid:'+apinfo['name'],0,40) ''' fbuf = framebuf.FrameBuffer(bytearray(Font.hanzi[8]), 32, 32, framebuf.MONO_HLSB) ssd.blit(fbuf, 0, 10) fbuf = framebuf.FrameBuffer(bytearray(Font.hanzi[7]), 32, 32, framebuf.MONO_HLSB) ssd.blit(fbuf, 31, 10) fbuf = framebuf.FrameBuffer(bytearray(Font.hanzi[9]), 16, 32, framebuf.MONO_HLSB) ssd.blit(fbuf, 63, 10) fbuf = framebuf.FrameBuffer(bytearray(Font.hanzi[10]), 16, 32, framebuf.MONO_HLSB) ssd.blit(fbuf, 79, 10) fbuf = framebuf.FrameBuffer(bytearray(Font.hanzi[11]), 16, 32, framebuf.MONO_HLSB) ssd.blit(fbuf, 95, 10) fbuf = framebuf.FrameBuffer(bytearray(Font.hanzi[10]), 16, 32, framebuf.MONO_HLSB) ssd.blit(fbuf, 111, 10) ''' ssd.text('ip:' + apinfo['server_ip'], 0, 40) ssd.text('port:' + str(apinfo['server_port']), 0, 50) ssd.show() s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) addres = socket.getaddrinfo(apinfo['server_ip'], apinfo['server_port'])[0][-1] s.bind(addres) #绑定端口 while True: keyvalue = key.read() time.sleep_ms(200) print(keyvalue) data, addr = s.recvfrom(1024) data = json.loads(data) if len(data) > 0: print('received:', data, 'from', addr) config.set(jsonfile, data) ssd.fill(0) ssd.text('SUCCESS!', 20, 20) ssd.show() s.close() wifi.ap.active(False) break if keyvalue == 7: s.close() wifi.ap.active(False) break
def Wificlose(ssd, key): wifi.sta_disconnect() ssd.fill(0) graph.disUnicode(ssd, 0, 10, '断开连接...') #ssd.text('disconnecting...',0,10) ssd.show() while True: keyvalue = key.read() time.sleep_ms(200) if not wifi.sta.isconnected(): ssd.fill(0) #ssd.text('SUCCESS!',0,10) graph.disUnicode(ssd, 0, 10, '断开连接成功') break if keyvalue == 7: time.sleep_ms(200) break
def run(self, ssd, key): ssd.fill(0) #ssd.text('1.open',20,10) #ssd.text('2.close',20,20) graph.disUnicode(ssd, 20, 5, '打开') graph.disUnicode(ssd, 20, 25, '关闭') ssd.show() menu_index = 1 essid = config.get(self.jsonfile)['essid'] passwd = config.get(self.jsonfile)['passwd'] while True: keyvalue = key.read() if keyvalue == key.LEFT_PRESS: menu_index -= 1 if menu_index < 1: menu_index = 1 time.sleep_ms(200) elif keyvalue == key.RIGHT_PRESS: menu_index += 1 if menu_index > 2: menu_index = 2 time.sleep_ms(200) if menu_index == 1: ssd.fill_rect(0, 0, 20, 64, 0) ssd.text('->', 0, 10) elif menu_index == 2: ssd.fill_rect(0, 0, 20, 64, 0) ssd.text('->', 0, 30) ssd.show() if keyvalue == key.HOME_PRESS: if menu_index == 1: Wifiopen(ssd, key, essid, passwd) time.sleep_ms(200) elif menu_index == 2: Wificlose(ssd, key) time.sleep_ms(200) ssd.fill(0) graph.disUnicode(ssd, 20, 5, '打开') graph.disUnicode(ssd, 20, 25, '关闭') #ssd.text('1.open',20,10) #ssd.text('2.close',20,20) ssd.show() print("clear") time.sleep_ms(200) if keyvalue == key.BACK_PRESS: break
def Wifiopen(ssd, key, essid, passwd): wifi.essid = essid wifi.passwd = passwd wifi.sta_connect() ssd.fill(0) #ssd.text('connecting...',0,10) graph.disUnicode(ssd, 0, 10, '连接中...') ssd.show() while True: keyvalue = key.read() time.sleep_ms(200) if wifi.sta.isconnected(): ssd.fill(0) #ssd.text('SUCCESS!',0,10) graph.disUnicode(ssd, 0, 10, '连接成功') ssd.show() break if keyvalue == 7: time.sleep_ms(200) break
def run(self): if not wifi.sta.isconnected(): self.ssd.text('wifi is disconnected', 10, 24) return conf = config.get(self.path) #self.ssd.text('geting data...',10,24) graph.disUnicode(self.ssd, 10, 24, '获取数据...') self.ssd.show() self.data = read(conf['weatherurl']) if self.data != None: self.data = self.data['data'] print(self.data) else: graph.disUnicode(self.ssd, 10, 24, '获取数据失败') self.ssd.show() time.sleep(2) return self.ssd.fill(0) while True: data = self.data #self.ssd.text(data['City'],0,5) self.ssd.text(data['Temp'][:2], 30, 55) fbuf = framebuf.FrameBuffer(bytearray(font2.degree_8x8), 8, 8, framebuf.MONO_HLSB) self.ssd.blit(fbuf, 48, 55) #self.ssd.text(data['Wind'],0,25) #self.ssd.text(data['Data'],0,35) disWeather_icon(self.ssd, data['Data'], 44, 6) graph.disUnicode(self.ssd, 80, 14, data['Data']) #disZHString(self.ssd,data['Data'],80,14) self.ssd.line(0, 45, 127, 45, 1) #self.ssd.text(data['AirLevel'],0,45) #self.ssd.text(data['Imgurl'],0,55) humidity = data['Humidity'] humidity = humidity[len(humidity) - 3:] self.ssd.text(humidity, 80, 55) self.ssd.show() if self.key.read() == self.key.BACK_PRESS: break
def run(self): key = self.key ssd = self.ssd graph.disUnicode(ssd, 20, 5, '热点') graph.disUnicode(ssd, 20, 25, '无线网络') graph.disUnicode(ssd, 20, 45, '时间同步') while True: keyvalue = key.read() if keyvalue == key.LEFT_PRESS: self.menu_index -= 1 if self.menu_index < 1: self.menu_index = 1 time.sleep_ms(200) elif keyvalue == key.RIGHT_PRESS: self.menu_index += 1 if self.menu_index > 3: self.menu_index = 3 time.sleep_ms(200) if self.menu_index == 1: ssd.fill_rect(0, 0, 20, 64, 0) ssd.text('->', 0, 10) elif self.menu_index == 2: ssd.fill_rect(0, 0, 20, 64, 0) ssd.text('->', 0, 30) elif self.menu_index == 3: ssd.fill_rect(0, 0, 20, 64, 0) ssd.text('->', 0, 50) #ssd.text('1.open ap',20,10) #ssd.text('2.wifi start',20,20) #ssd.text('3 sync date',20,30) ssd.show() if keyvalue == key.HOME_PRESS: time.sleep_ms(200) if self.menu_index == 1: Apopen.run(ssd, key, self.jsonfile) time.sleep_ms(200) ssd.fill(0) graph.disUnicode(ssd, 20, 5, '热点') graph.disUnicode(ssd, 20, 25, '无线网络') graph.disUnicode(ssd, 20, 45, '时间同步') elif self.menu_index == 2: wifilist = Wifilist(self.jsonfile) wifilist.run(ssd, key) time.sleep_ms(200) ssd.fill(0) graph.disUnicode(ssd, 20, 5, '热点') graph.disUnicode(ssd, 20, 25, '无线网络') graph.disUnicode(ssd, 20, 45, '时间同步') elif self.menu_index == 3: re = synctime.syncTime() print(re) ssd.fill(0) if re == 1: graph.disUnicode(ssd, 0, 5, '同步完成') else: graph.disUnicode(ssd, 10, 5, '同步失败!') graph.disUnicode(ssd, 10, 25, '没有线网络') ssd.show() time.sleep(3) ssd.fill(0) graph.disUnicode(ssd, 20, 5, '热点') graph.disUnicode(ssd, 20, 25, '无线网络') graph.disUnicode(ssd, 20, 45, '时间同步') if keyvalue == key.BACK_PRESS: break