def publish_thingsboard(red, clave, token, UNIQUE_ID, data): # from umqtt.simple import MQTTClient # import gc # import json # import machine # import utime contador = 0 condicion = True while condicion: try: client = MQTTClient(UNIQUE_ID, "iot.ier.unam.mx", port=1883, user=token, password='') client.settimeout = settimeout client.connect() print(json.dumps(data)) client.publish('v1/devices/me/telemetry', json.dumps(data)) client.disconnect() condicion = False except Exception as inst: do_connect(red, clave) time.sleep(10) contador += 1 print("Falla ", contador) if contador >= 10: machine.reset()
def main(): wifi.do_connect(True) netTim = Timer(1) netTim.init(period=60000, mode=Timer.PERIODIC, callback=checkWifi) apikey = "=your apikey=" #替换成你自己的key和id apiUrl = 'http://api.heclouds.com/devices/=youerdeviceid=' hr = http(url=apiUrl, apikey=apikey) hr.timerdata()
def main(): bt.demo() wifi.do_connect() setup_buttons() health = api.get_health() show_health(health) if health.is_healthy(): load_and_show_trackables_menu()
def time_pull(): wifi.do_connect() #connect to wifi ntptime.settime() #pull time from NTP server (year, month, mday, week_of_year, hour, minute, second, milisecond) = RTC().datetime() RTC().init((year, month, mday, week_of_year, hour - 7, minute, second, milisecond)) print('{:02d}/{:02d}/{:02d} {:02d}:{:02d}.{:02d}'.format( RTC().datetime()[1], RTC().datetime()[2], RTC().datetime()[0], RTC().datetime()[4], RTC().datetime()[5], RTC().datetime()[6]))
def main(): wifi.do_connect(True) netTim = Timer(1) netTim.init(period=60000, mode=Timer.PERIODIC, callback=checkWifi) sn = 'ESP' + chipid() title = 'Device' + sn product_id = 'YourProductID' regKey = 'YourEvnRegistKey' url = 'http://api.heclouds.com/register_de?register_code=' + regKey reg = register.Register(url=url, title=title, sn=sn) if reg.regist()==0: mq = mqtt.mqtt(client_id=reg.device_id, username=product_id, password=reg.key) mq.connect() else: print('Error: No Client ID!')
def Scan_callback( timer ): # calback para el escaneo de los sensores (agregar posibilidad de realizar promedio de mediciones) global d, c, values, Pin_STS, tags, x, muestras try: #medicion de temperatura y humedad d.measure() values[1] = d.temperature() values[2] = d.humidity() except: values[1] = "error" values[2] = "error" values[5] = int.from_bytes(i2c.readfrom(35, 2), "big") / 1.2 #medicion de luminosidad values[6] = Pin_STS.value() #acuse de estado de lampara (bit interno) # #medicion de tension y corriente values[3] = ina.bus_voltage values[4] = ina.current # #a=utime.localtime() # #values[0]=str(a[0])+'/'+str(a[1])+'/'+str(a[2])+' '+str(a[3])+':'+str(a[4])+':'+str(a[5]) values[0] = utime.time() muestras.append([values[1], values[2], values[3], values[4], values[5]]) if len(muestras) > AVG: muestras = muestras[1:] print(muestras) #parseo json for i in range(0, len(tags)): dict[tags[i]] = values[i] OUT = ujson.dumps(dict) #publica en topic try: #print(OUT) c.publish(topic, OUT) except: #print ('fallo de publish') do_connect() c.connect()
import machine from umqttsimple import MQTTClient import ubinascii import time import struct #use porta controller LED: ON/OFF led = Pin(4, Pin.OUT, value=0) #Publiced: pin1 Ok = Pin(2, Pin.OUT, value=0) #use ports RGB PWM red = PWM(Pin(5), duty=1023) #Publiced: red gre = PWM(Pin(18), duty=1023) #Publiced: green blu = PWM(Pin(19), duty=1023) #Publiced: blue #connect to wifi wifi.do_connect(config.wifi_ssid, config.wifi_pass) #Id unique machine client_id = ubinascii.hexlify(machine.unique_id()) #controller LED def setLed(valor): led.value(valor) if led.value() == 1: print("Led On") else: print("Led Off") def setValor(porta, valor):
import oled import wifi import network import time import machine ssid = "WUSI-601" password = "******" oled.text("connecting WIFI", 0, 0) oled.show() if (wifi.do_connect(ssid, password)): wlan = network.WLAN(network.STA_IF) status = wlan.ifconfig() oled.fill(0) oled.text("conneted", 0, 0) oled.text(status[0], 0, 8) oled.show() else: oled.fill(0) oled.text("error", 0, 0) oled.text("not connected", 0, 8) oled.text("check ssid or pa", 0, 16) oled.text("ssword", 0, 24) oled.show() time.sleep_ms(1000) import dht DHT = dht.DHT11(machine.Pin(12)) while (1): DHT.measure()
def _handle_post_wifi(httpClient, httpResponse): datas = httpClient.ReadRequestPostedFormData() if 'passwd' in datas and 'login' in datas: do_connect(datas['login'], datas['passwd']) _handle_get_wifi(httpClient, httpResponse)
# This file is executed on every boot (including wake-boot from deepsleep) # import esp # esp.osdebug(None) import uos, machine # uos.dupterm(None, 1) # disable REPL on UART(0) import gc from wifi import do_connect # import webrepl # webrepl.start() do_connect() gc.collect()
# boot.py - - runs on boot-up import wifi wifi.do_connect("fr3nchwifires", "....") wifi.start_ap("mp_ap", "test1234") print("+++++++ boot finished +++++++++")
# nastaveni stanice (station - STA) a pripojeni k routeru import wifi wifi.do_connect(config_file="config.py") print("IP adresa je: %s" % wifi.get_ip()) wifi.do_disconnect()
ap_if = network.WLAN(network.AP_IF) sta_if.connect(red, clave) cnt_boot = 0 cont = 0 print("antes") while True: T = ((contador * 1.0) / 320) t = ((tot * 60) / 6.6166666667) try: data[label] = T data1[label1] = t print("Publishing data") publish_thingsboard(token, unique_id, data) # publish_thingsboard(token, unique_id,data1) cnt_boot = 0 contador = 0 cont = 1 except Exception as inst: print(inst) do_connect(red, clave) cnt_boot += 1 cont += 1 print("Fail {}".format(cnt_boot)) if cont > 1: contador = contador if cnt_boot > 10: machine.reset() time.sleep(1) time.sleep(30)
def checkWifi(t): wifi.do_connect(False)
# This file is executed on every boot (including wake-boot from deepsleep) #import esp #esp.osdebug(None) import wifi # pripojeni k wifi # predpoklada konfiguracni soubor "config.py", ve kterem je na prvnim radku essid a na druhem heslo wifi.do_connect(config_file="config.py") import gc import webrepl webrepl.start() gc.collect()
tm = TM1639(DIO, CLK, STB) buf1 = bytearray(16) buf2 = bytearray(16) def secondCallback(t): (year, month, day, hour, min, sec, wday, ss) = utime.localtime() tmp = '%02d%02d' % (hour, min) buf1[0] = tm.FONT[tmp[3]] buf1[1] = tm.FONT[tmp[2]] buf1[3] = tm.FONT[tmp[1]] buf1[8] = tm.FONT[tmp[0]] buf1[2] ^= 0x60 tm.convert(buf1, buf2, 16) for i in range(16): tm.send_data(i, buf2[i]) def hourCallback(t): sntp.settime() if __name__ == '__main__': wifi.do_connect() sntp.settime() tm.enable() t_sec = Timer(1) t_sec.init(period=1000, mode=Timer.PERIODIC, callback=secondCallback) t_hour = Timer(2) t_hour.init(period=3600000, mode=Timer.PERIODIC, callback=hourCallback)
#data是传入的数据,len是平滑的长度 self.data_sum = self.data_sum - self.data_list[0] + data self.data_list.pop(0) self.data_list.append(data) data = self.data_sum / len return data data_list = [0, 0, 0, 0, 0] ''' for i in range(5): acc_data = accelerometer.get_values() data_list.append(acc_data['AcX']/16384) ''' avgfiter = avg_fiter(data_list) ip_addr = do_connect(host='42', password='******') def conncb(task): print("[{}] Connected".format(task)) def disconncb(task): print("[{}] Disconnected".format(task)) def subscb(task): #print("[{}] Subscribed".format(task)) pass
#carga de parametros desde archivo f = open('Config.txt') ATTR = ujson.loads(f.read()) ATTR_txt = ujson.dumps(ATTR) PWM = int(ATTR.get('PWM')) AVG = int(ATTR.get('Muestras Promedio')) scan_rate = int(ATTR.get('Scan Rate')) scan_state = ATTR.get('Scan status') user = ATTR.get('mqtt_user') pword = ATTR.get('mqtt_pword') url = ATTR.get('mqtt_url') wifi_ssid = ATTR.get('wifi_ssid') wifi_pword = ATTR.get('wifi_pword') f.close() auxi = do_connect(wifi_ssid, wifi_pword) print(auxi) if auxi: #seteo de hora for i in range(0, 5): try: t = ntptime.time() i = 5 FAIL_settime = 0 except: print("error al configurar hora") #volver a intentar cada tanto FAIL_settime = 1 try: print(t) except: