# # Once you have a hub and a device, copy the device primary connection string. # Add it to the secrets.py file in an entry called device_connection_string # # To us twins, you will need either a free or standard tier IoT Hub. Basic tier doesn't # support twins # # The adafruit-circuitpython-azureiot library depends on the following libraries: # # From the Adafruit CircuitPython Bundle (https://github.com/adafruit/Adafruit_CircuitPython_Bundle): # * adafruit-circuitpython-minimqtt # * adafruit-circuitpython-requests from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position # Create an IoT Hub device client and connect device = IoTHubDevice(socket, esp, secrets["device_connection_string"]) # Subscribe to device twin desired property updates # To see these changes, update the desired properties for the device either in code # or in the Azure portal by selecting the device in the IoT Hub blade, selecting # Device Twin then adding or amending an entry in the 'desired' section def device_twin_desired_updated(desired_property_name: str, desired_property_value, desired_version: int): print( "Property", desired_property_name, "updated to", str(desired_property_value), "version", desired_version,
# The free tier of IoT Hub allows up to 8,000 messages a day, so try not to send messages too often # if you are using the free tier # # Once you have a hub and a device, copy the device primary connection string. # Add it to the secrets.py file in an entry called device_connection_string # # The adafruit-circuitpython-azureiot library depends on the following libraries: # # From the Adafruit CircuitPython Bundle (https://github.com/adafruit/Adafruit_CircuitPython_Bundle): # * adafruit-circuitpython-minimqtt # * adafruit-circuitpython-requests from adafruit_azureiot import IoTHubDevice from adafruit_azureiot.iot_mqtt import IoTResponse # Create an IoT Hub device client and connect device = IoTHubDevice(socket, esp, secrets["device_connection_string"]) # Subscribe to direct method calls # To invoke a method on the device, select it in the Azure Portal, select Direct Method, # fill in the method name and payload, then select Invoke Method # Direct method handlers need to return a response to show if the method was handled # successfully or not, returning an HTTP status code and message def direct_method_invoked(method_name: str, payload) -> IoTResponse: print("Received direct method", method_name, "with data", str(payload)) # return a status code and message to indicate if the direct method was handled correctly return IoTResponse(200, "OK") # Subscribe to the direct method invoked event device.on_direct_method_invoked = direct_method_invoked
# # The free tier of IoT Hub allows up to 8,000 messages a day, so try not to send messages too often # if you are using the free tier # # Once you have a hub and a device, copy the device primary connection string. # Add it to the secrets.py file in an entry called device_connection_string # # The adafruit-circuitpython-azureiot library depends on the following libraries: # # From the Adafruit CircuitPython Bundle (https://github.com/adafruit/Adafruit_CircuitPython_Bundle): # * adafruit-circuitpython-minimqtt # * adafruit-circuitpython-requests from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position # Create an IoT Hub device client and connect device = IoTHubDevice(socket, esp, secrets["device_connection_string"]) print("Connecting to Azure IoT Hub...") # Connect to IoT Central device.connect() print("Connected to Azure IoT Hub!") message_counter = 60 while True: try: # Send a device to cloud message every minute # You can see the overview of messages sent from the device in the Overview tab # of the IoT Hub in the Azure Portal