import time import board import adafruit_dht from http.server import BaseHTTPRequestHandler, HTTPServer sensor = adafruit_dht.DHT22(board.D21) hostName = "0.0.0.0" serverPort = 7070 class MyServer(BaseHTTPRequestHandler): def do_GET(self): try: # Print the values to the serial port temperature_c = sensor.temperature temperature_f = temperature_c * (9 / 5) + 32 humidity = sensor.humidity self.send_response(200) self.send_header("Content-type", "text/plain") self.end_headers() self.wfile.write(bytes("# TYPE target_info gauge\n", "utf-8")) self.wfile.write(bytes("humidity{{location=\"beddroom\"}} {}\n".format(humidity), "utf-8")) self.wfile.write(bytes("# TYPE temperature gauge\n", "utf-8")) self.wfile.write(bytes("temperature{{location=\"beddroom\"}} {}\n".format(temperature_f), "utf-8")) except RuntimeError as error: # Errors happen fairly often, DHT's are hard to read, just keep going self.send_response(500) print(error.args[0]) except Exception as error: self.send_response(500) sensor.exit() raise error if __name__ == "__main__": webServer = HTTPServer((hostName, serverPort), MyServer) print("Server started http://%s:%s" % (hostName, serverPort)) try: webServer.serve_forever() except KeyboardInterrupt: pass webServer.server_close() print("Server stopped.")