import network from mqtt import MQTTClient import machine import time def sub_cb(topic, msg): print(msg) wlan = network.WLAN(network.STA_IF) wlan.active(True) #wlan.connect("c-base-botnet", auth=(WLAN.WPA2, "wifipassword"), timeout=5000) while not wlan.isconnected(): machine.idle() print("Connected to Wifi\n") client = MQTTClient("windsensor_0", "192.168.178.98",user="", password="", port=1883) #client = MQTTClient("windsensor_0", "mqtt.cbrp3.c-base.org",user="", password="", port=1883) client.set_callback(sub_cb) client.connect() client.subscribe(topic="/hackerfleet/sensors/windsensor/control") print("Connected to MQTT") speedInterrupts = 0 directionInterrupts = 0 speedTicks = 0 directionTicks = 0 def callbackSpeed(pin): global speedInterrupts speedInterrupts += 1 def callbackDirection(pin): global directionInterrupts directionInterrupts += 1 speedPin = machine.Pin(25, machine.Pin.IN, machine.Pin.PULL_UP) directionPin = machine.Pin(26, machine.Pin.IN, machine.Pin.PULL_UP) speedPin.irq(trigger=machine.Pin.IRQ_FALLING, handler=callbackSpeed) directionPin.irq(trigger=machine.Pin.IRQ_FALLING, handler=callbackSpeed) print("Pin setup done") while True: if speedInterrupts > 0 or directionInterrupts > 0: state = machine.disable_irq() if speedInterrupts > 0: speedTicks += 1 speedInterrupts -= 1 if directionInterrupts > 0: directionTicks += 1 directionInterrupts -= 1 machine.enable_irq(state) print("Direction: ", str(directionTicks), " Speed: ", str(speedTicks))