Updated main.py to be more failsafe. Now using umqtt.robust too.
This commit is contained in:
54
main.py
54
main.py
@@ -4,7 +4,7 @@ import time
|
|||||||
import json
|
import json
|
||||||
import machine
|
import machine
|
||||||
from machine import Pin
|
from machine import Pin
|
||||||
from umqtt.simple import MQTTClient
|
from umqtt.robust import MQTTClient
|
||||||
import dht
|
import dht
|
||||||
import urequests
|
import urequests
|
||||||
import wifi_config
|
import wifi_config
|
||||||
@@ -115,7 +115,10 @@ def main():
|
|||||||
wlan = network.WLAN(network.STA_IF)
|
wlan = network.WLAN(network.STA_IF)
|
||||||
|
|
||||||
# Create MQTT Client
|
# Create MQTT Client
|
||||||
mqtt_client = MQTTClient(mqtt_config.MQTT_CLIENT_ID, mqtt_config.MQTT_HOST_NAME)
|
mqtt_client = MQTTClient(
|
||||||
|
client_id = mqtt_config.MQTT_CLIENT_ID,
|
||||||
|
server = mqtt_config.MQTT_HOST_NAME,
|
||||||
|
)
|
||||||
|
|
||||||
# Create DHT22
|
# Create DHT22
|
||||||
sensor = dht.DHT22(Pin(DHT_22_GPIO_PIN))
|
sensor = dht.DHT22(Pin(DHT_22_GPIO_PIN))
|
||||||
@@ -132,7 +135,28 @@ def main():
|
|||||||
if DEBUG:
|
if DEBUG:
|
||||||
print(f'\nStarting loop #{count}... \nWiFI Status is {wlan.status()}.')
|
print(f'\nStarting loop #{count}... \nWiFI Status is {wlan.status()}.')
|
||||||
|
|
||||||
|
# Create Local Flags for Control
|
||||||
|
wifi_ready = False
|
||||||
|
mqtt_ready = False
|
||||||
|
dht22_ready = False
|
||||||
|
|
||||||
|
# DHT22 and CPU Reading.
|
||||||
|
try:
|
||||||
|
# CPU Reading.
|
||||||
|
cpu_temp = read_cpu_temp()
|
||||||
|
|
||||||
|
# DHT22 Reading.
|
||||||
|
dht22_reading = read_dht_22(sensor)
|
||||||
|
#debug_str = "None"
|
||||||
|
if dht22_reading is not None:
|
||||||
|
temp,hum = dht22_reading
|
||||||
|
temp = temp * 9/5. + 32.0
|
||||||
|
dht22_ready = True
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
# WiFi Connection.
|
# WiFi Connection.
|
||||||
|
try:
|
||||||
if wlan.status() != 3:
|
if wlan.status() != 3:
|
||||||
ifconfig = wlan_up(wlan)
|
ifconfig = wlan_up(wlan)
|
||||||
if ifconfig is None:
|
if ifconfig is None:
|
||||||
@@ -142,16 +166,22 @@ def main():
|
|||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
continue
|
continue
|
||||||
else:
|
else:
|
||||||
|
wifi_ready = True
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print("Connected to WiFi: {}".format(ifconfig))
|
print("Connected to WiFi: {}".format(ifconfig))
|
||||||
else:
|
else:
|
||||||
|
wifi_ready = True
|
||||||
ifconfig = wlan.ifconfig()
|
ifconfig = wlan.ifconfig()
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print(f"Skipping WiFi Activation since WiFi Status is {wlan.status()} \n{ifconfig}.")
|
print(f"Skipping WiFi Activation since WiFi Status is {wlan.status()} \n{ifconfig}.")
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
# MQTT Conneciton.
|
# MQTT Conneciton.
|
||||||
try:
|
try:
|
||||||
mqtt_client.connect()
|
try:
|
||||||
|
mqtt_client.connect(clean_session = False)
|
||||||
|
mqtt_ready = True
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print(f'MQTT Connected.')
|
print(f'MQTT Connected.')
|
||||||
|
|
||||||
@@ -161,17 +191,12 @@ def main():
|
|||||||
led_error_code(led, 2)
|
led_error_code(led, 2)
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
continue # Start back at the top of the While Loop
|
continue # Start back at the top of the While Loop
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
# DHT22 Reading.
|
# Ready to Publish?
|
||||||
dht22_reading = read_dht_22(sensor)
|
try:
|
||||||
#debug_str = "None"
|
if wifi_ready and mqtt_ready and dht22_ready:
|
||||||
if dht22_reading is not None:
|
|
||||||
temp,hum = dht22_reading
|
|
||||||
temp = temp * 9/5. + 32.0
|
|
||||||
|
|
||||||
# CPU Reading.
|
|
||||||
cpu_temp = read_cpu_temp()
|
|
||||||
|
|
||||||
# Timestamp
|
# Timestamp
|
||||||
time_now = time.localtime()
|
time_now = time.localtime()
|
||||||
timestamp = "{}/{}/{} {}:{}:{}".format(time_now[1],time_now[2],time_now[0],time_now[3],time_now[4],time_now[5])
|
timestamp = "{}/{}/{} {}:{}:{}".format(time_now[1],time_now[2],time_now[0],time_now[3],time_now[4],time_now[5])
|
||||||
@@ -200,6 +225,9 @@ def main():
|
|||||||
if DEBUG:
|
if DEBUG:
|
||||||
print(f'MQTT Disconnected.')
|
print(f'MQTT Disconnected.')
|
||||||
|
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
# Sleep for a bit.
|
# Sleep for a bit.
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print(f'Finished loop #{count}.')
|
print(f'Finished loop #{count}.')
|
||||||
|
|||||||
Reference in New Issue
Block a user