1
1
# Example of tagging data with location values
2
2
# and sending it to an Adafruit IO feed.
3
-
3
+ import time
4
4
import board
5
5
import busio
6
6
from digitalio import DigitalInOut
10
10
import neopixel
11
11
12
12
13
- from adafruit_minimqtt import MQTT
13
+ import adafruit_minimqtt as MQTT
14
14
from adafruit_io .adafruit_io import IO_MQTT
15
15
16
16
### WiFi ###
@@ -73,18 +73,19 @@ def message(client, feed_id, payload):
73
73
# the new value.
74
74
print ("Feed {0} received new value: {1}" .format (feed_id , payload ))
75
75
76
-
77
76
# Connect to WiFi
77
+ print ("Connecting to WiFi..." )
78
+ wifi .connect ()
79
+ print ("Connected!" )
80
+
81
+ # Initialize MQTT interface with the esp interface
82
+ MQTT .set_socket (socket , esp )
78
83
wifi .connect ()
79
84
80
85
# Initialize a new MQTT Client object
81
- mqtt_client = MQTT (
82
- socket = socket ,
83
- broker = "io.adafruit.com" ,
84
- username = secrets ["aio_user" ],
85
- password = secrets ["aio_key" ],
86
- network_manager = wifi
87
- )
86
+ mqtt_client = MQTT .MQTT (broker = "https://io.adafruit.com" ,
87
+ username = secrets ["aio_user" ],
88
+ password = secrets ["aio_key" ])
88
89
89
90
# Initialize an Adafruit IO MQTT Client
90
91
io = IO_MQTT (mqtt_client )
@@ -110,5 +111,15 @@ def message(client, feed_id, payload):
110
111
print ("Data sent!" )
111
112
112
113
113
- # Listen forever...
114
- io .loop_blocking ()
114
+ # Start a blocking message loop...
115
+ # NOTE: NO code below this loop will execute
116
+ # NOTE: Network reconnection is handled within this loop
117
+ while True :
118
+ try :
119
+ io .loop ()
120
+ except (ValueError , RuntimeError ) as e :
121
+ print ("Failed to get data, retrying\n " , e )
122
+ wifi .reset ()
123
+ io .reconnect ()
124
+ continue
125
+ time .sleep (1 )
0 commit comments