Alternate method is now the main method since it's much easier to setup and it's been tested in our college IoT lab.
This commit is contained in:
parent
a7e84558b5
commit
93e6e5e211
71
README.md
71
README.md
@ -1,6 +1,6 @@
|
|||||||
# DHT Humidity Sensing on Raspberry Pi
|
# DHT Humidity Sensing on Raspberry Pi
|
||||||
|
|
||||||
This project is a uses the AdaFruit libraries for sensing temperature using DHT11 sensor and a Raspberry Pi.
|
This project is a uses the basic DHT11 python library (main method) and AdaFruit libraries (alternative method) for sensing temperature using DHT11 sensor and a Raspberry Pi.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -10,9 +10,43 @@ This project is a uses the AdaFruit libraries for sensing temperature using DHT1
|
|||||||
## Main method
|
## Main method
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> This is the main method, using AdaFruit library. For an easier method, checkout [## Alternative method](https://git.kska.io/notkshitij/DHT11#alternative-method)
|
> Main method uses the `DHT11` python library for reading the sensor data.
|
||||||
|
> This is a pure Python library for reading DHT11 sensor on Raspberry Pi.
|
||||||
|
|
||||||
1. Install some prerequisite packages:
|
1. Install prerequisites:
|
||||||
|
```shell
|
||||||
|
sudo apt update &&\
|
||||||
|
sudo apt install -y git
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Clone the project:
|
||||||
|
```shell
|
||||||
|
git clone https://git.kska.io/notkshitij/DHT11.git
|
||||||
|
```
|
||||||
|
|
||||||
|
> Alternatively, you can also [download the zip file](https://git.kska.io/notkshitij/DHT11/archive/main.zip)
|
||||||
|
|
||||||
|
3. Change the current working directory to the folder in which the project was cloned:
|
||||||
|
```shell
|
||||||
|
cd ./DHT11
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Run the `setup.sh` script:
|
||||||
|
```shell
|
||||||
|
source setup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> After running the code, and completing the execution, run `deactivate` in the terminal to exit the virtual environment.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Alternative method
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This is the alternative method, using **AdaFruit library**. This method doesnt' seem to work on our college Raspberry Pi 3's. For easiler setup, checkout [## Main method](https://git.kska.io/notkshitij/DHT11#main-method)
|
||||||
|
|
||||||
|
1. Install prerequisite packages:
|
||||||
```shell
|
```shell
|
||||||
sudo apt update &&\
|
sudo apt update &&\
|
||||||
sudo apt install git -y
|
sudo apt install git -y
|
||||||
@ -41,37 +75,6 @@ source ada-setup.sh
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Alternative method
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> This alternative method uses the `DHT11` python library for reading the sensor data.
|
|
||||||
> This is a pure Python library for reading DHT11 sensor on Raspberry Pi.
|
|
||||||
|
|
||||||
1. Install prerequisites:
|
|
||||||
```shell
|
|
||||||
sudo apt update &&\
|
|
||||||
sudo apt upgrade -y &&\
|
|
||||||
sudo apt install python3 python3-pip -y
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Setup a virtual environment & install the library:
|
|
||||||
```shell
|
|
||||||
mkdir /home/$(whoami)/temp-sensor
|
|
||||||
cd /home/$(whoami)/temp-sensor
|
|
||||||
python3 -m venv .
|
|
||||||
source bin/activate
|
|
||||||
pip install dht11 setuptools RPi.GPIO
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Download** and **run** the code [alt-temp.py](https://git.kska.io/notkshitij/DHT11/src/branch/main/alt-temp.py)
|
|
||||||
|
|
||||||
> [!IMPORTANT]
|
|
||||||
> After running the code, and completing the execution, run `deactivate` in the terminal to exit the virtual environment.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### License
|
### License
|
||||||
|
|
||||||
This project is licensed under the terms of the MIT license. Read the license [here](https://git.kska.io/notkshitij/DHT11/src/branch/main/LICENSE.txt).
|
This project is licensed under the terms of the MIT license. Read the license [here](https://git.kska.io/notkshitij/DHT11/src/branch/main/LICENSE.txt).
|
||||||
|
76
setup.sh
Executable file
76
setup.sh
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cat << "EOF"
|
||||||
|
|
||||||
|
__| |______________________________________________________________________| |__
|
||||||
|
__ ______________________________________________________________________ __
|
||||||
|
| | | |
|
||||||
|
| | | |
|
||||||
|
| | ____ _ _ _ | |
|
||||||
|
| | | _ \ ___ ___(_) __ _ _ __ ___ __| | __ _ _ __ __| | | |
|
||||||
|
| | | | | |/ _ \/ __| |/ _` | '_ \ / _ \/ _` | / _` | '_ \ / _` | | |
|
||||||
|
| | | |_| | __/\__ \ | (_| | | | | __/ (_| | | (_| | | | | (_| | | |
|
||||||
|
| | |____/ \___||___/_|\__, |_| |_|\___|\__,_| \__,_|_| |_|\__,_| | |
|
||||||
|
| | |___/ | |
|
||||||
|
| | _____ _ _ _ | |
|
||||||
|
| | | ____|_ __ __ _(_)_ __ ___ ___ _ __ ___ __| | | |__ _ _ | |
|
||||||
|
| | | _| | '_ \ / _` | | '_ \ / _ \/ _ \ '__/ _ \/ _` | | '_ \| | | | | |
|
||||||
|
| | | |___| | | | (_| | | | | | __/ __/ | | __/ (_| | | |_) | |_| | | |
|
||||||
|
| | |_____|_| |_|\__, |_|_| |_|\___|\___|_| \___|\__,_| |_.__/ \__, | | |
|
||||||
|
| | |___/ |___/ | |
|
||||||
|
| | _ __ _ _ _ _ _ | |
|
||||||
|
| | | |/ /___| |__ (_) |_(_)(_) | |
|
||||||
|
| | | ' // __| '_ \| | __| || | | |
|
||||||
|
| | | . \\__ \ | | | | |_| || | | |
|
||||||
|
| | |_|\_\___/_| |_|_|\__|_|/ | | |
|
||||||
|
| | |__/ | |
|
||||||
|
| | | |
|
||||||
|
__| |______________________________________________________________________| |__
|
||||||
|
__ ______________________________________________________________________ __
|
||||||
|
| | | |
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Declaring variables
|
||||||
|
line="=================================="
|
||||||
|
|
||||||
|
# Update and upgrade packages
|
||||||
|
echo -e "$line\nUpdating and upgrading packages.\n$line\n"
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
echo -e "$line\nFinished updating and upgrading packages.\n$line\n"
|
||||||
|
|
||||||
|
# Check if python3-pip is installed
|
||||||
|
echo -e "$line\nChecking for python3-pip.\n$line\n"
|
||||||
|
if ! dpkg -l | grep -q python3-pip; then
|
||||||
|
echo -e "$line\npython3-pip is not installed,\nInstalling python3-pip.\n$line\n"
|
||||||
|
sudo apt install python3-pip -y
|
||||||
|
else
|
||||||
|
echo -e "$line\npython3-pip already installed, moving on...\n$line\n"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create project folder
|
||||||
|
USER=$(whoami)
|
||||||
|
PROJECT_DIR="/home/$USER/Desktop/dht11-sensor"
|
||||||
|
|
||||||
|
if [ ! -d "$PROJECT_DIR" ]; then
|
||||||
|
echo -e "$line\nCreating 'dht11-sensor' in Desktop directory for current user.\n$line\n"
|
||||||
|
mkdir -p "$PROJECT_DIR"
|
||||||
|
cp "./temp-calc.py" "$PROJECT_DIR/"
|
||||||
|
echo -e "$line\nCreated '$PROJECT_DIR' directory.\n$line\n"
|
||||||
|
else
|
||||||
|
echo -e "$line\n$PROJECT_DIR already exists. Please delete the folder before running this script.\n$line\n\nExiting..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create and activate Python virtual environment
|
||||||
|
cd "$PROJECT_DIR/"
|
||||||
|
chmod 775 ./temp-calc.py
|
||||||
|
python3 -m venv .
|
||||||
|
echo -e "$line\nVirtual environment created.\n$line\n"
|
||||||
|
echo -e "$line\nActivating virtual environment...\n$line\n"
|
||||||
|
source $PROJECT_DIR/bin/activate
|
||||||
|
|
||||||
|
echo -e "$line\nInstalling dependencies...\n$line\n"
|
||||||
|
pip3 install --upgrade RPi.GPIO setuptools dht11
|
||||||
|
|
||||||
|
echo -e "\n\n\n$line$line$line\nSetup completed.\nExecute the command 'python3 temp-calc.py' to calculate the temperature.\n# DESIGNED AND ENGINEERED BY KSHITIJ.\n# END OF SCRIPT\n$line$line$line\n\n\n"
|
21
temp-calc.py
Executable file
21
temp-calc.py
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
# NOTE: GPIO PIN 16 used
|
||||||
|
|
||||||
|
import RPi.GPIO as GPIO
|
||||||
|
import dht11
|
||||||
|
|
||||||
|
# initialize GPIO
|
||||||
|
GPIO.setwarnings(False)
|
||||||
|
GPIO.setmode(GPIO.BCM)
|
||||||
|
GPIO.cleanup()
|
||||||
|
|
||||||
|
# read data using pin 16
|
||||||
|
instance = dht11.DHT11(pin = 16)
|
||||||
|
result = instance.read()
|
||||||
|
|
||||||
|
if result.is_valid():
|
||||||
|
print("Temperature: %-3.1f C" % result.temperature)
|
||||||
|
print("Humidity: %-3.1f %%" % result.humidity)
|
||||||
|
else:
|
||||||
|
print("Error: %d" % result.error_code)
|
||||||
|
|
||||||
|
GPIO.cleanup()
|
Loading…
Reference in New Issue
Block a user