diff --git a/mqtt/tempSensor.py b/mqtt/tempSensor.py index 3ede709..5e4bed7 100644 --- a/mqtt/tempSensor.py +++ b/mqtt/tempSensor.py @@ -16,32 +16,22 @@ password = 'falrenforbreakfast' client_id = f'python-mqtt-office-{random.randint(0, 1000)}' -# We first check if a libgpiod process is running. If yes, we kill it! -for proc in psutil.process_iter(): - if proc.name() == 'libgpiod_pulsein' or proc.name() == 'libgpiod_pulsei': - proc.kill() - #D20 is the pin number, DHT11 is the sensor type sensor = adafruit_dht.DHT11(board.D20) -while True: - try: - temp = sensor.temperature - humidity = sensor.humidity - - #convert to Farenheit - temp = (temp * 1.8) + 32 - print("Temperature: {}*F Humidity: {}% ".format(temp, humidity)) - except RuntimeError as error: - print(error.args[0]) - time.sleep(2.0) - continue - except Exception as error: - sensor.exit() - raise error - - #MQTT Portion - def on_connect(client, userdata, flags, rc): +#MQTT Connection +# def on_connect(client, rc): +# if rc == 0: +# print("Connected to MQTT Broker!") +# else: +# print("Failed to connect, return code %d\n", rc) +# #MQTT Connect +# client = mqtt_client.Client(client_id) +# client.username_pw_set(username, password) +# client.on_connect = on_connect +# client.connect(broker, port) +def connect_mqtt(): + def on_connect(client, rc): if rc == 0: print("Connected to MQTT Broker!") else: @@ -51,30 +41,61 @@ while True: client.username_pw_set(username, password) client.on_connect = on_connect client.connect(broker, port) - - #Publish Temp Results - tempMsg = '{{ "temperature": {} }}'.format(temp) - result = client.publish(tempTopic, tempMsg) - # result: [0, 1] - status = result[0] - if status == 0: - print(f"Send `{tempMsg}` to topic `{tempTopic}`") - else: - print(f"Failed to send message to topic {tempTopic}") + return client - #Publish Humid Results - humidMsg = '{{ "humidity": {} }}'.format(humidity) - result = client.publish(humidTopic, humidMsg) - # result: [0, 1] - status = result[0] - if status == 0: - print(f"Send `{humidMsg}` to topic `{humidTopic}`") - else: - print(f"Failed to send message to topic {humidTopic}") +def run(): + # We first check if a libgpiod process is running. If yes, we kill it! + for proc in psutil.process_iter(): + if proc.name() == 'libgpiod_pulsein' or proc.name() == 'libgpiod_pulsei': + proc.kill() + client = connect_mqtt() client.loop_start() + client.getValues() + - time.sleep(2.0) + +def getValues(): + while True: + try: + temp = sensor.temperature + humidity = sensor.humidity + + #convert to Farenheit + temp = (temp * 1.8) + 32 + print("Temperature: {}*F Humidity: {}% ".format(temp, humidity)) + except RuntimeError as error: + print(error.args[0]) + time.sleep(2.0) + continue + except Exception as error: + sensor.exit() + raise error + + #Publish Temp Results + tempMsg = '{{ "temperature": {} }}'.format(temp) + result = client.publish(tempTopic, tempMsg) + # result: [0, 1] + status = result[0] + if status == 0: + print(f"Send `{tempMsg}` to topic `{tempTopic}`") + else: + print(f"Failed to send message to topic {tempTopic}") + + #Publish Humid Results + humidMsg = '{{ "humidity": {} }}'.format(humidity) + result = client.publish(humidTopic, humidMsg) + # result: [0, 1] + status = result[0] + if status == 0: + print(f"Send `{humidMsg}` to topic `{humidTopic}`") + else: + print(f"Failed to send message to topic {humidTopic}") + + time.sleep(5.0) + #Now publish this via mqtt +if __name__ == '__main__': + run() \ No newline at end of file