====== Installing DH22 Temp / Humidity Software ====== Make sure you are updated:\\ sudo apt upgrade Install the required packages:\\ sudo apt install python3-pip python3-rrdtool librrd-dev sudo pip3 install adafruit-circuitpython-dht rrdtool --break-system-packages Test Script:\\ # Complete Project Details: https://RandomNerdTutorials.com/raspberry-pi-dht11-dht22-python/ # Based on Adafruit_CircuitPython_DHT Library Example import time import board import adafruit_dht # Sensor data pin is connected to GPIO 4 sensor = adafruit_dht.DHT22(board.D4) # Uncomment for DHT11 #sensor = adafruit_dht.DHT11(board.D4) while True: try: # Print the values to the serial port temperature_c = sensor.temperature temperature_f = temperature_c * (9 / 5) + 32 humidity = sensor.humidity print("Temp={0:0.1f}ºC, Temp={1:0.1f}ºF, Humidity={2:0.1f}%".format(temperature_c, temperature_f, humidity)) except RuntimeError as error: # Errors happen fairly often, DHT's are hard to read, just keep going print(error.args[0]) time.sleep(2.0) continue except Exception as error: sensor.exit() raise error #Sleep 5 Min time.sleep(300.0) Test it:\\ python3 bin/temp-2.py Working Script:\\ sudo vi bin/temperature.py import adafruit_dht import board import time import rrdtool # Set up the DHT22 sensor dht_device = adafruit_dht.DHT22(board.D4) while True: # Read the temperature and humidity data temperature = dht_device.temperature temperature_f = temperature * (9 / 5) + 32 humidity = dht_device.humidity # Update the RRD database rrdtool.update('/etc/temperature/test.rrd', 'N:%s:%s' % (temperature_f, humidity)) # Sleep for 1 minute time.sleep(60.0) Move to location:\\ sudo cp bin/temperature.py /usr/local/bin/ sudo chmod 755 /usr/local/bin/temperature.py Setup RRD:\\ sudo mkdir /etc/temperature Make Database:\\ sudo rrdtool create /etc/temperature/test.rrd --step 300 \ DS:temperature_f:GAUGE:600:-40:80 \ DS:humidity:GAUGE:600:0:100 \ RRA:AVERAGE:0.5:1:288 Add it to Startup:\\ Create file /etc/systemd/system/temperature.service\\ [Unit] Description=Script to start taking temperarures [Service] ExecStart=/usr/local/bin/temperature.py Restart=always RestartSec=3 [Install] WantedBy=multi-user.target Enable Script: sudo systemctl daemon-reload sudo systemctl enable temperature.service sudo systemctl start temperature.service Graph it:\\ sudo rrdtool graph temperature.png --start -1d --end now \ DEF:temperature=/etc/temperature/test.rrd:temperature_f:AVERAGE \ LINE2:temperature#FF0000 sudo rrdtool graph humidity.png --start -1d --end now \ DEF:humidity=/etc/temperature/test.rrd:humidity:AVERAGE \ LINE2:humidity#0000FF Graph it in Cron: sudo crontab -e */5 * * * * /usr/local/bin/graph_test.sh > /dev/null 2>&1 sudo cp bin/graph_printmon.sh /usr/local/bin/ sudo chmod 750 /usr/local/bin/graph_printmon.sh https://randomnerdtutorials.com/raspberry-pi-dht11-dht22-python/