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 publish_thingsboard(token, UNIQUE_ID, data, password=''): from umqtt.simple import MQTTClient import gc import json import machine import utime client = MQTTClient(UNIQUE_ID, "iot.ier.unam.mx", port=1883, user=token, password=password) client.settimeout = settimeout client.connect() print(json.dumps(data)) client.publish('v1/devices/me/telemetry', json.dumps(data)) client.disconnect()
def settimeout(duration): pass wlan = WLAN(mode=WLAN.STA) wlan.antenna(WLAN.EXT_ANT) wlan.connect("NETGEAR18", auth=(WLAN.WPA2, "FamilyJADE"), timeout=5000) while not wlan.isconnected(): machine.idle() print("Connected to Wifi\n") client = MQTTClient("demo", "mqtt.thingspeak.com", port=1883) client.settimeout = settimeout client.connect() # # publish temperature and free heap to Thingspeak using MQTT # thingspeakChannelId = "128609" # <--- replace with your Thingspeak Channel ID thingspeakChannelWriteapi = "R73HJN1DE9YPRD4V" # <--- replace with your Thingspeak Write API Key publishPeriodInSec = 30 while True: ### # collect some data and put code here # ### # note: string concatenations below follow best practices as described in micropython reference doc