# .';:cc;. # .,',;lol::c. # ;';lddddlclo # lcloxxoddodxdool:,. # cxdddxdodxdkOkkkkkkkd:. # .ldxkkOOOOkkOO000Okkxkkkkx:. # .lddxkkOkOOO0OOO0000Okxxxxkkkk: # 'ooddkkkxxkO0000KK00Okxdoodxkkkko # .ooodxkkxxxOO000kkkO0KOxolooxkkxxkl # lolodxkkxxkOx,. .lkdolodkkxxxO. # doloodxkkkOk .... .,cxO; # ddoodddxkkkk: ,oxxxkOdc'..o' # :kdddxxxxd, ,lolccldxxxkkOOOkkkko, # lOkxkkk; :xkkkkkkkkOOO000OOkkOOk. # ;00Ok' 'O000OO0000000000OOOO0Od. # .l0l.;OOO000000OOOOOO000000x, # .'OKKKK00000000000000kc. # .:ox0KKKKKKK0kdc,. # ... # # Author: peppe8o # Date: Jan 22th, 2022 # Version: 1.0 # https://peppe8o.com from umqttsimple import MQTTClient import time import ubinascii from machine import Pin,SPI from usocket import socket import network import rp2 #mqtt config mqtt_server = '192.168.1.91' client_id = 'Pico#1' user_t = 'pico' password_t = 'pico' topic_pub = 'v1/devices/me/telemetry' topic_msg = '{"Temp":25}' last_message = 0 message_interval = 5 counter = 0 #W5x00 chip init def w5x00_init(): spi=SPI(0,2_000_000, mosi=Pin(19),miso=Pin(16),sck=Pin(18)) nic = network.WIZNET5K(spi,Pin(17),Pin(20)) #spi,cs,reset pin nic.ifconfig(('192.168.1.20','255.255.255.0','192.168.1.1','8.8.8.8')) while not nic.isconnected(): time.sleep(1) print(nic.regs()) #MQTT connect def mqtt_connect(): client = MQTTClient(client_id, mqtt_server, user=user_t, password=password_t, keepalive=60) client.connect() print('Connected to %s MQTT Broker'%(mqtt_server)) return client #reconnect & reset def reconnect(): print('Failed to connected to MQTT Broker. Reconnecting...') time.sleep(5) machine.reset() def main(): w5x00_init() try: client = mqtt_connect() except OSError as e: reconnect() while True: client.publish(topic_pub, msg=topic_msg) print('published') time.sleep(3) client.disconnect() if __name__ == "__main__": main()