Download scripts/temperature-sensor.py from AccelerationConsortium/temperature-sensor: direct link, hf CLI and curl.
- Browser
- Download file 2.45 kB
-
https://huggingface.co/spaces/AccelerationConsortium/temperature-sensor/resolve/main/scripts/temperature-sensor.py
- Command line
-
hf download hf://spaces/AccelerationConsortium/temperature-sensor/scripts/temperature-sensor.py
-
curl -L -o temperature-sensor.py https://huggingface.co/spaces/AccelerationConsortium/temperature-sensor/resolve/main/scripts/temperature-sensor.py
2.45 kB
| from bme680 import BME680_I2C # Ensure you have the right import for the BME680 class | |
| from machine import I2C, Pin | |
| from netman import connectWiFi | |
| from umqtt.simple import MQTTClient | |
| import time | |
| # Wi-Fi and MQTT configuration | |
| SSID = 'Pixel 8' # Replace with your Wi-Fi SSID | |
| PASSWORD = '123456789' # Replace with your Wi-Fi password | |
| MQTT_BROKER = 'b6bdb89571144b3d8e5ca4bbe666ddb5.s1.eu.hivemq.cloud' # HiveMQ Cloud broker URL | |
| MQTT_PORT = 8883 # Port for TLS | |
| MQTT_TOPIC = "sensors/bme680/data" # Replace with your desired MQTT topic | |
| MQTT_USER = 'Luthiraa' | |
| MQTT_PASS = 'theboss1010' | |
| def connect_to_internet(): | |
| try: | |
| status = connectWiFi(SSID, PASSWORD, country='US', retries=3) | |
| print("Connected to Wi-Fi successfully!") | |
| print("IP Address:", status[0]) | |
| except RuntimeError as e: | |
| print(f"Failed to connect to Wi-Fi: {e}") | |
| raise | |
| # Initialize I2C and BME680 | |
| i2c = I2C(1, scl=Pin(27), sda=Pin(26)) | |
| bme = BME680_I2C(i2c) | |
| # MQTT setup with authentication and TLS | |
| client = MQTTClient( | |
| client_id=b"kudzai_raspberrypi_picow", | |
| server=MQTT_BROKER, | |
| port=MQTT_PORT, | |
| user=MQTT_USER, | |
| password=MQTT_PASS, | |
| keepalive=60, # Set to a shorter interval | |
| ssl=True, | |
| ssl_params={'server_hostname': MQTT_BROKER} | |
| ) | |
| # Connect to MQTT broker | |
| def connect_to_mqtt(): | |
| try: | |
| client.connect() | |
| print("Connected to MQTT broker") | |
| print("Client ID:", client.client_id) # Print client ID | |
| except Exception as e: | |
| print(f"Failed to connect to MQTT broker: {e}") | |
| raise | |
| # Connect to Wi-Fi and MQTT | |
| connect_to_internet() | |
| connect_to_mqtt() | |
| while True: | |
| # Read sensor data | |
| temperature = bme.temperature | |
| humidity = bme.humidity | |
| pressure = bme.pressure | |
| gas = bme.gas | |
| # Prepare data payload | |
| payload = ( | |
| f"Temperature: {temperature:.2f} °C, " | |
| f"Humidity: {humidity:.2f} %, " | |
| f"Pressure: {pressure:.2f} hPa, " | |
| f"Gas: {gas:.2f} ohms" | |
| ) | |
| # Print data to console | |
| print("--------------------------------------------------") | |
| print(payload) | |
| print("--------------------------------------------------") | |
| # Publish data to MQTT broker | |
| try: | |
| client.publish(MQTT_TOPIC, payload) | |
| print("Data published to MQTT topic:", MQTT_TOPIC) | |
| except Exception as e: | |
| print(f"Failed to publish data: {e}") | |
| client.connect() | |
| time.sleep(2) | |